Таблица настройки палитры содержит значения, загружаемые при выборе режима работы видеоадаптера в регистр положения подчеркивания символа (регистра ULR), регистры палитры, и регистры таблицы цветов.
Смещение |
Размер |
Описание |
00h |
Байт |
Управление подчеркиванием символов в текстовых режимах: 1 подчеркивание разрешено во всех текстовых режимах; 0 подчеркивание разрешено во всех монохромных текстовых режимах; -1 подчеркивание не используется |
01h |
Байт |
Зарезервировано |
02h |
Слово |
Зарезервировано |
04h |
Слово |
Количество регистров контроллера атрибутов, определенных в таблице |
06h |
Слово |
Номер первого регистра контроллера атрибутов |
08h |
Двойное слово |
Адрес таблицы, содержащей значения регистров контроллера атрибутов |
0Ch |
Слово |
Количество регистров таблицы цветов |
0Eh |
Слово |
Номер первого регистра таблицы цветов |
10h |
Двойное слово |
Адрес таблицы, содержащей значения регистров таблицы цветов |
14h |
Массив байт переменной длины |
Список режимов, в которых используется данная таблица. Каждый байт содержит номер режима. Список заканчивается числом 0FFh |
Программа BIOSVAR, исходный текст которой представлен в листинге 6.1, считывает из оперативной памяти компьютера значения переменных видеофункций BIOS, а затем отображает их на экране монитора.
Формат вызова программы BIOSVAR имеет следующий вид:
BIOSVAR <номер режима>
Единственный параметр программы BIOSVAR должен задавать режим, в который переводится видеоадаптер перед чтением переменных видеофункций BIOS.
Листинг 6.1. Файл BIOSVAR.С
#include <stdio.h>
#include <dos.h>
#include <mem.h>
#include "sysgraph.h"
int main( int, char ** );
//===========================================================
// Главная функция программы
//===========================================================
int main( int argc, char * argv[] )
{
BIOS_VAR _far *bios_var_ptr;
BIOS_VAR bios_var_table;