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

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

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

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

Загрузка таблиц знакогенератора - функция 11h

Функция 11h прерывания 10h предназначена для загрузки в видеопамять таблиц знакогенератора (наборов символов). При помощи данной функции можно загружать как стандартные таблицы знакогенератора, так и таблицы, самостоятельно разработанные программистом. Загружается либо вся таблица, либо ее часть. Функция позволяет легко русифицировать видеоадаптер (если это не видеоадаптер CGA или Hercules).

Функция 11h имеет одиннадцать различных подфункций, перечисленных ниже:

Номер подфункции

Назначение

0

Загрузка таблиц знакогенератора

1

Загрузка стандартного монохромного набора символов

2

Загрузка стандартного набора символов видеоадаптера CGA

3

Выбор активных таблиц знакогенератора (EGA)

4

Загрузка стандартного набора символов видеоадаптера VGA и SVGA

20h

Установка вектора прерывания 1Fh

21h

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

22h

Использование набора символов 8х14 из ПЗУ

23h

Использование набора символов 8х8 из ПЗУ

24h

Использование набора символов 8х16 из ПЗУ

30h

Получение информации об используемом наборе символов

Для подфункций 0, 1, 2, 3 и 4 установка бита D4 в регистре AL вызывает перезагрузку регистров контроллера ЭЛТ. Вновь устанавливаются значения принятые по умолчанию для регистров формы курсора и регистра высоты символа текста. Если используется эта возможность, вызов функции должен происходить сразу после выбора режима работы видеоадаптера. В противном случае вызов функции 11h может привести к непредсказуемым последствиям.

Загрузка набора символов пользователя - подфункция 00h

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

На входе:

AH

11h

 

AL

00h, 10h - загрузка набора символов пользователя

 

CX

Количество загружаемых символов. Может принимать значение от 1 до 256

 

DX

ASCII-код первого загружаемого символа. Используется для загрузки части набора символов

 

BL

Номер загружаемой таблицы знакогенератора - для видеоадаптера EGA доступны таблицы 0 - 3, для VGA и SVGA 0 - 7

 

BH

Количество байт, определяющих один символ в таблице символов

 

ES:BP

Адрес буфера, содержащего определение символов, загружаемых в таблицу знакогенератора

На выходе:

 

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

Загрузка набора символов из BIOS - подфункция 01h

Функция загружает стандартный набор символов размера 8х14 пикселов из ПЗУ BIOS во второй цветовой слой видеопамяти:

На входе:

AH

11h

 

AL

01h, 11h - загрузка набора символов 8х14

 

BL

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

На выходе:

 

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

Загрузка набора символов из BIOS - подфункция 02h

Функция загружает стандартный набор символов CGA размера 8х8 пикселов из ПЗУ BIOS во второй цветовой слой видеопамяти:

На входе:

AH

11h

 

AL

02h, 12h - загрузка набора символов размера 8х8 пикселов

 

BL

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

На выходе:

 

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

Выбор активных таблиц знакогенератора - подфункция 03h

Программа через эту функцию может установить активные таблицы знакогенератора. Напомним, что видеоадаптер EGA имеет четыре таблицы, одна или две из которых могут быть активными, а VGA - восемь. Каждая таблица содержит 256 символов. Одновременно могут отображаться 512 символов. Номер используемой таблицы определяется битом D3 байта атрибутов символа.

На входе:

AH

11h

 

AL

03h - выбор активных таблиц знакогенератора

 

BL

Выбирает активные таблицы:

D1-D0 номер таблицы, используемой, когда бит D3 атрибута равен нулю;

D3-D2 номер таблицы используемой, когда бит D3 атрибута равен единице;

D4 только для VGA. Расширение для битов D0 и D1;

D5 только для VGA. Расширение для битов D2 и D3;

D7-D6 не используются

На выходе:

 

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

Загрузка набора символов из BIOS - подфункция 04h

Функция загружает стандартный набор символов VGA размера 8х16 пикселов из ПЗУ BIOS во второй цветовой слой видеопамяти:

На входе:

AH

11h

AL

04h, 14h - загрузка набора символов размера 8х16 пикселов

 

BL

Номер загружаемой таблицы знакогенератора (для видеоадаптера VGA доступны таблицы 0 - 7)

На выходе:

 

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

Установка вектора прерывания 1Fh - подфункция 20h

Используется в графических режимах 4, 5 и 6 (совместимых с CGA), если необходимо отображать одновременно больше 128 символов. Вектор 1Fh указывает на таблицу с дополнительными 128 символами, имеющими коды ASCII от 127 до 255. Программа должна поддерживать таблицы для дополнительных символов. Размер символов должен быть 8х8 пикселов.

На входе:

AH

11h

 

AL

20h - установка вектора прерывания 1Fh, который хранит адрес таблицы дополнительных символов

 

ES:BP

Адрес таблицы дополнительных символов, определенной пользователем

На выходе:

 

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

Установка набора символов для графических режимов - подфункция 21h

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

На входе:

AH

11h

 

AL

21h - установка вектора прерывания 43h

 

ES:BP

Адрес таблицы символов, определенной пользователем

 

CX

Количество байт, кодирующих один символ в таблице символов

 

BL

Количество строк текста, отображаемых на экране монитора:

0 - количество строк определяется регистром DL;

1 - 14 строк;

2 - 25 строк;

3 - 43 строки

 

DL

Количество строк текста, отображаемых на экране. Используется только если регистр BL равен нулю

На выходе:

 

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

Установка набора символов 8х14 из ПЗУ BIOS

На входе:

AH

11h

 

AL

22h - установка вектора прерывания 43h

 

BL

Количество строк текста, отображаемых на экране монитора:

0 - количество строк определяется регистром DL;

1 - 14 строк;

2 - 25 строк;

3 - 43 строки

 

DL

Количество строк текста, отображаемых на экране. Используется только если регистр BL равен нулю

На выходе:

 

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

Установка набора символов 8х8 из ПЗУ BIOS

На входе:

AH

11h

 

AL

23h установка вектора прерывания 43h

 

BL

Количество строк текста, отображаемых на экране монитора:

0 - количество строк определяется регистром DL;

1 - 14 строк;

2 - 25 строк;

3 - 43 строки

 

DL

Количество строк текста, отображаемых на экране. Используется только если регистр BL равен нулю

На выходе:

 

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

Установка набора символов 8х16 из ПЗУ BIOS

На входе:

AH

11h

 

AL

24h установка вектора прерывания 43h

 

BL

Количество строк текста, отображаемых на экране монитора:

0 - количество строк определяется регистром DL;

1 - 14 строк;

2 - 25 строк;

3 - 43 строки

 

DL

Количество строк текста, отображаемых на экране. Используется только если регистр BL равен нулю

На выходе:

 

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

Получение информации об используемом наборе символов - подфункция 30h

Функция позволяет получить информацию об используемом наборе символов - высоту символа, число текстовых строк на экране и т.д.

На входе:

AH

11h

 

AL

30h

 

BH

Тип запрашиваемой информации:

0 - вернуть содержимое вектора INT 1Fh;

1 - вернуть содержимое вектора INT 43h;

2 - вернуть указатель на набор символов размера 8х14 пикселов, расположенный в ПЗУ BIOS;

3 - вернуть указатель на набор символов размера 8х8 пикселов, расположенный в ПЗУ BIOS;

4 - вернуть указатель на символы с ASCII кодами от 127 до 255 (размера 8х8 пикселов), расположенные в ПЗУ BIOS;

5 - вернуть указатель на альтернативный набор символов размером 9х14 пикселов, расположенный в ПЗУ BIOS;

6 - вернуть указатель на набор символов размером 8х16 пикселов, расположенный в ПЗУ BIOS;

7 - вернуть указатель на альтернативный набор символов размером 9х16 пикселов, расположенный в ПЗУ BIOS

На выходе:

CL

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

 

DL

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

 

ES:BP

Указатель на таблицу символов (значение зависит от значения регистра BH)


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