7. ИНТЕРФЕЙСЫ ПРИНТЕРА.
Существует множество разновидностей печатающих уст-
ройств. Они различаются как по принципу действия - матрич-
ные, струйные, лепестковые, термические и т.д., так и по
применяемым в них интерфейсам связи и протоколам обмена с
компьютером - параллельным - HPnp(IFSP), ИРПР-М(CENTRONICS)
и др., и последовательным - C2(RS-232C, V24), ИРПС (CL) И др.
Для того, чтобы подключить принтер. Ваш компьютер необходимо
осиастить соответствующим интерфейсом, а также загрузить
программную поддержку (драйвер) этого интерфейса.
7.1. Параллельный интерфейс принтера.
Рассмотрим два наиболее распространенных параллельных
интерфейса - ИРПР-М (CENTRONICS) н ИРПР. Чаще всего в ком-
пьютерах используется упрощенный вариант CENTRONICS с мини-
мально достаточным числом линий связи. Эти линии, названия
сигналов, а также два основных типа разъемов принтера отоб-
ражены в таблице 2.
Остальные линии интерфейса в упрощенном варианте не ис-
пользуются. Передача данных от компьютера к принтеру осу-
ществляется с помощью сигналов СТРОБ и ЗАНЯТ (рис.31). Прин-
тер выставляет сигнал ЗАНЯТ в лог. 1 в случаях ввода данных,
состоямия "ошибки", переполнения буфера и т.п. Компьютер по
этому сигналу приостанавливает передачу данных и не передает
импульс с лог. о по линии СТРОБ до тех пор, пока принтер не
перейдет в состояние готовности, то есть лог. О на линии ЗА-
НЯТ. Принтер считывает данные с линий D0-D7 только после то-
го, как сигнал СТРОБ принял состояние лог. 0. Длительность
импульса СТРОБ с лог. о ие менее-0,5 икс.
Для реализации интерфейса типа CENTRONICS удобно ис-
пользовать микросхему КР580ВВ55А, которая представляет собой
программируемый интерфейсный адаптер (ПИЛ). В состав ПИА
входят три 8-ми разрядных параллельных порта ввода/вывода А,
В, С. В нашей схеме (рис. 32) порт В используется для выво-
да информации DATA 0-7 иа вход принтера. По младшему разря-
ду порта С РСО передается сигнал СТРОБ, а старший разряд РС7
служит для ввода сигнала ЗАНЯТ принтера. Порт А зарезервиро-
ван под джойстик. Программа поддержки интерфейса заносит в
управляющий регистр ПИА число 136, что соответствует на-
стройке ПИА в режим вывода по порту в и четырем младшим раз-
рядам порта С и ввода по 4-м страшим разрядам порта С.
Заметим, что после включения питания, в результате RE-
SETa, все порты ПИА настраиваются в режим ввода информации.
Кроме того, адресация порта А выбрана таковой, что позволяет
использовать его в качестве интерфейса джойстика, который
может быть подключен, как показано на рис. 32. Джойстик бу-
дет выбираться при нуле на шииах А5, RD, I0RQ, что соответс-
твует адресации KEMPST0N интерфейса.
Принтер подсоединяется к интерфейсу с помощью кабеля
длиной 1,5-2 метра.
Для увеличения нагрузочной способности на выходе интер-
фейса желательно включить буферный элемент, в качестве кото-
рого можно использовать любые ТТЛ микросхемы без инверсии,
например, К155ЛП4, К155ЛП10, К155ЛП11, К555АП5, К555АП6,
К589АП16.
Интерфейс ИРПР - параллельный интерфейс, отличающийся
от CENTRONICS как полярностью сигналов, так и протоколом об-
мена . В упрощенном варианте для работоспособности интерфей-
са, кроме 8-ми информационных тии DATA 0-7, необходимы два
управляющих сигнала:
- SC - строб источника, аналогично сигиалv СТРОБ интер-
фейса CENTRONICS, в низком уровне свидетельствует о досто-
верности информации на шинах DATA 0-7;
- АС - запрос приемника, в состоянии 0/1 сигнализирует
о готовности/неготовности принтера к приему данных, т.е.
аналогичен сигналу ЗАНЯТ интерфейса CENTRONICS.
Сигналы SC и АС связаны между собой следующим образом:
- SC изменяет состояние из лог. 1 в лог. о только при
А С = о, а из лог. 0. в лог. 1 - при АС = 1;
- АС остается в состоянии лог. 1 до тех пор, пока сиг-
нал SC не изменит свое состояние из лог. о в лог. 1.
Несмотря на отличия в протоколах обмена, схема и прог-
рамма поддержки интерфейса CENTRONICS вполне могут работать
с принтерами, оснащеииыми интерфейсом ИРПР. Для этого необ-
ходимо инвертировать информационные линии DATA 0-7 и буфери-
эировать сигнал SC, так как в ИРПР требуются токи нагрузки
около 40 мА. Сигнал АС используется вместо сигнала ЗАНЯТ, а
сигнал SC вместо сигнала СТРОБ. В качестве инверторов и бу-
феров можно применить микросхемы "Исключающее ИЛИ" - К155ЛП5
(Рис. 33). В этом случае, подавая на вторые входы элементов
микросхем лог.1 или лог.0, Вы получите на выходах инвертиро-
ванный или неинвертированиый сигнал. Такии образом. Ваш па-
раллельный интерфейс будет универсальный.
7.1.1. Программа CENTRON I С S.
Програииа поддержки интерфейса "CENTRONICS", приведен-
ная ниже, обеспечивает выполнение коианд LLIST, LPRINT, а,
также, по коианде "RANDOMIZE USR 23370" позволяет получать
"твердую" копию текста с экрана.
5B80 |
20 |
60 |
C5 |
D5 |
E5 |
06 |
08 |
1A |
5B88 |
FE |
FE |
20 |
ОС |
1A |
EE |
FF |
BE |
5B90 |
20 |
10 |
23 |
14 |
10 |
F6 |
18 |
19 |
5B98 |
1A |
BE |
20 |
06 |
23 |
14 |
10 |
F8 |
5BA0 |
18 |
OF |
El |
D1 |
ОС |
79 |
01 |
08 |
5BA8 |
00 |
09 |
CI |
4F |
10 |
D4 |
3E |
20 |
5BB0 |
C9 |
79 |
El |
D1 |
CI |
C9 |
FE |
OD |
5BB8 |
20 |
07 |
E5 |
21 |
FF |
5B |
36 |
00 |
5BC0 |
El |
FE |
20 |
38 |
11 |
F5 |
E5 |
21 |
5BC8 |
FF |
5B |
7E |
2B |
BE |
3E |
OD |
00 |
5BD0 |
00 |
00 |
23 |
34 |
El |
Fl |
C5 |
F5 |
5BD8 |
01 |
BF |
E2 |
CD |
54 |
IF |
D2 |
00 |
5BE0 |
OD |
DB |
5F |
17 |
38 |
F5 |
Fl |
05 |
5BE8 |
05 |
D3 |
3F |
06 |
E3 |
F5 |
3E |
OE |
5BF0 |
D3 |
5F |
3C |
D3 |
5F |
Fl |
CI |
FE |
5BF8 |
OD |
CO |
3E |
OA |
18 |
D8 |
50 |
00 |
5В00 |
FE |
06 |
CA |
19 |
5B |
FE |
16 |
28 |
5В08 |
04 |
FE |
17 |
20 |
2C |
El |
El |
D9 |
5В10 |
El |
F5 |
IF |
30 |
01 |
41 |
78 |
18 |
5В18 |
06 |
F5 |
ЗА |
FE |
5B |
CB |
3F |
21 |
5В20 |
FF |
5B |
96 |
38 |
OB |
El |
C8 |
47 |
5В28 |
3E |
20 |
CD |
Вб |
5B |
10 |
F9 |
C9 |
5В30 |
CD |
F8 |
IF |
Fl |
FE |
06 |
C8 |
18 |
5В38 |
EF |
FE |
A5 |
38 |
05 |
D6 |
A5 |
C3 |
5В40 |
10 |
ОС |
FE |
80 |
38 |
70 |
06 |
01 |
5В48 |
18 |
DE |
OE |
00 |
06 |
00 |
C5 |
C5 |
5В50 |
D5 |
78 |
CD |
BO |
22 |
EB |
CD |
7C |
5В58 |
5B |
D1 |
CI |
CD |
Вб |
5B |
79 |
C6 |
5В60 |
08 |
4F |
FE |
00 |
28 |
04 |
CI |
4F |
5В68 |
18 |
E4 |
Fl |
78 |
C6 |
08 |
47 |
3E |
5В70 |
OD |
CD |
Вб |
5B |
3E |
A8 |
B8 |
38 |
5В78 |
02 |
CO
w |
D3 |
C9 |
21 |
00 |
3D |
01 |
1 OUT 127,136: OUT 95,1: LET а=РЕЕК 23631: LET b=PEEK 23632:
LET c=a+256*b+15: POKE c,0: POKE c+1,91
2 LOAD "CENTRONICS"CODE
3 CLS : PRINT FLASH 1;" +++ CENTRONICS ++ +
4 PRINT AT 5,2; "RANDOMIZE USR 23370 for COPY"
5 PRINT FLASH 1;AT 10,7;"H T К + P L U S +": STOP
6 SAVE "CENTRONICS" LINE 1: SAVE "CENTRONICS"CODE 23296,256
Программа состоит из 2-х частей: на Бейсике и в иашин-
иых кодах ZS0. После старта, Бейсик-програииа загружает коды
и настраивает интерфейс. Коды приведены в распечатке содер-
жииого паияти в шестнадцатиричной (HEX) виде. Каждая строка
распечатки начинается с четырехзначного HEX адреса первого
из восьии HEX байтов, напечатанных в этой строке. Для ввода
програии в иашиниых кодах и сохранения их иа иагнитной лен-
те предлагаеи Ваи воспользоваться програииой HEX ввода, по-
иещенной ниже.
7.1.2. Програииа HEX ввода.
Програииа предназначена для запиои/чтеиия и редактиро-
вания данных оперативной паиятн в шестнадцатиричной виде.
Програииу иеобходиио занести в память компьютера и записать
на леиту коиандой RUN 9999. После старта програииы внизу зк-
рана появляется надпись "Input start address". Необходиио
ввести 4-значный HEX адрес первого байта програииы в машин-
ных кодах, которую Вы будете заносить в паиять компьютера.
После ввода начального адреса програииа выведет на экран
этот адрес, содержащиеся по зтоиу адресу даииые и будет ожи-
дать от Вас ввода новых данных. Введите HEX данные и иажиите
клавишу Enter. Новые данные появятся иа экране. Если нажать
Enter без ввода данных, то Вы перейдете к следующему адресу.
Для перехода к предыдущему адресу используйте клавишу и. Ес-
ли вы закончили ввод даииых, то для сохранения их иа ленте
используйте клавишу S. После коиаиды S ваи иеобходиио ввести
иия програииы, начальный и конечный адрес блоха ходов.
10 CLEAR 32767: PRINT AT 7,11;"НЕХ input"
20 PRINT FLASH 1;AT 11,10;"H T К P L U S"
3 0 PRINT AT 17,11;"Use CAPS LOCK"
40 DIM W$(4)
50 INPUT " Input start address ";W$: GO SUB 400
90 CLS
100 LET D=T: DEF FN A(A$,B)=CODE A$ (В)-48-7*(CODE A$(B)>57)
110 DEF FN C(A$)"16*FN A(A$,1)+FN A(A$,2)
*120 DEF FN G$ (F) -CHRS (F+48+7*(F>9))
130 DEF FN H$(E)-FN G$(INT (E/16))+FN G$(E-16*INT (E/16))
140 DIM A$(2)
150 PRINT " Use ENTER to step forward"
160 PRINT " use U & ENTER to step backwards"
170 PRINT " Use S & ENTER to SAVE code"
180 PRINT
190 PRINT "ADDRESS DATA NEW DATA": PRINT
200 PRINT TAB 2;FN H$(INT (D/256));FN H$(D-256*INT (D/256));
TAB 10;FN H$(PEEK D);
210 INPUT A$
220 LET L-l
230 IF A$(1)-"U" THEN LET—1: GO TO 260
240 IF A$(1)="S" THEN GO TO 290
250 IF A$(1)<>CHR$ 32 THEN POKE D,FN C(A$)
260 PRINT TAB 18;FN H$(PEEK D)
270 LET D-D+L
280 GO TO 200
290 CLS : PRINT "SAVE ";CHR$ 34;: INPUT " Input name
program ";N$: PRINT N$;CHR$ 34;"CODE ";
300 INPUT " Input start address program";W$: GO SUB 400:
LET B-T: PRINT B;'V;
310 INPUT " Input end address program ";W$: GO SUB 400:
LET L-T: PRINT L-B
320 SAVE N$CODE B,L-B: PRINT, FLASH 1;AT 17,16;"END": PRINT
AT 21,3;"For contlnus press any key": PAUSE 0: GO TO 10
400 LET T-0
410 FOR Y-l TO 4
420 LET T-T+16?(4-Y)*(CODE W$(Y)-48-7*(CODE W$(Y)>57))
430 NEXT Y
440 RETURN
9999 SAVE "HEX input" LINE 10
7.1.3. Програииа COPY.
Если Ваш принтер поддерживает графический режим работы,
то его можно использовать для распечатки графических копий
экрана Вашего СПЕКТРУМа. Для этого служит програииа "СОРУ",
приведенная ниже. Программа рассчитана на работу с наиболее
распространенныии, EPSON-совместимыми, принтерани.
COPY
5 CLS : PRINT FLASH 1 ; AT 10,7 ; "H T К + P L U S +"
6 PRINT AT 20,2;"RANDOMIZE USR 23296 for COPY"
10 LOAD "COPY"CODE
20 PAUSE 0: STOP
30 SAVE "COPY" LINE 1: SAVE "COPY"CODE 23296,256
5в80 |
08 |
7е |
90 |
77 |
23 |
23 |
7е |
90 |
5в88 |
77 |
2в |
2в |
с1 |
14 |
10 |
df |
79 |
5в90 |
cd |
d1 |
5в |
79 |
cd |
f7 |
5в |
сс |
5в98 |
d1 |
5в |
е1 |
7е |
d6 |
08 |
77 |
fe |
5ва0 |
47 |
d1 |
30 |
ad |
с9 |
7е |
fe |
80 |
5ва8 |
38 |
04 |
d6 |
80 |
18 |
23 |
cd |
d1 |
5вв0 |
5в |
23 |
18 |
f1 |
cd |
е9 |
5в |
ое |
5вв8 |
21 |
21 |
с6 |
5в |
cd |
f7 |
5в |
28 |
5вс0 |
е4 |
21 |
св |
5в |
88 |
df |
1в |
2а |
5вс8 |
05 |
00 |
82 |
1в |
4в |
00 |
81 |
0d |
5bd0 |
8а |
f5 |
db |
5f |
17 |
38 |
fb |
f1 |
5bd8 |
d3 |
3f |
зе |
fe |
d3 |
5f |
зе |
ff |
5ве0 |
d3 |
5f |
00 |
00 |
00 |
00 |
00 |
00 |
5ве8 |
с9 |
ое |
05 |
0d |
с8 |
зе |
20 |
cd |
5bf0 |
d1 |
5в |
18 |
f7 |
1в |
33 |
97 |
е5 |
5bf8 |
21 |
ff |
5в |
св |
46 |
е1 |
с9 |
00 |
5в00 |
зе |
88 |
d3 |
7f |
зе |
ff |
d3 |
5f |
5в08 |
00 |
00 |
00 |
00 |
00 |
21 |
f4 |
5в |
5в10 |
cd |
а5 |
5в |
06 |
18 |
97 |
cd |
28 |
5в18 |
5в |
зе |
14 |
cd |
f7 |
5в |
cc |
28 |
5в20 |
5в |
05 |
78 |
fe |
02 |
20 |
ее |
с9 |
5в28 |
21 |
37 |
5в |
77 |
cd |
в4 |
5в |
с5 |
5в30 |
78 |
cd |
ее |
od |
ев |
06 |
04 |
14 |
5в38 |
10 |
fd |
cd |
4в |
5в |
с1 |
0d |
79 |
5в40 |
fe |
01 |
20 |
ев |
21 |
с f |
5в |
cd |
5в48 |
а5 |
5в |
с9 |
21 |
6f |
5в |
23 |
36 |
5в50 |
7f |
d5 |
е5 |
21 |
73 |
5в |
23 |
36 |
5в58 |
f9 |
23 |
23 |
36 |
f1 |
cd |
f7 |
5в |
5в60 |
28 |
02 |
36 |
f9 |
2в |
2в |
ое |
00 |
5в68 |
06 |
04 |
28 |
02 |
06 |
08 |
1а |
св |
5в70 |
3f |
28 |
04 |
cb |
в9 |
св |
в1 |
cd |
5в78 |
f7 |
5в |
с5 |
06 |
10 |
28 |
02 |
06 |
Програииа "COPY" вводится в память СПЕКТРУМа аналогично
'програиие "CENTRONICS". Для получения графической копии эк-
раиа необходимо выполнить команду "RANDOMIZE USR 23296".
Программу можно модифицировать:
- РОКЕ 23551,1 - уменьшенная копия экрана;
- РОКЕ 23551,0 - увеличенная копия экрана;
- РОКЕ 23530,х - где х - величина отступа от левого
края ;
- РОКЕ 23542,у - где у от 151 до 156 - размер по верти-
кали.
Программы "CENTRONICS" и "COPY" располагаются в области
буфера принтера, поэтому при выполнении команды "NEW" они
уничтожаются.
Следует отметить, что коды управления графическим режи-
мом работы принтеров разных фирм чаото ие совпадают, поэто-
му для работы с другими моделями принтеров программа должна
быть изменена.