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

         

Регистры графического контроллера


Как мы уже указывали, графический контроллер поддерживает обмен данными между процессором и видеопамятью. При этом он может выполнять простейшие логические операции над записываемыми в видеопамять данными. Грфический контроллер передает также данные из цветовых слоев видеопамяти - контроллеру атрибутов в случае использования графического режима работы видеоадаптера.

Графический контроллер содержит девять регистров. Обращение к ним происходит через индексный порт с адресом 3CEh и порт данных с адресом 3CFh. Список регистров приведен в таблице 8.14.

Адаптер EGA имеет еще два порта с адресами 3CAh и 3CCh, используемых при инициализации видеоадаптера.



Индекс регистраРегистр графического контроллера
0регистр установки/сброса (Set/Reset Register - SRR)
1регистр разрешения установки/сброса (Set/Reset Enable Register - SRER)
2регистр сравнения цветов (Color Compare Register - CCR)
3регистр циклического сдвига и выбора функции (Data Rotate & Function Select - DRFS)
4регистр выбора читаемого слоя (Read Plane Select Register - RPSR)
5регистр режима работы (Mode Register - MDR)
6регистр смешанного назначения (Miscellaneous Register - MIR)
7регистр маскирования цветовых слоев (Color Don't Care Register - CDCR)
8регистр битовой маски (Bit Mask Register - BMR)

Таблица 8.14 Регистры графического контроллера.

Большинство регистров графического контроллера могут использоваться при программировании, поэтому регистры графического контроллера будут описаны полностью.

Ниже, на рисунке 8.10, демонстрируются функции, выполняемые графическим контроллером. Рассмотрм функционирование графического адаптера.

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

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

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

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

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



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