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

         

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

Краткий обзор


Внешние регистры

Регистры контроллера ЭЛТ

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

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

Регистры контроллера атрибутов




Регистры цифро-аналогового преобразователя VGA

Нестандартные режимы видеоадаптера VGA

В этой главе мы опишем все основные регистры видеоадаптеров EGA и VGA, которые могут быть полезны при написании программ. Необходимо указать, что хотя программирование видеоадаптеров на уровне регистров позволяет увеличить скорость работы программ и решить некоторые задачи, которые нельзя решить при помоши функций BIOS, это может вызвать ряд проблем при переносе ваших программ на другие машины. Дело в том, что не все адаптеры совместимы на уровне регистров. Например, оригинальный видеоадаптер CGA создан на основе микросхемы Motorola 6845, а видеоадаптеры EGA и VGA используют более совершенный аналог этой микросхемы. Хотя EGA и VGA имеют регистры, соответствующие регистрам CGA, некоторые из них располагаются по другим адресам и могут выполнять какие-либо дополнительные функции. Кроме того, в каждом новом видеоадаптере расширяется набор используемых регистров.

Существуют модели видеоадаптеров EGA, VGA, Super VGA поддерживающие режим совместимости, когда они эмулируют адаптеры более низкого уровня (например MDA, Hercules, CGA). При этом эмуляция обычно происходит на уровне регистров, что гарантирует полную их совместимость. Режимы совместимости, если они поддерживаются, описаны в руководстве этого видеоадаптера.

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

Краткий обзор
Внешние регистры

Регистр определения различных режимов работы (Miscellaneous Output Register - MOR)
Регистр управления дополнительным устройством (Feature Control Register - FCR)
Регистр состояния 0 (Input Status Register 0 - ISR0)
Регистр состояния 1 (Input Status Register 1 - ISR0)
Регистр разрешения работы системы VGA (VGA Enable Register - VGA_ER)
Регистр сброса триггера-защелки светового пера (Light Pen Latch Reset Register - LPLRR)
Регистр установки триггера-защелки светового пера (Light Pen Latch Set Register - LPLRR)
Регистры контроллера ЭЛТ
Общая длина линии горизонтальной развертки (Horizontal Total Register - HTR) (индекс0)
Длина отображаемой части горизонтальной

Начало импульса гашения луча горизонтальной
Конец импульса гашения луча горизонтальной
Начало импульса горизонтального
Конец импульса горизонтального
Число горизонтальных линий растра (VTR) (индекс6)
Дополнительный регистр (OVR) (индекс7)
Предварительная установка горизонтальной развертки (Preset Row Scan Register - PRSR) (индекс8)
Плавная прокрутка экрана.
Высота сиволов текста (Max Scan Line Register - MSLR) (индекс9)
Изменение высоты символов текста.

Изменение высоты символов текста. Начальная линия курсора (Cursor Start Register - CSR) (индекс0Ah)
Начальная линия курсора (Cursor Start Register - CSR) (индекс0Ah)
Конечная линия курсора (Cursor End Register - CER) (индекс0Bh)
Изменение положения курсора.
Регистры начального адреса
Процесс панорамирования экрана.
Регистры, определяющие положение курсора
Отображение курсора на экране.
Начало обратного вертикального хода луча (VRSR) (индекс10h)
Конец обратного вертикального хода луча (VRER) (индекс11h)

Регистр адреса светового пера (LPAR)
Завершение отображения вертикальной развертки (VDER) (индекс 12h)
Логическая ширина экрана (OFR) (индекс13h)
Логическая ширина экрана. Положение подчеркивания символа (ULR) (индекс14h)
Положение подчеркивания символа (ULR) (индекс14h)
Начало импульса гашения вертикальной развертки (SVBR) (byltrc 15h)
Конец импульса гашения вертикальной развертки (EVBR) (индекс16h)
Управление режимом (MCR) (индекс17h)
Регистр сравнения линий (Line Compare Register - LCR) (индекс18h)
Процесс разделения экрана.

Регистры синхронизатора
Регистр сброса синхронизатора (Reset Register - RR) (индекс0)
Регистр режима синхронизации (Clock Mode Register - CMR) (индекс1)
Регистр разрешения записи цветового слоя (Color Plane Write Enable - CPWE) (индекс2)
Разрешение записи в цветовые слои.
Регистр выбора знакогенератора (Character Generator Select Register - CGSR) (индекс3)
Регистр определения структуры памяти (Memory Mode Register - MMR) (индекс4)
Регистры графического контроллера
Функции графического контроллера.
Регистр установки/сброса (Set/Reset Register - SRR) (индекс0)

Регистр разрешения установки/сброса (Set/Reset Enable Register - SRER) (индекс1)
Использование регистров установки/сброса
Регистр сравнения цветов (Color Compare Register - CCR) (индекс2)
Использование регистра CCR.
Регистр циклического сдвига и выбора функции (Data Rotate Function Select - DRFS) (индекс3)
иллюстрирует выполнение
Логические операции и операция циклического сдвига.
Регистр выбора читаемого слоя (Read Plane Select Register - RPSR) (индекс4)
Операция чтения из видеопамяти. Регистр режима работы (Mode Register - MDR) (индекс5)
Регистр режима работы (Mode Register - MDR) (индекс5)

Различные режимы записи в видеопамять
Регистр смешанного назначения (Miscellaneous Register - MIR) (индекс6)
Регистр маскирования цветовых слоев (Color Don't Care Register - CDCR) (индекс7)
Регистр битовой маски (Bit Mask Register - BMR) (индекс8)
Использование регистра битовой маски.
Регистры контроллера атрибутов
Регистры цветовой палитры (0-15) (Color Palette Register's - CPR)
Улучшенный цветной дисплей.
Цветной дисплей.
Монохромный дисплей.

Дисплей VGA.
Регистр управления режимом (Mode Control Register - MCR) (индекс10h)
Регистр цвета рамки экрана (Screen Border Color Register - SBCR) (индекс11)
Регистр разрешения цветового слоя (Color Plane Enable Register - CPER) (индекс12)
Регистр горизонтального панорамирования (Horizontal Panning Register - HPR) (индекс13)
Горизонтальный сдвиг экрана.
Регистр выбора цвета (Color Select Register - CSR) (индекс14)
Регистры цифро-аналогового преобразователя VGA
Схема управления цветами (VGA).
Регистр маскирования пикселов (Pixel Mask Register - PMR)

Регистр состояния ЦАП (DAC State Register - DAC_SR)
Индекс читаемого регистра таблицы цветов (Look-up Table Read Index Register - LTRIR)
Индекс записываемого регистра таблицы цветов (Look-up Table Write Index Register - LTWIR)
Регистр данных таблицы цветов (Look-up Table Data Register - LTDR)
Нестандартные режимы видеоадаптера VGA
Организация видеопамяти
Структура видеопамяти в нестандартных, 256-цветовых режимах.
Режим 320х400 пикселов, 256 цветов
Режим 360х480 пикселов, 256 цветов
Содержание раздела