- •Отображение монохромного файла рсх на экране
 - •Содержание
 - •1.Анализ технического задания
 - •1.1 Техническое задание. Конкретизация.
 - •2. Блок-схема алгоритма
 - •3. Выбор формата представления данных
 - •4. Реализация подзадач.
 - •4.1. Проектирование пользовательского интерфейса.
 - •4.2. Открытие файла.
 - •4.3. Чтение и проверка заголовка рсх.
 - •7. Список используемой литературы
 - •Приложение а. Листинг программы.
 
4.3. Чтение и проверка заголовка рсх.
Чтение файла осуществляется функцией DOS с номером 3Fh:
INT 21 – Чтение из файла или устройства
Вход: AH = 3Fh
BX = дескриптор
CX = число байт для чтения
DS:DX -> буфер прочитанных данных
Выход: CF сброшен, если нет ошибок
AX = количество прочитанных байт
CF установлен -> ошибка чтении
Данные читаются в буфер PCXheader . Он состоит из полей:
PCXheader struc
MF db ? ; MANUFACTURER 10=PCX
Ver db ? ; Версия
EC db ? ; 1=кодирование длинными сериями
BPPX db ? ;Бит на пиксель
Xmin dw ? ; Минимальный горизонтальный
Ymin dw ? ; Минимальный вертикальный
Xmax dw ? ; Максимальный горизонтальный
Ymax dw ? ; Максимальный вертикальный
Hres dw ? ; горизонт. разреш. созд. устр-ва
Vres dw ? ; вертикальное разреш. созд. устр-ва
CMAP db 48 dup (?) ; Палитра
Reserv db ? ; Резерв
NPL db ? ; Число цветовых слоев
BPL dw ? ; Байт в строке
PI dw ? ; 1=цветной/ч.б 2=градации серого
Filler db 58 dup (?) ; Заполнитель
PCXheader ends
На основе полей Xmin Ymin и Xmax Ymax формируется значения переменных
xSIZE и ySIZE следующим образом:
4.4. Сохранение видеорежима.
Для получения текущего видеорежима служит функция BIOS INT 10h с номером 0Fh:
INT 10 – Получить текущий видеорежим
Вход: AH = 0Fh
Выход: AH = число символов в строке
AL = номер видеорежима
BH = активная видеостраница
Видеорежим запоминается в стеке.
4.5. Установка нового видеорежима.
Для установки видеорежима служит функция BIOS INT 10h с номером 00h:
INT 10 – Установить видеорежим
Вход: AH = 00h
AL = номер видеорежима
В курсовой работе используется графический режим с номером 13h.
4.6. Отображение изображения.
Для отрисовки изображения используется функция вывода точки:
INT 10 – Вывести пиксел (графический режим)
Вход: AH = 0Ch
BH = номер видеостраницы
AL = цвет точки
CX = колонка
DX = строка
	
4.7. Восстановление исходных параметров дисплея.
Перед выходом из программы необходимо восстановить видеорежим и видеостраницу. Прежний видеорежим хранится в стеке.
Для установки видеорежима служит функция BIOS INT 10h с номером 00h, описанная в подзадаче “ Установка видеорежима”.
4.8. Закрытие файла.
Перед выходом из программы необходимо закрыть BMP файл, чтобы он был доступен другим приложениям в системе.
Закрытие файла осуществляется функцией DOS (INT 21h) с номером 3Eh:
INT 21 – Закрыть файл
Вход: AH = 3Eh
BX = дескриптор файла
Выход: CF сброшен, если нет ошибок
AX = код ошибки
CF установлен -> ошибка чтения
4.9.Завершение программы.
Завершение программы осуществляется функцией DOS(INT 21h) с номером 4Сh:
INT 21 – Завершение программы
Вход: AH = 4Сh
AL = результат возвращаемый в системе
5. Тестирование и отладка.
При нормальных условиях
Входной файл меньше 320х200
3.Входной файл больше 320х200
4.Некорректные
данные.
6. Анализ возможностей разработанной программы.
Ресурсоемкость:
На носителе:
В памяти:
Пути улучшения:
Реализовать, маштабирование, чтобы, при чтении файлов разрешения больше, чем 320х200, показывалась картинка полностью.
Для улучшения пользовательского интерфейса, можно было бы до ввода имени файла вывести список файлов РСХ в директории, чтобы пользователь мог точнее написать имя файла.
Ускорить процесс отображения за счет прямого доступа к памяти.
