ZX Spectrum a plotr XY4160

Úvod

XY4160 je jedním z mnoha malých plotrů k osmibitovým počítačům, jakých se v letech 198x vyskytovalo na trhu a mezi lidmi mnoho typů. Od ostatních výrobků z východního bloku se ale velmi zásadně liší tím, že má vlastní CPU a je schopen interpretovat jazyk HPGL do značné míry (zcela?) kompatibilní s tehdy drahými a dodnes ceněnými plotry Hewlett Packard (např. 7470A) - soudím podle cen na ebay.com, kde se ceny v současnosti (05/2011) pohybovaly okolo 100 - 400USD plus doprava.

Měl jsem to štěstí jeden takový plotr celým jménem Grafická Jednotka XY4160 - Laboratorní Přístroje Praha objevit, opravit (byl vadný jeden z tranzistorů KD139), zprovoznit a trochu si s ním zaexperimentovat. Žel času není mnoho, ale i tak lepší než nic. Tím spíš, že jsem zkoušel pátrat po jakýchkoli podrobnostech o tomto zařízení a převážně jsem našel pouze dotazy zoufalých majitelů, kteří si s ním nevěděli rady a pár obrázků. Jinak nic. Snad tedy bude tento text někomu k užitku.

Základní vlastnosti

  • formát papíru A4
  • rozlišení 7400 x 10400 bodů na ploše 186 x 258mm, lze softwarově rotovat o 90°
  • rychlost kreslení nastavitelná 50 - 100mm/s (dle manuálu až 120mm/s ale vložený list s opravami chyb uvádí 100mm/s)
  • rozhraní RS232 (V.24), max. rychlost 4800bps, což bohatě postačuje, omezení je hlavně v rychlosti pohybu
  • CPU UB880D (klon Z80), 512 bytů buffer (1kB RAM ve dvou MHB2114), sériové rozhraní MHB8251, UB857 (Z80 CTC), MHB8255 a další podpůrné IO
  • rozhraní RS232 (V.24), max. rychlost 4800bps, což bohatě postačuje, omezení je hlavně v rychlosti pohybu
  • počet per 1
  • upevnění pera v držáku se závitem kompatibilní s pery Centrograf 1060
  • pohon pera lankem, podobné známému Alfigrafu, ale kvalitněji provedené
  • přítlačný magnet přímo na vozíku s perem, plotr je díky tomu tišší než Aritma 0507

Oproti plotru Aritma 0507 je kromě interpretace HPGL plotr o něco rychlejší, tišší a navzdory znatelné vůli pera na vozíku přesnější. Kresba je o trochu méně zubatá, což je vidět hlavně na obloucích a kružnicích. Nicméně podle jednoho článku ze starého ZX Magazínu ani tak nedosahuje kvalit plotrů Hewlett Packard 7470, jejichž kresba údajně není viditelně zubatá vůbec. Bohužel jsem je dosud v provozu neviděl.

rozhraní RS232 mohlo být v době prodeje plotru a pro uživatele osmibitových počítačů (1988 - 1990?) spíš potíží, význam pro tehdejší uživatele PC nedovedu posoudit. U osmibitových počítačů a zvláště u ZX Spectra nebylo rozhraní RS232 obvyklé. ZX Spectrum 128k, sice RS232 port obsahuje, ale má značně nestandardní konektory a řízení signálů je softwarové, takže vyžaduje značnou režii CPU počítače při přenosu dat. Tím se zcela ztrácí výhody vlastního CPU v plotru. Ani u ostatních počítačů nebývalo připojení zcela bezproblémové (neobvyklé/nesehnatelné konektory, nezvyklé rozložení vývodů, proudová smyčka místo napěťových úrovní ...). Navíc plotr musel být v době prodeje díky svým vlastnostem drahý (věřím, že i tak znatelně levnější než plotr Hewlett Packard v té době). Zřejmě nejenom díky tomu se jedná o zařízení poměrně raritní.

Dnes máme mnoho PC s RS232, USB redukce a i u ZX Spectra máme kvalitní RS232 interface SIF, takže nic nebrání připojení plotru skoro k čemukoli.

foto foto foto

Na prvním snímku si můžete všimnout přemostění na desce. Zřejmě opravená výrobní chyba. A samozřejmě impozantních nepřehlédnutelných elektrolytických kondenzátorů. (Ne, plotr opravdu není schopen dokreslit kresbu i po odpojení ze sítě :-))

Na dalších dvou jsou vidět konfigurační přepínače neprakticky umístěné pod krytem (nastaveno 4800bps, 1, N), dále podivné nestandardní konektory pro připojení krokových motorů a koncových spínačů. Manipulace s konektory je naprostou zoufalá, protože na nich připájené drátky od krokových motorů se velmi snadno lámou, skoro stačí se na ně zle podívat. Pájel jsem je zpět nejméně 10x. Koncové spínače jsou dva, na každém konci dráhy vozíku jeden.

foto foto foto

Na levém snímku je vidět kousek pohonu vozíku. Vozík je tahán lankem omotaným okolo hřídele - spíš černý plastový válec součástí ozubeného kola, kterým otáčí jeden z motorů. Na druhé straně je kladka s kuličkovým ložiskem. Povolením šroubu a posunutím kladky lze lanko trochu napnout. Principielně totéž jako Alfigraf, jen provedení je kvalitnější.

Nakonec snímek sestaveného plotru a jeho výrobní štítek. Obliba hliníkových štítků s vyraženými údaji je pro toto období a tuzemskou výrobu typická.

Připojení

K připojení je nezbytné sériové rozhraní RS232, nejlépe s HW řízením toku dat. Plotr sice umí i SW řízení toku Xon/Xoff (zmíněno v manuálu), ale nezkoušel jsem ho zprovoznit.

Rozmístění vývodů a signálů na konektoru je zcela standardní, pro orientaci viz obrázek.

foto

konektor 9 pin konektor 25 pin

Standardní zapojení DTE-DTE

Připojení se ovšem neobešlo pez potíží. Nejprve jsem použil standardní 8 žilový kabel DTE-DTE (9pin - 25pin) určený k propojení dvou PC. Pro srovnání viz tabulka. S tímto kabelem plotr přijímá data, ale nefunguje HW řízení toku dat, takže se někdy v průběhu kreslení (brzy) zaplní paměť plotru a komunikace se zasekne, nebo začne plotr kreslit nesmysly. Ekvivalentní zapojení kabelu (9pin - 9pin) používám ke komunikaci mezi PC a ZX Spectrem s interface SIF a vše funguje korektně oběma směry.

nakres kabelu

Manuálem plotru doporučené zapojení

Zkusil jsem zpřeházet vodiče podle dodatku k manuálu (viz druhý obrázek s nascanovanou kresbou), kde je nakreslené opravené zapojení kabelu pro dva 25 pinové konektory. Ale ani toto zapojení nepomohlo. HW řízení toku s takto zapojeným kabelem prý Linux podporuje, ale nikoli pomocí nastavení stty. Musel bych si napsat vlastní obslužný program. A jelikož jsem chtěl kreslit prostým odesláním dat pomocí cat soubor > /dev/sériák, tak nezbylo než pátrat dál.

nakres kabelu scan

Funkční zapojení?

Kolega naštěstí dohledal, že se zřejmě jedná o starý a zjednodušený způsob řízení toku dat používaný mimo jiné v DOSu a do určité míry se dá problém obejít zapojením signálů DTR - CTS, čímž se oklikou dostávám zpět k původnímu zapojení z manuálu k plotru před opravou vloženými listy. Podle zmínek v různých diskuzních fórech jsem určitě nebyl jediný, kdo na problém narazil. Většinou se problémy týkaly starých terminálů a tiskáren všeho druhu.

nakres kabelu

Problémy s onboard sériovými porty v PC zůstaly, ale pomohlo to při komunikaci přes USB - RS232 konvertor Prolific a se SIFem, což je důležité. S tím přenos fungoval spolehlivě, data se přestala ztrácet. Vyzkoušel jsem to na několika hodně složitých kresbách i programech, které data generovaly.

Sériový port jsem na Linuxu nastavoval takto

stty -F /dev/ttyS0 4800 cs8 clocal cread -cstopb -parenb parodd crtscts raw

Resp. později takto pro výchozí konfiguraci přepínačů - tj. 4800bps, 2 stop bity, žádná parita.

stty -F /dev/ttyS0 4800 cs8 clocal cread cstopb -parenb parodd crtscts raw

Analogicky jsem nastavoval i SIF, viz zdrojový kód jednoduchého obslužného programu.

Pisátko

Upevnění pera je velký problém. Nechcete-li devastovat historický artefakt, tak nezbývá než sehnat něco s kompatibilním závitem a upevnit nějaké pisátko do vyrobené redukce. Nechám na vaší fantazii.

Pro svou potřebu jsem použil jedno z per Centrograf 1060 a zdevastoval ho. Nalil jsem dovnitř Dentakryl (po zatuhnutí je velmi odolný a dobře se obrábí), čímž jsem prostor vyplnil a následně jsem do něj vyvrtal otvor tak, aby se dovnitř dala nasunout náplň z kuličkových gelových per a zajistit zašroubováním vrchního dílu, kde je malý špunt s pružinkou. Výsledkem je prakticky obyčejná propiska s vyměnitelnou náplní, která jde snadno a bez problémů našroubovat do plotru.

Bohužel, když jsem zkusil pero Centrograf koupit nedávno nové (tmavomodré a hranatější), tak mělo velmi podobný (na pohled stejný) leč nekompatibilní závit. Začalo drhnout po několika otáčkách a málem jsem ho nedostal ven bez poškození plotru. Zkoušejte opatrně, dovnitř jsem ho nešrouboval silou a přesto šlo ven špatně. Podobný problém jsem měl i s velmi starými pery z černého plastu. Pouze ta zelená jako na fotkách pasují perfektně.

foto foto

Gelové náplně se mimochodem osvědčují skvěle, stejně jako u plotru Aritma 0507, píší tence a spolehlivě i když na začátku čáry je vidět velmi krátký úsek, než pero psát začne. Problém asi všech kuličkových pisátek. Trubičkové pero s tuší jsem (před lety) zkoušel taky, ale hrubě se neosvědčilo. Inkoust protékal špatně, nebo příliš, nepomohlo ani použití více druhů inkoustu, ani experimentování s různými průřezy trubiček. Znovu to zkoušet nehodlám, matlání s inkoustem mne opravdu nebaví.

Ovládání plotru

Nechci jedním článkem nahrazovat rozsáhlý manuál, ale protože to bez informací nejde a rozhodně nemám čas převádět manuál do elektronické podoby, tak zkusím vypsat alespoň pár nejzákladnějších příkazů a další informace potřebné k jednoduchému kreslení.

Manuální ovládání tlačítky

Po zapnutí bliká zelená LED a plotr je připraven ke vložení papíru, lze nasunout/vysunout pomocí tlačítek s šipkami nahoru a dolů.

Po vložení papíru zmáčkněte CNT na plotru a ten se přepne do režimu digitalizace - bliká žlutá LED, zde lze ručně nastavit rotaci os stiskem SH + PEN - signalizováno rozsvícením zelené LED.

Stiskněte CNT ještě jednou a teď je plotr připraven přijímat data, svítí jen power LED, případně ERR, pokud někdy předtím chyba nastala. Mačkáním CNT v tomto režimu můžete plotr přepínat do režimu náhledu, signalizováno blikáním žluté i zelené LED současně a zase zpátky do režimu kreslení. Přepnutí do náhledu během kreslení způsobí zvihnutí pera a najetí na souřadnice [0,0], aby byla vidět celá kresba.

Na začátek do režimu vkládání papíru se lze dostat současným stiskem tlačítek SH a CNT v režimu náhledu.

Pokud budete během zapnutí držet tlačítka P1 + P2, tj. od okamžiku překlopení zapínací páčky až do režimu vkládání papíru, tak se po vložení papíru a následném dvojím stisknutí CNT (jako vstup do režimu kreslení) nakreslí demostránka.

Nejzákladnější příkazy HPGL

Všechny příkazy popisuje manuál o 100 stránkách, takže následující tabulka je opravdu to nejnutnější minumum. Hodně příkazů se týká psaní textu a parametrů písma, plotr umí 8 sad písma (včetně řeckých písmen a azbuky), pár příkazů kreslí obchodní grafiku, jako např. sloupcové a koláčové grafy s různým šrafováním a pod.

Dokonce lze plotrem provádět "digitalizaci", což znamená, že uživatel ručně pomocí tlačítek na ovládacím panelu posouvá pero a jeho polohu může dalším tlačítkem potvrdit. Souřadnice potvrzených poloh pera je pak možné odeslat do počítače.

příkazpříkladfunkce
ININ;inicializace
SPSP1;set pen, výběr pera, s XY4160 nedělá nic
RORO0; RO90;rotace, lze rotovat jen o 90°, nebo vůbec
PUPU;PU100,100;pen up - zdvihnout pero, případně se zdviženým perem pohyb na zadané souřadnice
PDPD;PD100,100;pen down - položit pero, případně se položeným perem pohyb na zadané souřadnice
PAPA500,300;pen absolute - pohyb perem na absolutní souřadnice, je-li zdvižené/položené, tak zůstane jak bylo
PRPR10,40;pen relative - pohyb perem na relativní souřadnice od poslední polohy, je-li zdvižené/položené, tak zůstane jak bylo
CICI200;circle - nakreslí kružnici okolo aktuálních souřadnic, vždy položí pero při kreslení kružnice bez ohledu na předchozí stav

Mezi příkazy mohou být mezery, tabulátory, konce řádku, ale vše bude ignorováno. Desetinná čísla plotr zaokrouhluje. Pokusy o kreslení mimo pokreslitelnou plochu plotr detekuje rozsvícením žluté LED (OW) a kreslení pozastaví na tak dlouho, dokud nezačnou přicházet příkazy se souřadnicemi v pokreslitelné ploše, fatální chyby v syntaxi způsobí rozsvícení červené LED (ERR) a většinou se plotr vzpamatuje, občas je nutné ho vypnout a "restartovat".

Je třeba vědět, jak je orientovaná souřadnicová soustava - po zapnutí plotru je bod [0,0] v levém horním rohu papíru a [10400, 7400] v pravém dolním rohu. Kresbu lze přeorientovat příkazem RO90;, jiné úhly než 90°fungovat nebudou, příkaz to sice umožňuje, ale plotr to neumí.

scan scan

Příklady

Následující příklad nakreslí obdélník okolo celé plochy, kterou lze pokreslit.

IN;
PU0,0;
PD10400,0;
PD10400,7400;
PD0,7400;
PD0,0;
PU;

Další příklad nakreslí tři kružnice uprostřed stránky a vrátí se do výchozí polohy.

IN;
PU5200,3700;
CI1000;
CI2000;
CI3000;
PU0,0;

Připojení k ZX Spectrum přes SIF

S připojováním plotru jsem samozřejmě nemohl skončit u PC. U ZX Spectra je situace o maličko komplikovanější, protože aby bylo možné kreslit přímo z BASICu, je nejprve potřeba přesměrovat správně kanál 3 a také převádět čísla na textový řetězec.

Zapojení kabelu viz výše. Připojení k zabudované RS232 v ZX Spectrum 128 jsem zatím nezkoušel, možná jindy.

Ovládání plotru ze Sinclair BASICu

K přesměrování dat na sériový port postačí velmi krátká rutina, která nastaví SIF a přesměruje na něj data poslaná do kanálu 3, tj. příkazy LPRINT a LLIST. Ovšem bez detokenizace funguje jen LPRINT. Přesměrovávač je ke stažení na konci článku. Po instalaci přesměrovávače stačí příkazem LPRINT posílat přímo HPGL kód a plotr kreslí. Kód může vypadat např. takto, pro ilustraci s použitím proměnné místo čísel.

10 LET X=7400
20 LET Y=10400
30 LPRINT "IN;PU0,0;PD";y;",0;PD";y;",";x;";PD0,";x;";PD0,0;PU;"

Další ukázky pro inspiraci...

A to je prakticky vše, zbytek záleží na zručnosti uživatele. Nakonec ještě dvě ukázková videa běžících programů.

Odkazy

Download

Opravené chyby a aktualizace

  • 15.5.2011 zveřejněno
  • 18.5.2011 drobné opravy a doladění textu

[ Zpět na hlavní stránku ]

Cygnusova stránka o ZX Spectru a kompatibilních počítačích byla napsána (přepsána) výhradně pomocí svobodného Open Source softwaru. V případě že naleznete chybu, nebo byste rádi cokoliv co se ZX Spectrem souvisí, neváhejte mi napsat na některý z mých emailů, nebo pracovně do zaměstnání. Stručně o mém webu se můžete dočíst zde.