
           Драйвер принтера,   подключаемого  через
                 последовательный интерфейс.
     
                     Евгений В. Краштан.
                 (E-mail: eug@el.cs.kiev.ua)
     
     Своим рождением эта программа обязана появившемуся у меня
не так давно принтеру Robotron CM6329.  Была у него такая беда
(точнее, даже две) -- имел он последовательный интерфейс и ра-
ботал в кодировке КОИ-7.  Но,  как известно,  в наших условиях
выбирать не приходится,  было бы хоть что-то,  поэтому и приш-
лось мне пытаться оживить это чудо.
     Первый успех  пришел ко мне,  когда принтер стал реагиро-
вать на информацию передаваемую на COM-порт.  Вот вкратце, что
необходимо было проделать для этого:
     
     1) Микропереключателями  принтера была выставлена следую-
щая конфигурация:
     Протокол DTR-полудуплексный,
     9600 бод,
     8 бит,
     без четности.
     
     2) Распайка кабеля:
                             
     Принтер                 Компьютер
     
       RxD <------------------ TxD  (2)
       DTR ------------------> CTS  (5)
       GND ------------------- SG   (7)
       RTS \                 / RTS  (4)
       DSR ->    Замкнуты   <- DSR  (6)
       DCD /                 \ DCD  (8)
                         
     Остальные контакты свободны.
     ВНИМАНИЕ! Нумерация  контактов  приведена   для   разъема
DB-25. В 9-тиконтактном разъеме нумерация изменится.
               
     3) Ну и наконец, написать драйвер.
     
     Кроме того,  необходимо  было  решить проблему кодировки,
причем таким образом,  чтобы выводимая на принтер  графическая
информация не искажалась.
     
     Дополнительно усугубил ситуацию тот факт,  что БИОСовское
прерывание 14Н не поддерживает протокол  DTR.  Сопоставив  два
последних факта,  было  принято решение писать свой обработчик
прерывания 14Н,   выполняющий   дополнительную   перекодировку
текста.
     Ну а раз я уже взялся переписывать прерывания, то я никак
не  мог оставить без внимания бесхозное семнадцатое прерывание
-- принтера ведь там не  оказалось.  А  без  принтера  никакой
ПринтСкрин не сработает. И чтобы не приходилось каждый раз вы-
полнять команду MODE LPT1=COM1, прерывание 17Н тоже было завя-
зано на последовательный порт.
     Ну и  последний  шаг в направлении полной автономии прог-
раммы -- установка  параметров  коммуникационного  порта.  Эта
установка выполняется при первом запуске программы.
     
     Но вернемся чуть назад -- как же все-таки решить вопрос с
перекодировкой? От манипуляций с "горячими" клавишами я  сразу
отказался -- это стрельба из пушки по воробьям. Поэтому я выб-
рал не слишком очевидный, но достаточно простой способ: после-
довательный порт остался один,  но для машины их  стало  двое.
Таким образом, если информация на принтер поступает через COM1
или LPT1,  то она спокойненько, без перекодировки перебирается
в буфер  принтера.  Если  же  надо напечатать русский (або ук-
раiнськiй) текст,  то достаточно печатать через COM2. При этом
по мере  сил программа пытается перекодировать даже псевдогра-
фику!
     
     Разумеется, эта программа не претендует на звание шедевра
-- вначале  она  писалась вообще для внутреннего употребления.
Но вскоре собратья по несчастью (владельцы принтеров Роботрон)
различными путями прознали про этот драйвер, и после того, как
я отправил по E-mail третий экземпляр данной программы,  роди-
лась идея  слегка  облагородить  текст и представит его на суд
читателей. Надеюсь,  этот драйвер облегчит жизнь еще не одному
страдальцу.
     
     Единственное замечание  -- на моей машине нет порта COM2,
а после СОМ1 идет сразу СОМ3 (так получилось :-).  Если  же  у
кого-то другая конфигурация машины, то измените соответственно
проверяемое значение DX на входе в 14-ое прерывание  (и  адрес
порта вначале, при необходимости)
     
     По любым вопросам обращайтесь ко мне по тел. (044)2166905
или по E-mail eug@el.cs.kiev.ua
     
     Предложения по усовершенствованию программы  не  принима-
ются :-)  -- лучше журавль в руках, чем синица в небе.
     
     Пока программа  работает  --  пусть  себе работает ( а за
месяц работы у меня еще не возникло к ней претензий!)
     
     
