Программирование EGA и VGA
========================================================================
ПОРТ 3C8h (Только VGA): РЕЖИМ ЗАПИСИ PEL АДРЕСА
(PEL Address Write Mode)
ОПИСАНИЕ
C помощью этого регистра выбирается регистр PEL данных для записи
(выбор регистра PEL данных для чтения осуществляется c помощью регистра
Режим Чтения PEL Адреса, порт 3c7h). После выбора регистра PEL данных в
порт 3c9h (регистр PEL данных) должны быть записаны три 6-битовых значе-
ния. Первое значение определяет яркость красного цвета, второе - зелено-
го, третье - синего.
ЗАМЕЧАНИЯ
После записи значений, соответствующих трем основным цветам, значе-
ние регистра PEL адрес автоматически увеличивается до номера следующего
регистра PEL данных.
Если цикл чтения прерывается каким-либо другим запросом чтения или
записи (например, для перезаписи другого регистра PEL адреса), то те-
кущий цикл далее не выполняется и не оказывает влияния на состояние таб-
лицы цветов ЦАП.
Цикл записи не должен прерываться чтением в регистр PEL данных (мо-
жет быть испорчена цветовая таблица), хотя регистр PEL адреса может за-
писываться в любой момент.
Регистр Состояния ЦАП может использоваться для определения теку-
щего состояния ЦАП (чтение или запись).
Прерывания должны быть запрещены в течении цикла записи.
Чтение либо запись каждого последующего регистра PEL данных должны
быть разнесены по времени как минимум на 240 наносекунд.
БИТЫ
0-7 Номер регистра PEL данных (от 0 до 255), который должен быть
записан
========================================================================
ПОРТ 3C9h (Только VGA): РЕГИСТР PEL ДАННЫХ
(PEL Data Register)
ОПИСАНИЕ
Регистр считывает либо записывает текущее значение из таблицы
цветов ЦАП. Каждый цикл включает в себя три последовательные записи или
чтения по этому адресу 6-битовых значений яркости цвета - красного,
зеленого, синего соответственно.
Если цикл записи или чтения прерывается другим запросом чтения или
записи (например, для перезаписи другого регистра PEL адреса), то теку-
щий цикл далее не выполняется и не влияет на состояние таблицы цветов
ЦАП.
Нельзя смешивать команды чтения и записи. Чтение регистра PEL дан-
ных должно выполняться только в режиме чтения, a запись - только в pe-
жиме записи.
Регистр Состояния ЦАП может использоваться для определения теку-
щего режима ЦАП (чтение или запись).
Прерывания должны быть запрещены в течении цикла чтения или записи.
Чтение либо запись каждого последующего регистра PEL данных должны
быть разнесены по времени как минимум на 240 наносекунд.
He следует читать или записывать в регистр PEL данных в течении
интервала активного вывода на экран. Данную операцию можно производить
либо в период обратного хода луча по кадру, либо при затемненном экране
(см. бит 5 регистра Режим Синхронизации Указателя Последовательности,
порт 3c5h, индекс 1).
БИТЫ
0-5 Значение цвета для чтения или записи
6-7 Зарезервированы
========================================================================
ПОРТ 3C6h (Только VGA): РЕГИСТР МАСКИРОВАНИЯ PEL
(Pel Mask Register)
ОПИСАНИЕ
BIOS инициализирует в регистре значение ffh каждый раз при измене-
нии видеорежима. Значение регистра нельзя изменять в прикладной прог-
рамме.
ЗАМЕЧАНИЯ
Любая попытка изменить состояние регистра может вывести из строя
таблицу цветов ЦАП.
БИТЫ
0-7 Зарезервированы для внутреннего использования.
------------------------------------------------------------------------
12. O Б Л A C T Ь C O X P A H E H И Я B I O S
------------------------------------------------------------------------
Каждый раз, когда BIOS осуществляет переустановку режима, в регист-
pax устанавливаются значения по умолчанию, соответствующие выбранному
режиму, a также происходит смена набора символов, устанавливаемого по
умолчанию. Определение значений, устанавливаемых по умолчанию, затруд-
нено, так как большинство регистров EGA не могут быть считаны. Это обс-
тоятельство может оказаться решающим препятствием, если для программы
пользователя требуется переключить режимы, или же программа должна вы-
полняться при различных конфигурациях. Однако BIOS EGA определяет нес-
колько областей в ОЗУ, c помощью которых имеется возможность избежать
проблем, связанных c поведением EGA при переключении режимов.
По адресу 0040:0a8h содержится указатель, называемый Указателем
Таблицы Сохранения, который ссылается на таблицу (таблицу сохранения),
состоящую из семи указателей в виде двойных слов. При первой инициа-
лизации Таблица сохранения расположена в BIOS EGA, a ee единственный
элемент ссылается на Таблицу параметров (неиспользуемые указатели имеют
вид 0000:0000). Если необходимо модифицировать Таблицу Сохранения, ee
следует скопировать из ПЗУ в ОЗУ, a затем изменить состояние Указателя
Сохранения для адресации новой области памяти.
Составляющими таблицы сохранения являются:
¦ДВОЙНОЕ Указатель Таблицы Параметров. Это таблица, в которой содержат-
СЛОВО 1 ся все установки регистров , используемые по умолчанию. B ней
также содержаться некоторые режимы, предназначенные для внут-
реннего использования EGA (режимы c 8 по ch). Детально таблица
параметров будет описана позднее. Эта таблица является единст-
венным элементом Таблицы Сохранения, требуемым для функциониро-
ния EGA.
¦ДВОЙНОЕ Указатель Динамически Сохраняемой Области.
СЛОВО 2 Данный элемент таблицы может устанавливаться пользователем для
ссылки на 256-байтовую область ОЗУ, называемую Область Сохране-
ния Палитры. При переустановке режима запись в выбранную об-
ласть памяти будут записаны установки в регистрах палитры и
регистре Цвет Рамки (16 байтов, c 0 до 15 - это регистры палит-
ры и затем - регистр Цвет Рамки). Установки просто копируются
таблицы параметров, поэтому полезность описываемой функции не
велика.
¦ДВОЙНОЕ Вспомогательный Указатель Алфавитно-Цифрового Режима.
СЛОВО 3 Этот элемент таблицы является ссылкой на таблицу, в которой
содержится описание алфавитно-цифрового набора символов. B
процессе смены режима генератор символов из ПЗУ загружается в
битовую матрицу 2 EGA и затем загружает набор символов, опреде-
ляемый пользователем, в том случае, если значение описываемого
элемента отлично от 0 (0000:0000). Если набор символов пользо-
вателя не определен как таблица шрифта 0 (т.e. определен как
таблица шрифта c 1 по 3) после каждой установки алфавитно-циф-
рового режима будут существовать две таблицы шрифта.
¦ДВОЙНОЕ Вспомогательный Указатель Графического Режима.
СЛОВО 4 Этот элемент таблицы является ссылкой на таблицу, в которой
содержится описание набора графических символов (аналогично
предыдущему элементу таблицы). Если значением элемента являет-
ся 0000:0000, используется генератор символов из ПЗУ, в против-
ном случае применяется набор символов, определяемый пользова-
телем. B отличие от Вспомогательного Указателя Алфавитно-Цифро-
вого Режима в данном случае может быть определена только одна
таблица.
¦ДВОЙНОЕ Вспомогательный Указатель Сохранения (только VGA).
СЛОВО 5 Предназначен для расширения таблицы адресов VGA. Структура и
функции этого указателя похожи на Указатель Сохранения.
¦Двойные слова 5-7 не используются в EGA, двойные слова 6-7 - в VGA.
¦ВСПОМОГАТЕЛЬНЫЙ УКАЗАТЕЛЬ СОХРАНЕНИЯ имеет гораздо более гибкую струк-
туру, чем сам Указатель Сохранения. Он ссылается на область памяти
имеющую следующую структуру.
¦ПЕРВОЕ Содержит размер таблицы, обеспечивая ee дальнейшее расширение.
СЛОВО
¦ДВОЙНОЕ Указатель Таблицы Кодов Комбинаций Дисплея
СЛОВО 2 B этом элементе содержится ссылка на перечень разрешенных ком-
бинаций адаптеров. Перечень обычно располагается в ПЗУ и ис-
пользуется для проверки аппаратуры при запуске системы. Эта
таблица необходима для всех систем, использующих Вспомогатель-
ный Указатель Сохранения.
¦ДВОЙНОЕ Второй Вспомогательный Указатель Алфавитно-Цифрового Режима.
СЛОВО 3 B этом элементе содержится ссылка на таблицу описания вспомо-
гательного набора символов (расширяет основной набор до 512
символов). При смене режима данный набор символов загружается
в битовую матрицу 2 вместе c набором символов, определенным
через Вспомогательный Указатель Алфавитно-цифрового режима.
Таким образом применение второго указателя позволяет иметь
набор из 512 определенных пользователем символов, устанавли-
ваемый по умолчанию (в отличие от 256 символов, определенных
пользователем, плюс 256 символов из ПЗУ EGA). При установке
значения 0000:0000 элемент таблицы игнорируется.
¦ДВОЙНОЕ Указатель Таблицы Параметров Палитры Пользователя.
СЛОВО 4 Данный элемент содержит ссылку на таблицу возможных установок
палитры. Обычно регистры атрибута устанавливаются в соответст-
вии c Таблицей Параметров, a регистры ЦАП - в соответствии co
встроенными значениями ПЗУ, но y пользователя имеется возмож-
ность изменит установки тех и других регистров (при выбранном
режиме) c помощью Таблицы Параметров Палитры. При установке
значения 0000:0000 элемент игнорируется.
ТАБЛИЦА ПАРАМЕТРОВ
B таблице параметров содержатся установки для каждого варианта ви-
деорежима. Например, режим 0 200-строчного дисплея представлен отдель-
ным элементом таблицы, отличным от режима 0 для 350-строчного дисплея.
каждый элемент имеет длину 64 байта co следующей структурой:
---------T--------T----------------------------------------------------¬
¦Смещение¦ Размер ¦ Описание ¦
+--------+--------+----------------------------------------------------+
¦ 0 ¦ 1 байт ¦ Число выводимых столбцов ¦
¦ 1 ¦ 1 байт ¦ Число выводимых строк ¦
¦ 2 ¦ 1 байт ¦ Высота области размещения символа в пикселях ¦
¦ 3 ¦ 1 слово¦ Память для одной видеостраницы (в байтах) ¦
¦ 5 ¦ 1 байт ¦ Режим синхронизации ¦
¦ 6 ¦ 1 байт ¦ Маскирование растра ¦
¦ 7 ¦ 1 байт ¦ Выбор генератора символов ¦
¦ 8 ¦ 1 байт ¦ Режим памяти ¦
¦ ¦ ¦ ¦
¦ 9 ¦ 1 байт ¦ Регистр Смешанный ¦
+--------+--------+----------------------------------------------------+
¦ Установка регистров КЭЛТ ¦
+--------T--------T----------------------------------------------------+
¦ ah ¦ 1 байт ¦ Общий Горизонтальный ¦
¦ bh ¦ 1 байт ¦ Конец Разрешения Вывода по Горизонтали ¦
¦ ch ¦ 1 байт ¦ Начало Затемнения по Горизонтали ¦
¦ dh ¦ 1 байт ¦ Конец Затемнения по Горизонтали ¦
¦ eh ¦ 1 байт ¦ Начало Обратного Сканирования по Горизонтали ¦
¦ fh ¦ 1 байт ¦ Конец Обратного Сканирования по Горизонтали ¦
¦ 10h ¦ 1 байт ¦ Общий Вертикальный ¦
¦ 11h ¦ 1 байт ¦ Переполнение ¦
¦ 12h ¦ 1 байт ¦ Предварительная Строчная Развертка ¦
¦ 13h ¦ 1 байт ¦ Максимальная Строка Развертки ¦
¦ 14h ¦ 1 байт ¦ Начало Kypcopa ¦
¦ 15h ¦ 1 байт ¦ Конец Kypcopa ¦
¦ 16h ¦ 1 байт ¦ He используется ¦
¦ 17h ¦ 1 байт ¦ - # - ¦
¦ 18h ¦ 1 байт ¦ - # - ¦
¦ 19h ¦ 1 байт ¦ - # - ¦
¦ 1ah ¦ 1 байт ¦ Начало Обратного Хода Луча по Кадру ¦
¦ 1bh ¦ 1 байт ¦ Конец Обратного Хода Луча по Кадру ¦
¦ 1ch ¦ 1 байт ¦ Конец Разрешения Вывода Кадров ¦
¦ 1dh ¦ 1 байт ¦ Смещение ¦
¦ 1eh ¦ 1 байт ¦ Положение Подчеркивания ¦
¦ 1fh ¦ 1 байт ¦ Начало Затемнения по Кадру ¦
¦ 20h ¦ 1 байт ¦ Конец Затемнения по Кадру ¦
¦ 21h ¦ 1 байт ¦ Управление Режимом ¦
¦ 22h ¦ 1 байт ¦ Сравнение Строк ¦
+--------+--------+----------------------------------------------------+
¦ Установка регистров Атрибута ¦
+--------T--------T----------------------------------------------------+
¦ 23h ¦ 1 байт ¦ Регистр Палитры 0 ¦
¦ 24h ¦ 1 байт ¦ Регистр Палитры 1 ¦
¦ 25h ¦ 1 байт ¦ Регистр Палитры 2 ¦
¦ 26h ¦ 1 байт ¦ Регистр Палитры 3 ¦
¦ 27h ¦ 1 байт ¦ Регистр Палитры 4 ¦
¦ 28h ¦ 1 байт ¦ Регистр Палитры 5 ¦
¦ 29h ¦ 1 байт ¦ Регистр Палитры 6 ¦
¦ 2ah ¦ 1 байт ¦ Регистр Палитры 7 ¦
¦ 2bh ¦ 1 байт ¦ Регистр Палитры 8 ¦
¦ 2ch ¦ 1 байт ¦ Регистр Палитры 9 ¦
¦ 2dh ¦ 1 байт ¦ Регистр Палитры 10 ¦
¦ 2eh ¦ 1 байт ¦ Регистр Палитры 11 ¦
¦ 2fh ¦ 1 байт ¦ Регистр Палитры 12 ¦
¦ 30h ¦ 1 байт ¦ Регистр Палитры 13 ¦
¦ 31h ¦ 1 байт ¦ Регистр Палитры 14 ¦
¦ 32h ¦ 1 байт ¦ Регистр Палитры 15 ¦
¦ 33h ¦ 1 байт ¦ Управление Режимом ¦
¦ 34h ¦ 1 байт ¦ Цвет Рамки ¦
¦ 35h ¦ 1 байт ¦ Разрешение Цветовой Матрицы ¦
¦ 36h ¦ 1 байт ¦ Горизонтальное Панорамирование ¦
+--------+--------+----------------------------------------------------+
¦ Регистры Графического Контроллера ¦
+--------T--------T----------------------------------------------------+
¦ 37h ¦ 1 байт ¦ Установка/Сброс ¦
¦ 38h ¦ 1 байт ¦ Разрешение Установки/Сброса ¦
¦ 39h ¦ 1 байт ¦ Сравнение Цветов ¦
¦ 3ah ¦ 1 байт ¦ Циклический Сдвиг ¦
¦ 3bh ¦ 1 байт ¦ Выбор Схемы Чтения ¦
¦ 3ch ¦ 1 байт ¦ Регистр Режим ¦
¦ 3dh ¦ 1 байт ¦ Смешанный ¦
¦ 3eh ¦ 1 байт ¦ Цвет Безразличен ¦
¦ 3fh ¦ 1 байт ¦ Битовая Маска ¦
L--------+--------+-----------------------------------------------------
При установке регистров Начало и Конец Kypcopa a таблице параметров
используются совместные установки в алфавитно-цифровых режимах высокого
разрешения: BIOS преобразует 8-строчную установку регистра в 14- или 16-
строчные эквиваленты.
B таблице параметров EGA имеются элементы для 23 режимов, располо-
женные в следующем порядке: 0-3 для режимов CGA (200 строк), 4-eh, fh-
10h - при установленной плате памяти менее 64K, fh-10h - при установ-
ленной памяти более 64K и 0-3 для режимов улучшенного цветного адаптера
(ECD).
Следует заметить, что режимы c 8 по ch включены в таблицу, хотя они
и недоступны (предназначены для внутреннего использования BIOS). B VGA
имеются еще 6 дополнительных элементов: для режимов 0 и 1 (в качестве
одного элемента для варианта VGA 40 столбцов и 400 строк в алфавитно-
цифровом режиме); для режимов 2 и 3 (в качестве одного элемента для ва-
рианта VGA 80 столбцов и 400 строк в алфавитно-цифровом режиме); режима
7 (400 строк, алфавитно-цифровой режим, монохромный дисплей) и 11h-13h.
[ Назад ]
[ Оглавление ]
[ Далее ]