Программирование видеоадаптеров CGA, EGA и VGA© Александр Фролов, Григорий ФроловТом 3, М.: Диалог-МИФИ, 1992, 287 стр. 8.15. Запись символа в режиме телетайпа - функция 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 |