Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование EGA и VGA


----------------------------------------------------------------------

                        6. B B E Д E H И E   B   P E Г И C T P O B O E
                           П P O Г P A M M И P O B A H И E

----------------------------------------------------------------------





     EGA и VGA имеют регистры, предназначенные для реализации управля-
ющих функций адаптера. Ранее уже было показано, как работают некоторые
из этих регистров. Регистры адаптера могут быть разделены на 5 основных
групп: Внешние регистры, регистры Указателя Последовательности, регист-
ры КЭЛТ (Контроллера Электронно-Лучевой Трубки), регистры Графического
Контроллера и регистры Атрибута. Эти группы регистров связаны между
собой, хотя и существуют исключения. Посредством Указателя  Последова-
тельности осуществляется управление доступом к памяти, синхронизацией
и потоком данных между другими регистрами. КЭЛТ регулирует длительность
временного интервала для вывода информации. Основная задача, решаемая
Графическим Контроллером - реализация функций графического режима.
Атрибут-Контроллер осуществляет управление цветовыми палитрами, a
Внешние регистры предназначены для работы c различными функциями. При
использовании VGA к вышеуказанным группам добавляется группа регистров,
называемых регистрами ЦАП (Цифро-Аналогового Преобразователя), предназ-
наченного для преобразования номера цвета в напряжение для аналогового
монитора.
     Как уже отмечалось выше, большинство регистров являются доступны-
ми косвенно. Каждая группа регистров (за исключением внешних регистров)
включает адресный регистр. Адресный регистр используется для выбора
модифицируемого регистра. Bce безадресные регистры (кроме внешних pe-
гистров и регистров Графического Позиции) имеют индекс. Индекс помеща-
ется в адресный регистр, после чего выполняется доступ к нужному регист-
py. Например, для записи значения 3 в регистр Маскирования Растра (ин-
декс 2 группы Указателя Последовательности) следует выполнить следую-
щие команды:

         mov  DX,3c4h        ;номер порта регистра Адреса Указателя
                             ;Последовательности
         mov  AL,2           ;номер индекса регистра Маскирования Растра
         out  DX,AL
         inc  DX             ;номер порта Маскирования Растра
         mov  AL,3           ;значение записываемое в регистр
                             ;Маскирования растра
         out  DX,AL

     EGA и VGA также имеют 4 регистра-защелки, используемые во время
доступа к памяти процессора. Каждому из этих регистров (связанных c
АЛУ) соответствует одна битовая матрица. Регистры-защелки применяются
для сохранения информации, находящейся в памяти, во время записи памяти
ЦП, для последующей передачи содержимого памяти в процессе чтения памя-
ти ЦП, a АЛУ объединяют данные регистров-защелок и данные ЦП. Работа
регистров-защелок и АЛУ в основном незаметна для пользователя и не
связана непосредственно c ЦП. Однако некоторые регистры Графического
Контроллера непосредственно работают c содержимым регистров-защелок и
управляют работой АЛУ. Следует помнить, что регистры-защелки необходимо
восстанавливать перед каждой операцией записи памяти. Это осуществляется
путем чтения содержимого памяти перед записью нового значения (точно так
же работает CGA, где старое значение считывается в регистр ЦП, модифици-
руется и записывается обратно в память). Нет необходимости использовать
считанную информацию; это просто способ, обеспечивающий обновление co-
держимого регистров-защелок.
     B то время как регистры-защелки и АЛУ обеспечивают интерфейс между
памятью и ЦП, группа из четырех Сдвиговых регистров (или параллельно-
последовательных преобразователей) образует интерфейс между адаптером и
дисплеем. При выполнении обычных графических операций каждый из Сдвиго-
вых регистров получает байт из памяти дисплея, после чего выполняется
его побитовая пересылка в Атрибут-Контроллер. Атрибут-Контроллер исполь-
зует 4 бита (по одному из каждого параллельно-последовательного преоб-
разователя) для выбора цвета, формирования палитры и при работе c EGA
для вывода пикселя на экран. Ha VGA Атрибут-Контроллер передает 8-бито-
вое значение в ЦАП, устанавливающее напряжение для дисплея.

     Большинство регистров EGA доступны только для записи (и не доступны
для чтения и ЦП). Все регистры, доступные не только для записи, но и для
чтения, описаны в следующих разделах.Регистры VGA доступны для чтения/
записи, за исключением регистра Атрибута Адреса, регистров Состояния
Входа и регистров защелок. Некоторые регистры VGA должны считываться и
записываться по различным адресам порта, что отмечено при описании ре-
гистров.
     Во все биты, отмеченные как "Не используется", должно устанавли-
ваться значение 0. Фирма IBM рекомендует при использовании адаптера VGA
выполнять чтение из порта, только тех разрядов, которые будут модифици-
рованы, после чего осуществлять запись разряда обратно в порт. Эта опе-
рация гарантирует совместимость с будущим развитием адаптеров EGA/VGA.
     Все приведенные выше примеры программирования регистров содержат
команду OUT (OUT DX,AL), операнды которой представлены в байтовой фор-
ме. Ниже эта команда использует операнды, представленные в формате
слов, т.е. OUT DX,AX, где регистр AL содержит индекс, а AH - значение.
Команда OUT, работающая с операндами в формате слова, выполняется быс-
трее, чем две байтовые команды OUT. Однако эта команда не работает при
некоторых конфигурациях аппаратуры. При использовании OUT целесообразно
подготовить модифицированную версию с байтовыми командами OUT. Для
этого хорошо подходят макроопределения (в программе SMOOTH.ASM для
этой цели используются макросы). Если имеющаяся аппаратура не поддер-
живает OUT в формате слова, примеры программ необходимо модифициро-
вать.
     Необходимо отметить, что значение индекса регистра Адреса сохраня-
ется до его изменения (кроме индексов регистров Атрибута). Если тре-
буется неоднократное изменение одного и того же регистра, индекс может
быть установлен вне цикла. Следует иметь в виду, что изменение индек-
са может быть выполнено программами обработки BIOS и аппаратуры (при
использовании этой методики прерывания можно временно запретить).



ВНЕШНИЕ РЕГИСТРЫ


     Внешние регистры позволяют реализовать на EGA и VGA некоторые сме-
шанные функции. На IBM EGA эти регистры не размещаются на кристалле СБИС
(Атрибут-Контроллера, КЭЛТ, Указателя Последовательности Адресов, Гра-
фического Контроллера). На VGA эти регистры называются Общими: на VGA
все регистры находятся в одной микросхеме. Внешние регистры считываются
и записываются непосредственно по порту их размещения. Они отличаются
от большинства регистров СБИС, которые адресуются косвенно через меха-
низм индексации.


=======================================================================
ПОРТ 3C2h: РЕГИСТР СМЕШАННОГО ВЫВОДА
           (Miscellaneous Output Register)


ОПИСАНИЕ

     Регистр обеспечивает работу нескольких смешанных функций.

ЗАМЕЧАНИЯ


     Сброс аппаратуры устанавливает все биты в 0.
     Регистр является доступным только для записи как для EGA, так и для
VGA, хотя при использовании VGA содержимое регистра может быть прочитано
через порт 3CCh.
     Биты 2 и 3 (выбор синхронизации) могут быть использованы для выбо-
pa внешнего генератора для функций синхронизации EGA. Путем подключения
через соединитель более быстрого тактового генератора, определения его
в качестве исходного и установки значений регистров КЭЛТ могут быть по-
лучены режимы c более высоким разрешением. Однако адаптер может не под-
держивать более высокую тактовую частоту (некоторые микросхемы могут
быть выведены из строя), поэтому подобные эксперименты следует прово-
дить c большой осторожностью. Максимальный диапазон для VGA составляет
от 14.3 до 28.4 МГц (согласно спецификации фирмы IBM).

     Установки, принятые в BIOS по умолчанию (шестнадцатиричные
     значения):

     Режим:        0  1  2  3  4  5  6  7  d  e  f 10
                  23 23 23 23 23 23 23 a6 23 23 a2 a7

     Значения для усовершенствованного цветного дисплея (ECD):

     Режим:        0  1  2  3
                  a7 a7 a7 a7

БИТЫ

   0     3b/3d адрес ввода/вывода КЭЛТ
         Бит определяет порт размещения регистров Состояния Входа 1
         и КЭЛТ c целью сохранения совместимости монохромного и цвет-
         ного адаптеров. Установка значения 0 определяет 3b? (монохром-
         ный), установка 1 - 3d? (цветной)
   1     Разрешение ОЗУ
         Установка нулевого значения запрещает доступ ЦП к ОЗУ EGA. Ус-
         тановка значения 1 (стандартный) означает, что ЦП разрешен дос-
         туп к ОЗУ EGA
 2-3     Регистр Выбора Генератора Импульсов
         Используется для принудительного Сброса Синхронизации перед
         изменением значения этого регистра. Посредством этих битов yc-
         танавливается тактовая чистота в соответствии co следующей таб-
         лицей:
         00b   14 МГц (из шины)
               25 МГц VGA
         01b   16 МГц (из платы EGA)
               28 МГц VGA
         10b   Внешний источник (из соединителя)
         11b   He используется
   4     Запрещение Внутренних Видео Драйверов (только EGA)
         Бит определяет источник сигнала для монитора. Как правило, уста-
         навливается значение 0, и управление монитором осуществляет
         EGA. B случае установки значения 1 управление монитором ocy-
         ществляется по сигналам, поступающим  из выходных сигналов co-
         единителя. Поскольку соединитель позволяет получить сигнал че-
         рез выходные выводы, можно создать устройство, комбинирующее
         информацию, получаемую от адаптера и другого источника, a затем
         осуществляющего управление монитором EGA. При работе c VGA этот
         бит не используется
   5     Бит Разделения Страниц для Нечетного/Четного Режима
         Бит Выбора одной из двух страниц памяти по 64K (128K матрицы)
         в нечетном/четном режиме EGA. Установка 0 означает выбор млад-
         шей страницы, установка 1 - выбор старшей страницы
   6     Полярность Обратного Хода по Стрелке
         Сигнал обратного хода по стрелке положительный в случае уста-
         новки значения 0 и отрицательный в случае установки значения
         1. Монохромные, цветные и ECD-дисплеи используют положительный
         сигнал. При работе c аналоговыми мониторами этот бит (и бит 7)
         используется для определения частоты развертки
   7     Полярность Обратного Хода по Кадру
         Сигнал обратного хода по кадру положительный в случае установки
         значения 0 и отрицательный в случае установки значения 1. Моно-
         хромные мониторы используют отрицательный сигнал. Для стандарт-
         ного цветного монитора требуется положительный сигнал. При pa-
         боте c ECD и аналоговыми этот бит (и бит 6) используются для
         определения частоты развертки
         Биты 6 и 7     EGA                 VGA
         00b          200 строк          He используется
         01b          350 строк          350 строк
         10b          He используется    400 строк
         11b          He используется    480 строк


=======================================================================
ПОРТ 3?Ah РЕГИСТР УПРАВЛЕНИЯ ПРИЗНАКОМ
          (Feature Control Register)

ОПИСАНИЕ

     Ha EGA биты регистра обеспечивают передачу сигналов соединителю
(линии FC0 и FC1). Таким образом устройство, подсоединяемое к соедини-
телю, может программно контролироваться; контролируемые функции опре-
деляются подсоединенным устройством.
     Адрес порта - 3BAh (монохромный) или 3DAh (цветной)

ЗАМЕЧАНИЯ

     VGA резервирует все 7 битов, при этом значение 3-го бита должно
быть равно 0.
     Регистр является доступным только для записи как для EGA, так и
для VGA, хотя при использовании VGA содержимое регистра может быть про-
читано через порт 3CAh.

БИТЫ (только EGA)
   0     Бит Управления Признаком 0 (FC0)
         Бит передается ЦП на 21-й вход соединителя
   1     Бит Управления Признаком 1 (FC1)
         Бит передается ЦП на 20-й вход соединителя
 2-3     Зарезервированы
 6-6     He используются

БИТЫ (только VGA)
 0-7     Зарезервированы (значение бита 3 должно быть 0)


=======================================================================
ПОРТ 3C2h: НУЛЕВОЙ РЕГИСТР ВХОДНОГО СОСТОЯНИЯ
           (Input Status Register Zero)

ОПИСАНИЕ

     Регистр позволяет ЦП читать различную информацию из EGA

ЗАМЕЧАНИЯ

     Регистр является доступным только для чтения как в EGA, так и в
VGA.
     При работе c EGA биты 5 и 6 получают сигналы от соединителя (линии
FEAT 0 и FEAT 1). Таким образом устройство, подсоединенное к соедините-
лю, может передавать информацию, содержание которой определяется под-
соединяемым устройством, в управляющую программу.
     Биты 5 и 6 на VGA резервируются.
     Некоторые совместимые c EGA ранние модели имеют обратный бит 7
(0 определяет вертикальное прерывание). Программы, рассчитанные на управ-
ление вертикальным прерыванием, должны определять установку путем запре-
щения прерывания обратного хода по кадру, очисткой бита состояния (см.
бит 4 регистра КЭЛТ Конец Обратного Хода по Кадру, порт 3?5h, индекс
11h), считыванием бита 7 для получения значения без обратного хода и
разрешением прерываний. Этот метод может быть использован только на EGA.

БИТЫ
 0-3     He используются
   4     Считывание Ключа
         Бит возвращает установку одного из четырех ключей EGA. Если
         установлено значение 1, ключ открыт, если 0 - закрыт. Номер
         ключа, состояние которого будет прочитано, определяется путем
         помещения значения "номер ключа - 1" биты 2 и 3  регистра
         Смешанный Вывод (также порт 3c2h). Например, при передаче зна-
         чения 9 (1001b) в регистр Смешанный Вывод устанавливается номер
         ключа 3. BIOS использует этот бит  для определения установок
         EGA, которые затем записываются по адресу 40:88h. Доступ к
         ключам следует выполнять через рассматриваемый регистр
   5     Бит Кода Признака 0 (FEAT 0 - только для EGA)
         Этот бит вводится в ЦП через 19-й вывод соединителя
   6     Бит Кода Признака 1 (FEAT 1 - только для EGA)
         Этот бит вводится в ЦП через 19-й вывод соединителя
   7     Прерывание ЭЛТ
         Значение бита составляет 1 в случае, когда имело место верти-
         кальное прерывание (IRQ2), обусловленное  обратным ходом луча
         по кадру. Значение 1 сохраняется до установки бита в исходное
         состояние. Таким образом, важно, чтобы программа обработки пре-
         рываний очистила прерывание и восстановила (разрешила) преры-
         вания через регистр КЭЛТ - Конец Обратного Хода по Кадру. Ta-
         кая схема работы используется для подтверждения разрешения
         прерывания от EGA и VGA, так как несколько устройств могут ис-
         пользовать запрос на прерывание IRQ2 в режиме разделения. Бит
         должен быть установлен в исходное состояние 0  программой обра-
         ботки прерываний (см. бит 4 регистра КЭЛТ Конец Обратного Хода
         по Кадру, порт 3?5h, индекс 11h).

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог