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

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

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

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

Чтение символа и его атрибутов - функция 08h

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

На входе:

AH

08h

 

BH

Номер страницы видеопамяти

На выходе:

AL

ASCII-код символа

 

AH

Байт атрибутов символа для текстовых режимов

Следующий пример считывает символ и его атрибут из текущей позиции курсора на странице page:


mov	ah,8
mov	bh,page	; Выбираем страницу видеопамяти page

int	10h		; Считываем символ и его атрибут

mov	char,al	; Сохраняем полученный ASCII-код символа
mov	attr,ah	; и его атрибут

Что удивительно данная функция может работать не только в текстовых, но также и в графических режимах. В этом случае она сравнивает пикселы в текущей позиции курсора с записями в таблице определения символов графического режима. Пикселы, значение которых не равно нулю, воспринимаются как пикселы символа. Остальные пикселы рассматриваются в качестве фона. Если соответствующий образ символа не обнаружен, функция возвращает в регистре AL значение 0. Если символ определен, в регистре AL возвращается его ASCII-код.

В качестве таблицы определения символов графического режима используется таблица, на которую указывает вектор прерывания 43h. Для графических режимов низкого разрешения (режимы номер 4, 5, 6) используется таблица символов, на которую указывает вектор прерывания 1Fh. Эта таблица содержит определение символов с ASCII-кодами 80h - FFh.

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