Jiiirův Universal Parallel Interface (UPI)
Nová UR-4 se už sehnat nedá, ale připojit Kempston joystick, tiskárnu, AMouse, nebo D/A (A/D) převodník je stále docela fajn. Jiiira proto navrhl plošný spoj kompatibilního interface lehce přizpůsobený použití u jeho klonu ZX Spectra Sparrow.
Interface UPI (Universal Parallel Interface) se liší v několika zásadních detailech.
- Má úplnou 8 bitovou adresaci, porty 31, 63, 95 a 127 se nezrcadlí.
- Obsahuje konektor Canon zapojený podle "standardu" Special Didaktik B, který je podporován v mnohém tuzemském softwaru.
- Obsahuje vypínatelný konektor pro joystick, kvůli variantě 8255 od výrobce Intersil a kvůli tomu, aby se dal joystik snadno vypnout v případě, že by z nějakého důvodu ovlivňoval fungování připojené periferie (např. D/A převodníku).
- Obsahuje mnohem běžnější IO konektor s více vývody, který je na prvních pinech identický s UR-4 a na pinech navíc poskytuje pár invertorů, které jsou občas užitečné pro některé periferie.
- Neobsahuje stabilizátor napětí, kvůli možnosti připojení k počítačům s pouze 5V napájením na sběrnici a kvůli Sparrow, které má na sobě spínaný stabilizátor schopný poskytnout větší proudy.
- Snadněji se osazuje do Jiiirovy roztrojky.
Zapojení universálního IO konektoru
Konektor je o něco delší než byly konektory UR-4 a Didaktiků, ale základní signály jsou rozmístěné stejně, kde to jen bylo možné.
vývod | signál | vývod | signál |
---|---|---|---|
1 | PA0 | 2 | PA1 |
3 | PA2 | 4 | PA3 |
5 | PA4 | 6 | PA5 |
7 | PA6 | 8 | PA7 |
9 | PB0 | 10 | PB1 |
11 | PB2 | 12 | PB3 |
13 | PB4 | 14 | PB5 |
15 | PB6 | 16 | PB7 |
17 | PC3 | 18 | PC2 |
19 | PC1 | 20 | PC4 |
21 | PC5 | 22 | PC7 |
23 | PC6 | 24 | GND |
25 | PC0 | 26 | key (zaslepeno) |
27 | GND | 28 | GND |
29 | +5V | 30 | +5V |
31 | invertor 2 - in | 32 | invertor 1 - in |
33 | invertor 2 - out | 34 | invertor 1 - out |
35 | nc | 36 | invertor 3 - in |
37 | nc | 38 | invertor 3 - out |
39 | nc | 40 | nc |
Při pohledu na konektor, když je deska dole, jsou sudé vývody nahoře a liché dole, blíž plošnému spoji, vývod jedna je vlevo. Vývod 26 by měl být zaslepený a slouží jako zámek.
Zapojení konektoru pro joystick
vývod | bit | Kempston joystick | Amiga Myš |
---|---|---|---|
1 | 3 | nahoru | osa Y2 (YB) |
2 | 2 | dolů | osa X1 (XA) |
3 | 1 | vlevo | osa Y1 (YA) |
4 | 0 | vpravo | osa X2 (XB) |
5 | 6 | tlačítko 3 | tlačítko 3 (prostřední) |
6 | 4 | tlačítko 1 | tlačítko 1 (levé) |
7 | +5V | +5V | |
8 | GND | GND | |
9 | 5 | tlačítko 2 | tlačítko 2 (pravé) |
Zapojení je shodné s UR-4, pouze jsou navíc zapojena všechna tři tlačítka. U joysticku se druhé a třetí tlačítko vyskytuje vzácně, mnoho joysticků má dvě tlačítka spojená paralelně, takže fungují jako jedno. U myší bývají běžně tlačítka dvě, někdy i třetí (ale např. moje AMouse má třetí tlačítko nezapojené). Na bitu 7 interface trvale vrací 0, je-li joystick aktivován přepínačem, protože se tento bit občas používá k detekci přítomnosti interface. Software by ovšem měl vždy umožnit volbu.
Čte se tradičně na portu 31. Po resetu počítače se 8255 nastavuje do režimu "všechny porty vstupní", takže je možné rovnou port číst, stejně jako s jednoduššími rozhraními pro Kempston joystick.
Ovládání
Stejné, jako ovládání UR-4 a kompatibilních interface. Detailnější popis viz datasheet výrobce některé z variant 8255.
Tiskárny a Special Didaktik B
Tohle je asi nejzajímavější odlišnost UPI od předchozím variant interface s 8255. V minulosti se používaly možná i desítky způsobů zapojení a samozřejmě nic nebrání je používat nadále. Ale Special Didaktik B je poměrně dobrým kompromisem pro připojení modernějších tiskáren s paralelním portem (konektorem Centronics) aniž by zapojení kolidovalo s Kempston joystickem, nebo Amiga myší. Zároveň se vyhýbá použití portu C0, takže nekoliduje se stránkováním paměti Didaktiku Gama (lze použít stejný software) a nepoužívá /STROBE generované přímo 8255 jehož doba trvání není zaručena a pro některé tiskárny je příliš krátký.
S interfacem UPI a vhodným softwarem lze spoustu tiskáren připojit nejobyčejnějším Centronics kabelem, není potřeba vyrábět speciální pro každou tiskárnu zvlášť, není ani potřeba kabel tiskárny přizpůsobovat interface u ZX Spectra atd... díky konektoru navíc je to celé jednodušší a levnější.
Se zapojením Special Didaktik B přinejmenším pracuje software Proximy, k němuž jsou dostupné ovladače pro některé tiskárny (z modernějších určitě 9 a 24 jehličkové Epsonky). Je s ním vyzkoušený můj PCL ovladač k tiskárnám HP a aktuálně se pokoušíme dát dohromady seznam toho, co funguje.
Zapojení konektoru pro tiskárnu
vývod DSUB | signál obvodu 8255 | signál rozhraní Centronics |
---|---|---|
2 | port B0 | data bit 0 |
3 | port B1 | data bit 1 |
4 | port B2 | data bit 2 |
5 | port B3 | data bit 3 |
6 | port B4 | data bit 4 |
7 | port B5 | data bit 5 |
8 | port B6 | data bit 6 |
9 | port B7 | data bit 7 |
1 | port C3 + inv. | /STROBE |
11 | port C7 | BUSY |
17 | jumper SEL_IN | /SELECT |
18 - 25 | GND | GND |
Z článků o paralelním portu a připojení tiskáren k PC je vidět, že ZX Spectrum používá signály jen nezbytně nutné k přenosu dat. Signál SELECT na vývodu 17 nelze ovládat, ale volitelně připojit propojkou na GND, některé tiskárny údajně ignorují data, pokud nemají tento signál aktivní (tj. v log. 0).
- HwB - zapojení paralelního kabelu k PC tiskárně
- Wikipedia - článek o paralelním portu (EN)
- Wikipedia - článek o paralelním portu (CZ)
Jak poslat data tiskárně
Nejjednodušší způsob, jak poslat tiskárně data je např. napsat následující BASICový program. Bude pomalý, ale bude to pravděpodobně fungovat na všech tiskárnách, které umí přijímat ASCII znaky. Většina starých tiskáren znaky vytiskne některým z vestavěných písem. Nezáleží, jestli pro grafický tisk používá ESC/P, nebo PCL. Pozor na to, že tento program nijak neřeší připravenost tiskárny, tedy netestuje stav PC7. Je tak pomalý, že to téměř není potřeba. Leda by byla tiskárna offline. První spuštění proveďte RUN 9000, opakované spuštění pak od řádku 10.
10 LET t$="nejaky text" 20 FOR n=1 TO LEN (t$) 30 LET znak=CODE (t$(n)) 40 GO SUB 1000 50 NEXT n 60 GO SUB 1100 70 GO SUB 1200 999 STOP 1000 REM *** posli znak *** 1010 OUT 63,znak 1020 GO SUB 2000 1030 RETURN 1100 REM *** posli CRLF *** 1110 OUT 63,13 1120 GO SUB 2000 1130 OUT 63,10 1140 GO SUB 2000 1150 RETURN 1200 REM *** posli FORMFEED *** 1210 OUT 63,12 1220 GO SUB 2000 1250 RETURN 2000 REM *** udelej STROBE *** 2010 OUT 95,255 2020 OUT 95,0 2030 RETURN 9000 REM *** init 8255 *** 9010 OUT 127,152 9020 GOTO 10
Analogicky v assembleru popsáno v článku o tiskárnách Deskjet, v odstavci "Posílání dat do tiskárny".
Software
Pro tiskárny používající PCL a kompatibilní.
- detailní článek popisující tisk na tiskárnách HP Deskjet a HP Laserjet - původně psaný pro UR-4 a zapojení Special Didaktik A
- tisk_inkjet_desktop.tar.bz2 - ovladač do textového editoru Desktop upravený pro Special Didaktik B
Historie změn článku
- 2016-04-04 - zveřejněno