Графические устройства

         

Раскрашивание символов находящихся в видеопамяти



Пример 5.14. Раскрашивание символов, находящихся в видеопамяти

OutAtr: push ax сохраняем содержимое ах
mov ai, Ы помещаем атрибут в al
wrtatr: inc di пропускаем четный байт
stosb записываем код атрибута
loop wrtatr управление повторами цикла
pop ax восстанавливаем содержимое ах
ret возврат из подпрограммы

При обращении к подпрограмме OutAtr в регистре di указывается адрес видеопамяти, в регистре bl— атрибут, а в сх — сколько раз его надо записать в видеопамять (количество раскрашиваемых символов).

Перемещение курсора

Если задача использует текстовый курсор, то для его перемещения можно использовать функцию 02 прерывания int ion, или составить свою подпрограмму. Такая подпрограмма полезна, например, в тех случаях, когда недопустимо использование поддержки BIOS.

В примере 5.15 приведена подпрограмма перемещения курсора, к которой можно обратиться по двум именам. При обращении по имени Poseur происходит обращение к описанной в примере 5.11 подпрограмме GetAdr, которая пересчитывает координаты в адрес и помещает его в регистр di. В этом случае номер страницы указывается в регистре bх, а значения координат выбираются из области данных BIOS. При обращении по имени MovCur адрес байта должен находиться в регистре di.

Замечание
Не забывайте, что курсор будет виден только в том случае, когда его рисунок расположен на активной странице.



Содержание раздела