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; CHRS34. Waltere WM80, Shinwa, CTI CP80 - LPRINT CHRSO; CHRS4
5. To жа, что и п. 3, но уиеиьоениая копня - LPRINT
CHRS0; CHRS56. 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"
