ZX Spectrum a tiskárna Aritma 0507

Úvod

Aritma 0507 je malý perový plotr, který se kdysi vyráběl k československým počítačům IQ151, PMD a byl připojován prakticky ke všem tehdy dostupným osmibitům a později i k PC. Vyrábělo se několik verzí lišících se drobnými detaily. Např. v oranžové barvě jako IQ151, s různými rozdíly v uchycení pera atd...

foto foto foto

Zapojení

Připojuje se nejčastěji na port 63 - interface UR-4 nebo jakýkoli jiný, protože se prostě používá jen 8 výstupních bitů bez dalších možností 8255. Na portu 63 pracují dva nejpoužitelnější obslužné programy Desktop a MZXR a pravděpodobně i všechny ostatní, nebo je lze snadno upravit.

pin
UR-4
signál rozhraní
8255
signál rozhraní
Aritma 0507
pin
Aritma
9B0X110
10B1X29
11B2X48
12B3Y14
13B4Y23
14B5Y42
15B6nc-
16B7pero5
24,27,29GNDGND1,11

konektor Aritma 0507

Konektor pro připojení kabelu je stejný jako pro připojení periferií ke sběrnici ZX Spectra, jen kontaktů je pouze 12 a ještě na pozici 7 je zámek a význam má jen spodní řada, na horní straně desky plotru kontakty nejsou.

Drobnou zvláštností je řízení plotru. V době, ze které Aritma 0507 pochází bylo u hodně levných plotrů zvykem řídit krokové motory přímo počítačem, obvykle 4 bity pro každý motor. Aritma 0507 má v sobě logiku, která generuje signály pro krokové motory z binárních čísel 0 - 7, které se nastavují na X1, X2, X4 (resp. Y1, Y2, Y4). Plotr je složitější a tehdy možná i citelně dražší (četl jsem dobový článek, kde si na to pisatel stěžoval), ale zase si vystačí s jedním osmibitovým portem v počítači (velmi důležitá úspora) a má o dva propojovací dráty v kabelu míň. Další zvláštností je posun pera pomocí šroubu, což je spolehlivé a velmi přesné, zatímco levné plotry (Alfigraf a jeho klony ...) používaly tažná lanka.

Software

K plotru se dodával program MZXR, který kreslí výhradně vektorově. Bohužel používá vlastní tiskový jazyk, který se vzdáleně podobá HPGL, ale není kompatibilní. Tím pádem jsou kresby vytvořené na ZX Spectru nepřenosné jinam a naopak nelze na ZX přímo tisknout kresby ze souborů PLT (obvyklá přípona pro HPGL kód). To je bohužel poměrně velká nepříjemnost.

Na druhou stranu lze tímto programem velice pohodlně tisknout cokoli, co lze poslat na kanál #3, který je pro tisk používán v Basicu. Např. výpisy Basicových programů (LLIST), obsah disket (na Betadisku LIST #3 z TRDOSu), nebo prostě jen text příkazem LPRINT. Jedinou podmínkou je, že se tištěná data musí nějak vměstnat do RAM spolu s programem MZXR, který je po načtení sice relokovatelný, ale přesto zabírá nezanedbatelných 2848 bytů (3160 bytů má program před relokací).

Tisknutelná oblast je v programu MZXR 188x263mm, v Desktopu pak 1440x2160 kroků, přičemž jeden pixel je ve výchozím nastavení veliký 3x3 kroky. V krajním případě lze MZXR upravit a plochu rozšířit až na 200*270mm, ale pozor na to, že pak tisk zasahuje do míst, kde jsou gumová kolečka posuvu papíru a ta mohou pomalu schnoucí inkoust obtiskávat po délce papíru.

Tiskový program MZXR

Jen stručně, nechci nahrazovat manuál, ale jelikož sám manuál nemám a leccos jsem musel zjišťovat zdlouhavým experimentováním, průzkumem demo programu a disassemblováním kódu, tak napíšu alespoň pár základních detailů.

Nejprve je nutné program inicializovat. To se děje buď po načtení a relokování na zadané místo, nebo to musí uživatel udělat ručně po příkazu NEW, protože tím se vymaže nastavení přesměrovaných kanálů. Inicializace se provádí příkazem RANDOMIZE USR adresa_programu. Je asi vhodné toto provést až po inicializaci Betadisku, pokud je používán, protože i Betadisk posouvá Basic a zvětšuje systémové proměnné o pár vlastních, ale nepozoroval jsem problémy, pokud je pořadí opačné.

screenshot screenshot screenshot
příkazvýznam
IMinicializace kreslení perem
ISinicializace kreslení na obrazovku - náhled tisku
PUpen up, zdvižení pera
PDpen down, položení pera na papír
PIkreslení přerušované čáry
MAmove absolute, posun na zadané souřadnice s perem dle předchozího nastavení, může být zdviženo, položeno, nebo kreslit přerušovanou čáru (třeba čárkovaně, čerchovaně ...)
MRmove relative, posun o zadané hodnoty, jinak stejné jako MA
MUpřesun na zadané souřadnice se zdviženým perem
SUnastavuje omezení pro tiskovou oblast podle polohy pera
SMnastavuje omezení pro tiskovou oblast podle polohy pera
SInastavení kombinace přerušování čáry
SWset write, nastavení písma, jeho velikosti sklonu, poměru výšky a šířky ..., první parametr je velikost písma, poslední náklon
WRwrite, psaní textu, kde je pero bude levý dolní roh písmena
CIcircle, kreslení kružnic
CStisk obsahu obrazovky

Před samotným zahájením tisku je dobré plotr inicializovat příkazem IM, nebo alespoň umístit pero na výchozí souřadnice příkazem MA. Výchozí souřadnice pro text mají hodnotu Y osy 263 - výška řádku.

Jednoduchý program, kreslící rámeček může vypadat třeba takto. Složitější viz demo.

10 PRINT #7,IM,MA,0,0
20 PRINT "VLOZTE PAPIR"'"pero v levem dolnim rohu": PAUSE 0
30 PRINT #7,PD;MA,188,0
40 PRINT #7,MA,188,263
40 PRINT #7,MA,0,263
40 PRINT #7,MA,188,0
40 PRINT #7,PU

Je-li víc příkazů na jednom řádku, oddělují se středníkem. První příkaz musí být oddělen čárkou, stejně tak všechny parametry. Souřadnice jsou v mm a mohou být desetinné, pak se používá desetinná tečka.

Parametrem příkazů mohou být proměnné i výrazy. Lze tak snadno používat cykly a různé funkce, opět viz demo, kde to je několikrát použito.

Ukázky vektorového tisku

Takto vypadá vektorový výtisk dema MZXR s 0,5mm černým gelovým perem.

scan tisku

Snažil jsem se, aby bylo vidět maximum, protože na internetu se ukázky výtisku ze starých tiskáren skoro nedají najít, ale bohužel nemůžu na server umístit mnoho desítek MB veliký soubor, takže alespoň takto. Přiložené pravítko je pro představu o skutečných rozměrech tisku, obrázek byl scanován v 600dpi a poté zmenšen na 300dpi a převeden do odstínů šedé.

Obrázek je úmyslně scanován tmavší, aby vynikla textura papíru, který je ovšem za normálního osvětlení na pohled zcela bílý.

Všimněte si šířky rámečku podle pravítka (cca 149,7mm) a hodnoty v programu 150.

Tiskový ovladač v Desktopu

Desktop, jeden z nejlepších programů pro ZX Spectrum, které existují. Editor, který v pouhých 48kB RAM dokáže zpracovat docela dlouhé komprimované texty kombinované s vloženými obrázky a to celé zobrazuje tak, jak bude vytištěno, tj. je skutečně a stoprocentně WYSIWYG do posledního pixelu. Na osmibitech unikátní záležitost a do značné míry neobvyklá i na PC v době, kdy Desktop vznikal (1991 - 1992?).

Aby toho nebylo málo, tak Desktop dokáže pracovat s poměrně velkým množstvím tiskáren a to často v mnoha různých zapojeních. Aritma 0507 více variant zapojení nemá, ale tím je spíše výjimkou, zato nastavení má možností o něco víc.

screenshot

Kvality tisku se týká velikost kroku (step), nastavení kvality (quality), nastavení rychlosti (speed) a položka reverse. Step říká kolik kroků plotr udělá pro každý jednotlivý pixel, hodnota se pohybuje někde mezi 2 - 5. Při 2 je písmo hodně titěrné i pro velmi kvalitní a tenká pera, pro běžné 0,5mm kuličkovky je vhodná 3 - 4, pro mikrofixy 0,5mm 4 - 5, protože se více rozpíjejí. Krok 1 se mi neosvědčil, jednak to těžko zvládají i jinak velmi dobré kuličkové gelovky od Pilotu a hlavně v Desktopu je nějaká chyba a tiskne chybně.

Speed udává velikost zpomalení, pokud plotr ztrácí kroky (mikrořádky jsou různě posunuté), tak se vyplatí hodnotu zvětšit, někdy stačí málo, příliš velká hodnota znamená výrazně delší čekání na výsledek.

Reverse udává o kolik kroků níž se bude tisknout zpětný běh při nastavení lepší kvality. Např. při velikosti kroku 4 je vhodné nastavit reverse 2, pero se tak pěkně trefí mezi dva mikrořádky a barevné plochy budou hezky pokryté.

scan tisku

Prvních 5 řádků je tištěno s nastavení Quality = better. Step xy je nastaven shora na 2x2, 3x2, 3x3, 4x4 (reverse 1), 4x4 (reverse 2). Všimněte si jaký význam má reverse u dvou řádků 4x4, když se pero trefí správně doprostřed mezi mikrořádky.

6. až 8. řádek jsou vytištěné s Quality = normal a opět s různými kroky, tentokrát 2x2, 3x3 a 4x4. Reverse nemá smysl, při zpětném běhu plotr kreslí následující mikrořádek s jinými pixely.

Poslední řádek textu je pro změnu vykreslen mikrofixou Centropen s nastavením Quality = better, step 4x4 a reverse 2. Na první pohled je barva více rozpitá a ztrácejí se tenké linky, kde barva být nemá. Ve skutečnosti, což na scanu vidět není, je tisk viditelně méně kontrastní a spíš tmavošedý.

Obrázek byl scanován v 600dpi a poté zmenšen na 300dpi a převeden do odstínů šedé ... přesně stejně jako obrázek vektorové kresby.

Bohužel rastrový tisk na perovém plotru je velice pomalý a hlučný, pomalejší a hlučnější než jednojehličková BT-100.

Odkazy

Download

Zatím je tu ke stažení jen program MZXR, ale připravuji disassemblované a okomentované zdrojáky obou tiskových ovladačů. Aktuálně jsou oba analyzovány jen z části a zbývá ještě leccos okomentovat, oba je možné zkompilovat a výsledek je plně funkční.

Opravené chyby a aktualizace

  • 1.1.2009 zveřejněno
  • 19.5.2011 doplněny fotografie plotru
  • 1.6.2013 přidán manuál ke stažení - scanoval TAU, já vyčistil stránky, seřadil, ořezal, zabalil

[ 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.