- •Отображение монохромного файла рсх на экране
- •Содержание
- •1.Анализ технического задания
- •1.1 Техническое задание. Конкретизация.
- •2. Блок-схема алгоритма
- •3. Выбор формата представления данных
- •4. Реализация подзадач.
- •4.1. Проектирование пользовательского интерфейса.
- •4.2. Открытие файла.
- •4.3. Чтение и проверка заголовка рсх.
- •7. Список используемой литературы
- •Приложение а. Листинг программы.
3. Выбор формата представления данных
В таблице 1 приведены основные переменные, используемые в программе.
Таблица 1
Переменная |
Тип |
Размер, байт |
Назначение |
header |
struc |
128 |
Для хранения заголовка РСХ файла |
handl |
dw |
2 |
Дескриптор открытого файла |
xSIZE |
dw |
2 |
Максимальный размер по Х(320) |
ySIZE |
dw |
2 |
Максимальный размер по Y(200) |
f_Corp |
db |
1 |
Флаг обрезания изображения |
readbyte |
db |
1 |
Буфер для считанного из файла байта |
Так же в программе определены строковые переменные:
buffer db 20h dup (' ') ;
filepath db 20h dup(' ') ;путь к файлу
COPIRAIT db '(c)Kurguskin O.S. A-7-08 "PCX_View"',10,13,'$'
INSTRUCTION db 13,10,'Print filename in root dir as "kurs1.pcx" maximum 32 characters:$'
ER_OPEN db 13,10,'ERROR OPEN FILE!file not found',10,13,'$'
ER_READ db 13,10,'ERROR READ FILE',10,13,'$'
ER_HEAD_MF db 13,10,'ERROR HEADER PCX FILE! Manufacturer error! This file is not PCX! ',13,10,'$'
ER_HEAD_EC db 13,10,'ERROR HEADER PCX FILE! No ENCODING PCX',13,10,'$'
ER_HEAD_BPPX db 13,10,'ERROR HEADER PCX FILE! NO MONOCHROME PCX',13,10,'$'
ER_HEAD_NPL db 13,10,'ERROR HEADER PCX FILE! A lot of Layers',13,10,'$'
ER_HEAD_PI db 13,10,'ERROR HEADER PCX FILE! Error Palette Info',13,10,'$'
ER_CLOSE db 13,10,'ERROR CLOSE FILE!file not found in directory',13,10,'$'
NO_ERROR db 13,10,'Directory update successful! Aufwiedersehen!',13,10,'$'
4. Реализация подзадач.
4.1. Проектирование пользовательского интерфейса.
Входными данными для программы является название РСХ файла, который пользователь вводит в консоли.
При запуске программы, она выдает сообщение:
(c)Kurguskin O.S. A-7-08 "PCX_View"
Print filename in root dir as "kurs1.pcx" maximum 32 characters:
Если в программу передан путь к РСХ файлу, то программа проверяет заголовок файла, если в нем нет ошибок, отрисовывает изображение, потом ожидает нажатия любой клавиши, завершается, иначе выдает сообщение об ошибке.
Сообщения об ошибках приведены в Таблице 2.
Таблица 2
Ошибка |
Значени |
ER_OPEN |
Ошибка открытия файла, его либо нет либо неверно указан путь |
ER_READ |
Ошибка чтения файла |
ER_HEAD_MF |
Ошибка опознователя PCX. Открыт файл не PCX |
ER_HEAD_EC |
В Файле нет кодирования длинными линиями |
ER_HEAD_BPPX |
Число бит на пиксел не равно 1 |
ER_HEAD_NPL |
Число слоев больше чем 1 |
ER_HEAD_PI |
Ошибка интерпретации палитры, значение не равно 1. |
ER_CLOSE |
Ошибка закрытия файла |
4.2. Открытие файла.
Чтобы открыть файл используется функция DOS с номером 3Dh:
INT 21 – Открыть существующий файл
Вход: AH = 3Dh
AL = доступ, и share mode(0-только чтение)
DS:DX -> ASCIIZ имя файла
Выход: CF сброшен, если нет ошибок
AX = Дескриптор файла
CF установлен -> не удалось открыть файл
AX = код ошибки
В случае успеха дескриптор сохраняется в handl
