Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

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

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

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

10.2. Таблица окружения

Таблица окружения содержит восемь двойных слов, представляющих собой указатели на различные структуры (таблицы и буфера памяти), используемые видеоадаптером.

Вы можете заменить таблицу окружения, записав указатель на новую таблицу по адресу 0000:04A8. Таким образом вы можете изменить шрифты и некоторые другие опции, устанавливаемые BIOS при выборе режима работы видеоадаптера. Обычно для этого копируется уже существующая таблица и затем в копию вносятся необходимые изменения. Если надо сохранить в памяти новую таблицу окружения после окончания работы программы, то ее оставляют резидентной в памяти.

Ниже описаны каждый из восьми элементов таблицы окружения:


первый элемент     указатель на таблицу параметров,
(смещение 0)       содержащую значения регистров EGA/VGA,
                   устанавливаемые BIOS по умолчанию

второй элемент     указатель на область сохранения
(смещение 4)       значений некоторых регистров EGA/VGA,
                   доступных только для чтения

третий элемент     указатель на вспомогательную таблицу
(смещение 8)       символов текстового режима

четвертый элемент  указатель на вспомогательную таблицу
(смещение 0Ch)     символов графического режима

пятый элемент      указатель на вторую область
(смещение 10h)     сохранения, используемую для расширения
только для VGA     тблицы окружения

шестой элемент     не используются
седьмой элемент
восьмой элемент

Таблица 11.2 Таблица окружения.

Если какой либо элемент в таблице окружения не используется, то соответствующее двойное слово памяти содержит ноль.

Таблица параметров

Теперь рассмотрим таблицу параметров. Эта таблица используется BIOS для установки регистров видеоадаптера при изменении режимов его работы. Таблица содержит описания для каждого поддерживаемого адаптером режима (по 64 байта на каждый режим):


Смещение   Содержание


0   число символов в строке

1   число текстовых строк на экране

2   высота символов в пикселах

3-4   объем страницы видеопамяти в байтах

   Синхронизатор.

5   регистр режима синхронизации (CMR)

6   регистр разрешения записи цветового 
   слоя (CPWER)

7   регистр выбора знакогенератора (CGSR)

8   регистр определения структуры памяти
   (MMR)

   Контроллер ЭЛТ.

0Ah   общая длина линии горизонтальной 
   развертки (HTR)

0Bh   длина отображаемой части горизонтальной
   развертки (HDER)

0Ch   начало импульса гашения луча
   горизонтальной развертки   (SHBR)

0Dh   конец импульса гашения луча
   горизонтальной развертки   (EHBR)

0Eh   начало импульса горизонтального
   обратного хода луча (SHRR)

0Fh   конец импульса горизонтального
   обратного хода луча (EHRR)

10h   число горизонтальных линий растра (VTR)

11h   дополнительный регистр (OVR)

12h   предварительная установка
   горизонтальной развертки   (PRSR)

13h   высота символов текста (MSLR)

14h   начальная линия курсора (CSR)

15h   конечная линия курсора (CER)

16-19h   не используются

1Ah   начало обратного вертикального хода
   луча (VRSR)

1Bh   конец обратного вертикального хода луча
   (VRER)

1Ch   начало гашения вертикальной развертки
   (VDER)

1Dh   логическая ширина экрана   (OFR)

1Eh   положение подчеркивания символа (ULR)

1Fh   начало импульса гашения вертикальной
   развертки (SVBR)

20h   конец импульса гашения вертикальной
   развертки (EVBR)

21h   управление режимом (MCR)

22h   разделение экрана дисплея (LCR)

   Контроллер атрибутов.

23-32h   регистры цветовой палитры (0-15) (CPR)

33h   регистр управления режимом (MCR)

34h   регистр цвета рамки экрана (SBCR)

35h   регистр разрешения цветового слоя
   (CPER)

36h   регистр горизонтального панорамирования
   (HPR)

   Графический контроллер.

37h   регистр установки/сброса (SRR)

38h   регистр разрешения установки/сброса
   (SRER)

39h   регистр сравнения цветов (CCR)

3Ah   регистр циклического сдвига и выбора
   функции (DRFS)

3Bh   регистр выбора читаемого слоя (RPSR)

3Ch   регистр режима работы (MDR)

3Dh   регистр смешанного назначения (MIR)

3Eh   регистр маскирования цветовых слоев
   (CDCR)

3Fh   регистр битовой маски (BMR)

В таблице параметров различные режимы размещаются в следующем порядке:


Смешение от начала таблицы   Номер режима
в байтах
+00h      0
+40h      1
+80h      2
+C0h      3
+100h      4
+140h      5
+180h      6
+1C0h      7
+200h      8
+240h      9
+280h      A
+2C0h      B
+300h      C
+340h      D
+380h      E
+3C0h      F (EGA с 64К)
+400h      10 (EGA с 64К)
+440h      F
+480h      10
+4C0h      0*
+500h      1*
+540h      2*
+580h      3*
+5C0h      0+,1+
+600h      2+,3+
+640h      7+
+680h      11
+6C0h      12
+700h      13

Область сохранения

BIOS EGA/VGA сохраняет в этой таблице значения регистров цветовой палитры и регистра цвета рамки. На видеоадаптере EGA эти регистры доступны только для записи. Таким образом, через область сохранения программа может определить значения этих регистров.


Смещение   Размер   Содержимое
в байтах   в байтах


0      10h      список значений регистров
            цветовой палитры (16
            регистров)

10h      1      значение регистра цвета рамки
            экрана

11h      0EFh      не используется

Вспомогательная таблица символов текстового режима

Вспомогательная таблица символов текстового режима не обязательно должна присутствовать. Если соответствующий указатель в таблице окружения равен нулю, то она не используется.

Данная таблица определяет шрифт в текстовых режимах видеоадаптера:


Смещение (байт)   Размер    Содержание


0      1 байт   число байтов,
            используемых при определении
            одного символа шрифта

1      1 байт   номер таблицы знакогенератора
            (для EGA 0-3, для VGA 0-7)

2      слово   число символов в таблице
            знакогенератора (обычно 256)

4      слово   номер первого символа (обычно
            0)

6      двойное    указатель на таблицу символов
      слово   (смотри INT 1Fh)

0Ah      байт      высота символов в пикселах

0Bh      перемен-   список режимов, использующих
      ный      эту таблицу символов;
            оканчивается числом FFh

Вы можете использовать эту таблицу для установки собственных наборов шрифтов.

Вспомогательная таблица символов для графического режима

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

Данная таблица определяет шрифт в графических режимах видеоадаптера:


Смещение (байт)   Размер    Содержание


0      1 байт   число строк символов на
            экране

1      слово   число байт на символ в
            таблице символов

3      двойное    указатель на таблицу символов 
      слово   

7      перемен-   список режимов, использующих
      ный      эту таблицу символов;
            оканчивается числом FFh

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