Электронная библиотека книг Александра Фролова и Григория Фролова.
 
Библиотека
Братьев
Фроловых
Электронная библиотека книг Александра Фролова и Григория Фролова.
Библиотека системного программиста
Программирование на JAVA
ПК. Шаг за шагом
Другие книги
Восстановление данных
Антивирусная защита
Статьи для
программистов
Пользователю компьютера

Программирование видеоадаптеров.

© Александр Фролов, Григорий Фролов
Том 21, М.: Диалог-МИФИ, 1993.

[Назад] [Содеожание] [Дальше]

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

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

ПЕРВЫЙ ШАГ

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

ВТОРОЙ ШАГ

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

Рисунок 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

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

Видеоадаптер EGA позволяет загрузить в память четыре, а VGA и SVGA - восемь таблиц знакогенератора, каждая из которых определяет 256 символов. Одновременно могут использоваться символы одной или двух таблиц знакогенератора. Это позволяет одновременно отображать на экране монитора до 512 различных символов.

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

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

D1-D0 Выбор первой активной таблицы знакогенератора. Эта таблица используется для вывода символа на экран, если бит D3 байта атрибутов символа содержит ноль.

D3-D2 Выбор второй активной таблицы знакогенератора. Вторая таблица используется для вывода символа на экран, если бит D3 байта атрибутов символа содержит единицу.

D4 Дополнительный бит, доступный на видеоадаптерах VGA и SVGA. Используется для выбора первой таблицы знакогенератора.

D5 Дополнительный бит, доступный на видеоадаптерах VGA и SVGA. Используется для выбора второй таблицы знакогенератора.

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

Для выбора активных таблиц знакогенератора надо установить биты D0-D5 в соответствии со следующей таблицей:

D5 D3 D2

Номер таблицы знакогенератора, используемой, если бит D3 байта атрибутов равен 1

D4 D1 D0

Номер таблицы знакогенератора, используемой если бит D3 байта атрибутов равен 0

0 0 0

Первая таблица знакогенератора

0 0 1

Вторая таблица знакогенератора

0 1 0

Третья таблица знакогенератора

0 1 1

Четвертая таблица знакогенератора

1 0 0

Пятая таблица знакогенератора (видеоадаптеры VGA и SVGA)

1 0 1

Шестая таблица знакогенератора (видеоадаптеры VGA и SVGA)

1 1 0

Седьмая таблица знакогенератора (видеоадаптеры VGA и SVGA)

1 1 1

Восьмая таблица знакогенератора (видеоадаптеры VGA и SVGA)

Если нужна только одна активная таблица знакогенератора, то значения битов D5 D3 D2 и битов D4 D1 D0 должны совпадать.

.   Для выбора активных таблиц знакогенератора рекомендуется использовать соответствующую функцию BIOS.

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

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

D0 Для видеоадаптера EGA бит D0 содержит единицу, при использовании в текстовом режиме функции выбора знакогенератора. Для адаптера VGA этот бит обычно сброшен в ноль.

D1 Для видеоадаптера EGA бит D1 равен единице, если объем видеопамяти больше 64 Кбайт.

D2 Если бит D2 содержит ноль, то доступ по четным адресам происходит к нулевому цветовому слою, а по нечетным - к первому.

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

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

Режим

0,1,2,3,7

4,5

6,0Dh,0Eh

0Fh,10h

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

03

02

06

00


[Назад] [Содеожание] [Дальше]


Создание интернет-магазинов: http://www.shop2you.ru/ © Александр Фролов, Григорий Фролов, 1991-2016