Программирование видеоадаптеров.© Александр Фролов, Григорий ФроловТом 21, М.: Диалог-МИФИ, 1993. Чтение символа и его атрибутов - функция 08hДанная функция позволяет прочитать символ и его атрибуты из позиции экрана, определенной текущим положением курсора. Чтение можно производить как из активной, так и из неактивных страниц памяти:
Следующий пример считывает символ и его атрибут из текущей позиции курсора на странице 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. |