Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование видеоадаптеров EGA, VGA и SVGA.doc
Скачиваний:
139
Добавлен:
01.05.2014
Размер:
4.51 Mб
Скачать

Регистр сравнения цветов (Color Compare Register - ccr) (индекс 2)

Регистр CCR можно использовать для поиска на экране пикселов с определенным цветом. Без использования регистра CCR за один цикл чтения видеопамяти процессор может считать данные только из одного цветового слоя. Программирование регистра CCR позволяет за один цикл чтения прочитать все четыре цветовых слоя, сравнить считанные значения с искомыми и возвратить результат.

Ниже представлен формат регистра сравнения цветов:

D0 Искомая величина для нулевого цветового слоя.

D1 Искомая величина для первого цветового слоя.

D2 Искомая величина для второго цветового слоя.

D3 Искомая величина для третьего цветового слоя.

D7-D4 Не используются.

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

Операция поиска пикселов данного цвета иллюстрируется рисунком 4.11.

PICTURE._FIG_25.PCX;6";4.308";PCX

Рисунок 4.11 Использование регистра CCR

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

Перед использованием регистра CCR для выполнения операции поиска пикселов определенного цвета необходимо установить регистр режима работы (Mode Register - MDR) и регистр маскирования цветовых слоев (Color Don't Care Register - CDCR), описанные ниже.

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

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

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

w Выполнение логических операций над данными записываемыми в видеопамять и содержимым регистров-защелок.

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

D4  D3

Логическая операция

0 0

Запись не модифицированных данных

0 1

И

1 0

ИЛИ

1 1

ИСКЛЮЧАЮЩЕЕ ИЛИ

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

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

Рисунок 4.12 иллюстрирует выполнение логической операции ИЛИ. Регистр циклического сдвига и выбора функции содержит число 00010000b. После операции чтения данные из всех четырех слоев записываются в регистры-защелки. Затем выполняется операция записи. Данные процессора в соответствии с состоянием регистра циклического сдвига и выбора функции складываются по логике ИЛИ со значением регистров-защелок и помещаются в видеопамять.

PICTURE._FIG_26.PCX;6";4.308";PCX

Рисунок 4.12 Логические операции и операция циклического сдвига

M Логические операции можно выполнять только в нулевом и втором режиме записи.