Používáme osmibit seriózně: vývoj hardware na ZX Spectru

Objevil se dotaz, zda bych nemohl přiblížit problematiku kreslení desek a programování GALů na Spectru. Tímto rozšiřuji “seriózní” činnost na počítači o hrátky s hardware.

Kdo si chce vyrobit nějaký hardware, měl by mít možnost nakreslit si plošný spoj, naprogramovat EPROMku a případně i GAL.

Všechny tři činnosti lze realizovat na ZX Spectru.

K programování EPROM slouží samozřejmě programátory EPROM.
ZX Spectrum není samo samozřejmě programátorem EPROM vybaveno, je potřeba si ho postavit.
Většina těch československých byla realizována pomocí obvodu 8255 – díky třem branám bylo možné programovat EPROM do nepotřebně velké kapacity (pokud se na dvou branách nastavila 16bitová adresa a na třetí bránu se poslala data, v praxi byly ale některé výstupy použity pro zapisovací impulsy a podobně).
Několik návodů, s potřebným softwarovým ošetřením, vycházela v Amatérském rádiu (AR A 7/1990, strana 263) i třeba v Mikrobázi (01/1988), svou vlastní konstrukci si vyvinul kdekdo.
Co se softwarového vybavení programátorů týče, většinou  jde o program v Basicu, občas doplněný nějakou tou krátkou rutinkou ve strojáku. Funguje to, dají se v tom dělat úpravy, ale optimalizace není většinou na to, aby se to snadno používalo a umělo to hodně věcí, ale spíš na to, aby se to dalo z časopisu do počítače překlepat v minimálním čase.
O tom, že jsme v tom nebyli sami, ale i třeba Němci či Španělé otázku programování EPROM řešili, se lze přesvědčit na WOSu třeba zadáním dotazu “EPROM”.
(Mimochodem za nejzdařilejší programátor EPROM vůbec považuju QEP-III pro Sinclair QL, a to díky ďábelsky dokonalému ovládacímu software od Tony Tebbyho, však je o něj mezi QLkáři pěkná fackovačka.)

Kromě programování EPROM je možno programovat ještě Flash ROM, ale to je záležitost spíš novější doby.
Z dostupných možností lze zmínit Velesoftův Profi Interface, který umí programovat 512 kB Flash ROM přímo ve Spectru (a rovnou používat 16 kB stránky této flashky jako ROM).
Programovat lze rovněž Flash ROMku umístěnou do cartridge ZXC3, určené pro ZX Interface 2.
  nebo umístění programovatelné Flash ROM AT29C512 nebo AT29C010 místo původní EPROM do MB-02+ (podle tohoto návodu).

Zajímavou věcí je programátor GALů.
Takový programátor GALů byl, jako mnoho věcí, které prošly rukama populárnímu -rex-ovi, dlouhou dobu tajný. Tento pan Drexler totiž analyzoval nějaké zahraniční zařízení (zpomalovač her SloMo, videodigitizér, Disciple, …) a pak prodával buď neuměle nakreslené schéma na čtverečkovém papíře s tím, že za úplatu pak naprogramuje potřebné GALy (to byl případ třeba Disciple), nebo nabízeů vlastnoručně zbastlené (zdráhám se použít výraz postavené) kopie zařízení s obroušenými čísly čipů, aby jeho díla nebyla dále replikovatelná.
Drexlerův popis programátoru GALů najdete v ZX Magazínu 6/1992 (link překvapivě nevede na stránky ZX Magazínu, ale jinam, protože na stránkách ZXM není toto číslo v PDF) na straně 43 a 44 (hned za ním následuje “schéma” první části Disciple – v dalších číslech pak vyšlo zapojení sítě ZX-Net k tomuto torzu Disciple a samozřejmě errata, protože na čtverečkovaném papíře se snadno dělají chyby).
Nakonec, už v době, kdy byl socialismus dávno pryč, Spectrum přestalo být mainstreamový počítač, ba dokonce přestalo být i výběhový počítač, a proto se na něm a na spectristech už nedalo vydělávat, nějakým zázračným přemlouváním ukořistil -rex-ův programátor GALů i s potřebným programem v Basicu, do kterého se zapisují programované rovnice, Velesoft. Ten poté, co zařízení ovládl a programoval na něm GALy do svých konstrukcí, vše zveřejnil na svém webu. Samotné zařízení je hardwarově jednoduché a hlavní devizou je vypalovací program, stačí jen pochopit, jak se sestavují rovnice budoucího obsahu GALu.

Pak tu máme přípravu plošných spojů.
Kreslit plošné spoje se dá samozřejmě i fixou ručně, případně předkreslit na papír (i vystřihnout z časopisu) nebo blánu (blána s nákresem plošňáku byla třeba v rámci kurzu 666. ZO Svazarmu přiložena ke knize Řadič ZX floppy od Tomáše Krejči) a fotocestou přenést na desku.
Na Spectru lze použít několik technik – buď vytisknout na tiskárně (či plotteru) na papír, a fotocestovat na desku, nebo upraviit plotter pro kreslení tuší na desku a počmárat desku rovnou.
Na kreslení je potřeba samozřejmě nějaký program.
Nepochybně jich vzniklo víc – program CBC popisuje AR A 8/1990, strana 297, nebo jiný program pak AR 1/1992, existoval program PLSP.
I jako souěást Public Domain ZX Magazínu vyšel program na ruční kreslení desek a schémat Wire Studio (popsané třeba v ZX Magazínu 5/1992, strana 34-36; ukázkový obrázek, co to umí, byl snad v nějakém Fifu). Většina takových programů, aspoň co je mi známo o Wire Studiu, je ale v zásadě jen bitmapovým editorem velkého obrázku (většího než obrazovka).
Ale nejlépe zdokumentovaný a zřejmě i nejschopnější je NPS3.
Program NPS3 (Návrh Plošných Spojů 3) pracuje už podobně, jako moderní nástroje typu Eagle – nakreslíte si schéma, počítač vám eviduje přehled spojů mezi vývody součástek, a asistuje podle schématu při kreslení desky (jen ten autorouter to nemá).
Dokonce je možné sice trochu krkolomně, ale přeci jenom si i definovat vlastní součástky do knihovny.
Podrobný popis programu s návodem včetně popisu na úpravu plotteru XY 41nn pro kreslení přímo na desku plošného spoje vyšel v ZX Magazínu 1/2002-4/2003, strana 34-37. Ke stažení je program na diskové příloze tohoto čísla ZX Magazínu.

Zajímavé je, že Spectrum sloužící kutilům toho dokáže tolik.
Sinclair QL má mnohem větší předpoklady pro využití plotteru pro podobnou činnost – se svou “želví” grafikou jako v Logu a se sériákem, umožňujícím připojení standardního plotteru s HPGL. Zatím ale žádný z CAD programů (těch pár, co na QL existuje, pokud vím) neumí výstup do HPGL, podporují jen maticové tiskárny!
Naopak pro stroje řady Acorn Archimedes, které už v ROM obsahují aplikaci pro tvorbu vektorových obrázků, existují utility, které tyto vektorové obrázky (s jistým omezením – s vynecháním bitmap “spritů” vkládaných do vektorů) umí na HPGL plotteru ve zvolené velikosti nakreslit. A stejně tak existují CAD programy, které je možné s podobnými ulititami použít – například WorraCAD a WorraPlotter.

Vůbec, co se týče jiných osmibitových platforem, zatím jsem se setkal s několika EPROM programátory pro Commodore 64 (žádný jsem si ale nenechával), většinou se zasouvají do cartridge portu.
Pro Atari 800 se prodával Thompson ProBurner (manuál zde) a CSS Super E-Burner (manuál) (připojovaly se do cartridge slotu), existoval i projekt používající připojení přes joystickové porty.
O programu pro kreslení desek plošných spojů pro tyto stroje jsem ale zatím neslyšel. O programátoru GALů už vůbec.
Pokud víte o něčem takovém, dejte vědět do komentářů.