Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование видеоадаптеров EGA, VGA и SVGA.doc
Скачиваний:
138
Добавлен:
01.05.2014
Размер:
4.51 Mб
Скачать

Управление преобразованием серого цвета - подфункция 33h

Поддерживается только видеоадаптерами VGA и SVGA. Если разрешено преобразование, то при загрузке регистров таблицы цветов (операцией выбора режима работы видеоадаптера или непосредственным вызовом функции загрузки этих регистров) происходит корректировка записываемых значений. После этого содержимое регистров будет соответствовать различным градациям серого цвета.

На входе:

AH

12h

BL

33h - управление преобразованием серого цвета

AL

Разрешение/запрещение преобразования:

0 - разрешить преобразование,

1 - запретить преобразование

На выходе:

AL

12h

Приведем фрагмент программы, использующий функцию 33h для управления преобразованием серого цвета:

enable: ; Разрешение преобразования содержимого регистров ; таблицы цветов в шкалу градаций серого цвета xor al,al jmp conversion disable: ; Запрещение преобразования содержимого регистров ; таблицы цветов mov al,1 conversion: mov ah,12h mov bl,33h int 10h

Эмуляция курсора cga - подфункция 34h

Функция 34h управляет режимом эмуляции курсора CGA. При разрешении эмуляции курсора CGA, его размеры устанавливаются, исходя из того, что символы имеют высоту 8 пикселов.

На входе:

AH

12h

BL

34h - управление эмуляцией курсора CGA

AL

Разрешение/запрещение эмуляции курсора:

0 - разрешить эмуляцию,

1 - запретить эмуляцию

На выходе:

AL

12h

Выбор активного монитора - подфункция 35h

Используется в системе PS/2 для переключения между видеоадаптером VGA, расположенным на системной плате компьютера, и дополнительным видеоадаптером. Функция работает даже если между видеоадаптерами существует конфликт по адресам видеопамяти или адресам портов ввода/вывода. Система PS/2 после загрузки в качестве первичного видеоадаптера использует дополнительный.

Программа, выполняющая переключение видеоадаптеров должна поддерживать 128-байтовый буфер для сохранения информации о состоянии неактивного видеоадаптера.

На входе:

AH

12h

BL

35h - выбор активного монитора для PS/2

ES:DX

Адрес буфера. Размер буфера должен составлять 128 байт

AL

0 - выключить дополнительный видеоадаптер (должно быть использовано при первом вызове функции),

1 - включить видеоадаптера VGA, расположенный на системной плате (должно быть использовано при втором вызове функции),

2 - выключить активный видеоадаптер (используется в последующих вызовах функции),

3 - включить неактивный видеоадаптер (используется в последующих вызовах функции)

На выходе:

AL

12h

Гашение экрана монитора - подфункция 36h

Видеоадаптеры VGA и SVGA имеют возможность гашения экрана монитора:

На входе:

AH

12h

BL

36h - управление гашением экрана монитора

AL

0 - включить отображение информации на экране монитора,

1 - погасить экран монитора

На выходе:

AL

12h

Функция возвращает в регистре AL значение 12h, если компьютер имеет видеоадаптер VGA.