Регистр DRFS выполняет две различные функции, отраженные в его названии:
После выполнения 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 можно использовать для быстрого копирования областей видеопамяти с возможной их модификацией.