Программирование видеоадаптеров CGA,EGA и VGA

         

Регистр циклического сдвига и выбора функции (Data Rotate & Function Select - DRFS) (индекс3)



Регистр циклического сдвига и выбора функции
(Data Rotate & Function Select - DRFS) (индекс 3)

Регистр DRFS выполняет две различные функции, отраженные в его названии:

  • Циклический сдвиг данных, записываемых процессором в видеопамятять.
  • Выполнение над записываемыми в видеопамять данными и содержимым регистров-защелок некоторых логических операций.
  • D2-D0 Счетчик сдвига.
  • D4-D3 Биты выбора логической функции.
  • D7-D5 Не используются.

После выполнения BIOS установки режима работы видеоадаптера биты регистра DRFS содержат нулевые значения.

При выполнении операции циклического сдвига биты счетчика сдвига могут иметь следующие значения. Чтобы разрешить операцию циклического сдвига надо использовать нулевой режим записи.



D2 D1 D0Данные циклически сдвигаются вправо на следующее количество битов
0 0 0ноль, сдвиг не происходит
0 0 1один бит
0 1 0два бита
0 1 1три бита
1 0 0четыре бита
1 0 1пять битов
1 1 0шесть битов
1 1 1семь битов

Таблица 8.15 Циклический сдвиг.

Теперь рассмотрим возможности графического контроллера по выполнению логических операций над записываемыми в видеопамять данными.

Во время выполнения процессором операции чтения из видеопамяти одновременно происходит запись данных из всех четырех цветовых слоев (по считываемому адресу) в регистры-защелки. Каждому цветовому слою видеопамяти соответствует один 8-битовый регистр-защелка. Когда процессор начнет записывать в видеопамять (возможно уже по другому адресу) данные, можно комбинировать их с данными из регистров-защелок. Вид выполняемой логической операции будет зависеть от содержимого битов выбора логической функции (таблица 8.16):

D4  D3Выполняемая логическая операция
0 0запись немодифицированных данных
0 1И
1 0ИЛИ
1 1ИСКЛЮЧАЮЩЕЕ ИЛИ

Таблица 8.16 Возможные логические операции.

Следует отметить, что операция циклического сдвига выполняется до выполнения логических функций.

Регистр DRFS можно использовать для быстрого копирования областей видеопамяти с возможной их модификацией.



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