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

Программирование видеоадаптеров.

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

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

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

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

Таблица окружения, используемая сразу после загрузки компьютера, располагается в ПЗУ BIOS. Поэтому чтобы изменить какие-либо элементы этой таблицы, вы должны сначала перенести ее в оперативную память. Обычно для этого копируется уже существующая таблица и затем в копию вносятся необходимые изменения. Если надо сохранить в памяти новую таблицу окружения после окончания работы программы, то ее оставляют резидентной в памяти.

Вы можете заменить таблицу окружения, записав указатель на новую таблицу по адресу 0000:04A8h. Таким образом, вы можете изменить шрифты и некоторые другие параметры, устанавливаемые BIOS при выборе режима работы видеоадаптера.

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

Смещение

Размер

Описание

00h

Двойное слово

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

04h

Двойное слово

Указатель на область сохранения значений некоторых регистров EGA/VGA, доступных только для чтения

08h

Двойное слово

Указатель на таблицу символов текстового режима

0Ch

Двойное слово

Указатель на таблицу символов графического режима

10h

Двойное слово

Указатель на дополнительную таблицу окружения, используемую для расширения таблицы окружения (доступна только для видеоадаптеров VGA и SVGA)

14h

Двойное слово

Зарезервировано

18h

Двойное слово

Зарезервировано

Сразу после загрузки компьютера заполняются только два элемента таблицы окружения - указатель на таблицу параметров и указатель на дополнительную таблицу окружения. Остальные указатели имеют нулевое значение и не используются.

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

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

Смещение

Размер

Содержание

0

Байт

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

1

-"-

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

2

-"-

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

3

Слово

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

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

5

Байт

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

6

-"-

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

7

-"-

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

8

-"-

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

9

-"-

Регистр определения различных режимов работы (MOR)

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

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

4 Байта

Не используются

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

0h

+40h

1h

+80h

2h

+C0h

3h

+100h

4h

+140h

5h

+180h

6h

+1C0h

7h

+200h

8h

+240h

9h

+280h

Ah

+2C0h

Bh

+300h

Ch

+340h

Dh

+380h

Eh

+3C0h

Fh (адаптер EGA, имеющий 64 Кбайт памяти)

+400h

10h (адаптер EGA, имеющий 64 Кбайт памяти)

+440h

Fh

+480h

10h

+4C0h

0*h

+500h

1*h

+540h

2*h

+580h

3*h

+5C0h

0h+,1h+

+600h

2h+,3h+

+640h

7h+

+680h

11h

+6C0h

12h

+700h

13h

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

В таблице области сохранения хранятся значения регистров цветовой палитры и регистра цвета рамки. Когда функции BIOS изменяют содержимое этих регистров, они одновременно обновляют таблицу области сохранения.

Для видеоадаптера EGA регистры цветовой палитры и регистр цвета рамки доступны только для записи. Через таблицу в область сохранения программа может определить значения этих регистров.

Смещение в байтах

Размер, байт

Содержимое

0

16

Список значений 16 регистров цветовой палитры

10h

1

Значение регистра цвета рамки экрана

11h-0FFh

239

Не используется

Таблица символов текстового режима

Когда BIOS устанавливает текстовый режим работы видеоадаптера, он загружает таблицу знакогенератора шрифтами, записанными в ПЗУ. Если определена таблица символов текстового режима, то шрифты загружаются из нее, а не из ПЗУ. Таблица символов текстового режима может отсутствовать. Если соответствующий указатель в таблице окружения равен нулю, то она не используется.

Формат таблицы символов текстового режима:

Смещение (байт)

Размер

Содержание

0

Байт

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

1

Байт

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

2

Слово

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

4

Слово

Номер первого символа, определяемого таблицей

6

Двойное слово

Указатель на таблицу символов (см. описание INT 1Fh)

0Ah

Байт

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

0Bh

Массив байт переменной длины

Список режимов, использующих данную таблицу символов. На каждый номер режима отводится один байт. Должен оканчиваться числом 0FFh

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

Таблица символов графического режима

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

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

Формат таблицы символов графического режима видеоадаптера:

Смещение, байт

Размер

Содержание

0

Байт

Количество строк символов на экране

1

Слово

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

3

Двойное слово

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

7

Массив байт переменной длины

Список режимов, использующих данную таблицу символов. На каждый номер режима отводится один байт. Должен оканчиваться числом 0FFh


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