Программирование видеоадаптеров

       

Операция записи


При чтении процессором данных из видеопамяти они также запоминаются в регистрах-защелках, расположенных на плате видеоадаптера. Если затем выполняется цикл записи, то над данными, находящимися в этих регистрах, и над данными, поступающими от процессора могут выполняться следующие логические операции:

       Запись данных процессора в видеопамять без изменения

       Циклический сдвиг данных, записываемых процессором в видеопамять

       Выполнение булевой операции И между данными, записываемыми в видеопамять и содержимым регистров-защелок. В видеопамять записывается результат операции

       Выполнение булевой операции ИЛИ между данными, записываемыми в видеопамять и содержимым регистров-защелок. В видеопамять записывается результат операции

       Выполнение булевой операции ИСКЛЮЧАЮЩЕЕИЛИ между данными, записываемыми в видеопамять и содержимым регистров-защелок. В видеопамять записывается результат операции

Таким образом, видеоадаптер может выполнять часть работы по обработке видеоданных. Рисунок 3.15 иллюстрирует выполнение графическим контроллером операции записи данных в видеопамять:

PICTURE._FIG_40.PCX;6";4.308";PCX

Рисунок 3.15   Запись данных в видеопамять

Байт, записываемый процессором в видеопамять (на нашем рисунке 11100001b), поступает в графический контроллер. В соответствии со значением регистра циклического сдвига и выбора функции (регистры адаптеров описаны в следующем разделе), происходит циклический сдвиг на один бит содержимого  байта, записываемого в видеопамять.

Полученный результат складывается по логике ИЛИ с содержимым регистров-защелок. Какая булева функция используется - ИЛИ, И, ИСКЛЮЧАЮЩЕЕ ИЛИ также определяется регистром циклического сдвига и выбора функции.

Дальнейшие преобразования происходят в соответствии со значениями регистра разрешения установки/сброса и регистра установки/сброса:

       Если бит регистра разрешения установки/сброса, управляющий данным цветовым слоем, равен нулю, тогда байт, записываемый в видеопамять не изменяется

       Если бит регистра разрешения установки/сброса, управляющий данным цветовым слоем равен единице, то в видеопамять записывается байт, все биты которого устанавливаются в соответствии со значением регистра установки/сброса для данного цветового слоя

Затем в соответствии с состоянием регистра битовой маски происходит запись данных в видеопамять:

       Если данный бит регистра битовой маски содержит единицу, то соответствующие биты для каждого из цветовых слоев поступают от центрального процессора

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

Центральный процессор может одновременно прочитать данные только из одного цветового слоя, однако запись данных в регистры-защелки происходит из всех четырех цветовых слоев. Эту особенность можно использовать для быстрого копирования областей экрана.



Содержание раздела