Obsah
1. Československé osmibitové počítače
2. Rozdíly mezi osmibitovými počítači vyráběnými v ČSSR a zahraničními počítači
5. Technické parametry počítače Tesla PMI-80
6. Klávesnice a displej počítače PMI-80
7. Programování počítače PMI-80
1. Československé osmibitové počítače
V dnešní části seriálu o architekturách počítačů se začneme věnovat popisu osmibitových počítačů, které byly navrženy a vyráběny v bývalé ČSSR. Československá socialistická republika pravděpodobně v polovině osmdesátých let minulého století držela celosvětový primát v poměru počtu typů (osmibitových) počítačů k celkovému počtu obyvatel. Skutečně, ve snaze předehnat kapitalistický Západ ve vývoji výpočetní techniky nedošlo k logickému seskupení sil a vytvoření jednoho typu počítače (popř. dvou či maximálně tří typů – „domácího“, „průmyslového“ a „školního“). Naopak, zcela v cimrmanovském duchu hledání slepých cest bylo vytvořeno velké množství typů počítačů, které nejenže většinou nebyly kompatibilní s počítači vyráběnými v okolním světě, ale ani samy mezi sebou (někdy se dokonce značně lišily i jednotlivé verze stejného typu), což je docela zvláštní v zemi, která měla centrálně plánovanou a řízenou výrobu (pamětníci, kteří dobu centrálního plánování zažili, se však většinou nediví).
Obrázek 1: Pokud by měl nějaký počítač reprezentovat stav výpočetní techniky v bývalé ČSSR, byl by to pravděpodobně školní počítač IQ-151. Poměrně zajímavá myšlenka modulárního počítače (obdoba Apple-II) byla odsouzena k neúspěchu kvůli zcela nedostatečné součástkové základně a některým technickým nedostatkům („topící“ zdroj uvnitř počítače), což je ostatně patrné již při pohledu na klávesnici, konstrukčně zcela nevhodnou pro školní počítač.
Jediným jednotícím prvkem bylo, že většina osmibitových počítačů vyráběných v ČSSR byla postavena na mikroprocesoru Intel 8080, a to pravděpodobně z toho důvodu, že tento mikroprocesor byl pod označením MHB 8080A vyráběn mj. i v tuzemské Tesle. Tento mikroprocesor byl použit například v počítačích PMI-80, PMD 85, Didaktik Alfa (varianta PMD 85), MAŤO (další varianta PMD 85) a Consul 2717 („zbrojováček“) a dalších. Teprve při návrhu jednoho z klonů ZX Spectra (jedná se o známou řadu Didaktik, konkrétně Didaktik Gama, Didaktik M a Didaktik Kompakt) jeho tvůrci použili v mnoha ohledech lepší mikroprocesor Z80 vyráběný pro změnu v DDR pod jménem U880. Tento mikroprocesor byl použit i v dalším československém počítači, který se jmenoval Ondra; ovšem tento počítač nebyl se ZX Spectrem a tím pádem ani s Didaktikem Gama zpětně kompatibilní.
Obrázek 2: Osmibitový počítač PMD 85–2.
2. Rozdíly mezi osmibitovými počítači vyráběnými v ČSSR a zahraničními počítači
Výsledkem výše popsaného chaosu ve vývoji a následné výrobě tuzemských osmibitových počítačů bylo, že se každého typu počítače vyrobilo pouze několik stovek, maximálně tisíců kusů, programové vybavení zpočátku prakticky neexistovalo, stejně jako nebyla k dispozici literatura ani vhodná periferní zařízení, o servisu ani nemluvě (některé typy dále popisovaných počítačů byly tak poruchové, že v servisu byly delší dobu než v provozu). Typickým znakem tuzemských počítačů byla absence zákaznických integrovaných obvodů (což je ostatně při malém počtu prodaných počítačů logické), takže konstruktéři těchto počítačů byli oproti svým zahraničním kolegům ve velké nevýhodě. Přitom právě tyto čipy v minulosti rozhodovaly a úspěchu či naopak neúspěchu osmibitových počítačů. Stačí si ostatně vzpomenout na legendární počítače firmy Sinclair, především ZX-80, ZX-81 a ZX Spectrum, jejichž úspěch byl mj. založen i na velmi jednoduchém plošném spoji s minimem součástek a zákaznickým čipem ULA, který úzce spolupracoval s mikroprocesorem Zilog Z80. Menší počet součástek umožnil snížit výrobní cenu počítače a současně i zvýšit jeho spolehlivost.
Obrázek 3: Osazený plošný spoj mikropočítače ZX81. Počet čipů je zde skutečně minimální, a to především díky použitému mikroprocesoru Z80 (který nevyžaduje další podpůrné čipy, na rozdíl od procesoru 8080) a zákaznickému čipu ULA.
Dalšími zahraničními počítači, jejichž úspěch byl do velké míry způsoben použitím vhodných zákaznických integrovaných obvodů, byly osmibitové počítače Atari s čipy ANTIC (rastrová grafika a text), GTIA (sprity a barvová paleta) a POKEY (vstup/výstup a zvukový syntetizér) a samozřejmě také slavný počítač Commodore C64 vybavený čipy VIC-II (rastrová grafika a sprity) a SID (legendární zvukový syntetizér). Návrh zákaznických čipů je finančně náročný, takže se vyplatí až ve chvíli, kdy jsou počítače vyráběny ve větším počtu kusů – a právě v tomto ohledu způsobilo rozdělení už tak velmi malého československého trhu mezi větší počet výrobců (Tesla Piešťany, Tesla Bratislava, Tesla Liberec, Tesla Blatná, ZPA Nový Bor atd.) to, že se v prakticky žádném původním československém osmibitovém počítači žádný podobný zákaznický čip nepoužil. Výjimkou jsou pouze již zmiňované klony ZX-Spectra, u nichž byl použit ekvivalent původního čipu ULA.
Obrázek 4: Tok dat mezi operační pamětí, mikroprocesorem a čipy ANTIC i GTIA při generování video signálu na domácích osmibitových počítačích Atari.
Někomu možná bude připadat porovnání československých počítačů se „světovými“ výrobky poněkud nespravedlivé, ale podobné porovnání skutečně lze provádět, protože prakticky všechny osmibitové počítače z osmdesátých let minulého století používaly mikroprocesor Intel 8080 (popř. jeho klony vyráběné různými výrobci), Zilog Z80 nebo řadu MOS 65×x (velmi vzácně též Motorola M6809). Kapacita operační paměti byla u většiny těchto počítačů rovna 1 kB až 64 kB (typické rozmezí je 32 kB až 64 kB), grafický výstup byl prováděn většinou na televizor (přes VF modulátor). Počítače se tedy mohly odlišovat „pouze“ použitými zákaznickými obvody, designem (především se to týká designu klávesnice), základním programovým vybavením, možností připojení periferií a dostupnou literaturou i dalšími aplikacemi (v neposlední řadě samozřejmě hrami).
Obrázek 5: Jedna z variant základní desky počítače C64. Tento počítač byl postaven na mikroprocesoru MOS 6510, grafickém čipu VIC-II, zvukovém čipu SID a dvojici vstupně-výstupních čipů SIO. Právě zákaznické čipy způsobily velkou oblibu tohoto počítače, který patřil mezi nejprodávanější osmibitové počítače vůbec (soupeřit v počtu prodaných kusů s ním mohl pouze ZX-Spectrum a jeho klony).
3. Mikroprocesor MHB 8080A
V předchozích kapitolách jsme si řekli, že velká část československých osmibitových počítačů byla založena na mikroprocesoru MHB 8080A, což je klon původního mikroprocesoru 8080 vyráběného firmou Intel. Tento mikroprocesor má kvůli svému relativnímu stáří (jde o jeden z prvních široce rozšířených osmibitových mikroprocesorů vyráběných od roku 1974) několik vlastností, které poměrně významným způsobem ovlivnily (=komplikovaly) konstrukci počítačů. Jednou z ne zcela dobrých vlastností bylo to, že mikroprocesor 8080 vyžadoval troje napájecí napětí: +5V, –5V a +12V, což samozřejmě komplikovalo konstrukci napájecích zdrojů. Další vlastností tohoto mikroprocesoru bylo, že ke své činnosti vyžadoval nejméně dva podpůrné čipy. Jednalo se o generátor hodinových impulsů (čip 8224), který mikroprocesoru dodával dvoufázové hodinové impulsy s požadovanou amplitudou 8V (což zajisté neodpovídá TTL :-). Dále se k mikroprocesoru připojoval řadič sběrnice (čip 8228), jenž umožňoval zapojení 8080 ke sběrnici se standardními řídicími signály (MEMR, MEMW, IOR, IOW – vše negované), na níž bylo možné zapojit další programovatelné obvody ze „stavebnice 8080“:
Typové označení | Popis obvodu |
---|---|
8251 | zajišťuje synchronní či asynchronní sériový přenos dat – USART |
8253 | programovatelný čítač a časovač |
8255 | trojice osmibitových vstupně-výstupních bran |
8257 | přímý přístup do paměti (blokové přenosy dat) – DMA |
8259 | řadič přerušení |
Mikroprocesor 8080A (tj. první revize původního mikroprocesoru 8080) obsahoval necelých 6000 tranzistorů a jeho hodinová frekvence se pohybovala v rozsahu 500 kHz až 2 MHz. Programátoři měli k dispozici 78 instrukcí, sedm pracovních registrů (A, B, C, D, E, H a L), registr příznaků (Flags), ukazatel na vrchol zásobníku (SP) a čítač instrukcí (PC). Jednalo se o procesor typu CISC, tj. některé instrukce byly poměrně složité, přičemž doba jejich trvání byla v rozsahu 4 až 17 taktů. Pro ilustraci – jednou z nejsložitějších instrukcí je instrukce XTHL, která prohazuje obsah dvou bajtů uložených na vrcholu zásobníku s obsahy pracovních registrů H a L. Interní datová sběrnice procesoru je osmibitová, proto musí být při interpretaci této instrukce provedeno hned několik přístupů do paměti a přesunů dat mezi pamětí a mikroprocesorem.
Obrázek 6: Část plošného spoje osmibitového počítače PMD 85, na němž je vidět mikroprocesor 8080 (největší čip se čtyřiceti piny uprostřed fotografie), doplněný o dva podpůrné obvody – 8224 (šedá patice v horní části fotografie) s připojeným krystalem a 8228 (zelená patice v dolní části fotografie).
4. Počítač Tesla PMI-80
Prvním původním osmibitovým československým počítačem, se kterým se v dnešní části seriálu o architekturách počítačů seznámíme, je počítač nazvaný PMI-80, jenž byl vyráběný od roku 1982 v Tesle Piešťany (mimochodem – zde se taktéž zrodil počítač PMD 85, se kterým se blíže seznámíme v následující části tohoto seriálu). Jedná se o počítač, který byl určený především pro výuku programování (konkrétně se jedná o programování v assembleru či přímo ve strojovém kódu mikroprocesoru Intel 8080), jehož architektura byla z velké části postavena na tuzemské součástkové základně. Velká část použitých součástek byla vyráběna přímo v Tesle Piešťany, což na jednu stranu umožnilo snížit výrobní a prodejní cenu tohoto počítače, na stranu druhou však byly jeho možnosti značně omezené, jak si ostatně řekneme v následujících dvou kapitolách.
Obrázek 7: Počítač Tesla PMI-80. Vlevo nahoře (zelený soket) můžeme vidět mikroprocesor MHB 8080A i další podpůrné obvody (včetně pamětí), vpravo je klávesnice a nad ní (červený pruh) devítimístný sedmisegmentový displej. Počítač zobrazený na tomto snímku byl upravený – LED na spodní části plošného spoje ani dvojice tlačítek „0“ a „D“ nejsou v originálním PMI-80 použity.
5. Technické parametry počítače Tesla PMI-80
Základem osmibitového počítače PMI-80 byl mikroprocesor Intel 8080 (který se v ČSSR vyráběl, jak již víme z předchozího textu, pod označením MHB 8080A) taktovaný v případě tohoto počítače na 1 MHz, ovšem frekvence se dala poměrně jednoduše zvýšit: postačilo pouze změnit rutiny pro čtení a zápis dat na magnetofon. Tento mikroprocesor byl doplněn o operační paměť s kapacitou 1 KB, paměť ROM taktéž s kapacitou 1 KB a další nezbytné podpůrné obvody, především již zmiňované čipy 8224 a 8228, ke kterým byl v počítači PMI-80 přidán ještě obvod 8255 nabízející tři konfigurovatelné osmibitové vstupně/výstupní brány zajišťující jak řízení displeje a klávesnice (viz další kapitolu), tak i umožňující připojení dalších periferních zařízení k tomuto počítači. Jako vnější paměť se používal běžný magnetofon (páskový či kazetový). Ve školních laboratořích se v pozdějších dobách tento počítač doplňoval obvodem UART umožňujícím komunikaci s osobním počítačem PC, takže se jako vnější paměť dal použít i jeho pevný disk (poněkud paradoxní přitom je, že DSP procesor na disku má mnohem větší výkonnost než celý PMI-80). K tomuto počítači se dále připojoval zdroj, který musel generovat všechna tři napětí vyžadovaná mikroprocesorem MHB 8080A, tj. +5V, –5V a +12V.
6. Klávesnice a displej počítače PMI-80
V předchozí kapitole jsem se zmínil o klávesnici a displeji počítače PMI-80. V obou případech se však nejedná o běžné periferie v tom smyslu, jak je známe dnes (dokonce ani v tom smyslu, jak je znají majitelé „klasických“ osmibitových domácích počítačů). Klávesnice počítače PMI-80 totiž obsahovala pouze 25 kláves (viz též následující obrázek). Jak je z druhého obrázku patrné, obsahovala tato klávesnice jak šestnáct kláves určených pro zápis numerických hodnot v hexadecimální soustavě, tak i dalších devět kláves určených pro spouštění programů od zadané adresy v paměti, prohlížení obsahu paměti i registrů procesoru, vyvolání přerušení atd. Uživatelské programy mohly číst kódy stlačených kláves a to buď přes funkce uložené v paměti ROM nebo přímo přes jednu ze vstupně–výstupních bran obvodu 8255. Displej, kterým byl počítač PMI-80 vybaven, dokázal zobrazit devět znaků pomocí sedmisegmentových LED jednotek, což postačovalo jak na výpisy obsahu operační paměti a registrů (hexadecimální znaky 0123456789ABCDEF), tak i některých dalších znaků. I displej bylo možné ovládat buď přes funkce uložené v ROM nebo přímo přes jednu brány obvodu 8255.
Obrázek 8: Detail klávesnice počítače PMI-80.
7. Programování počítače PMI-80
V předchozích kapitolách jsme si mj. řekli, že osmibitový počítač PMI-80 byl vytvořen pro výuku programování. Ovšem pro tyto účely byl PMI-80 vybaven pouze spartánsky, protože se programy musely zapisovat přímo ve strojovém kódu mikroprocesoru 8080, což vlastně vedlo k návratu ke způsobu programování prvních mainframů vybavených řídicími panely. Při praktických cvičeních programování se tedy postupovalo tím způsobem, že se požadovaný algoritmus nejprve napsal na papír v assembleru 8080 a posléze se tento program ručně přeložil do strojového kódu, tj. do posloupnosti hexadecimálních čísel představujících osmibitové kódy instrukcí i hodnoty jejich operandů (studenti tedy prováděli stejnou činnost, jako assembler, včetně výpočtů adres relativních skoků atd.). Následně bylo nutné sled hexadecimálních čísel přes klávesnici zapsat do vhodného místa operační paměti PMI-80, poté program spustit a při jeho pádu (pokud program neskončil v nekonečné smyčce ukončené přerušením vyvolaným přes klávesnici) doufat, že se nepřepsala operační paměť a nebude nutné celý program zapisovat znovu (ovšem pokud bylo zapotřebí nějakou instrukci přidat doprostřed programu, přepisům alespoň jeho části se student stejně nevyhnul).
Obrázek 9: Integrované obvody, které tvořily ústřední část počítače PMI-80: mikroprocesor MHB 8080A, podpůrné obvody 8224 a 8228, paměť ROM, paměť RAM (2×1024×4 bity) a paralelní vstupně-výstupní brány realizované obvody 8255. Paměťové čipy typu MHB 2114 měly strukturu 1024×4 bity, doba přístupu do paměti dosahovala 450 ns a maximální příkon byl 500 mW. Tyto čipy měly 10 adresových pinů, 4 vstupně/výstupní piny pro data, pin pro výběr čipu (!CS) a pin pro řízení čtení/zápisu (!WE), což spolu s dvěma piny pro napájení (Ucc, GND) znamenalo, že se tento čip umisťoval do pouzdra DIL s 18 nožičkami a přitom nebylo nutné používat multiplexování adresy.
V pozdějších letech bylo možné překlad programu zapsaného v assembleru do strojového kódu provést na nějakém domácím osmibitovém počítači (vybaveným příslušným assemblerem), popřípadě, zejména po roce 1990, i na osobním počítači. Pro tyto počítače existovalo několik assemblerů procesorů Intel 8080 či Zilog Z80, jehož instrukce byly nadmnožinou instrukcí 8080. Předností takto pojatého způsobu výuky programování bylo to, že studenti skutečně pracovali téměř na té nejnižší úrovni – mohli ovládat jak samotný mikroprocesor, tak i klávesnici, displej a popř. i další připojená periferní zařízení, například reproduktor připojený buď na jeden pin obvodu 8255 nebo na externí D/A převodník (dalším triviálně připojitelným zařízením byl tehdy široce rozšířený digitální joystick nebo A/D převodník). Počet vrstev vložených mezi hardware a uživatele se tak zmenšil na minimální úroveň, což umožnilo lepší pochopení práce celého počítače (dnešní PC jsou pro naprostou většinu uživatelů i programátorů černými skříňkami, což při jejich velké složitosti ostatně není nic překvapivého). Na druhou stranu však tvorba programů v assembleru a jejich ruční překlad do strojového kódu odvádělo studenty i vyučující od vlastní algoritmizace řešeného problému, což však není problém samotného počítače PMI-80 (podobné „počítače“ se vyrábí dodnes, jde například o vývojové desky s mikrořadiči), ale způsobu jeho použití při výuce.
I přes velmi malou kapacitu operační paměti (1 kB) se na tomto počítači daly realizovat typické „školní“ algoritmy, například: matematické úlohy s celými čísly využívající programové smyčky (výpočet faktoriálu, výpočet největšího společného dělitele, převody mezi číselnými soustavami), numerické úlohy s reálnými čísly (implementace FP, iterativní výpočet druhé odmocniny, algoritmus CORDIC), základní úlohy zpracování dat (vyhledávání v setříděné i nesetříděné sekvenci hodnot, řazení), programový generátor hudby (i jednooktávové elektronické varhany :-), jednoduché úlohy s čidly (teploměr), řízení světelné křižovatky, jednoduché hry (přistání na měsíci, ovšem s pouhým numerickým výstupem) či řízení perového plotteru.
Poznámka: autor s tímto počítačem pracoval na začátku devadesátých let minulého století na SPŠE, tj. v době, kdy se v našich krajích již kromě osmibitových domácích počítačů rozmáhaly i osobní počítače (PC), ale například i Amigy či Atari ST. Při přechodu z programování na těchto počítačích zpět na PMI-80 to vytvářelo zajímavý kontrast.
8. Obsah další části seriálu
V následujících částech seriálu o architekturách počítačů si popíšeme další osmibitové počítače vyráběné v ČSSR. Jedná se především o počítače PMD 85, IQ-151, MAŤO i řadu počítačů nesoucích společný název Didaktik, v níž můžeme najít jak počítače architektonicky velmi podobné s PMD 85 (Didaktik Alfa a Didaktik Alfa 2), tak i klony legendárního ZX Spectra. Není bez zajímavosti, že právě československé klony ZX Spectra, konkrétně se jedná o Didaktik Gama, Didaktik Kompakt a Didaktik M, byly považovány za nejlepší osmibitové počítače, které byly v ČSSR vyráběny, a to jak po stránce designu (slušná klávesnice, především v porovnání s původní klávesnicí PMD 85 či IQ-151), tak i po stránce programové, protože díky zpětné kompatibilitě se ZX Spectrem bylo možné téměř ihned (popř. po mírných úpravách) využít tisíce uživatelských programů i her, nehledě na poměrně velké množství dostupné literatury.
Obrázek 10: V následující části tohoto seriálu se zaměříme především na popis architektury počítače PMD 85, který byl v osmdesátých letech minulého století u nás velmi rozšířený, a to jak na školách či v různých počítačových kroužcích, tak i v průmyslu.
9. Odkazy na Internetu
- Martin Schotek a PMD 85
http://www.schotek.cz/pmd/index.htm - Scanované informace o PMD 85
http://www.schotek.cz/pmd/scan.htm - Czechoslovakian Home-Computers
http://www.homecomputer.de/pages/easteurope_cz.html - Minimalism (computing)
http://en.wikipedia.org/wiki/Minimalism_(computing) - PMD 85 (Personal Microcomputer with Display) emulator
http://pmd85.djb-studios.com/wiki/PMD85&setlang=en - PMD 85 Emulator – Screenshots
http://pmd85.djb-studios.com/wiki/Emulator/Screenshots - PMD-85
http://www.old-computers.com/museum/computer.asp?c=730&st=1 - Peripherals of PMD-85 and compatibles
http://pmd85.djb-studios.com/wiki/Peripherals - BASIC
http://cs.wikipedia.org/wiki/BASIC - BASIC
http://en.wikipedia.org/wiki/BASIC - IQ-151
http://www.old-computers.com/MUSEUM/computer.asp?st=1&c=1045 - IQ-151
http://osmi.tarbik.com/cssr/iq151.html - PMD 85
http://osmi.tarbik.com/cssr/pmd85.html - Tesla PMI-80
http://osmi.tarbik.com/cssr/pmi80.html - PMI-80
http://en.wikipedia.org/wiki/PMI-80 - PMI-80
http://www.old-computers.com/MUSEUM/computer.asp?st=1&c=1016