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


Чтение символа и его атрибутов - функция 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.




Начало  Назад  Вперед