Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR_var_5.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
362.18 Кб
Скачать

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. Тестирование и отладка.

  1. При нормальных условиях

  1. Входной файл меньше 320х200

3.Входной файл больше 320х200

4.Некорректные данные.

6. Анализ возможностей разработанной программы.

Ресурсоемкость:

На носителе:

В памяти:

Пути улучшения:

  1. Реализовать, маштабирование, чтобы, при чтении файлов разрешения больше, чем 320х200, показывалась картинка полностью.

  1. Для улучшения пользовательского интерфейса, можно было бы до ввода имени файла вывести список файлов РСХ в директории, чтобы пользователь мог точнее написать имя файла.

  1. Ускорить процесс отображения за счет прямого доступа к памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]