Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 22

1*)  Если разрешено взвешенное усреднение уровней серого, сохраняемое в регистре цвета значение представляет собой уровень серого (см. Int 10h, функция 12h, подфункция 33h — вкл./выкл. взвешенного усреднения).

2*)  Переключение страниц палитры допускается только для 16-цветных текстовых или графических режимов, в 256-цветных графических режимах данная подфункция не поддерживается.

3*)  Для заданного диапазона регистров палитры ЦАП вычисляется взвешенное среднее значений по каждой цветовой составляющей (0.3*R + 0.59*G + 0.11*B).

При переключении видеорежимов средствами BIOS (функция 00h) существует возможность разрешения или запрещения загрузки палитры значениями, принятыми по умолчанию. Для этого необходимо использовать подфункцию 31h функции 12h прерывания 10h.

В графических режимах VGA атрибутом пикселя является код его цвета. Функция 0Ch выводит атрибут пикселя в память дисплея. Выполнение функции зависит от бита 7 регистра AL. Если он равен 0, то атрибут точки просто записывается в память дисплея, в противном случае переданный в AL атрибут поразрядно складывается (XOR) с соответствующими битами памяти дисплея. Функция 0Dh позволяет получить атрибут пикселя из памяти дисплея. В младших битах AL возвращается результат (старшие биты сбрасываются в 0).

На рисунке 3.4 приведен фрагмент программы, проводящей линию по диагонали экрана в графическом режиме VGA 320х200x256 методом непосредственной записи в видеопамять. На рисунке 3.5 приведена программа, проводящая две линии с координатами (0,0—200,200) и (0,200—200,0) с использованием INT10h.

Для работы с видеокартами типа SVGA в графических режимах принят стандарт VESA (Video Electrical Standart Association). Стандарт VESA, по сути являясь расширением VIDEO BIOS, унифицирует интерфейс управления видеорежимами SVGA, получения информации по видеосистеме SVGA и т.п. В табл. 3.2 приведен список функций VESA для большинства SVGA BIOS.

       MOV   AX,13h  ;Установка графики (320х200x256)

       INT   10h

       MOV   BL,50   ;Число групп строк

       MOV   CL,2    ;Счетчик сдвига

L1:    MOV   AL,0C0h ;AL – маска первой точки в байте

       MOV   [DI],AL

       ADD   DI,2000h ;Переключение на нечетную