Spectrofon #09
30 сентября 1994
  Софт  

Система - Подробно освещается работа с принтером. Статья для начинающих пользователей и программистов.

┌──────────────────────────────┐
│ ───────── СИСТЕМА ────────── │
└──────────────────────────────┘

 СЕРГЕЙ САВОЩЕНКО.

   ПРИНТЕР ДЛЯ "ZX-SPECTRUM".
   --------------------------

            ВВЕДЕНИЕ

   Принтер  -  это  периферийное
устройство,  которое хотят иметь
в своем распоряжении большинство
пользователей "ZX-SPECTRUM".

   Сразу  заметим,  что  к этому
комьютеру можно подключить прак-
тически  любой  принтер,  но при
этом  могут  возникнуть  те  или
иные  трудности. Общими усилиями
мы  постараемся  преодолеть  эти
трудности.

        ТИП ИНТЕРФЕЙСА.

   Этот  пункт  является  весьма
важным,  т.к.  от  него  зависит
способ  подключения  принтера  к
компьютеру.

   Существуют два основных мето-
да   обмена   информацией  между
компьютерами    и   периферйными
устройствами  -  параллельный  и
последовательный.

   При  параллельном подключении
все  биты, составляющие байт по-
сылки,  передаются  одновременно
по параллельным шинам данных.

   При последовательном байт пе-
редается  бит за битом по очере-
ди.



   Исторически  за интерфейсами,
реализующими  параллельный метод
передачи   закрепилось  название
"CENTRONICS",  а  за  последова-
тельным - "RS 232".

СПОСОБЫ ОРГАНИЗАЦИИ ИНТЕРФЕЙСОВ.

   Для   "SPECTRUMa"  существуют
несколько  способов  организации
интерфейсов    для   подключения
принтера.  Мы рассмотрим два са-
мых популярных способа организа-
ции:

1.  Реализация с помощью микрос-
хемы КР580ВВ55А;

2. Интерфейс  ZX-PRINT (MK III).





     ИНТЕРФЕЙС КР580ВВ55А.

   Для реализации интерфейса ти-
па "CENTRONICS" удобно использо-
вать  микросхему КР580ВВ55А, ко-
торая  представляет  собой прог-
раммируемый интерфейсный адаптер
(ПИА).  В  состав ПИА входят три
8-ми разрядных параллельных пор-
та  ввода/вывода  А,В,С. В нашей
схеме  порт  В  используется для
вывода  информации  DATA  0-7 на
принтер,   по  младшему  разряду
порта  С - РС0 передается сигнал
СТРОБ,  а  старший  разряд - РС7
служит  для  ввода сигнала ЗАНЯТ
принтера.  Порт А зарезервирован
под   джойстик.  Программа  под-
держки  интерфейса заносит в уп-
равляющий регистр ПИА число 136,
что  соответствует настройке ПИА
в  режим вывода по порту В и 4-м
младшим разрядам порта С, и вво-
да 4-м старшим разрядам порта С.
   Заметим,  что после включения
питания  или  после  СБРОСА  все
порты  ПИА настраиваются в режим
ввода  информации.  Кроме  того,
адресация  порта А выбрана тако-
вой,  что позволяет использовать
его    в   качестве   интерфейса
джойстика.  Джойстик будет выби-
раться  при  нуле  на  шинах  А5
,RD,IORQ,  что соответствует ад-
ресации кемпстон интерфейса.

   Принтер  подсоединяется к ин-
терфейсу с помощью кабеля длиной
1,5-2м.

   Для   увеличения  нагрузочной
способности на выходе интерфейса
можно включить буферный элемент,
в  качестве  которого  можно ис-
пользовать  любые ТТЛ микросхемы
без      инверсии,      например
155ЛП4, 155ЛП10, 155ЛП11,555АП5,
555АП6,589АП16 и т.п.
    В некоторых принтерах приме-
няется   параллельный  интерфейс
ИРПР, отличающийся от CENTRONICS
как  полярностью сигналов, так и
протоколом обмена.

    Несмотря на отличия в прото-
колах  обмена, схема и программа
поддержки  интерфейса CENTRONICS
вполне  могут работать с принте-
рами,   оснащенными  интерфейсом
ИРПР.  Для  этого необходимо ин-
вертировать информационные линии
DATA 0-7 и буферизировать сигнал
SC,  т.к.  в ИРПР требуются токи
нагрузки  около  40ма. Сигнал AC
используется  вместо сигнала ЗА-
НЯТ,  а сигнал SC вместо сигнала
СТРОБ.  В  качестве инверторов и
буферов  можно применить микрос-
хемы "Исключающее ИЛИ" - 155ЛП5.
В этом случае, подавая на вторые
входы  элементов  микросхем  "1"
или  "0", вы получите на выходах
инвертированный или неинвертиро-
ванный сигнал, таким образом ваш
параллельный   интерфейс   будет
универсальным.

      ZX LPRINT (MK III).

   Вашему  вниманию предлагается
описание следующей модели интер-
фейса: ZX-LPRINT (MK III) . Этот
интерфейс  может настраиваться и
поддерживает  аппаратуру  как  с
"CENTRONICS", так и с RS232.

   Mk  III  - интерфейс принтера
может  использоваться  с версией
16К  ,  48К  и 128 К и различных
других  фирменных и любительских
ZX-SPECTRUM для распечатки сооб-
щений на графических и текстовых
принтерах, использующих   парал-
лельный  (типа  CENTRONICS)  или
последовательный (типа RS232-5v)
интерфейсы.
   При     включении     питания
ZX-SPECTRUM выходит в нормальное
входное меню (заставку),при этом
все функции сохраняются.


         ИНИЦИАЛИЗАЦИЯ.

   После включения Mk III должен
быть   инициализирован  командой
"ВОЗВРАТ    КАРЕТКИ"    (CARRIGE
RETURN  (CHR$  13) .Это произво-
дится   командой  "LPRINT+ENTER"
или "LPRINT+line" в программе на
БЕЙСИКЕ.  При  инициализации  Mk
III автоматически выходит на ре-
жим  печати текста (TEXT MODE) и
устанавливает  принтер на печать
80 знаков в строке.





   Выбор  различных типов графи-
ческих  принтеров осуществляется
следующими командами:

LPRINT  CHR$  0;  CHR$ 0 - Вызов
"МЕНЮ"

LPRINT CHR$ 0; CHR$ 1 - SEIKOSHA
GP 250 X

LPRINT CHR$ 0; CHR$ 2 - SEIKOSHA
GP 100 A
LPRINT  CHR$  0;  CHR$ 3 - EPSON
(модели  с  высоким разрешением)
START DP 510, GEMENI I STX 80

LPRINT  CHR$ 0; CHR$ 4 - WALTERS
WM80, SHINWA и CTI CP 80

LPRINT  CHR$ 0; CHR$ 5 - как для
CHR$ 3, но копия уменьшена



LPRINT   CHR$   0;   CHR$   6  -
MIKROLINE  80  и 82 или подобные
CG115 и' MCP40 в 4 цветах

   Выбираемая  команда отобража-
ется  в  нижней  строке дисплея.
Перебор  осуществляется клавишей
"ПРОБЕЛ"  (SPACE). Подтверждение
выбора  осуществляется  клавишей
"ENTER".

      КОМАНДЫ ИНТЕРФЕЙСА.

LPRINT  CHR$ 3 - возврат каретки
с переводом строки (CR+LF)

LPRINT  CHR$  2 - только возврат
каретки

LPRINT  CHR$ 1;"A" - где "A" мо-
жет быть от 1 до 8. Это сообщает
машине  сколько знаков после ко-
манды  будут  интерпретироваться
как команды принтера
LPRINT CHR$ 4 - только один знак
интерпретируется   как   команда
принтеру

LPRINT  CHR$  5 - знакогенератор
машины  отключается, то есть все
знаки  выдаваемые  этой командой
будут интерпретироваться как ко-
ды ASCII. Возврат к знакогенера-
тору "ZX-SPECTRUM" происходит по
команде "COPY" .

LPRINT  CHR$ 0; S - переключение
с интерфейса "CENTRONICS" на "RS
232"

LPRINT  CHR$  0;  P - возврат от
"RS 232" K "CENTRONICS"

POKE 23697,n - где "n" определя-
ет число знаков в строке принте-
ра.При инициализации принтер ус-
танавливлен на 80 знаков в стро-
ке
POKE 23728,n - скорость передачи
по   RS 232  . При инициализации
1200 бод.

n скорость n скорость n скорость
--------------------------------
1   75     4   300    7   2400
2   110    5   600    8   4800
3   150    6   1200   9   9600


        КОМАНДЫ БЕЙСИКА
       ВЫВОДА НА ПРИНТЕР

LPRINT - печать на принтер

LLIST  -  печать на принтер лис-
тинга

COPY - вывод экрана на принтер в
графическом виде.



   Инициализацию принтера доста-
точно  произвести один раз после
включения  компьютера  или после
команды "NEW" .


  ПРОГРАММНАЯ   СОВМЕСТИМОСТЬ
      ДРАЙВЕРОВ ПРИНТЕРА.

   Как вы уже заметили, реализа-
ция  интерфейсов для принтера на
микросхеме      КР580ВВ55А     и
ZX-LPRINT  схематично отличается
друг  от  друга  и,поэтому прог-
раммная поддержка (драйвер прин-
тера),  так  же будет отличаться
друг от друга.

   Существует большое количество
программных средств для работы с
принтером  как с одним драйвером
так и с другим. Они являются не-
совместимыми.

   Ниже  мы  попытаемся показать
вам  как  можно совместить прог-
раммные  средства  с  различными
драйверами принтера.

        ДРАЙВЕР ПРИНТЕРА
       НА  ИМС КР580ВВ55А.

   Микросхема  КР580ВВ55А  пред-
ставляет  собой  программируемый
интерфейсный  адаптер  (ПИА).  В
состав  ПИА входят три 8-разряд-
ных параллельных порта ввода/вы-
вода( см.выше описание).

   Ниже  мы приводим стандартную
программу  драйвера  принтера на
ИМС  КР580ВВ55А.  Такой  драйвер
может   встречаться   во  многих
программах,  которые  работают с
принтером,   подключенным  через
КР580ВВ55А.


 N !  Мнемоника  !  Комментарий
--------------------------------
 10!   LD A,#98  !Настройка ПИА:
 20!   LD C,#7F  !канал А -ввод
 30!   OUT (C),A !канал В -вывод
   !             !канал С1-вывод
   !             !канал С2-ввод
 40!   LD C,#5F  !Убрать сигнал
 50!   OUT (C),C !СТРОБ
 60!   LD C,#3F  !Выдать байт
 70!   OUT (C),A !в принтер
 80!   LD C,#5F  !Опрос
 90!M1 IN A,(C)  !сигнала
100!   RLA       !ЗАНЯТ
110!   JR C,M1   !
120!   LD D,#FE  !Выдать сигнал
130!   OUT (C),D !СТРОБ
140!M2 DEC D     !Задержка
150!   JR NZ,M2  !СТРОБ
160!   OUT (C),C !Убрать сигнал
170!   RET       !СТРОБ. ВЫХОД.



   Данный   драйвер  состоит  из
двух частей:

1.  Строки  10  - 50 - Настройка
ПИА;

2. Строки 60 - 160 - выдача бай-
та на принтер,который содержится
в регистре А.

   Как вы уже заметили из приве-
денного  листинга программы, ад-
реса  внешних  устройств относи-
тельно Z80 следующие:

#7F - управляющий регистр ПИА;

#5F  -  порт С (С1-вывод СТРОБА,
С2-ввод ЗАНЯТ);

#3F - порт В (вывод байта данных
на принтер).


   Порт  А,  имеющий  адрес #1F,
зарезервирован  во многих схемах
под КЕМПСТОН-ДЖОЙСТИК.

        ДРАЙВЕР ПРИНТЕРА
       ZX-LPRINT(MK III).

   Драйвер существует в двух ва-
риантах:  резидентный  и нерези-
дентный.   Резидентный   драйвер
хранится в ПЗУ (см. рис.2) и вы-
зывается он только из 48К режима
командами   LLIST, LPRINT, COPY.
Многие программы могут также об-
ращаться  к  этому  драйверу.Как
работать с таким драйвером смот-
рите  выше.  Надо  отметить, что
этот  драйвер запускается только
работая  с  БЕЙСИКОМ через поток
#3. Например, команды:  LLIST  и
LIST #3 идентичны.





   Нерезидентный  драйвер встав-
ляется в тело какой-нибудь прог-
раммы  (так-же как и драйвер ИМС
КР580ВВ55А) и упраляет принтером
"минуя"  ПЗУ с резидентным драй-
вером.


   Ниже  мы приводим стандартный
драйвер принтера ZX-LPRINT , ко-
торый   используется  во  многих
программах,  как  в  48К-режиме,
так  и в 128К-режиме (т.е. он не
использует  системные переменные
операционной системы).








 N !  Мнемоника    !Комментарий
--------------------------------
 10!M1 IN A,(#7B)  !Опрос
 20!   AND #80     !сигнала
 30!   JR Z,M1     !ЗАНЯТ
 40!   PUSH BC     !Задержка для
 50!   LD B,#40    !СТРОБА
 60!   OUT (#FB),A !Выдать байт
 70!M2 OUT (#7B),A !Выдать СТРОБ
 80!   DJNZ M2     !Задержка
 90!   OUT (#FB),A !Убрать СТРОБ
100!   POP BC      !
110!   RET         !Выход


   Как вы уже заметили из приве-
денного  листинга программы, ад-
реса  внешних  устройств относи-
тельно Z80 следующие:

#FB   -  ввод/вывод  данных  без
СТРОБа,

#7B - ввод/вывод данных со СТРО-
Бом.

   Во  многих  драйверах  строки
программ 40,50,80,100 чаще всего
отсутствуют, так как нет необхо-
димости   вводить  задержку  для
сигнала  СТРОБ. Но если у вашего
принтера  сигнал  СТРОБ критичен
по временным параметрам, то луч-
ше  всего  ввести задержку.Номи-
нальное  число задержки подбира-
ется в строке 50. Можно начать с
максимума #FF и, уменьшая подоб-
рать до номинала. (Например, для
принтера  ROBOTRON  6329 номинал
равен #40.)

   Приведенные   выше   драйверы
принтера могут незначительно от-
личаться в некоторых программах,
но  основная  организация  прог-
раммной  поддержки выглядит так-
же, как в приведенных листингах.
   Теперь,   имея   перед  собой
стандартные  драйверы  принтера,
вы  можете вставлять их в ту или
другую программу, зная как у вас
в  компьютере  реализован интер-
фейс   принтера,  т.е.  добиться
совместимости  программы с вашим
компьютером.

   Ниже,  на  примере  программы
"ARTSTUDIO"  ,  мы  покажем  как
можно  достигнуть  совместимости
драйвера принтера.


      НАСТРОЙКА ПРОГРАММЫ
          "ARTSTUDIO".

   Программа "ARTSTUDIO" являет-
ся наиболее мощной и гибкой сре-
ди существующих в настоящее вре-
мя  графических  редакторов  для
компьютера   класса  "SPECTRUM".

Программа  создавалась в расчете
на любых пользователей - как на-
чинающих,  так и художников, за-
нимающихся профессиональным соз-
данием графических рисунков.

   Программа является исталляци-
онной (install programm) т.е.  с
помощью   ее   можно  установить
(создать) рабочую копию програм-
мы,  которая будет ориентирована
на определенную конфигурацию ва-
ших внешних устройств (принтера,
клавиатуры,  джойстика, интерфе-
са, драйвера и т.д.).

   Для  создания  рабочей  копии
вам   нужно  иметь  оригинальный
диск (original disk) ,на котором
записана   инсталл-программа,  и
назначенный   диск  (destination
disk) ,на котором вы будете соз-
давать  (устанавливать)  рабочую
копию.
   Программа   "ARTSTUDIO"   су-
ществует в двух вариантах: 48К и
128К.  Все действия по настройке
программы,    описанные    ниже,
действительны  для  двух вариан-
тов.

   Для   того,   чтобы  грамотно
настроить программу "ARTSTUDIO",
для  работы с конкретным принте-
ром  в графическом режиме, нужно
знать  основные  команды  вашего
принтера.  Эти команды приведены
в  инструкции по эксплуатации на
ваш  принтер.  Если  у  вас  нет
инструкции  на  принтер, то ниже
приведены  основные  коды команд
EPSON -совместимых принтеров.

   Итак,  приступим  к настройке
программы.



   После загрузки программы "ART
S128"  ,  вы увидите сообщение "
ART    STUDIO    128K    install
programm",   которое  говорит  о
том,   что   программа  является
инсталляционной.

   Далее  программа  спросит вас
куда   вы  будете  устанавливать
программу  -  на  кассету или на
диск.  Вам  нужно  будет выбрать
конкретный внешний носитель.

   После  выбора  носителя прог-
рамма  выведет следующую таблицу
и вопрос:

1....User-defined keys
2....Interfase 2 joystisk
3....Kempston joystick
4....Cursor keys/joystick
5....AMX mouse
6....Kempston mouse
  Select input device ?
   Данная  таблица и вопрос тре-
бует  от  вас выбрать конкретное
устройство  ввода, с помощью ко-
торого вы будете управлять прог-
раммой.    Вам    нужно   нажать
конкретную цифру.

   Для выбора клавиатуры мы вве-
дем цифру 1.

   Далее   программа   потребует
обозначить клавиши определенными
направлениями и командой ВЫБОР.

   После этого программа спросит:

   Are  you  using  an 80-column
dot matrix printer (y or n )?

т.е.  будете  ли вы использовать
80-колоночный  (узкий) матричный
принтер.  Если  у  вас принтер с
другими  характеристиками, то вы
отвечаете 'n'.
   Далее  программа выведет сле-
дующую таблицу-вопрос:

1. Kempston 'S'       Centronics
2. Kempston 'E'       Centronics
3. Tasman type A      Centronics
4. Tasman type B/1    Centronics
5. Tasman type B/2    Centronics
6. Tasman serial      RS232
7. Hilderbay          Centronics
8. Morex              Centronics
9. Morex              RS232
10. ZX Interfase 1    RS232
11. ZX Lprint II/III  Centronics
12. ZX Lprint II/III  RS232
13. Micro Peripherals Centronics
14. Direco            Centronics
15. Dk'tronics        Centronics
16. AMX               Centronics
17. Indescomp         Centronics
18. Indescomp         RS232
19. Spectrum+2
255. User-own driver

   Из этой таблицы видно, что от
вас требуется выбрать контроллер
и  тип  интерфейса,через которые
подключен к компьютеру ваш прин-
тер.  Выбор этот нужен для того,
чтобы    программа    установила
конкретный  драйвер в программе.
Если  в  таблице  вы  не найдете
способ  подключения вашего прин-
тера    (например    через   ИМС
КР580ВВ55А),  то  вы можете выб-
рать  255  -  User-own  driver .
После  такого  выбора  программа
будет  создавть управляющие коды
для  принтера,  но  а драйвер вы
должны  будете  сами  вставить в
созданную   программу  (как  это
сделать будет рассказано ниже).

   Для примера мы будем устанав-
ливать программу для принтера МС
6312,   который  является  EPSON
-совместимым.

   Наш  принтер  подключен через
ZX-LPRINT      с     интерфейсом
CENTRONICS,  т.е.  нужно выбрать
из таблицы число 11.

   Далее последует вопрос:

   Enter   number  of  wires  in
print heard (7 or 8)?

   Здесь  нас просят выбрать ка-
ким количеством иголок (7 или 8)
может  быть задействован принтер
при выводе картинки.

   На  вопрос  : Is the top wire
the  mb (y or n)?  ,нужно от-
ветить 'y' . Здесь вы устанавли-
ваете  соответствие номеров иго-
лок  и  номеров битов выводимого
байта.



   Далее последует вопрос:

   Enter  control  codes  to  be
sent  to  the  printer  before a
screen    dump,   separated   by
commas?

   Программа  просит  вас ввести
контрольные коды, при помощи ко-
торых  ваш  принтер  должен быть
подготовлен  к  печати , а также
любые   другие  подготовительные
коды (перевод строки и т.п.).

   Для нашего принтера мы вводим:

   27,65,8 - в данном случае эта
цепочка  кодов соответствует ко-
манде  'установка  интервала  на
8/72 дюйма'.

   Числа  вводятся  в десятичной
форме через запятую.

   На  вопрос:  Enter  number of
dots in single denisty mode?  Вы
должны ввести количество точек ,
печатаемых  при  одинарной плот-
ности. Мы введем 480.

   Далее   последует   вопрос  :
"Enter  control  codes....",  на
который    мы    должны   ввести
контрольные коды, при помощи ко-
торых  принтер  переключается  в
графический    режим   одинарной
плотности с заданным количеством
точек. Мы введем: 27,75,224,1.

   Далее  последуют  такие  же 2
вопроса,   но  уже  для  двойной
плотности  печати.  Ответы будут
соответственно:   960  и  27,76,
192,3.




   На вопрос: Enter control code
for  carriage  return?  ,  нужно
ввести    код,   соответствующий
возврату каретки - 13.

   На вопрос: Enter control code
for  line  feed?  , нужно ввести
код,   соответствующий  переводу
строки - 10.

   После  ответа  на все вопросы
программа выведет результирующую
таблицу  всех введенных вами па-
раметров.  Если  в  этой таблице
вас  все  устраивает, то на воп-
рос:  Is  this correct?  , нужно
ответить 'y' . Иначе вопросы все
повторятся.






   После  утвердительного ответа
на последний вопрос утановка ра-
бочей  программы будет завершена
на  выбранном  внешнем носителе.
Имя  новой программе будет прис-
воено "STUDIO 128" .


   ВЫБОР РЕЖИМА ГРАФИЧЕСКОГО
    ИЗОБРАЖЕНИЯ НА ПРИНТЕР.

   На EPSON -совместимый принтер
можно выводить графическое изоб-
ражение  различных  масштабов  и
плотности.

   При    настройке    программы
"ARTSTUDIO"  мы задавали два ре-
жима графического изображения на
принтер:  нормальной плотности и
двойной  плотности,  при  помощи
набора  управляющих кодов.




   Данные   режимы  мы  задавали
следующими кодами:

-  нормальная плотность (480 то-
чек) - 27,75,224,1

-  двойная плотность (960 точек)
- 27,76,192,3


   Из  приведенной  ниже таблицы
можно  увидеть,  что графический
режим   принтера   можно  менять
и,следовательно,  выводить  кар-
тинки  на  принтер  в  различных
форматах.






 Режим Плотность   Код       Содержание
-----------------------------------------------------------
!  0  !Одинарная ! ESC K   ! 60 точек/дюйм                !
!     !          !         ! 480точек/8-дюймовая строка   !
!     !          !         ! 816точек/13,6-дюймовая строка!
-----------------------------------------------------------
!  1  !Двойная с ! ESC L   ! 120 точек/дюйм               !
!     !низкой    !         ! 960 точек/8-дюймовая строка  !
!     !скоростью !         ! 1632точек/13,6-дюймовая стр. !
-----------------------------------------------------------
!  2  !Двойная с ! ESC Y   ! такая же плотность,как в ре- !
!     !низкой    !         ! жиме 1, но быстрее.          !
!     !скоростю  !         !                              !
-----------------------------------------------------------
!  4  !элт 1     !нет      ! 80точек/дюйм                 !
!     !          !         ! 640точек/8-дюймовая строка   !
!     !          !         ! 1088точек/13,6-дюймовая стр. !
!     !          !         ! Совпадает с экраном плотнос- !
!     !          !         ! тью 10 (это облегчает раз-   !
!     !          !         ! грузку экрана)               !




 Режим Плотность   Код       Содержание
-----------------------------------------------------------
!  5  !одна за   !нет      ! 72 точек/дюйм                !
!     !другой    !         ! 576 точек/8-дюймовая строка  !
!     !(графопос-!         ! 979 точек/13,6-дюймовая стр. !
!     !троитель) !         ! Горизонтальная плотность     !
!     !          !         ! одинакова с вертикальной,что !
!     !          !         ! позволяет изображать окруж-  !
!     !          !         ! ность без искажений.         !
-----------------------------------------------------------
!  6  !элт 11    !нет      !90 точек/дюйм                 !
!     !          !         !720точек/8-дюймовая строка    !
!     !          !         !1224 точки/13,6-дюймовая стр. !
-----------------------------------------------------------
!  7  !графопост-!нет      !144точки/дюйм                 !
!     !роитель с !         !1152 точки/8-дюймовая строка  !
!     !4-кратной !         !1958 точек/13,6-дюймовая стр. !
!     !плотностью!         !Ну очень маленькие картинки   !
!     !          !         !можно выводить !              !
-----------------------------------------------------------
   Данная таблица  приведена для
принтера МС 6312. У других EPSON
совместимых принтеров могут быть
некоторые отклонения.
   Выбор графического режима для
принтера задается следующими уп-
равляющими кодами:

код ASCII     ESC *  (m)(n1)(n2)
десятичный    27  42 (m)(n1)(n2)
шестнадцат.   1B  2A (m)(n1)(n2)

где: m = 0 - 7 - графический ре-
жим (см. выше таблицу)

n1,n2 = 0 - 255 - количество то-
чек.

Количество  точек вычисляется по
следующей формуле:

N = количество точек
n1= N MOD 256
n2= INT (N/256)




Например: N= 480 точек

n1= 480 MOD 256 = 224 десятичн.
или Е0 шестнадцатерич.

n2= INT(486/256)=  1  десятичн.
или 01 шестнадцатерич.

   Вы  можете убедиться, что та-
кие   же  коды  мы  вводили  при
настройке  программы "ARTSTUDIO"

   При    настройке    программы
"ARSTUDIO"  вы можете задать лю-
бой  из  7  графических режимов.
Например,на  вопрос,  в  котором
нужно   задать  режим  одинарной
плотности  печати  принтера,  вы
введете следующие параметры: 640
и  27,2А,04,128,2  вы зададите 4
графический   режим  и  получите
картинки  на  принтере  без  ка-
ких-либо искажений.

НАСТРОЙКА ПРОГРАММЫ "ARTSTUDIO"
  ПОД ЛЮБОЙ ДРАЙВЕР ПРИНТЕРА.

   В  данном  пункте, на примере
программы     "ARTSTUDIO",    мы
расскажем,  как настроить ту или
иную  программу под определенный
драйвер принтера.

   Т.е. наша цель состоит в том,
чтобы  найти в каком месте прог-
раммы находится драйвер принтера
и, если он нас не устраивает, то
грамотно заменить его на другой.

   Место   нахождения   драйвера
принтера  в теле программы можно
определить  с  помощью различных
дисковых   или  кассетных  прог-
рамм-мониторов. Мы воспользуемся
программой  "DOCTOR V4".



   С  помощью программы "DOCTOR"
мы  находим  драйвер  принтера в
файле "studio_m". Он имеет вид:

    00 00 00 00 08
    00 00 00 00 1B
    41 08 E0 01 00
    00 00 1B 4B E0
    01 C0 03 00 00
    00 1B 4C C0 03
    0D 0A 64 87 6E
    87 6E 87 73 87
    16 00 DB 7B E6
    80 C9 D3 FB D3
    7B D3 FB C9 00

   На  первый  взгляд  ничего не
понятно.   Но  если  внимательно
рассмотреть  этот  дамп,  то  вы
поймете,  что здесь представлена
таблица  параметров,  которые мы
задавали при настройке программы
"ARTSTUDIO"  и  следом  за ней -
программа драйвера принтера.
Разберем этот дамп по порядку:

08  - заданное количество иголок
для принтера

1В  41  08 - команда 'установить
интервал'

Е0  01  -  количество  точек при
одинарной плотности = 480

1B 4B E0 01 - команда вкл. граф.
режим одинарной плотности

C0  03  -  количество  точек при
двойной плотности = 960

1B 4C C0 03 - команда вкл. граф.
режим двойной плотности

0D - код возврата каретки

0A - код перевода строки.

   Эта первая часть дампа содер-
жит параметры для включения раз-
личных режимов принтера.

   Вторая  часть  дампа содержат
адреса  вызовов  драйвера принте
ра  и  саму  программу  'драйвер
принтера'.Рассмотрим эти коды:

64 87 - Начальный адрес

6Е 87 - Адрес вызова

6Е 87 - Адрес вызова

73 87 - Адрес вызова

16 00 - Кол-во байтов, занимае-
мых второй частью дампа.





   По адресам вызова расположена
сама программа "драйвер принтера
ZX-LPRINT" :

DB  7B  E6 80 C9 - Опрос сигнала
ЗАНЯТ

D3  FB  D3  7B  D3 FB C9 - Вывод
байта на принтер

   Теперь,  зная значения вышеп-
риведенных  кодов, вы можете, не
прибегая   к  инсталл-программе,
настраивать  рабочую копию прог-
раммы  "ARTSTUDIO" по своему же-
ланию. Т.е. вы можете сами вста-
вить в программу различные пара-
метры  для принтера: кол-во иго-
лок, кол-во точек, режимы графи-
ческого изображения. А так-же вы
можете вставить в программу свой
драйвер принтера.


   Например,  для драйвера прин-
тера  на  ИМС  КР580ВВ55А вторая
часть дампа будет выглядеть сле-
дующим образом:

    64 87 6E 87 92 87
    94 87 4F 00 3E 98
    0E 7F ED 79 0E 5F
    ED 49 3E 1B CD 94
    87 3E 40 CD 94 87
    3E 1B CD 94 87 3E
    55 CD 94 87 3E 00
    CD 94 87 C9 AF C9
    0E 3F ED 79 0E 5F
    ED 78 17 38 FB 16
    FE ED 51 15 20 FD
    ED 49 C9 00

   Программа "ARTSTUDIO" настро-
ена  на работу с драйвером прин-
тера на ИМС КР580ВВ55А.



   Теперь  вы  владеете навыками
для  настройки  любой  программы
под определенный драйвер принте-
ра.

   ВНИМАНИЕ  ! Для того,чтобы не
испортить   программы-оригиналы,
все изменения в программах жела-
тельно  производить на дублирую-
щих дискетах !


       ПОЛУЧЕНИЕ КАРТИНОК
      ИЗ ЛЮБОЙ ПРОГРАММЫ.

   В данном пункте мы расскажем,
как   "вытащить"   понравившуюся
картинку из любой программы.

   Самой  простой  способ  - это
воспользоваться "волшебной кноп-
кой" - MAGIC .


   Картинки "вытаскиваются" сле-
дующим  образом:  вы  загружаете
нужную  вам игру. После того как
на  экране  появится нужная кар-
тинка,  вы  нажимаете "волшебную
кнопку"  и, вся программа из па-
мяти  компьютера вместе с экран-
ной областью перепишется на дис-
кету,  которую вы предварительно
вставите в дисковод.

   Записанному  файлу на дискете
автоматически  присваивается имя
"@"  .  Теперь  для  того, чтобы
"вытащить"  только  картинку  из
этого  magic-  файла, можно вос-
пользоваться следующей короткой
программой.

10  INPUT "NAME";N$
20  RANDOMIZE USR 15619:REM:LOAD
"@" CODE 16384,6912
30  RANDOMIZE USR 15619:REM:SAVE
N$ CODE 16384,6912
   Полученные картинки можно об-
рабатывать любым графическим ре-
дактором:  ARTSTUDIO,  ARTIST  и
др.

    КОДЫ КОМАНД ДЛЯ ПРИНТЕРА

   Специальные коды команд пере-
даются на принтер сериями ESCAPE
последовательностей.

   ESCAPE - последовательность
состоит из кода (27) и последую-
щим   за  ним  буквенно-цифровых
знаков или символов. Ниже в таб-
лице  приводится  список  управ-
ляющих программ. В круглых скоб-
ках    указан   десятичный   код
функций.  В угловых скобках ука-
заны  символы, которые можно на-
бирать  на  клавиатуре.  Символы
N,N1,N2  - это числа в диапазоне
от 0 до 256.

 -------------------------------------------------------
! ФУНКЦИЯ      !       СОДЕРЖАНИЕ                       !
 -------------------------------------------------------
!BEL (7)       ! Звуковая сигнализация                  !
!BS  (8)       ! Возврат на шаг                         !
!HT  (9)       ! Горизонтальная табуляция               !
!LF (10)       ! Перевод строки                         !
!FF (12)       ! Перевод формата                        !
!CR (13)       ! Возврат каретки                        !
!SO (14)       ! Включение русского шрифта              !
!SI (15)       ! Включение латинского шрифта            !
!DC1(17)       ! Выбор печатающего устройства           !
!DC3(19)       ! Отмена печатающего устройства          !
!CAN(24)       ! Отмена строки                          !
!DEL(127)      ! Удаление знака                         !
!ESC<*>N,N1,N2 ! Выбор режима графического изображения  !
!ESC<->1       ! Включение режима подчеркивания         !
!ESC<->0       ! Выключение режима подчеркивания        !
!ESC<0>        ! Выбор 1/8-дюймового интервала          !
!ESC<1>        ! Выбор 7/96-дюймового интервала         !
!ESC<2>        ! Выбор 1/6-дюймового интервала          !
!ESC<3>N       ! Выбор н/288-дюймового интервала        !
!ESC<8>        ! Блокировка датчика конца бумаги        !
!ESC<9>        ! Включение датчика конца бумаги         !
 -------------------------------------------------------
! ФУНКЦИЯ      !       СОДЕРЖАНИЕ                       !
 -------------------------------------------------------
!ESC<@>        ! Инициирование печатающего устройства   !
!ESC<A>N       ! Выбор н/96-дюймового интервала         !
!ESC<C>N       ! Выбор длины страницы в н строк         !
!ESC<C>0N      ! Выбор длины страницы в н дюймов        !
!ESC<D>        ! Установка горизонтальной табуляции     !
!ESC<E>        ! Выбор подчеркнутого режима             !
!ESC<F>        ! Отмена подчеркнутого режима            !
!ESC<G>        ! Выбор режима двойного удара            !
!ESC<H>        ! Отмена режима двойного удара           !
!ESC<J>N       ! Подача бумаги на н/288 дюйма вперед    !
!ESC<j>N       ! Обратная подача бумаги на н/288 дюйма  !
!ESC<K>N1,N2   ! Режим графического изображения одинар- !
!              ! ной плотности                          !
!ESC<L>N1,N2   ! Режим графического изображения двойной !
!              ! плотности                              !
!ESC<M>        ! Выбор шага "ЭЛИТ",уплотненный режим    !
!ESC<N>N       ! Выбор пропуска через перфорацию        !
!ESC<O>        ! Отмена пропуска через перфорацию       !
!ESC<R>        ! Выбор набора символов                  !
!ESC<S>0       ! Выбор печати верхнего индекса          !
!ESC SI        ! Включение уплотненного режима          !
 -------------------------------------------------------
! ФУНКЦИЯ      !       СОДЕРЖАНИЕ                       !
 -------------------------------------------------------
!ESC<S>1       ! Выбор печати нижнего регистра          !
!ESC<T>        ! Отмена печати верх. и нижнего индекса  !
!ESC<W>1       ! Выбор расширенного режима              !
!ESC<W>0       ! Отмена расширенного режима             !
!ESC<Y>N1,N2   ! Выбор графического режима двойной плот-!
!              ! ности с высокой скоростью              !
 -------------------------------------------------------


   Данная  таблица  кодов команд
приведена  для принтера МС 6312.
У   других   EPSON - совместимых
принтеров  могут  быть некоторые
отклонения  или  дополнения,  но
они незначительные.








          ЛИТЕРАТУРА.

1. СПРАВОЧНИК ПОЛЬЗОВАТЕЛЯМ
"SPECTRUM" - ФИРМА "VA PRINT".

2. А.ЛАРЧЕНКО, Н.РОДИОНОВ
"ZX-SPECTRUM ДЛЯ ПОЛЬЗОВАТЕЛЕЙ И
ПРОГРАММИСТОВ".

3. А.ЛАРЧЕНКО, Н.РОДИОНОВ "ДИА-
ЛЕКТЫ БЕЙСИКА".



             * * *



Другие статьи номера:

Экспертиза - сетевая версия стратегической игры "Laser Squad". Позволяет играть с партнером по модему. Включен четвертый, дополнительный сценарий.

Дебют - Фантастическая адвентюрная игра "Mindfighter".

Дебют - прохождение космической игра "Marsport".

Экзамен - рецепты идельных ограблений в игре "They Stole a million".

Обзор - новые игры Elite III, 1-St Devision Manager и анонс игры "Звездное наследие".

Система - Подробно освещается работа с принтером. Статья для начинающих пользователей и программистов.

С миру по биту - письма читателей об играх, дискаводах и демах.

Реклама - реклама и обьявления.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Spectrum systemz - BGE v2.40, Hardcore v3.1.
News - mr.event рассказывает о своем отчуждение от спектрумовской сцены.
Эпилог - скачивать 242 сектора, занятие не из приятных...

В этот день...   21 сентября