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

         

А 13 Вывод строки формата 4 бита на точку (16 цветов)



Пример А.13. Вывод строки формата 4 бита на точку (16 цветов)

mode 4 : lods byte ptr fs: [si] al = код очередных 2-х точек
push ax сохраняем содержимое ах
shr al, 04 выделяем код старшей тетрады
call outpnt обращение к подпрограмме записи
pop ax. восстанавливаем содержимое ах
dec ex сх = сх — 1, счетчик точек в строке
je @F -> все точки выведены
and al, OFh выделяем код младшей тетрады
call outpnt обращение к подпрограмме записи
loop mode 4 управление повторами цикла
§@: ret возврат из подпрограммы

Сравните текст примера А.13 с текстом подпрограммы drwiin4 (см. пример 3.17). В данном случае он упростился за счет использования вспомогательной подпрограммы outpnt.

Замечание
Напомним, что дополнительная коррекция и проверка значения счетчика повторов цикла (сх) нужна потому, что при нечетном количестве точек в рисунке последний байт содержит код только одной точки (младшую тетраду выводить на экран нельзя).

В примере А. 14 приведен текст подпрограммы, выполняющей распаковку 2-цветных рисунков в процессе построения строки.



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