Sinclair ZX 80

ZX 80 replika

Sinclair ZX 80


Další projekt repliky historického počítače je úspěšně doveden do konce. Martin Lukášek přetavil své odhodlání v úspěšně odladěnou věrnou repliku slavného Sinclair ZX-80! A nejen to. Martin nechal udělat i několik desek plošných spojů, které za velmi rozumný peníz nabídl dalším zájemcům. Deska je prakticky přesnou kopií originálu (ISSUE2), posuďte sami:

DPS pro repliku ZX-80
DPS pro repliku ZX-80
DPS pro repliku ZX-80
DPS pro repliku ZX-80

Jelikož je Martin puntičkář postavil svůj prototyp repliky ZX-80 tak, že je prakticky nerozeznatelný od originálu. Věrná je totiž i membránová klávesnice, jejíž výrobní postup dává také k dispozici na svých zbrusu nových stránkách. Dalším puntičkářům dokonce nabízí i naprogramovanou vzácnou EPROM 2532 (neplést s klasikou 2732). Máte-li zájem o desku, přípaně další informace, rozhodně si do oblíbených přidejte www.8bity.cz.


ZX-80 originál a replika
ZX-80 originál a replika


Kromě desky a klávesnice ZX-80 se chystá také deska NMI generátoru, která spolu s příslušnou ROM 8KB ze ZX-80 udělá plnohodnotné ZX-81! Pochopitelně bude k dispozici také potisk klávesnice odpovídající ZX-81. A to stále není vše. K dispopzici bude také přepsaný software pro ZX-80/81, který bude možné "loadovat" z PC pomocí ZX Tape emulace. A na takové Space Invaders se snad musí těšit všichni:-)

Space Invaders na ZX-80
Space Invaders na ZX-80
Space Invaders na ZX-80
Space Invaders na ZX-80


*** moje ZX-80 ***

Konečně mám po kupě všechny důležité součástky a jdu do toho! Jenže... Jde mi to jak psovi pastva. Postupuji rychlostí cca 1 zaletovaný integráč za týden. Nebaví mě to. Vždy jsem po vlastní replice ZX-80 toužil a jsem nesmírně vděčný, že Martin Lukášek dotáhl tu desku do konce, a že ta deska je prostě skvělá. Ale nebaví mě to. ZX-80 je sice taky jednodeskový počítač, ale není to ten klasický školní jednodeskáč, které mám nejradši. Takže si hraju s NCB85, muzicíruju na PMI-80, páčkuju na Elfíkovi, ale ZX-80 mi prostě nejde...

moje replika ZX-80
stavba začíná...
moje replika ZX-80
...a konečně se to hnulo

Než budu mít hotovo, doporučuji se kochat hotovými replikami na Martinových 8-bitech. Své stroje už poslala řada stavitelů.


******

Zatím stále nic nového. Ale, zřejmě pod tlakem vlny zájmu o repliku ZX-80, zcela přepracoal své stránky o ZX-80 Grant Searle. Kromě redesignu došlo ke korekcím stávajících schémat a PCB patternů, nově je přepracován NMI generátor pro konverzi na ZX-81, publikovány jsou informace o různých typech eprom a také návod na jednoduché rozšíření paměti RAM. Zajímavý je screenshot z kultovního Manic Minera. Alespoň pro mne je stále senzací to, že předělávka této vynikající hry ze ZX Spectra na ZX-81 je českého původu.


*** HOTOVO! ***

Konečně se to hnulo a už to šlape. Jak je mým zvykem, ihned po oživení jsem se dal do úprav a vylepšení. Vše, co jsem na svém novém miláčkovi aplikoval, popisuji níže.

Sinclair ZX80 replica


Úpravy při stavbě

Již během stavby jsem aplikoval nějaké úpravy, vedoucí ke zlepšení stability počítače. Mimo jiné jsem nepoužíval patice na obvody TTL LS a tyto jsem rovnou pájel. Bohužel oživení se protáhlo na cca 3 dny (noci), kdy jsem intenzivně testoval jednotlivé obvodové celky a po úvaze, že vše je OK, neméně intenzivně hledal pravděpodobný zkrat na desce. Byl tam:-) Dato na Adresu... Po oživení jsem v úpravách pokračoval. Níže následuje popis všech mých úprav:


Pullupy klávesnice

Na základě doporučení Martina Lukáška a na základě studia zapojení ZX81 jsem pullupy klávesnice (R13-R17) snížil ze 47K na 10K.


Filtrační a blokovací kondy

Počet (a kapacita) filtračních a blokovacích kondenzátorů mi připadal od samého počátku žalostný. Na pozici C8 jsem tedy rovnou osadil elyt 100uF (namísto původních 22uF) a další kondenzátory jsem si naplánoval přidat po prvotním oživení, abych mohl pozorovat jejich účinnost. Ještě během stavby jsem zvednul i resetovací kondenzátor C10 z 1uF na 2,2uF, aby se start procesoru trochu oddálil a mohlo dojít k ustálení napěťových poměrů na desce vlivem přidaných kapacit. Po prvotním oživení jsem zkoušel co počítač snese a nebylo toho moc. Při šmátrání rukou po desce podle očekávání každou chvíli spadnul. Přistoupil jsem tedy k dalším úpravám: na neosazovanou pozici C7 jsem osadil kond 220nF (pozice je totiž "rozkročena" mezi +5V a GND a je škoda ji nevyužít). Zespodu desky jsem na nožky stabilíku 7805 připájel dva kondy 100nF, jak nás to učili ve škole:-) Za stabilík jsem shora přímo na vodivé pásy přiletoval malý elyt 4,7uF. Pásy za stabilíkem jsem zároveň posílil pocínováním. Další asi 3 kondy 100nF a 220nF jsem připájel na různé části desky, kde se do těsné blízkosti dostaly pásy +5V a GND. Jeden kond je ze strany součástek nad IO18 a IO20. Poslední úpravou bylo ošetření nepoužitého vstupu CKA (pin 14) IO21 (74LS93). Jedná se o hodinový vstup A, který se zde nepoužívá. Vím, že u TTL to není až taková tragoška, ale přeci jen... nepoužité vstupy se ošetřují. Připojil jsem ho na GND, který je nejblíže - pin 12 patice EPROM. Po těchto úpravách jsem počítač opět trápil a už nepadá tak snadno. Vlastě spadne jen v případě, kdy mu prsty šmudlám expanzní konektor druhou rukou držíce se chladiče:-) Nakonec jsem proletoval všechny nepoužité prokovené otvory.


Adaptér pro EPROM

Stavba EPROM adaptéru byla v plánu od samého počátku. Pochopitelně hlavně z důvodu možnosti přepínání dvou 8KB bank pro ROM ZX80 a ZX81. To je velice jednoduché hlavně z důvodu, že signál A12 je k dispozici přímo v patici ZX80 ROM. Původně se tedy uvažovalo o EPROM 16KB 27128. Jenže pak se objevil ZXpand i s možností připojení k ZX80 (původně byl určen jen pro ZX81) a ukázalo se, že by se hodily 4 banky, tedy EPROM 27526 o kapacitě 32KB. Ale ani to není finále. Vrtalo mi totiž v hlavě, jak využít ladem ležící oblast do konce prvních 16KB, které ZX80/81 nativně adresují jako ROM. V případě ZX80 se 4KB ROM zůstává ladem ležet celých 12KB, kde se ROM jen zrcadlí. U ZX81 je to pochopitelně jen 8KB. Nacpat do této oblasti RAM bylo aktuální před 20-30 lety, kdy se na těchto počítačích ještě skutečně pracovalo. Dnes to máme jen na hraní, takže jsem usoudil, že se tam bude lépe vyjímat ROM s nějakými ukázkovými programy podle hesla: "Vždy připraven!". Měl jsem ideu, že by ve volném prostoru EPROM mohly být basicovské programy, které by se pomocí nějaké strojové rutiny překopírovaly do RAM.

Takže můj adaptér je nakonec určen pro EPROM 27512 (64KB) a jumpery přepínám 4 banky á 16KB. To si vyžádalo přivést signál A13, který se ale nachází kousíček od pravého horního rohu patice původní EPROM (je tam dokonce prokovený prostup). Budete-li to chtít odpojovat, zaletujte do toho prostupu třeba dutinku z precizní patice. Já to odpojovat nechci, tak to mám s adaptérem propojené napevno drátem. Jinak je adaptér jednoduchý. Opět jsem ho osadil na kousku univerzálky a ze strany spojů jsem osadil oboustranné precizní kolíky pro zasunutí do původní patice pro ROM. Na desce je jen patice pro EPROM (28 pinů), kond 100nF, dva jumpery a pár drátových propojek. Schéma zapojení je níže.

EPROM adaptér 4x 16KB
EPROM adaptér 4x 16KB
zapojení EPROM a RAM packů
zapojení EPROM a RAM "packů"

Nakonec jsem vytvořil i tu kopírovací rutinu a funguje to přesně tak, jak jsem si vysnil. Teď mám své ZX80 nabušené programy (hlavně hry), které jsou ihned k dispozici bez nějakého loudování a připojování dalších zařízení. Paráda! Samotná rutina i již připravené obrazy EPROM pro 8KB i 16KB banky bude na chystané stránce o ZX80 softwaru.

Ale pokud nechcete rušit čistou stavbu svého ZX80 nějakým adaptérem, ale rádi byste vyzkoušeli ROM ZX81, nebo chtěli mít u ZX80 pár prográmků (max 4KB) vždy po ruce, je zde řešení. Spočívá v paměti EPROM o kapacitě 8KB, které je pinově kompatibilní s paticí v ZX80. Taková paměť musí být v pouzdru DIP24, na rozdíl od běžných DIP28 (2764). Po pravdě znám jedinou vyhovující EPROM a sice MC68764 od Motoroly. Upozornil na ni Martin Lukášek a dokonce i nějaké sehnal. Problémem bylo je naprogramovat. Běžné programátory ji neumí (neznají), tak jsem poupravil svůj programovací přípravek k PMI-80 a "vono to šlo":-) Takže pokud ji seženete a nebudete si vědět rady s programováním, jsem k dispozici. Za nějaký ten "pišingr ke kafi" vám ji vysmahnu:-)

EPROM Motorola MC68764
EPROM Motorola MC68764
EPROM Motorola MC68764
EPROM Motorola MC68764


Adaptér pro RAM 16KB

Taktéž tento adaptér byl naplánován ještě před stavbou. Nelíbí se mi totiž připojování různých rampacků na ten nespolehlivý konektor na plošném spoji ZX80/81. Nehledě na to, že je nutný další dekodér adres uvnitř rampacku a původní RAM zůstanou nevyužity a "žerou proud". Takže jsem vytvořil opět adaptér na malé univerzálce, kam jsem osadil patici pro úzkou statickou RAM 61256, a který jsem zasunul přímo do patic pro RAM 2114. Abych si nekomplikoval život, nastavil jsem A14 u 61256 na GND a využívám tedy jen těch 16KB, které dokáže BASIC v ZX80/81 obhospodařovat. Pochopitelně bylo nutné přivést z desky ZX80 signály A10, A11, A12, A13 a /RD. Přivedl jsem je drátky zespodu desky a vytáhl je montážním otvorem v desce (viz. foto). Jediným problémem bylo to, že patice pro RAM 2114 od sebe nejsou v rastru 2,54 mm, ale i to se nakonec "poddalo":-) To, že na desce ZX80 už nemám původní teslácké RAM 2114, nejvíce ocenil stabilizátor. Přestal topit jako kráva a jen lehce zavlažuje. Tesla MHB2114 jsou fakt žrouti!

RAM adaptér 16KB
RAM adaptér 16KB
ZX80 s adaptéry RAM i EPROM
ZX80 s adaptéry RAM i EPROM


Videoinvertor

Na destičce adaptéru RAM jsem si nechal kousíček místa pro jumper, kterým přepínám polaritu videa. Přesně tak, jak je to naznačeno na schématu a i na desce (tam bylo nutno přeškrábnout spoj C-A). Invertované video (bílá písmena a černé pozadí) se hodí na zápis a listingy programů. Je to příjemnější na oči. Na vlastní běh programu (pokud je na klasiku optimalizován) stačí polaritu přepnout do klasického zobrazení. Lze pochopitelně za chodu počítače. Idea výborná a také to výborně fungovalo, ovšem po připojení back-porch obvodu už to tak veselé nebylo. Bílá je totiž tak "přejasená", že je to na oči až nepříjemné a klasické zobrazení je lepší... Ale tak strašné, jako na následujících obrázcích to není! To se mi jen nedařilo to vyfotit:-)

moje replika ZX-80
standardní obraz
moje replika ZX-80
inverzní obraz


Back-Porch

Obvod back-porch pro vylepšení bílé složky ve videosignálu byl opět plánován od počátku. Sice jsem po oživení ZX80 mohl konstatovat, že nic takového nepotřebuji, protože obraz byl na klasické CRT televizi po patřičném vytažení jasu perfektní, ale chtěl jsem ho mít. Nejprve jsem uvažoval o řešení Paula Farrowa. Pak o řešení, které na Martinových stránkách publikoval Kamil Žák, ale nakonec mi Martin podstrčil zapojení od Luise Seidelmanna. Martin je lišák. Potřeboval to vyzkoušet a věděl, že já chytnu na první našlápnutí:-) Nemýlil se.

back-porch

Ještě týž večer jsem to postavil (černě jsou ve schématu hodnoty, které jsem použil já) a připojil k ZX80. A to byla chyba. Na základě únavy z několika předešlých probdělých nocí (hledání zkratu ne desce ZX80) jsem to připojil blbě. Poslal jsem M1 do SYNC nakrátko, ale na to jsem přišel po dalších několika probdělých nocích. Pochopitelně obraz žádný. Tma. V panice jsem back-porch odpojil a rekonstruoval původní zapojení. A další šok: obraz byl, ale rozsypaný. Počítač evidentně fungoval, reagoval na klávesy, ale bylo to nečitelné - rozsypané. Další noc v tahu. Tisíckrát zkontrolované zapojení back-porche, tisíckrát zkontrolované zapojení videovýstupu ZX80 a nic. Pomohla až jednodenní (a jednonoční) pauza. Pak jsem přišel na tu botu v připojení a už to bylo jasné. M1 jde z otevřeného kolektoru 74LS05 a ten by přežít mohl. SYNC jde ze 74LS74, už zatížené vstupem 74LS93. Ten by mohl být přetížen. Rovnou jsem zaletovaný 74LS74 vyměnil (očistec!) a obraz jako víno. Po správném připojení back-porch dokonce jako super víno. Jas televize šel zpět na původní hodnoty a bílá je jak vypraná v Lanze:-) Back-porch je osazený (překvapivě) na kousku univerzálky a je pomocí distančních sloupků přišroubován nad deskou ZX zhruba v místě placu pro modulátor. Na destičce je i CINCH konektor videovýstupu. Jo, a ještě něco: na desku s back-porchem jsem si dal LEDku indikující zapnutí počítače. Světýlka já rád...:-))

back-porch + RESET + NMI
back-porch + RESET + NMI
back-porch + RESET + NMI
back-porch + RESET + NMI


Tlačítka RESET a NMI

Na destičce s back-porch jsem si vynechal místo pro tlačítka RESET a NMI. Tlačítka jsou jedním pólem připojena na GND a druhým na odpovídající vstup CPU, tedy /RESET a /NMI. Paralelně k tlačítku RESET jsem připojil ještě kond 100nF. RESET je k nezaplacení. Výborně slouží i pro přepnutí banky EPROM (podržím RESET, přehodím jumpery a pustím RESET:-)). NMI je v současné době k ničemu. Idea byla taková, že se pomocí NMI bude moci stopnout zacyklený program kdy nelze použít BREAK (třeba při cyklu jehož tělo tvoří příkaz INPUT). Udělal jsem několik pokusů o úpravu ZX80 ROM, ale prostě jsem nenašel "díru", kterou bych spolehlivě vlezl do BASICU a způsobil jeho teplý start, který by nezničil zapsaný program a přitom BASIC restartoval. I když se mi to povedlo, nepovedlo se nastavit K-režim a vylistovaný program nebylo možné editovat (kurzor byl v L režimu). Nefunguje ani generování chyby 0, které spolehlivě funguje třeba u ZX81, kde zase pro změnu nelze použít tlačítko NMI... Vůbec mě překvapilo, jak jsou ROM ZX80 a ZX81 rozdílné. Myslím po stránce činnosti BASICU a jeho zacházení s RAM. Původně jsem myslel, že tam jsou pouze přidány příkazy, obsluha NMI a matematika, ale ono to je v principu úplně jiné, než ZX80. Ale snad se k využití NMI ještě dostanu a ROM ZX80 upravím.


Mechanické provedení

Pracovat s počítačem tvořeným jen osazenou deskou je otrava. Deska se totiž při osazování trochu zkroutí a počítač se na stole pak pěkně bimbá. Při mačkání kláves někdy i trochu ujíží vzad:-) Počítal jsem s tím a ještě před začátkem osazování jsem si podle DPS vytvořil podstavu ze 4 mm silné novodurové desky (na každé straně jsem přidal 5 mm) a spolu s DPS jsem to svrtal dohromady. Osazenou desku jsem pak pomocí šesti 10 mm distančních sloupků přidělal k podstavě. Je to paráda. Nemusím se bát o dodatečně připájené dráty zespodu desky, počítač na rovném stole perfekně sedí a je příjemně těžký, takže neujíždí. Více viz foto.

podstava pro ZX80
podstava pro ZX80
podstava pro ZX80
podstava pro ZX80

Ovšem pro puntičkáře doporučuji vyrobit si maketu originálního krytu. Třeba ve formě skvélé papírové vystřihovánky, kterou připravil litildivil. Prototyp vystřihovánky je v následujícím souboru. Snad se na mě Vilda nebude zlobit, že to šířím (ještě o tom neví:-)). A každopádně držím palce na finální verzi.

Vystřihovánka papírové karoserie pro ZX80


Klávesnice

Možná, že se trochu podivujete nad tím, že jsem se ještě nezmínil klávesnici. Důvod je prostý. Až sem jsem žádnou neměl:-) Počítač jsem zkoušel, ovládal a dokonce i programoval pomocí dvojice obyčejných tužek, na jejichž koncích jsem měl izolačkou připevněné kuličky z alobalu. David toto pohotově pojmenoval "cimbál" a tak jsem prostě dlouho a v pohodě na počítači jen "ZX cimbáloval":-) Do klavky, tedy té membránové, se mi nechtělo i přes to, že jsem měl od Martina všechny potřebné díly (vrchní samolepku i distančku). Práce moc, efekt nic moc. Pořád jsem pokukoval po tlačítkách, až jsem se nakonec rozhoupal. Koupil jsem 40 obyčejných klasických mikrospínačů 6x6mm (s tou nejmenší možnou délkou tlačítka) a do desky je zaletoval. Mikrospínače bylo nutné upravit: všechny 4 nožičky jsem plochými kleštičkami narovnal (vodorovně s tělem mikrospínače), dvě úhlopříčně protilehlé odštípal a zbylé dvě opět ohnul o 90° tak, aby to pasovalo do otvorů na desce ZX80 (tedy asi 1 mm od těla mikrospínače) a aby mikrospínač dosedl na desku. Šlo to rychle a za chvilku jsem měl parádní klávesnici z tlačítek. Teď koumám nad speciální distanční deskou s otvory, na jejíž vrchní straně bude ta původní samolepka a vespod kousky koženky. Vznikne tak jakási membránovo-tlačítková klávesnice. Doufám jen, že průhyb té samolepící folie bude dostatečný... Deska bude usazována pomocí 4 šroubů v rozích klávesnice a bude snadno výměnná pro ZX 80 a 81.

paličky ZX cimbálu:-)
paličky ZX cimbálu:-)
osazené mikrospínače
osazené mikrospínače

Nakonec jsem se rozhoupal a vyrobil plastové desky s otvory. Jelikož jsem rozteč otvorů oměřoval z již tlačítky osazené desky, byla to chuťovka. Ještě, že mě pak něco osvítilo a já si sešrouboval desky rovnou dvě a svrtal jsem je. Podruhé už bych to rozměřovat nechtěl... Velké otvory jsem vrtal stromečkovým vrtákem a jsou asi největší možné. Ze strany budoucí fólie s potiskem jsem otvorům ještě udělal velké náběhy větším vrtákem, aby byl umožněn větší průhyb folie.

distance klávesnice
plastové distance klávesnice
hotová klávesnice
hotová klávesnice

Z původního plánu distanční desku uchytit napevno a do otvorů mezi tlačítka a folii vložit kolečka z koženky taky nakonec sešlo. Prostě jsem na distančku nalepil samolepku klávesnice a celé jsem to položil na tlačítka. Tím se, v otvorech obnažená samolepící folie, k tlačítkům přilepila. Distančku jsem již dále fixovat nemusel. Naopak je výhodné, že se může mírně pohybovat nahoru a dolů a folie tak netrpí. Ač se to zdá šílené je klavka perfektní. Drží pevně, má hmatovou i akustickou odezvu (kliknutí mikrospínače) a je velmi příjemná na psaní. A zeshora nikdo nepozná, že to není membránovka. Prostě paráda!


Závěr

Musím se přiznat, že jsem stavbu ZX80 hrubě podcenil. Pochopitelně za to nemůžu já, ale může za to Martin Lukášek:-) Za normálních okolností se před stavbou vždy detailně seznámím s funkcí daného zařízení a použitými obvody. Ono to při mém drátkování, úpravách a náhradách ani jinak nejde. Jenže Martin připravil skvělou desku se skvělým popisem, takže jsem tam prostě "naflákal" součástky podle toho potisku a teprve, když to nejelo, tak jsem zjišťoval, co že jsem to vlastně postavil...:-)) A co že jsem to vlastně postavil? Postavil jsem si krásný počítač, jehož zapojení je prasácké a geniální zároveň. Sice jsem se trochu zaprodal původní myšlence věnovat se jen školním jednodeskáčům a nikoliv hračkoidním nesmyslům, ale jsem za ZX80 rád. Martine, díky za tu skvělou desku! Nakonec ani to zaprodání nebylo tak tragické. Při stavbě jsem totiž využil i PMI a to hnedka dvou! PMI-80 M16 programovalo "operační systém" ZX80 a ZX81 do exotických EPROM MC68764 (sice ne pro mě, ale to neva) a moje replika PMI Z-80 zase posloužila při tvorbě software. Potřeboval jsem si ověřit funkci některých instrukcí z rozšířeného souboru CPU Z-80 a PMI Z-80 se svým monitorem a možností nakukovat do registrů je na to ideální!

hotový Sinclair ZX80
hotový Sinclair ZX80 Nostalcompův
hotový Sinclair ZX80
hotový Sinclair ZX80 Nostalcompův


Jobs nebo Sinclair?

V souvislosti s nedávným úmrtím Steva Jobse a oslavnými články v novinách, že to byl on, kdo dostal počítače mezi lidi, musím s tím to názorem otevřeně nesouhlasit. Myslím, že to byl Clive Sinclair, kdo dostal počítače mezi lidi a právě hlavně díky tomuto prasecko-geniálnímu zapojení ZX80 (a následně superlevnému ZX81) a nejhlavnějc díky nízké ceně, jíž díky tomu zapojení dosáhl. Sice jsem tu dobu zažil, ale měl jsem jiné starosti. Třeba jak do písanky "includnout" krasopisné velké psací F (nikdy jsem to nepoužil a dodnes to neumím, vy ano?). Přál bych si to zažít znovu a pořádně:-)


Repete...

Nemám dost. Zdá se, že toto celé budu absolvovat ještě jednou + něco navíc. Na cestě je další deska ZX80. Martin totiž nachystal další (prý už opravdu poslední:-)) sérii a já do toho zase šel. A důvod? ZX81. Nehodlám měnit popisky kláves a nehodlám šachovat s NMI generátorem. Prostě to postavím znovu, tentokrát rovnou jako ZX81 a ten výtvor původní ponechám jako pure ZX80. Jo, a netušíte proč se mi na stole hromadí schémata různých issues ZX Spectra?


funkční repliky ZX-80 a ZX-81
funkční repliky ZX-80 a ZX-81


RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017