Программирование видеосистем. Васильев С.А. - 7 стр.

UptoLike

Составители: 

3С7
Индекс читаемого регистра таблицы цветов
(для записи)
3С8
Индекс записываемого регистра таблицы цве-
тов
3С9 Регистр данных таблицы цветов
ШЕСТНАДЦАТИЦВЕТНЫЙ РЕЖИМ VGA
Для 16-цветового режима (12h) под каждый пиксель (точку) изображения отводится 4 бита видео-
памяти (2
4
= 16). Вся видеопамять карты делится на четыре равные части, называемые битовыми плос-
костями. Причем, каждый бит пикселы расположен в своей битовой плоскости видеопамяти (рис. 1), 1
байт которой соответствует 8 пикселям на экране.
Все битовые плоскости проецируются на один и тот же участок адресного пространства процессо-
ра, начиная с адреса A000 : 0.
Для работы с пикселем с координатами (x, y) необходимо определить адрес байта относительно
начала страницы видеопамяти, содержащий данный пиксель, и позицию пикселя внутри байта. По-
скольку видеопамять под пиксели отводится последовательно слева направо и сверху вниз, то одна
строка соответствует 80 байтам. В этом случае:
адрес байта = 80y + (x div 8);
номер бита = 7 – (x mod 8).
Рис. 1 Битовые плоскости видеокарты в 12h режиме
Битовые плоскости графического режима адаптера VGA адресуются параллельно. Когда процессор
выполняет операцию чтения по адресу видеобуфера, из него пересылается не один, а четыре байта дан-
ных. Данные пересылаются не прямо в процессор, а в четыре 8-битовых регистра-защелки. Каждый по-
добный регистр соответствует своей битовой плоскости.
Аналогично выполняется операция записи точки в видеобуфер. В этом случае все четыре
битовые плоскости могут изменяться параллельно с использованием комбинации данных, состоящей из
содержимого регистров-защелок, байта данных пересылаемого процессором и предопределенного зна-
чения пикселя, хранящегося в регистре графического контроллера.
Возможны два режима чтения атрибутов точки видеобуфера (0 и 1) и четыре режима записи точки в
видеобуфер (0, 1, 2 и 3). Выбор режима чтения определяется битом 3, а режим записи битами 0-2 реги-
стра режима работы графического контроллера (3CF/05h).
РЕЖИМ ВИДЕОКАРТЫ VGA В РЕЖИМЕ 256 ЦВЕТОВ
0
1
2
3
(x, y)