Функция позволяет записать один или несколько одинаковых символов в текущей позиции курсора. Запись может происходить как в активную, так и в неактивные страницы видеопамяти. После выполнения операции записи положение курсора не изменяется. Управляющие символы, такие как возврат каретки и перевод строки, не действуют и записываются в видеопамять, как обычные символы. Данная функция работает как в текстовых, так и в графических режимах.
На входе: |
AH |
09h |
AL |
ASCII-код записываемого символа |
|
BH |
Номер страницы видеопамяти или цвет пикселов фона (для графического режима номер 13h) |
|
BL |
Атрибут символов (для текстового режима) или цвет пикселов символа (для графического режима); |
|
CX |
Количество записываемых символов |
|
На выходе: |
Не используются |
Если бит D7 регистра BL содержит единицу, то записываемый символ накладывается на текущее содержимое экрана по логике булевой операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Естественно, за исключением режима номер 13h, в котором все биты регистра BL используются для задания цвета пикселов символа.
Ниже приведен пример (листинг 5.1), использующий рассмотренные функции BIOS для выбора режима работы видеоадаптера, выбора активной страницы видеопамяти, изменения формы и координат курсора и отображения символов на экране монитора.
Листинг 5.1. Файл BIOSFUN.ASM
TITLE BIOS_FUNCTION
.MODEL small
DOSSEG
.STACK 100h
.DATA
message DB "INT 10h", 0
video_page DB 2
.CODE
.STARTUP
; Выбираем режим 3 видеоадаптера
xor ah,ah
mov al,3
int 10h
; Изменяем форму курсора
mov ah,1
mov ch,0 ; начало курсора - линия 0
mov cl,7 ; конец курсора - линия 7
int 10h
; Выбираем активную страницу видеопамяти
mov ah,5
mov al,video_page ; выбираем страницу video_page
int 10h
mov ah,6
mov al,0
mov bh,0ffh