Статьи по Assembler



         

О формате pcx - часть 10


Основная программа OPCX#4. Процедура EGAP

Блок-схемы

Рис.9. Блок-схемы

Рассмотрим теперь, что происходит в процедуре EGAP.

Поскольку к данному моменту заголовок файла PCX прочитан, мы приступаем к подготовке данных.

Определяем количество байтов, отведенных на строку. Это позволит определить, когда заканчивается строка и нужно ли переключать слой видеопамяти. Формируем маску для очистки "мусора". Неизбежность этого связана с тем, что "мусор" может присутствовать и в последнем байте, относящемся к изображению, а нам необходимо очистить только "загрязненные" биты. Например, для байтов в колонке номер 7 белой линии длинною в 75 пикселов необходима маска "07h":

1   2   3   4   5   6   7

С4h,FFh,С4h,FFh,C1h,FFh,17h - 0-й слой

С4h,FFh,С4h,FFh,C1h,FFh,37H - 1-й слой

С4h,FFh,С4h,FFh,C1h,FFh,07H - 2-й слой

С4h,FFh,С4h,FFh,C1h,FFh,47H - 3-й слой

Рис.10

Преобразовываем и устанавливаем палитру. "Сообщаем" адаптеру дисплея о том, что вывод изображения будет происходить в послойном режиме. И начинаем ...

Вывод изображения

Блок-схема вывода изображения, представленная на рисунке 11, достаточно подробна и не требует пояснений. Следует только сказать, что в этой процедуре есть дополнительные проверки, связанные с необходимостью отслеживать количество прочитанных и выведенных байтов. Это необходимо для того, чтобы правильно осуществлять постепенную подкачку данных из файла PCX.

Внимание не заострялось на этом моменте, так как это не являлось основной темой.

Процедура SETSCR

Рис.11. Процедура SETSCR

На этом можно закончить описание блок-схем программы, а читателю посоветовать приступить к изучению исходного текста программы и экспериментам с ним: opcx.zip (3588 байт).

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

Литература:

1. Описание пакета PCX Programmer's Toolkit Genus Microprogramming, February 1, 1989.

Читайте также другие статьи Андрея Бордачева: Как изменить способности компьютера и Макросы First и Second.





Содержание  Назад  Вперед