Программирование видеоадаптеров CGA, EGA и VGA


Запись символа в режиме телетайпа - функция 0Eh


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

Данная функция обрабатывает следующие управляющие символы: звуковой сигнал (BELL), возврат курсора назад на одну позицию (BACKSPACE), возврат каретки (CARRIAGE RETURN) и перевод строки (LINEFEED).

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

Ниже приведен формат вызова функции:

На входе: AH = 0Eh - запись символа в режиме телетайпа;

AL = ASCII-код записываемого символа;

BH = номер страницы видеопамяти (только в текстовых режимах)?;

BL = цвет символа (в графических режимах).

На выходе: Не используются.

Приведем текст процедуры WriteStringT, которая выводит на экран строку, имеющую смещение si в сегменте ds, при помощи функции 0Eh прерывания INT 10h:

WriteStringT PROC

; определяем текущую активную страницу экрана

mov ah,0Fh int 10h ; номер активной страницы в регистре bh

; в цикле выводим на экран символы строки

next_char:

mov ah,0Eh lodsb ; получаем следующий символ строки cmp al,0 ; находим конец строки je exit_proc ; если конец строки достигнут, то оканчиваем процедуру int 10h

jmp next_char

exit_proc:

ret

WriteStringT ENDP




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



Книжный магазин