Mikropočítač PMI Z-80



Myšlenka na stavbu PMI Z-80 se v hlavě objevila současně s myšlenkou na stavbu PMI-85. Proto je také PMI-85 koncipováno tak jak je. Tedy úplný terminál na samostatné desce. Stačí teď připojit jinou desku CPU a máte jiný počítač. Co je tedy PMI Z-80? Je to opět replika počítače PMI-80, jen namísto původního procesoru 8080 je postavená na bázi procesoru Z-80.

Procesor Zilog Z-80 je stále jen vylepšený 8080. Zpětná kompatibilita je 100% PMI Z-80 tedy není žádný problém. Jen jediná věc chladí nadšení: už to tady jednou bylo. Přesně tak. Taková PMI Z-80 již v roce 1986 provozovalo několik nadšenců, kteří si hráli se stavebnicí MIKRO-AR. Jednalo se o projekt stavebnicového počítače s procesorem Z-80, který vycházel na pokračování v Amatérském Radiu ve druhé polovině 80. let. Jenže jak už to bývá, projekt vyšuměl do ztracena. Přišel příliš pozdě, svět už byl jinde a tady se schylovalo ke změnám. A tak jediným provozuschopným počítačem, který si čtenáři mohli postavit, a ke kterému nemuseli vymýšlet vlastní software, byl právě PMI-80 kompatibilní počítač sestavený z desek CPU1 a Porty1, ke kterým jste si stejně museli postavit ještě terminál (viz ARA 2/1986 kde najdete i užitečné informace k PMI-80 pro případnou stavbu repliky).

Přesto na stavbu PMI Z-80 (tedy jen desky CPU, neboť terminál již byl hotový ze stavby PMI-85) nakonec došlo. To hlavní - mikroprocesor Z-80 - byl totiž zapíchnut v alobalem potaženém polystyrenu v depozitu zásob:-) Tedy nebyl to originální Zilog Z-80, ale jeho východoněmecká kopie UB880D. K němu jen perlička. Kromě toho, že se traduje, že má tento klon několik dalších nedokumentovaných funkcí navíc, se dále uvádí, že na něj výrobce neměl zakoupenou licenci a jednalo se tak o pirátský klon. Z vlastní zkušenosti mohu dále potvrdit, že jestliže si dederóni nelámali hlavu s licencí, nelámali si ji ani s roztečí vývodů. Dostat UB880D do precizní patice DIL40 byl docela oříšek. Nesedí totiž řadová rozteč nožiček 2,54 mm. Procesor je prostě o něco kratší... :-)

PMI Z-80

Oproti PMI-85 již nebylo při stavbě PMI Z-80 tolik dbáno na obvodovou "čistotu" a hardwarovou kompatibilitu s PMI-80. PMI Z-80 mělo být plně softwarově kompatibilní s PMI-80, ale hardware měl být maximálně zefektivněn. Jestli se to podařilo, se dozvíte dále. Jak zapojení zjednodušit, již bylo nastíněno v závěru článku o replice PMI-85. Takže: namísto dvou pouzder RAM 2114 (dohromady 1 KB) je použita jediná RAM 6264 (8 KB). Adresový dekodér 74138 (přímá náhrada 3205) rozděluje prostor po 4 KB. Je využit také signál A15, takže v paměťovém prostoru se uplatní plné kapacity použitých pamětí. Sice je opět nutné překódovat signály pro čtení/zápis z/do pamětí a periferií, ale protože Z-80 disponuje čtveřicí signálů (oproti trojici u 8085), odpadá jeden invertor a postačí jen čtveřice hradel OR (7432). Oproti CPU 8085 zde není nutný žádný latch na zachytávání adresy. Paměť EEPROM 28C64 je na adresách 0000h - 0FFFh a 8000h - 8FFFh, paměť RAM je k dispozici na 1000h - 1FFFh a 9000h - 9FFFh. Tyto rozsahy pokrývají i původní umístění 1 KB pamětí v originálním PMI-80.

Ovšem drobná komplikace nastává v případě taktování procesoru. K CPU Z-80 již není možné přímo připojit samotný krystal, ale je nutné postavit plnohodnotný oscilátor. Z-80 disponuje jediným vstupem hodinového signálu, který navíc vyžaduje úrovně CMOS (jinak jsou vývody CPU TTL kompatibilní). Takový oscilátor lze sestavit ze dvou CMOS hradel 74HC04. Pro zachování kompatibility s PMI-80 je potřeba krystal 1 MHz. Jenže krystal tohoto kmitočtu se nepodařilo sehnat, tak do desky putoval šuplíkový 4 MHz. Za oscilátorem je pak dělička čtyřmi tvořená obvodem 74HC93 a tím bylo dosaženo požadovaného kmitočtu 1 MHz. Je však nutno přiznat, že toto řešení "hodin" je zbytečně komplikované. Více se dozvíte v odstavci o možných zjednodušeních počítače.

Dále je nutné vyřešit generování signálu RESET (aktivní v log. 1) pro obvod 8255A, protože na rozdíl od CPU 8080/85 jej Z-80 negeneruje. K tomu postačí 2 invertory, nejlépe typu 7414 se schmittovými klopnými obvody. Další dvě tato hradla lze použít pro úpravu signálu INT od tlačítka přerušení. Pozor na to, že Z-80 má INT aktivní v log.0 na rozdíl CPU 8080/85, kde je aktivní úroveň log.1. Páté hradlo slouží jako obligátní budič LED (světýlka já rád), která je tentokrát připojena na výstup /HALT procesoru a indikuje tedy jeho zastavení instrukcí HALT. Jedno hradlo zbylo... Zde je vhodné poznamenat, že všechny nepoužité vstupy je bezpodmínečně nutné připojit na nějakou logickou úroveň. Nejlépe na log.0 spojením se zemí GND. Žádný nepoužitý vstup nesmí zůstat volný! Vstupy, které se sice nevyužívají, ale mají nějakou funkci je nutné připojit na úroveň podle jejich funkce. Jedná se zejména o vstupy procesoru HALT (log.1), NMI (log.1), BUSRQ (log.1), MEMREQ (log.1) a podobné. Toto ale platí obecně pro jakékoliv zapojení s číslicovými IO!

Procesorová deska PMI Z-80 je opět na univerzální desce CU-TA 034 a s deskou terminálu se spojuje pomocí dutinkové lišty. Provedení je patrné z následujících obrázků.

mikropočítač PMI Z-80
stavba začíná...
mikropočítač PMI Z-80
hotová deska CPU
 
mikropočítač PMI Z-80
desky CPU a terminálu
mikropočítač PMI Z-80
kompletní PMI Z-80
 
mikropočítač PMI Z-80
SN 80 napájí PMI Z-80
mikropočítač PMI Z-80
PMI Z-80 vás zdraví
 
mikropočítač PMI Z-80 mikropočítač PMI Z-80
fragmenty zapojení PMI Z-80 (hlavní odlišnosti od PMI-80)

Monitor PMI Z-80

Jelikož je PMI Z-80 kompatibilní s originálním PMI-80, je možné rovnou převzít obslužný monitor z originálu. Jenže by tu nastal problém s přerušením. Z-80 disponuje několika režimy přerušení a po resetu je vždy nastaven režim 0. Tento režim je shodný s CPU 8080 a vyžaduje, aby po generování žádosti o přerušení příslušné zařízení dodalo na datovou sběrnici požadovaný kód instrukce RST X. V PMI-80 je ale využita vlastnost systémového řadiče 8228, který přímo umí generovat instrukci RST 7 (po připojení výstupu INTA přes odpor 1K na +12V). Instrukce RST 7 znamená, že procesor skáče na adresu 0038h. To je známá věc. U PMI-85 jsme toto museli řešit dalším latchem, který RST 7 na sběrnici dodal. Jenže v případě PMI Z-80 to lze řešit elegantněji. Instrukcí IM1 lze totiž nastavit přerušení do režimu 1, kdy po přijetí požadavku na přerušení /INT procesor rovnou skáče na 0038h. Je však nutné do monitoru propašovat instrukci IM1 tak, aby ji procesor vykonal vždy po resetu. Situaci trochu komplikuje to, že IM1 je dvoubajtová instrukce (ED56h), ale místo se našlo. IM1 lze vložit na nevyužité adresy 003Bh a 003Ch a pak jen stačí opravit adresu "obskoku" přerušení z 003Dh na 003Bh, vše je patrné v disassemblovaném výpise monitoru (ke stažení na stránce o originálním PMI-80), kde jsou tyto úpravy zaneseny. A to včetně úpravy úvodní hlášky monitoru.

Otestovat správnou funkci přerušení lze stejným způsobem jako u PMI-85 (a pochopitelně i u PMI-80). Tedy zapsat program:

1C00: FB (EI)
1C01: 76 (HALT)

a od adresy 1FE6h ručně pomocí příkazu M umístit kód skoku na 0000h:

1FE6: C3 (JP 0000)
1FE7: 00
1FE8: 00

Po spuštění (EX 1C00) se PMI zastaví a po stisku INT se zresetuje.

Úprava monitoru a jeho nahrání do nové EEPROM 28C64 byla triviální. Využil jsem svého původního PMI-80 a dobastlených doplňků. Z přídavné EEPROM jsem sputil program Copyblock a po zadání parametrů přesunu jsem původní monitor PMI-80 z paměti PROM překopíroval do přídavné 1 KB RAM. Zde jsem pomocí příkazů monitoru ručně provedl příslušné změny a "vypalovacím" programem (opět uloženého v přídavné EEPROM) jsem upravený monitor zapsal do nové EEPROM v programovací patici. Celé PMI Z-80 šlapalo na první zapojení :-) Za monitor jsem později ještě umístil program pro otestování veškeré RAM. Testuje oba úseky po 4 KB.

Možnosti zjednodušení

Stejně jako v případě počítače PMI-85, i zde uvedeme možná zjednodušení, protože jak to bývá, po bitvě je každý generál:-) Asi nejvíce na ráně jsou obvody hodin. Pokud seženete krystal 1 MHz, můžete vypustit děličku 74HC93. Dokonce ani ten krystal není nutný, protože pro takto jednoduchý cvičný počítač klidně můžete použít jednoduchý RC oscilátor bez krystalu. Určitá nestabilita kmitočtu vůbec nevadí. K sestavení oscilátoru dokonce nepotřebujete ani obvod 74HC04, protože lze využít 2 vyšetřených hradel obvodu 7414. Jedno hradlo stejně zbylo a druhé lze vyšetřit tak, že se buď vypustí LEDka na HALT, nebo se připojí přímo. Jen bude nutné upravit výstupní úroveň H takového oscilátoru (pamatujte, že vstup CLK procesoru Z-80 vyžaduje úrovně CMOS!). Úprava je jednoduchá: na výstupní hradlo oscilátoru připojíte pullup odpor. Takže lze ušetřit celé 2 integráče a PMI Z-80 lze postavit jen ze 6 integrovaných obvodů + 2 obvody na desce terminálu. Při troše dobré vůle by určitě bylo možné celé PMI Z-80 postavit na jediné desce 160x100 mm.

Postavte si PMI!

Pokud si chcete pohrát s typickým školním jednodeskáčem a zkusit si programovat hexadeximálně, je PMI-80 ideální protože je dobře zdokumentované. Ale pokud originální PMI-80 nemáte, nebo za něj nechcete platit nesmyslné částky spekulantům, postavte si repliku. A právě replika se Z-80 je ideální řešení. Procesor Z-80 je stále snadno dostupný a levný a počítač při vhodném návrhu potřebuje jen minimum dalších obvodů při zachování plné softwarové kompatibility s PMI-80. Monitor je také dostupný a jeho úprava pro Z-80 je triviální (nebudete-li používat přerušení, není žádná úprava nutná). Navíc máte k dispozici celou řadu dalších instrukcí, které CPU 8080 nemá. Prostě: postavte si svoje PMI!

Amatérské mikropočítače PMI-85 a PMI Z-80

Amatérské mikropočítače PMI-85 a PMI Z-80


*** Aktualizace: ***

Nově došlo k úpravě společného terminálu. Terminál je nyní doplněn o konektor pro připojení kabelu PC Loaderu - kabelu pro nahrávání dat z PC. Všechny tři repliky PMI již mají v pevné paměti kromě monitoru a programu pro testování RAM i příslušný program pro nahrávání z PC.

terminál replik PMI-80 terminál replik PMI-80
Společný terminál replik PMI s programovacím kabelem


*** Aktualizace ***

Původně zde byla zmínka o mikropočítači SAVIA 84, který se PMI Z-80 velmi podobá. Jelikož jsem k Savii dostal dostatek materálu, rozhodl jsem se jí věnovat samostatnou stránku - SAVIA 84.

******

Také se podařilo dohledat nějaké perličky k assembleru Z-80. Hlavně ty slavné "tajné" instrukce:-) Tak se to třeba bude někomu hodit:

perličky k assembleru Z-80


RET



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