Регистры графического контроллера адаптера EGA/VGA 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Регистры графического контроллера адаптера EGA/VGA



Для доступа процессора к такой видеопамяти EGA содержал т. н. секвенсор. Секвенсор поддерживал 3 режима записи в видеопамять и 2 режима чтения, и имел немалое количество управляющих регистров.

При записи использовались регистры:

· маска плоскости. Запись не вносила изменений в те плоскости, биты которых в данном регистре были установлены в 0.

· маска битов. Для каждого байта в каждой плоскости запись не изменяла те биты, которые были установлены в 0 в данном регистре.

· логическая операция. 16 стандартных логических операций. В результате записи бит видеопамяти устанавливался в логическую функцию от бита пришедших от процессора данных и старого значения бита видеопамяти. Код логической операция есть 4 бита, бит данных процессора выбирал между старшими и младшими 2, а старое значение бита видеопамяти — между четными и нечетными. Выбранный бит кода логической операции и являлся новым значением бита видеопамяти. Например, логическая операция 0000b — установить все в чёрное, 1111b — все в белое, 1100b — обычное копирование битовой карты, 0011b — копирование с инвертированием, 1010b — пустая операция, 0101b — инвертирование старого содержимого, 1110b — OR старого содержимого с новым, 1000b — AND старого и нового, 0110b — XOR.

· циклический сдвиг данных, поступивших от процессора (только для режима 0).

Регистры палитры были реализованы только на запись без возможности чтения.

VGA (так же, как и EGA) состоит из следующих основных подсистем (в народе словом "секвенсер" называли набор регистров управления доступом к плоскостям видеопамяти):

· Графический контроллер (Graphics Controller), посредством которого происходит обмен данными между центральным процессором и видеопамятью.

· Видеопамять (Display Memory), в которой размещаются данные, отображаемые на экране монитора. 256 кБ DRAM разделены на четыре цветовых слоя по 64 кБ.

· Последовательный преобразователь (Serializer или Sequencer) — преобразует данные из видеопамяти в поток битов, передаваемый контроллеру атрибутов.

· Контроллер атрибутов (Attribute Controller) — с помощью палитры преобразует входные данные в цветовые значения.

· Синхронизатор (Sequencer) — управляет временны́ми параметрами видеоадаптера и переключением цветовых слоёв.

· Контроллер ЭЛТ (CRT Controller) — генерирует сигналы синхронизации для ЭЛТ.

Режим "Чтение 0"

Схема режима “Чтение 0” содержимого видеопамяти представлена на рис. 4.13. Вначале происходит загрузка регистров-защелок из соответствующих адресов битовых плоскостей, а из них - в регистр процессора. Выбор соответствующего регистра-защелки производится путем записи номера плоскости в регистр “Выбор читаемой плоскости” (ВЧП), который используется только в режиме “Чтение 0”. Таким образом, в этом режиме идет побайтовая обработка видеопамяти, в результате которой можно прочитать содержимое восьми бит, расположенных в одном цветовом слое (битовой плоскости). Значение пикселя можно сформировать последовательным извлечением байт всех битовых плоскостей и выделением в них требуемых разрядов.

Режим «Чтение 1»

В этом режиме вначале также выполняется пересылка байтов из битовых плоскостей в регистры-защелки. Затем все восемь пикселов в регистрах-защелках сравниваются со значением, записанным в регистре “Сравнение цветов” (СЦ). Результат сравнения в виде одного байта пересылается в регистр процессора. Этот байт формируется так, что при совпадении цветов пиксела и регистра СЦ устанавливается 1, при несовпадении - 0 (рис. 13). На результат сравнения влияет содержимое младших разрядов (0 - 3) регистра “Цвет безразличен” (ЦБ). Если какой-либо бит установлен в 0, то соответствующий регистр-защелка исключаются из сравнения. В примере, показанном на рис. 13 четыре младших разряда регистра ЦБ имеют значение ‘1111’, поэтому в сравнении содержимого регистров-защелок и регистра СЦ участвуют все битовые плоскости. Если изменить содержимое регистра ЦБ на значение ‘1011’, то результат обработки, записанный в регистр процессора, будет иметь значение ‘11110000’.

Режим "Запись 0" (при РУС=0000)

Данный режим самый сложный и самый богатый по предоставляемым возможностям. Он используется в тех случаях, когда необходимо изменить какой-либо один из восьми пикселей, записанных в регистрах-защелках. В формировании значения пикселя принимают участие регистры “Разрешение установки-сброса” (РУС), “Установка-сброс” (УС), “Битовая маска” (БМ), “Циклический сдвиг данных” (ЦСД), а также байт данных процессора.

Существует широкий набор вариантов работы в этом режиме, определяемый содержимым регистра РУС. Из всего множества способов записи можно выделить два, при которых значение РУС равно 0000B и 1111B. В первом случае все четыре байта в регистрах-защелках перед записью в битовые плоскости комбинируются с байтом данных из регистра процессора (побайтовая комбинация).

Во втором случае значение каждого пикселя комбинируется с четырехбитовым значением в регистре “Установка-сброс” (попиксельная комбинация).

Регистр БМ формирует значение каждого пикселя в регистрах-защелках. Если какой-либо бит регистра установлен в 0, то соответствующий пиксель без изменения пересылается из регистров-защелок в видеопамять. При установке бита в 1 значение пикселя перед пересылкой в видеопамять комбинируется либо с байтом данных процессора, либо со значением в регистре “Установка-сброс”.

Способ комбинирования задается регистром ЦСД, который выполняет две функции - указывает логическую операцию и величину циклического сдвига. В битах 3 и 4 этого регистра указывается поразрядная логическая операция в соответствии с таблицей 4.8.

Разряды Функция
Четвертый Третий  
    Замещение
    AND
    OR
    XOR

Эти операции выполняются над байтом данных и содержимым регистров-защелок (при РУС = 0) или над значением регистра УС и содержимым регистров-защелок (при РУС = 1111B).

Биты 0 - 2 регистра ЦСД определяют величину циклического сдвига вправо байта данных из регистра процессора перед комбинированием его с содержимым регистров-защелок.

Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B (рис. 4.15). В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять.

 

При этом содержимое регистра процессора не имеет значения. В том случае, когда надо изменить только один пиксель, в регистре БМ соответствующий бит устанавливается в 1, а остальные - в 0, и выполняется операция записи в видеопамять. Если в регистре БМ все разряды устанавливаются в 1, то за одну операцию записи в видеопамять будут изменены все восемь пикселей, т.е. прочерчена горизонтальная линия длиной восемь пикселей.

При значении регистра РУС = 0 циклический сдвиг и логическая операция выполняются над содержимым регистра процессора.

В соответствии с содержимым регистра ЦСД над байтом регистра процессора выполняется циклический сдвиг, в результате которого получается значение 11000101B. Так как регистр БМ имеет значение 00001111B, то старшая половина байта каждого регистра-защелки пропускается в видеопамять без изменения, а вторая половина получается в результате выполнения логической операции AND над младшими четырьмя разрядами регистра процессора после сдвига и регистров-защелок. Результат заносится в видеопамять (битовые плоскости). При нулевых значениях 3 и 4 разрядов регистра ЦСД была бы выполнена операция замещения, и в младшие четыре разряда всех битовых плоскостей было бы занесено значение 0101B. В случае нулевого значения и разрядов 0 - 2 регистра ЦСД в младшие разряды всех битовых плоскостей было бы записано значение 0111B.

Режим "Запись 0" (при РУС=1111)

Он используется в тех случаях, когда необходимо изменить какой-либо один из восьми пикселей, зашлюзованных (записанных) в регистрах-защелках. В формировании значения пикселя принимают участие регистры “Разрешение установки-сброса” (РУС), “Установка-сброс” (УС), “Битовая маска” (БМ), “Циклический сдвиг данных” (ЦСД), а также байт данных процессора. Существует широкий набор вариантов работы в этом режиме, определяемый содержимым регистра РУС. Из всего множества способов записи можно выделить два, при которых значение РУС равно 0000B и 1111B. В первом случае все четыре байта в регистрах-защелках перед записью в битовые плоскости комбинируются с байтом данных из регистра процессора (побайтовая комбинация). Во втором случае значение каждого пикселя комбинируется с четырехбитовым значением в регистре “Установка-сброс” (попиксельная комбинация). Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B. В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять. Рассмотрим работу режима “Запись 0” при значении регистра РУС = 1111B (рис. 4.15). В этом случае в регистре УС фактически содержится четырехбитовое значение пикселя, которое пересылается в видеопамять.

Режим "Запись 2"

Этот режим похож на режим “Запись 0” при значении РУС = 1111B. В отличие от указанного режима роль регистра УС выполняют четыре младших разряда регистра процессора, а регистр РУС не влияет на результат. В остальном все операции выполняются так же: битовые плоскости изменяются за счет комбинации значений пикселей в регистрах-защелках со значением регистра процессора (попиксельная комбинация) и выполняется логическая операция, установленная в регистре ЦСД, а регистр БМ определяет, какие пиксели изменяются, а какие - нет (рис. 4.18).

Режим "Запись 3"

Данный режим поддерживается только видеоадаптером VGA и фактически представляет собой режим “Запись 0” при значении РУС = 1111B с одним отличием - байт данных для регистра процессора циклически сдвигается вправо на число разрядов, заданных в регистре ЦСД, и комбинируется логической операцией AND значением в регистре БМ. В результате получается битовая маска, которая играет роль регистра БМ (рис. 4.19).



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 242; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.116.20 (0.008 с.)