Графические устройства

         

Установка таблицы символов



Установка таблицы символов

Как уже говорилось в разделе, в состав прерывания int 10h входит функция иь, обрабатывающая запросы, относящиеся к знакогенератору. Одним из них является следующий.

Запрос 1130h "Get video Font information" возвращает сведения о таблицах шрифтов. Перед его изданием в регистре ьь указывается код таблицы, сведения о которой надо получить. BIOS возвращает в регистрах следующие величины: es:bp— полный адрес таблицы, сх — размер заготовки символа в байтах, dl — количество строк на экране.
Код таблицы указывается в регистре ы-i, он может иметь значения от 0 до 7. Нас будут интересовать значения 2, 3 и 6, соответствующие таблицам 8x14, 8x8 и 8x16 точек. Запрос возвращает адреса англоязычных таблиц, расположенных в ROM BIOS. Русификатор перехватывает запрос и при обнаружении указанных кодов возвращает адрес одной из своих таблиц, находящихся в оперативной памяти.

Если используется только одна таблица, то ее адрес определяется в начале выполнения задачи, сохраняется в специально выделенном двойном слове и используется по мере необходимости. Адрес таблицы желательно хранить в разделе данных программы. Полный адрес состоит из сегмента и смещения, для их размещения нужно двойное слово. Оно описывается с помощью директивы ассемблера dd, перед которой располагается метка, например:

ftaddr dd 00; поле для размещения адреса таблицы символов

Фрагмент программы, определяющий адрес таблицы символов размером 8x16 точек и сохраняющий его в ftaddr, приведен в примере 5.17.



Содержание раздела