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

Регистры синхронизатора

Синхронизатор управляет всеми временными параметрами видеоадаптера, а также разрешением и запрещением доступа к отдельным цветовым слоям видеопамяти. Синхронизатор содержит пять регистров. Их названия перечислены в таблице 4.12. У видеоадаптера EGA все пять регистров доступны только для записи, а у видеоадаптеров VGA и SVGA также и для чтения.

Индекс регистра

Регистр синхронизатора

0

Регистр сброса синхронизатора (Reset Register - RR)

1

Регистр режима синхронизации (Clock Mode Register - CMR)

2

Регистр разрешения записи цветового слоя (Color Plane Write Enable Register - CPWER)

3

Регистр выбора знакогенератора (Character Generator Select Register - CGSR)

4

Регистр определения структуры памяти (Memory Mode Register - MMR)

Доступ к регистрам осуществляется через индексный порт с адресом 3C4h и через порт данных с адресом 3C5h.

Регистр сброса синхронизатора (Reset Register - rr) (индекс 0)

Если регистр переведен в состояние сброса, то все процессы видеоадаптера приостанавливаются. В результате могут быть разрушены данные в видеопамяти.

D0 Бит асинхронного сброса. После записи в этот бит нуля происходит немедленный сброс и остановка синхронизатора. В результате информация из видеопамяти может быть потеряна.

D1 Бит синхронного сброса. Нулевое значение сбрасывает и останавливает синхронизатор в конце исполняемого цикла.

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

Для нормальной работы видеоадаптера биты D0 и D1 должны быть равны единице. Перед доступом к регистру режима синхронизации синхронизатор должен быть переведен в состояние синхронного сброса (бит D1 равен 0).

Регистр режима синхронизации (Clock Mode Register - cmr) (индекс 1)

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

Перед модификацией регистра CMR надо сбросить бит D1 в регистре сброса синхронизатора, переведя, таким образом, синхронизатор в режим синхронного сброса и остановки.

D0 Бит определяет ширину символов в текстовых монохромных режимах с разрешением 720 пикселов по горизонтали. Если бит D0 равен нулю, то ширина матрицы символов составляет 9 пикселов, если единице - 8 пикселов.

D1 Бит используется видеоадаптером EGA для определения числа циклов, отводимых центральному процессору, для доступа к видеопамяти. При D1 равном единице, процессор может получить три из каждых пяти циклов, а при D1 равном нулю - только один из пяти циклов. Остальные циклы используются адаптером для регенерации видеопамяти.

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

D5 Используется только видеоадаптерами VGA и SVGA. Если бит D5 равен единице, то экран монитора гаснет и центральный процессор получает монополию на доступ к видеопамяти. Это несколько ускоряет процесс обмена процессора с видеопамятью.

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

Ниже приведены значения регистра CMR, устанавливаемые BIOS при установке режима работы адаптера:

Режим

00,01,04,05,0Dh

02,03,06,0Eh

0Fh,10h

Содержимое регистра

0Bh

01

05

Регистр разрешения записи цветового слоя (Color Plane Write Enable - cpwe) (индекс 2)

При помощи данного регистра можно запретить запись данных в любые цветовые слои видеопамяти. На рисунке 4.8 показан механизм запрещения записи данных в отдельные слои видеопамяти. Рассмотрим процесс записи данных процессором в видеопамять:

ПЕРВЫЙ ШАГ

Процессор передает видеоадаптеру данные для записи в видеопамять. Они проходят через графический контроллер и попадают в синхронизатор. Графический контроллер выполняет над данными, записываемыми в видеопамять, операции, определяемые состоянием его регистров (смотри главу "Исполнение видеоадаптером операции записи" из раздела "Графический контроллер").

ВТОРОЙ ШАГ

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

PICTURE._FIG_17.PCX;6";4.308";PCX

Рисунок 4.8 Разрешение записи в цветовые слои

Биты регистра разрешения записи цветового слоя имеют следующие значения:

D0 Если бит D0 равен единице, то можно записывать данные в нулевой цветовой слой.

D1 Если бит D1 равен единице, то можно записывать данные в первый цветовой слой.

D2 Если бит D2 равен единице, то можно записывать данные в второй цветовой слой.

D3 Если бит D3 равен единице, то можно записывать данные в третий цветовой слой.

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

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

Режим

0,1,2,3,4,5,7

6

D,E,F,10

Содержимое регистра

03

01

0Fh