Еще одна программа переназначения принтера в файл? Вполне ес-
тественный вопрос. Только в Софтпанораме я в последнее время видел не
менее двух таких программ. К сожалению, некоторые недостатки в работе
этих программ, обусловленные, по мнению их авторов, особенностями стро-
ения MS DOS, постоянно вызывали у меня трудности в их использовании.
Поэтому я решил написать новую, более приспособленную к особенностям
MS DOS программу.
Программа PRDP.COM написана на ассемблере, скомпилирована с по-
мощью TASM 2.51 фирмы Borland и представляет собой резидентный модуль.
Может обслуживать сразу 4 принтера, причем для каждого из них вывод пе-
реназначается в отдельный файл. Переназначение выполняется на как на
уровне INT 17h для каждого из принтеров так и на уровне функции DOS 40h
для устройств PRN и LPT1 - LPT4. Это дает возможность без проблем выво-
дить в файл функцией 0 INT 17h, функцией 5 DOS, PrintScreen-ом, коман-
дами Type file>prn, Copy files prn и из различных программ, выводящих
на принтер как в тексте, так и в графике. Программа также нормально со-
существует с программой фоновой печати PRINT.EXE. Отличительной особен-
ностью программы являетсяполное отсутствие буферизации вывода, что дало
возможность оптимизировать программу и в объеме и во времени. Единствен-
ное, что реализовать пока не удалось, это переназначение эхо-вывода кон-
соли на принтер по нажатию Ctrl-P. Надеюсь со временем это доделать.
Программа вызывается без параметров. Объем резидентной части 816 байт.
Функционирует в MS DOS версий от 3.0 и совместимых с ней ОС.
Системный интерфейс программы следующий:
- открыть файл и переназначить в него принтер
Int 17h AH=0D1 BX=номер принтера (1-40) DS:DX=адрес ASCIIZ-имени файла,
возврат - аналогичен возврату функции DOS 3C;
- закрыть файл и восстановить исходное состояние вывода
Int 17h AH=0D0 DX=номер принтера;
- определить наличие программы PRDP.COM резидентно в памяти
Int 17h AH=0D7 DX=номер принтера
Возврат AH=0 если находится, иначе - без изменений.
Для реализации данного интерфейса в практической работе исполь-
зуется утилита PRDPUT.EXE, работающая только при резидентном наличии в
памяти программы PRDP.COM. Программа PRDPUT.EXE написана на "пассембле-
ре", т.е. паскале с ассамблерными вставками. Вызывается следующим обра-
зом:
PRDPUT /1=file_1 /2=file_2 /3=file_3 /4=file_4
где /1=file_1 обозначает переназна
|