Видеоконтроллер VGA. Основные режимы использования. Регистры. Порядок программирования

Графический контроллер VGA. Схема и назначение.

Графический адаптер VGA (Video Graphic Array) с точки зрения функцио-

нальных возможностей и производительности является улучшенной верси-ей графического адаптера EGA.

Схемные решения EGA и VGA совпадают.

Графический контроллер VGA поддерживает более широкий спектр видеорежимов, особенно при использовании мониторов с изменяемой рабочей частотой. Также как и графический адаптер EGA, VGA в своем составе содержит несколько программно-управляемых компонентов: блок управления разверткой видеоизображения на экране монитора (CRT), блок синхронизации (SEQ), графические контроллеры (GRAPH) и контроллер атрибутов.

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

вода (BIOS VGA) доступны по прерыванию 10h. Использование функции с номером 0 данного прерывания позволяет установить адаптер в один из 24-х стандартных видеорежимов, поддерживаемых BIOS VGA.

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

Графический контроллер VGA. Основные режимы использования. Видеорежимы характеризуются следующими параметрами:

- вертикальным разрешением (количеством строк растра на экране);

- горизонтальным разрешением (количеством символов или пикселов в строке);

- представлением данных в буфере;

- атрибутами вывода (цвет, мерцание и т. п.).

Как и у видеоадаптера EGA, у видеоадаптера VGA cуществует два основных режима использования – алфавитно-цифровой и графический.

Алфавитно-цифровой режим используется в настоящее время, как базовый, наладочный, часто называемый режимом DOS, хотя его параметры введены в систему BIOS системной платы и видеоадаптера и от дисковой операцион-ной системы не зависят.

В отличие от адаптера EGA VGA работает с аналоговыми мониторами. Для этого в схему контроллера атрибутов введен дополнительный блок цифро-аналогового преобразователя и регистровая память (RAMDAC).

Наиболее важным с точки зрения использования видеоадаптера по прямому назначению является графический режим.

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

Порядок программирования графического контроллера VGA.

Видеоадаптер VGA всегда программируется таким образом, чтобы время, необходимое для вывода данных из видеобуфера на экран всегда было меньшим общего количества времени развертки одного кадра. Это дает возможность вывода на экран бордюра (overscan), окаймляющего собственно выводимое изображение, что позволяет центрировать изобра-жение на экране без выброса луча за края его поля.

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

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

- программирование блока управления ЭЛТ;

- программирование блока синхронизации;

- задание частоты генератора пикселов;

- задание высоты символов (в строках растра);

- модификация требуемых переменных BIOS VGA.

Доступ к регистрам VGA этих блоков осуществляется через порты ввода/вывода путем использования команд IN и OUT или специальных функций BIOS, эквивалентных по своим действиям этим командам. Для доступа к программам BIOS используется прерывание с номером 16 (10h).

Основные регистры графического контроллера VGA.

Регистры блока CRT

Регистр состояния видеосигнала -

Порт 3С2h (только чтение) бит 7 – вертикальный обратный ход луча

Порт 3BAh (только чтение) бит 0 – гашение видеосигнала

бит 1 - световое перо активировано

бит 2 - кнопка светового пера активирована

бит 3 - идентифицирован обратный ход луча

Регистры видеоконтроллера -

25 внутренних регистров данных доступны через индексный регистр 3D4h

Чтение/запись этих регистров через порт 3D5h.

Назначение регистров:

00h – 0Fh – константы синхронизации луча, ход, границы, позицию

курсора, строки, разрешение

10h – 11h – обратный ход луча, световое перо.

12h – 18h – работа с видеопамятью, сканирование, синхронизация

Регистры управления -

Порт 3ССh (только чтение) / порт 3С2h (только запись)

бит 0 – содержание адресного пространства (mono/color)

бит 1 – доступ к ОЗУ VGA

бит 4 – отключение видеосигнала

бит 5 – выбор режима адресации по плоскостям

биты 2,3 и 6,7 – выбор горизонтального и вертикального тактов

Регистры блока GRAPH

Регистры управления

9 внутренних регистров данных доступны через индексный регистр 3СEh

Чтение/запись этих регистров через порт 3CFh.

Назначение регистров:

00h – 4-х битовый номер видеоплоскости для заполнения.

01h – флаг заполнения (при установке флага ОЗУ заполняется не данными центрального процессора, а битом-заполнителем).

02h – регистр сравнения и сохранения цвета в плоскостях.

03h – регистр условий модификации данных в видеоплоскостях.

04h – номер плоскости, доступной для чтения.

05h – режим записи в ОЗУ.

06h – выбор адреса видеопамяти.

07h – флаг запрета сравнения видеоплоскостей.

08h – биты маски записи в плоскости: 1 – запись бита из байта данных

0 – запись из регистра-защелки.

Регистры блока АTRIB

Регистры базового цвета

21 внутренний регистр данных доступны через индексный регистр 3С0h

Чтение/запись этих регистров через порт 3DAh.

Назначение регистров:

00h – 0Fh – 16 регистров базовой 4-х битовой палетты цветов.

10h – регистр декодирования байта-атрибута (графика/текст).

11h – цвет рамки.

12h – цвет плоскости ОЗУ.

13h – режим разрешения экрана (текстовый/графический).

14h – запоминает и определяет цвета по умолчанию (байт-атрибут).

Регистры генератор последовательностей -

5 внутренних регистров данных доступны через индексный регистр 3С4h

Чтение/запись этих регистров через порт 3С5h.

Назначение регистров:

00h – сброс генератора для сохранения ОЗУ.

01h – режим доступа центрального процессора к видеопамяти.

02h – 4 младших бита доступ к плоскостям видеопамяти (всего 4 (№ 0 - 3) плоскости, каждая вписывается в одно и то же адресное пространство, доступное центральному процессору и замещается побитово).

03h – выбор таблицы знакогенератора (всего 8 таблиц).

04h – регистр атрибутов текселов в текстовом режиме.

Регистры блока доступа к памяти и АЦП (RAMDAC)

255 внутренних 3-х байтовых регистров палетты RGB-составляющих оттенков цветов доступны через индексный регистр 3С6h

Чтение 3-х регистров палетты RGB последовательно через порт 3C7h.

Запись 3-х регистров палетты RGB последовательно через порт 3C8h.

Чтение/запись регистров палетты отдельно по составляющим - порт 3C9h.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: