Страница 3 из 5
/* Это фрагмент программы, использующей encget. Она читает
файл целиком и запоминает результат декодирования в
(большом) буфере, на который ссылается переменная "bufr".
"fp" - это ссылка на файл с изображением */
while (EOF != encget(&chr, &cnt, fp))
for (i = 0; i
FRIEZE был переписан для использования в PC Paintbrush
Plus, и поэтому техническая документация по нему коренным
образом изменилась. Для облегчения понимания технической
информации по FRIEZE, мы разбили этот раздел на две части:
один о версиях FRIEZE, предшествующих 7.00, и второй о
текущей версии (начиная с 7.00).
Начиная с версии FRIEZE 7.10, он может быть позднее
удален из памяти (это возвращает вам почти 85K DOS RAM, в
зависимости от вашей конфигурации). Чтобы сделать это, вы
можете выбрать освобождение FRIEZE из памяти в меню
PCINSTAL, либо изменить в некоторый момент рабочую
директорию PC PAINTBRUSH и набрать слово "FRIEZE."
Спецификация для версий FRIEZE ранее 7.00
Набор опций печати FRIEZE
FRIEZE может легко адаптироваться к неполным принтерным
кабелям (в которых отсутствует линия статуса, указанная IBM)
и управляет как последовательным, так и параллельным
интерфейсами. Отметим также, что FRIEZE всегда использует
стандартные вызовы BIOS'а, вследствие чего неответившие
устройства будут находиться в режиме тайм-аута, однако можно
потребовать, чтобы случаи типа отсутствия бумаги при этом
игнорировались.
Синтаксис команды FRIEZE:
FRIEZE Xnaarr
Где:
X = параллельное (P) или последовательное (S)
устройство,
n = номер порта,
aa = две шестнадцатиричные цифры кода, для
которого возвращаемые биты вызывают аварийное
завершение,
rr = две шестнадцатиричные цифры кода, для
которого возвращаемые биты вызывают повтор.
Примеры:
FRIEZE P1 - использовать стандартный набор параллельного
вывода, номер порта 1, маска аварийного
завершения 28h, и маска повтора 01h
FRIEZE P2 - использовать принтерный порт #2
FRIEZE S1 - использовать последовательный порт #1 и протокол
Xon/Xoff
FRIEZE P10028 - использовать принтерный порт #1, маску
аварийного завершения 00 (ничто не воспри-
нимается как ошибка) и маску повтора 28h
- 13 -
Интерпретация кодов:
Коды, возвращаемые параллельным принтером при вызове
общеизвестны:
20h - отсутствие бумаги,
10h - выбран,
08h - ошибка ввода/вывода,
04h - не используется,
02h - не используется,
01h - тайм-аут.
Вызов функций FRIEZE
FRIEZE работает, используя программное прерывание номер
10h (вызов видео прерывания).
Для вызова функции FRIEZE, загрузите значение 75
(десятичное) на регистр AH, номер вызываемой функции на
регистр CL и затем либо загрузите на AL аргумент функции,
либо на регистры ES и BX сегмент и смещение того места, где
располагаются эти аргументы, после чего вызовите прерывание
10h.
FRIEZE возвращает на AX число, которое означает код
ответа: нулевое значение соответствует успешному завершению,
все другие - номер ошибки. Значения других регистров не
изменяются.
# Определение Аргументы
0 Печать окна AL = режим:
0 - символьный,
1 - обычный,
2 - sideways
1 Чтение окна ES:BX - строка
(имя читаемого файла)
2 Запись окна ES:BX - строка
(имя записываемого файла)
3 Ширина печати AL = ширине в 1/4 дюйма
4 Высота печати AL = высота в 1/4 дюйма
5 Резерв.
6 Уст. левой границы AL = левое поле в 1/4 дюйма
7 Уст. размера окна ES:BX - 4 слова в которых записаны
угловые координаты окна:
Xmin, Ymin, Xmax, Ymax
8 Резерв.
9 Уст. образцов ES:BX - 16-элементный вектор байтов,
содержащий цветовое