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

UptoLike

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

2
Отобразить текст процедуры для поиска заданного значения пикселя в тестовом растровом изо-
бражении.
3 Предложить несколько ситуаций, где может быть использован данный режим чтения пикселей.
Лабораторная работа 3
Программирование видеокарты VGA в режиме записи 0
Цель работы: приобретение навыков в программировании видеокарты VGA в режимах записи 0
для 16-цветового режима (12h).
Задание: Организовать работу видеокарты VGA в режиме записи 0(a). Произвести вывод задан-
ного значения пикселя в заранее подготовленное растровое изображение. Предложить наглядный ин-
терфейс пользователя.
Методические указания
В режиме записи 0 производится комбинация байтовых и пиксельных операций, инициируемых
в операции записи процессора. Байт данных, передаваемый процессором, может использоваться для
изменения любой или всех битовых плоскостей; в то же время для модификации любого или всех
восьми пикселей (хранящихся в регистрах-защелках) может привлекаться предопределенное значе-
ние пикселя. Такая двухмерная модификация содержимого регистров-защелок осуществляется не-
сколькими различными способами, определяемыми содержимым регистров установки/сброса
(3CF/00h), циклического сдвига данных/выбора функции (3CF/03h) и регистра битовой маски
(3CF/08h) (рис. 4).
Регистр битовой маски (3CF/08h) определяет, как образуется новое значение каждого из восьми
пикселей в видеобуфере. Если бит в этом регистре равен 0, то соответствующее значение пикселя копи-
руется в видеобуфер прямо из регистров-защелок. Для каждого единичного бита регистра битовой мас-
ки соответствующий пиксель получается комбинацией содержимого регистра-защелки с данными, по-
ступающими из процессора или со значениями пикселя в регистре разрешения установки/сброса. Таким
образом, если операции записи и чтения по одному и тому же адресу следуют друг за другом сразу же,
то модифицируется только те пиксели, для которых соответствующий бит в регистре маски установлен
в 1.
Регистр циклического сдвига данных/выбора функции (3CF/03h) содержит два поля, влияющих
на способ модификации содержимого регистров-защелок. Биты 3 – 4 определяют, какая конкретно
поразрядная логическая операция (AND, OR, XOR или замена) используется для получения значе-
ния пикселей (табл. 6). Биты 0 – 2 определяют число битов, на которое байт данных от процессора
циклически сдвигается вправо перед объединением его с содержимым регистров-защелок.
a)
Регистр циклического
сдвига данных/выбора
функции
Байт данных
процессора