7.3. Интерфейс Z X LPRINT III.
Универсальный интерфейс ZX-LPRINT-III позволяет подклю-
чать "СПЕКТРУМ 16", "48", "+" или "128" (в режиме 48) почти
к любому матричному принтеру или типа "ронашка", поддержива-
ет команды LPRINT, LLIST. Команда COPY работает без вспомо-
гательного математического обеспечения на принтерах EPSON,
STAR, BROTHERS, WALTERS, MANNERSMAM TALLY, TAXAN KAGA, CA-
NON, SHINWA, CITIZEN. Ha SEICOSHA GP-700 команда COPY рабо-
тает в полной цвете. На EPSON и совместимых может выполнять
копню экрана в двух размерах. На CGP115, МСР40, МСР80, SCP80
копня ножет быть четырехцветной. Совместим с ZX-ИНТЕРФЕЙ-
СОМ-1, модемом VTX 5000 и дисковыми интерфейсами OPUS DISCO-
VERY и BETA.
Этот интерфейс давно и прочно завоевал популярность в
мире и неудивительно, что многие фирмы, выпускающие приклад-
ное программное обеспечение, давно и прочно ориентируются на
него. Так, например, текстовый редактор THE LAST WORD TWO в
своей постановочной версии расочнтан на работу именно с ним.
Графический редактор ARTSTUDIO в числе прочих поддерживает
работу и с этим интерфейсом. Одним словом, это тот интер-
фейс, который позволяет решить большинство практических
проблем, возникающих перед нашими читателями, когда они на-
чинают подумывать о работе с принтером.
Для вывода на печать текста и изображений БЕЙСИК СПЕКТ-
РУМа имеет три команды - LPRINT, LLIST и COPY. Первые две
команды почти полностью аналогичны командам печати на экране
с той лишь разницей, что при их выполнении открывается канал
"Р", в то время как по командам LIST и PRINT открываются ка-
налы "S" или "к" в зависимости от того в главную часть зкра-
на идет печать или в окно системных сообщений (в нижние две
строки).
Открытие этого канала изменяет местонахождение програи-
иы поддержки и направляет поток данных на вывод с помощью
программы, обслуживающей фирменный ZX-прннтер. Работа ZX-
принтера аналогична работе телевизора с механической раз-
верткой. головка с единственной'иголкой постоянно перемеща-
ется вдоль бумаги и в зависимости от наличия точки (для эк-
рана - пиксела) печатает ее на бумаге. Буиага подается пос-
ле каждого прохода на 1/8 строки.
В более поздних моделях, работающих с термобумагой, бу-
мага прижимается к проворачивающемуся на 1/3 строки барабану
с помощью головки, имеющей 256 нагревательных элементов с
малой ннерцмонностью нагрева м остывания. Здесь сразу произ-
водится печать 256 позиций пикселов. И в том, и в другом
случае печать производится на узкой бумажной ленте н предс-
тавляет собой копию экрана, т.е. 22 отроки по 32 символа или
для графической копмм 256x176 точек.
Программа поддержки ZX-принтера находится в ПЗУ, что
освобождает пользователя от необходимости загружать ее с
магнитофона и значительно экономит время.
Так как в нашей стране ZX-прннтеры не слишком распрост-
ранены, то пользователь вынужден решать задачу подключения
реально существующего у него принтера. Для этого приобре-
тается какой-либо подходящий интерфейс н загружается про-
грамма поддержки. Програима иошет быть размещена в любой
иесте памяти, где она не иешает работе других програии н не
уничтожается при их работе. Например, часто ее располагают в,
так называемой, буфере принтера - это 256 байтов, следующие
сразу эа областью файла экранных атрибутов. Буфер принтера
начинается с адреса 5В00Н (23296). раэиестить таи драйвер
воэиожно, если он не превышает 256 байтов. Далее нэиеняется
стартовый адрес, хранящийся в системных переиеиных, в соот-
ветствии с ноиерои канала, который Вы открываете для вывода
на печать. Теперь после команды начала печати коипьютер бу-
дет обращаться к программе поддержхи, которую Вы ему назна-
чили и которая рассчитана ииенно на Ваши аппаратные средст-
ва. Таков в общих чертах подход к этой проблене в фириеннои
СПЕКТРУИе.
Среди разновидностей отечественных моделей компьютера
есть такие, в которых заложена аппаратная часть интерфейса
принтера, наприиер, установлен порт пользователя, выполнен-
ный на КР580ВВ55. В этом случае необходимо лишь подэагруэить
программу поддержки этого порта. Иногда такую программу впи-
сывают в свободную область ПЗУ компьютера. Это почти идеаль-
ный вариант, если эта програииа подойдет для Вашего принте-
ра, если эта область не занята под кириллицу и если Вы гото-
вы ннрнться с тем, что Ваше ПЗУ после этого не будет соот-
ветствовать фирменному и со всей головной болью, возникающей
на почве несовместимости.
Мы предлагаем Вашему внннанню вариант интерфейса прин-
тера, адаптированного с фирменного ZX-LPRINT-III-ннтерфейса.
В некоторых моделях самодельных конпьютеров он уже встроен,
и их владельцы смогут его опознать. Особенностью его являет-
ся то, что программы поддержки записаны в микросхему ПЗУ
объеном 2К и потому не требуется загрузка с нагнитофона.
Эта иикросхеиа подменяет собой ПЗУ СПЕКТРУМа тогда,
когда выполняются команды печати.
Получив команду LPRINT, LLIST или COPY, процессор обра-
щается к подпрограмме работы с ZX-прннтерон, который адресу-
ется портом FB(HEX). При этом срабатывает дешифратор интер-
фейса ZX-LPINT-III, и ПЗУ СПЕКТРУМа заменяется "теневым"
двухкилобайтным ПЗУ.
Для отключения ПЗУ СПЕКТРУМа используется сигнал ROMCS.
В фнрменнон компьютере такой сигнал есть и никаких доработок
не требуется. В самодельных компьютерах использование этого
сигнала потребует некоторой квалификации и знания принци-
пиальной схемы. Подход к решению этой проблемы будет рас-
смотрен ниже в разделе "Расширение памяти СПЕКТРУМа". В на-
шей случае надо найти сигнал выбора ннкросхемы ПЗУ, разре-
зать этот проводник и в разрыв включить резистор 680 ом.
Сигнал ROMCS нашего интерфейса подключается после резистора
к CS микросхены ПЗУ СПЕКТРУМа.
Таким образом, при выборе ПЗУ интерфейса на CS ПЗУ
СПЕКТРУМа будет подано напряжение логической единицы, пере-
ключающее ее в третье состояние.
кроме того, что интерфейс не требует программной под-
держки, он имеет еще ряд достоинств. В нем могут программно
переключаться режимы работы:
- по протоколу "CENTRONICS" (параллельный);
- RS-232C (последовательный).
В последовательном режиме можно настраивать скорость
передачи даииых от 75 до 9600 бод.
Интерфейс Также поддерживает графический режни работы,
причеи, программно настраивается на одии нэ нескольких типов
графических принтеров.
Пооле включения компьютера с присоединенным к иеиу ин-
терфейсов , его иадо инициализировать. Это делается конаидой
chrs 13 (Возврат каретки). Для этого дайте команду lprint
enter. Пооле инициализации интерфейс входит в текстовый ре-
жим печати 80 знаков в строке.
Для работы в графическом режиие одиой нэ следующих ко-
ианд выбирается тип графического принтера:
1. selkosiia GP 250Х - lprint CHR$0; CHR$1
2. Seikoeha 100A - LPRINT CHR$ 0; CHR$ 2
3. Epaon (модели с высокии реэреоеииеи), Star DP510,
Gamini и STX 80 - LPRINT CHRSO; CHRS3
4. Waltere WM80, Shinwa, CTI CP80 - LPRINT CHRSO; CHRS4
5. To жа, что и п. 3, но уиеиьоениая копня - LPRINT
CHRS0; CHRS5
6. Microline 80 и 82 и ни подобные, CG115 н МСР в 4-х
цветах - LPRINT CHRS0; CHRSб
7. Переход m текстовый режии - LPRINT CHRS0; CHRS0
Выбнраамая команда и тип принтера отобрежаются иа экра-
на, перебор осуществляется клавишей SPACE, выбор ■? ENTER.
Интерфейс выполняет также следующна команды:
LPRINT CHRS 3 - возврат каретки с автопереводои строки;
LPRINT CHRS 2 - возврат каретки без автопаревода строки
(этот режни задается прн инициализации интерфейса);
LPRINT CHRS 1; "А" - здесь А - от 1 до 8. столько зна-
ков пооле этой команды будут восприниматься прнитерои как
конаиды;
LPRINT CHRS 4; - только одии эиак интерпретируется как
коиаида принтеру;
LPRINT CHRS 5; - знакогенератор компьютера отключается,
все знаки пооле этого будут интерпретированы как коды ASCII,
а не распечатываться как ключевые слова СПЕКТРУМа. Выход из
этого режнна и возврат к знакогенератору конпьютера пронзво
днтся конандой COPY.
LPRINT CHRS 0; "S" - переключение режнна работы нз па
раллельного ("CENTRONICS") в последовательный (RS232C);
LPRINT CHRS 0; "Р" - обратное переключение режина рабо
ты интерфейса.
РОКЕ 23697,п - п задает число знаков в строке прн печа
тн. Прн нннцналнэацнн устанавливается значение 80 знаков i
строке.
РОКЕ 23728,п - п задает скорость передачи прн работе i
последовательной режиме. Выбирается нэ следующей таблицы:
Скорость, |
|
бод |
п |
75 |
1 |
110 |
2 |
150 |
3 |
300 |
4 |
600 |
5 |
1200 |
6 |
2400 |
7 |
4800 |
8 |
9600 |
9 |
Схена интерфейса ZX-LPRINT-III приведена на рнс. 36.
В схеие использованы следующие радноэлененты: DDI - К555ЛЛ1;
DD2 - К155ЛП8: DD3 - К555ТМ2; DD4 - К573РФ2, К573РФ5; DD5 -
К555ИР23; VD1 - КС147А; Rl, R2 - 2 КОм; R3, R4 - 10 КОН.
Связь по последовательному интерфейсу RS232C осуществ-
ляется по упрощеннону DTR протоколу по трен проводам:
- выход TXD интерфейса соединяется со входон RXD прин-
тера ;
- вход DSR интерфейса - с выходом DTR принтера;
- третий провод соединяет интерфейс с прннтерон по
"земле".
Обращаем Ваше виннанне на то, что в данном интерфейсе
выход данных TXD осуществляется в TTL уровнях и, вели Ваш
принтер не работает в этой режиме, иеобходиио дополнить ин-
терфейс передатчиком шнны с двуполярным выходом.
В параллельной режиие интерфейс соединяется с принтером
не менее, чей 11 проводами - восемь шин данных 00-07, сигна-
лы STROBE и BUSY и "зеиля".
В заключении добавин, что интерфейс активно использует
для перемещения тела програииы адресное пространство буфера
принтера с 5В00 по 5BFF, которое в связи с зтнм нужно оста-
вить свободный.
Ниже мы приводим распечатку содержнного ПЗУ интерфейса
с контрольными сунмамн.
Если Вы пожелаете перед программированием ПЗУ занести
код в память компьютера и сохранить его на ленте, а заодно и
проверить правильность ввода по контрольный сунман, то може-
те воспользоваться програнмой БЕЙСИК-загруэчнка. Загрузчик
рассчитан на то, что Вы будете вводить машинный код, начиная
с адреса 60000. Если зто не так, подправьте строки 1 и 30.
1 CLEAR 59999: LET add=60000: DIM a(10)
2 DEF FN A(a$)=(CODE a$(l)-48-(7 AND a$(1)>"9"))*16+(CODE
a»(2)-4S-(7 AND a$(2)>"9"))
10 FOR f»101 TO 356
12 RESTORE f
14 PRINT AT 0,0;f
15 READ a$
16 LET sum=0
20 FOR 1=1 TO 2
22 LET b$=a$(2*l-l TO 2*1)
24 LET a(1)=FN A(b$)
26 NEXT 1
30 LET add=a(1)*256+a(2)+60000
32 LET еиш=а(1)+a(2)
40 FOR 1=3 TO 10
44 LET b$=a$(2*l-l TO 2*1)
46 LET a(l)=FN A(b$)
48 LET sum-sum+a( 1)
50 POKE add, a (1)
52 LET add-add+1
54 NEXT 1
60 LET b$=a$(21 TO)
62 LET cs-FN A(b$)
64 LET csl=sum-256*INT(sum/256)
66 IF csocsl THEN PRINT "ERROR!!!!!! line ";f: BEEP 2,
10: STOP
68 NEXT f: STOP
Если Вы воспользовались этой программой, то данныа про-
шивки ПЗУ перед вводом Вам надо офорннть как строки DATA для
ввода в память конпыотера. Например, парвые две строки долж-
ны выглядеть так:
101 DATA "00000000C3 3800CD970968"
102 DATA "0008217BCD224F5B211371"