Прежде чем преступить к работе с экраном следует выполнить такие
операции;
1) определить тип видеосистемы
2) установить режим работы видеоадаптера
3) выбрать цвет фона и палитры CGA - адаптера
4) загрузить регистры палитры EGA - адаптера
5) загрузить регистры цифрового - аналогового преобразователя (DAC -регистры).
Определение типа адаптера выполняется в следующем порядке.
1. Считывается содержимое по адресу 40:49h — области данных. Если это значение равно 7, то это значит, что активным в компьютере является адаптер Hercules.
Содержимое по данному адресу в языке Си определяется функцией
*MK_FP (0x40, 0x49)
Если содержимое этого адреса отлично от 7, то поиск продолжается.
2. Информация о видеосистеме запрашивается следующими функциями
АН = 1Ah,
AL = 00
прерывания 10h BIOS.
Вместо этих двух функций устанавливается функция
AX = 1A00h
с тем же прерыванием.
По выполнению этой функции в регистре AL, будет содержаться значение 1Ah.
При этом в регистре BL будет содержаться код активного адаптера монитора. Возможные значения при этом могут быть:
|
|
00h - отсутствие адаптера/монитора,
01h - монохроматический адаптер с монохроматическим монитором 5151,
02h - CGA с цветным монитором 5153/4,
03h - зарезервировано BIOS,
04h - EGA с цветным монитором 5151,
05h – EGA с монохроматическим монитором 5151,
06h - профессиональная графическая система с цветным монитором 5175,
07h – VGA с аналоговым монохроматическим монитором,
08h – VGA с аналоговым цветным монитором и т.д.
Если же АL не равно 1Ah, то делается следующий шаг определения типа адаптера.
3. Вводятся следующие функции
АН = 12h
BL = 10h
с прерыванием 10h.
Если же после этого содержимое регистра BL не изменится, то в компьютере поддерживается СGA - адаптер. В противном случае поддерживается адаптер EGA.
И в том случае если BH = 00h поддерживается цветной режим, а когда BH =01h – монохроматический режим. Содержимое регистра BL сообщает информацию о объёме памяти адаптера
BL = 00 - 64 Кбайт,
BL = 01 - 128 Кбайт,
BL = 02 - 192 Кбайт,
BL = 03 - 256 Кбайт,
BL = 04 - OFh. – зарезервирован.
4. Если же не обнаружен ни один из перечисленных адаптеров, то считается, что система оснащена CGA - адаптером.
Текущий режим адаптера определяется функцией AH = 0F прерывания 10h. При этом в регистре AL помещается номер режима в AH – число столбцов текста на экране, а в BH - номер активной видеостраницы.
Необходимый режим устанавливается функцией AH = 00 прерывания 10h. При этом значение режима помещается в регистр AL.
Установка активной страницы осуществляется функцией AH = 0Х05. В регистр AL помещается номер страницы.