Obsah
3. Osmibitové počítače Didaktik Alfa
4. Architektura počítačů PMD 85
5. Grafický režim počítačů PMD 85
8. Poděkování a obsah následující části seriálu
1. Osmibitové počítače PMD 85
V předchozí části seriálu o architekturách počítačů jsme si popsali z dnešního pohledu velmi netypický a v mnoha ohledech minimalisticky pojatý počítač Tesla PMI-80, jehož ústředním prvkem byl mikroprocesor Tesla MHB 8080A doplněný jedním kilobajtem paměti RAM a taktéž jedním kilobajtem paměti ROM (obsahujícím ovladače klávesnice, devítimístného sedmisegmentového displeje, magnetofonu i programových rutin pro zápis programů v hexadecimálním kódu a jejich ladění – krokování a spouštění). Dnes se zaměříme na popis dalších československých počítačů založených taktéž na mikroprocesoru MHB 8080A. Jedná se o počítače PMD 85 (Personal Microcomputer with Display) a některé jejich více či méně kompatibilní klony, především Didaktik Alfa (další klon, počítač MAŤO, bude popsán příště). Tyto počítače se již, na rozdíl od výše zmíněného PMI-80, podobaly většině ostatních školních i domácích osmibitových mikropočítačů, což znamená, že byly vybaveny alfanumerickou klávesnicí, disponovaly grafickým výstupem, obsahovaly VF modulátor pro připojení počítače k televizoru a kromě monitoru (tj. základního programového vybavení) obsahovaly i interpret programovacího jazyka Basic, který byl u PMDček uložen v zásuvném modulu.
Obrázek 1: Základem počítačů PMD-85 byl osmibitový mikroprocesor Tesla MHB 8080A.
Mikropočítače PMD 85 byly určeny pro výuku programování i pro použití v průmyslu, ale (což bylo pro tehdejší východní blok typické) oficiálně nebylo možné si tyto počítače zakoupit v maloobchodní síti, což znamenalo, že si lidé, kteří si PMD-85 chtěli pořídit domů, museli počítač obstarat přes nějakou „vhodnou“ organizaci, například školu či zaměstnavatele (pořízení mikropočítače bylo obecně dosti dobrodružnou záležitostí, zejména pro toho, kdo neměl bony na nákup oficiálně dovážených počítačů z Tuzexu). Nicméně i přes toto omezení bylo PMDčko velmi rozšířené, například v různých kroužcích výpočetní techniky (domy pionýrů, Svazarm) a vzniklo pro ně poměrně velké množství různých aplikací, například her, textových editorů, různých programovacích jazyků, výukových programů atd. Díky tomu, že vznikly softwarové a dokonce i hardwarové emulátory tohoto počítače, je možné si některé programy vyzkoušet i dnes, i když autentický zážitek lze získat pouze při práci na reálném PMDčku, především „díky“ jeho unikátní klávesnici.
Obrázek 2: Typický počítač z kroužků výpočetní techniky: PMD 85–2.
2. Vývoj řady PMD 85
První verzí počítače PMD 85 byl prototyp nazvaný PMD 85 (PMD 85-D), kterého bylo podle dobových pramenů vyrobeno pouze několik kusů. Od dalších variant počítače PMD se tato prototypová verze odlišovala především v tom, že modul programovacího jazyka Basic (tj. paměti EPROM, který obsahovaly jeho interpret) byl integrován přímo do skříně počítače a nikoli umístěn ve vyjímatelné cartridgi tak, jak tomu bylo o dalších variant PMDčka. Spolu s Basicem bylo dodáváno i jedno grafické demo (naprogramované přímo v Basicu), které si můžete vyzkoušet například v emulátoru PMDčka (je nutné nejdříve zvolit příslušnou ROM a posléze provést reset emulátoru). Prototyp PMD se od ostatních PMDček v několika ohledech odlišoval, což mj. znamenalo, že nebyla dodržena 100% zpětná programová kompatibilita. Rozdíly existovaly jak v samotném zapojení počítače, tak i ve způsobu ukládání programů a dat na magnetofon a některé (i když z pohledu programátorů poměrně drobné) odchylky bylo možné najít i v základním programovém vybavení. Autorem návrhu první verze tohoto počítače je Ing. Roman Kišš.
Obrázek 3: Prototyp počítačů PMD.
Na výše popsaný prototyp v roce 1985 navázal sériově vyráběný počítač PMD 85–1, který byl vyráběný v Tesle Piešťany. PMD 85–1 již má všechny znaky „klasického“ PMDčka, včetně konektoru umístěného v horní zadní části skříně počítače, který umožňoval připojení externího modulu – typicky se jednalo o modul obsahující některou verzi interpretru programovacího jazyka Basic, ale v průběhu života tohoto počítače bylo vytvořeno i množství dalších modulů obsahujících jak různé programovací jazyky, tak i specializované aplikace (PMD se totiž kromě škol používalo i v laboratořích a průmyslu, proto vznikly například moduly osazené A/D převodníky, které umožňovaly provádět a zaznamenávat různá měření. Většinou se jednalo o moduly specializované pro jeden podnik, což znamená, že mnohdy šlo o unikátní kousky).
Obrázek 4: Osmibitový mikropočítač PMD 85–1.
Výroba počítačů PMD byla v pozdější době přesunuta z Tesly Piešťany do podniku Tesla Bratislava, v němž se začaly vyrábět upravené verze PMDčka nazvané PMD 82–2 a PMD 82–2A. V těchto verzích došlo k úpravě vnitřního zapojení, výměně klávesnice za jiný typ, i ke změnám v základním programovém vybavení. Jednou ze změn patrných i laickému uživateli je to, že se po zapnutí počítače automaticky nahraje interpretr jazyka Basic, samozřejmě pouze v tom případě, že je jeho modul zasunutý do počítače. U předchozích PMDček se musel interpret Basicu spouštět ručně z monitoru. I v samotném interpretru Basicu došlo k několika změnám, ty však nebyly tak velké, aby bylo nutné tisknout nový manuál. Z tohoto důvodu se k počítači dodávala původní uživatelská příručka s dodatkem o rozsahu 22 stran, v němž byly zmíněny rozdíly mezi PMD 85–1 a PMD 85–2.
Obrázek 5: Počítač PMD 85–2 s připojeným monitorem Merkur, který byl typickou periferií používanou v ČSSR mnoha uživateli.
Po PMD 85–2 následovala verze PMD 85–2A v níž došlo k na první pohled malé, ale poměrně významné změně – byla použita odlišná základní deska s jinými typy pamětí, které měly menší spotřebu než původní paměťové moduly. To vedlo k menšímu vyzařování tepla (velký to problém některých československých počítačů, především IQ-151), což velkou měrou přispívalo ke zvýšení provozní spolehlivosti.
Obrázek 6: Pohled na zadní část počítače PMD 85–2 ve chvíli, kdy k němu není připojen žádný modul.
Poslední verzí počítače PMD byl PMD 85–3, který se v několika ohledech od svých předchůdců odlišoval. Především bylo možné i na běžné televizi používat barevné zobrazení, modul jazyka Basic obsahoval paměti EPROM typu 2716 (2 kB) namísto 2708 (1 kB) a počítač při svém zapnutí prováděl autotest (možná se jeho autoři inspirovali prvními PCčky s jejich POSTem, který nás při startu počítačů zdržuje dodnes). I přes některé odlišnosti v nové verzi interpretru jazyka Basic bylo možné provést jeho přepnutí do režimu kompatibility s PMD 82–2. Zajímavé bylo, že přes IRPS bylo možné tento počítač použít jako (polo)inteligentní terminál k počítačům SMEP („Systém Malých Elektronických Počítačů“), s nimiž se čtenáři mohli seznámit v paralelně běžícím seriálu o historii výpočetní techniky.
Obrázek 7: Dva moduly s paměťmi EPROM, z nichž jeden obsahoval interpret jazyka Basic-G a druhý editor a překladač Pascalu.
3. Osmibitové počítače Didaktik Alfa
Osmibitové počítače nesoucí jméno Didaktik byly vyráběny v závodu Didaktik Skalica sídlícím, jak název tohoto podniku ostatně napovídá, ve Skalici (jde o městečko ležící poblíž hranic mezi dnešní ČR a SR). V tomto závodě se od poloviny osmdesátých let minulého století i na začátku let devadesátých vyrábělo několik typů osmibitových počítačů nesoucích název Didaktik. V dnešní části seriálu se zaměříme především na počítače Didaktik Alfa, Didaktik Alfa 2 a Didaktik Beta, protože se jednalo o počítače založené z velké části na architektuře PMD 85, které byly s těmito počítači do určité míry kompatibilní. Další počítače řady Didaktik, konkrétně se jedná o modely Didaktik Gama, Didaktik M a Didaktik Kompakt, budou popsány v některém z dalších dílů tohoto seriálu, protože se architektonicky jedná o zcela odlišné stroje inspirované pro změnu slavným zahraničním osmibitovým domácím mikropočítačem ZX Spectrum.
Obrázek 8: Mikropočítač Didaktik Alfa v červené variantě.
Vraťme se však nyní k Didaktiku Alfa. Jedná se o počítač z roku 1986, jenž byl založený na PMD 85.1, ovšem v designu tohoto počítače nastalo několik změn. Již na první pohled je patrné (obrázek 8 a 9), že se změnila klávesnice, ovšem mírně odlišné bylo i jeho interní zapojení a struktura paměti. Například interpret programovacího jazyka Basic byl umístěn přímo v paměti ROM, která měla kapacitu 48 kB (jednalo se o původně nevyužitou oblast adres začínající na adrese $9000) a nikoli v samostatném zásuvném modulu. Tato změna ovšem byla při běžném použití počítače minimální, protože se kód Basicu při inicializaci kopíroval do paměti RAM na adresu $0000. Tento počítač byl dodáván ve větším „setu“ společně s černobílým televizorem Junosť sovětské výroby (podobal se známému českému Merkuru) a taktéž plotterem. Všechny tři části celého „setu“ byly barevně sladěny – původně se jednalo o barvu bílou, později i červenou (pravděpodobně nejtypičtější konfigurace), modrou i černou.
Obrázek 9: Detail klávesnice počítače Didaktik Alfa 2. Takové pěkné symboly PCčkové klávesnice nemají…
Dalším počítačem vyráběným ve Skalici byl počítač nazvaný Didaktik Alfa 2. Jednalo se o klon PMD 85.2 (nikoli PMD 85.1 jako v případě původního Didaktiku Alfa), ovšem i zde došlo k několika úpravám designu i zapojení. Například tabulka znaků byla doplněna o tuzemská nabodeníčka, přičemž klávesa STOP fungovala jako přepínač pro psaní českých znaků (znaky používaly kódování odpovídající normě KOI-8). V tomto počítači byla taktéž použita nová verze monitoru (základního programového vybavení) i interpretru jazyka Basic, při inicializaci počítače se testovala paměť RAM i ROM atd. Třetím typem počítače ze Skalice, o kterém se dnes zmíníme, je počítač Didaktik Beta. Jedná se o vylepšenou verzi Didaktiku Alfa 2, který navíc obsahoval podporu sítě. Ostatní (základní) parametry tohoto počítače, tj. použitý procesor a podpůrné obvody, kapacita paměti RAM či grafický systém, jsou totožné s PMD 85.2.
Obrázek 10: Detail zadní části Didaktiku Alfa s konektory.
4. Architektura počítačů PMD 85
Obrázek 11: Blokové schéma počítače PMD 85.
Počítače PMD 85 byly postaveny na bázi mikroprocesoru Tesla MHB 8080A, jehož hodinový takt byl nastaven na 2048 kHz. Tato frekvence byla získána vydělením frekvence krystalu (18,422 MHz) devíti. Krystal je kromě zdroje frekvence pro tvorbu hodinového signálu použit i při generování obrazu a k němu příslušejících synchronizačních signálů. Mikroprocesor byl doplněn dvěma nezbytnými pomocnými obvody 8224 a 8228 a taktéž dalšími obvody z řady 8080 – jednalo se o trojici obvodů 8255 (z nichž každý obsahoval tři paralelní brány), budiče sběrnice, časovač 8253 a USART 8251 (asynchronní a synchronní sériový přenos dat, použit pro zápis dat na magnetofon). Dále byl počítač PMD 85 vybaven čtyřmi kilobajty paměti ROM s monitorem a 48 kB operační paměti. Některé vyšší varianty PMDčka obsahovaly paměti s větší kapacitou – PMD 85–2A i PMD 85–3 měly nainstalovanou operační paměť o velikosti celých 64 kB (tj. veškerý adresovatelný prostor procesoru) a PMD 85–3 se navíc ještě pyšnil pamětí ROM o kapacitě 8 kB.
Obrázek 12: Počítač PMD 85–2 po odklopení klávesnice.
Na dvanáctém obrázku je zobrazen počítač PMD 85–2 po odstranění klávesnice. Z fotky je patrné, že se v počítači nachází dva plošné spoje. Na spodním (větším) plošném spoji můžeme v pravém dolním rohu vidět mikroprocesor s krystalem i podpůrnými obvody, dále se zde nachází čipy s paměťmi, různé pomocné čipy s menší integrací (většinou jde o obvody z klasické řady TTL 7400), které mj. slouží pro tvorbu video signálu (tyto čipy můžeme chápat jako náhradu zákaznických obvodů, například obdoby ULA ze ZX Spectra či Didaktiku Gama) a taktéž jeden obvod 8255, na jehož jednu bránu je připojena klávesnice. Horní plošný spoj obsahuje „komunikační“ části počítače, mj. USART (8251) a dva obvody 8255 (zde v sovětské variantě pod označením KP580BB55A). Fotku plošného spoje je možné také porovnat se schématem PMD 85 uvedeným na třináctém obrázku (pozor na to, že schéma je oproti fotce otočené – procesor je na schématu zobrazen v levém horním rohu, na fotce v rohu pravém dolním).
Obrázek 13: Schéma zapojení mikropočítače PMD 85.
5. Grafický režim počítačů PMD 85
V této kapitole si řekneme, jakým způsobem počítače PMD 85 i jejich klony vykreslovaly obraz na televizoru i monitoru. Tyto počítače dokázaly zobrazit rastrový obraz o rozlišení 288×256 pixelů (přesněji řečeno se z 312,5 mikrořádků zobrazovalo pouze 256, ostatní byly zatemněné). Při práci s textem (tj. při ovládání počítače z monitoru, programování v Basicu či zápisu textu v editoru Pascalu či assembleru) toto rozlišení odpovídá textovému režimu s 32 řádky a 48 znaky na jednom řádku, přičemž každý znak byl definován v rastru 6×8 pixelů (nikoli tedy běžných 8×8 pixelů, což však mělo svůj důvod při nastavování barvových atributů). Při výstupu video signálu na televizor se rozlišovaly pouze tři stupně šedi (černá, šedá, bílá), protože čtvrtá „barva“ byla nahrazena blikáním pixelů (považujme pro jednoduchost blikání za čtvrtou a pátou barvu, podle toho, zda bliká šedý či bílý pixel). Naproti tomu při výstupu video signálu na monitor bylo možné použít barevné zobrazení v celkem pěti barvách (černá, bílá, zelená, modrozelená a žlutá). Taktéž byl k dispozici zásuvný modul umožňující výběr barev při zobrazení na monitoru (TV výstup zůstal u PMD 85–1 i PMD 85–2 pouze černobílý kvůli jednoduššímu VF modulátoru, což však velké části uživatelů nevadilo, neboť stejně používali černobílý televizor Merkur nebo Junosť).
Obrázek 14: Ukázka grafických schopností počítače PMD 85. Jedná se o původní demo dodávané spolu s Basicem, které však bylo upravené autorem tohoto snímku i počítače (v roce 1985 skutečně žádné URL neexistovaly).
Při využití pěti různých barev pro zobrazení grafiky na televizoru může být teoreticky každý pixel obarven jednou z těchto pěti barev (konkrétně černou, šedou, bílou, blikající šedou a blikající bílou), které by bylo možné zakódovat do tří bitů, přičemž zbývající tři stavy by zůstaly nevyužity – jedná se o blikající černou a dva stavy teoreticky odpovídající dalšímu stupni šedi. To by ovšem znamenalo, že kapacita obrazové paměti by musela být rovna 288×256×3/8=27 kB. To je ovšem z pohledu osmibitových počítačů obrovské číslo, vždyť zahrnuje 42% veškerého adresovatelného prostoru mikroprocesoru 8080, nehledě na to, že jen samotné programové vykreslení obrázku by bylo velmi náročné na výpočetní výkon.
První malý úkol pro znalce 8080: jak dlouho bude trvat vymazání 27 kB paměti při použití toho nejefektivnějšího algoritmu a frekvence hodin 2048 kHz? A jak dlouho bude trvat přenos bloku 27 kB paměti, taktéž při použití toho nejefektivnějšího algoritmu, který znáte?
Obrázek 15: Prototyp PMD 85 po odstranění vrchního krytu. V zadní části můžeme vidět EPROM s monitorem a interpretrem jazyka Basic.
6. Organizace obrazové paměti
Z výše uvedených důvodů se návrháři PMDčka uchýlili k triku, který se v dobách osmibitů používal velmi často: namísto vyhrazení trojice bitů pro každý pixel byl pro každý pixel rezervován pouze jediný bit (rozlišení dvou stavů – černá popř. jiný stav) a navíc byly pro každou šestici sousedních pixelů rezervovány další dva bity, což znamená, že šestice sousedních pixelů mohla být i se svými atributy uložena v jednom bajtu. Na druhou stranu tento způsob kódování barev zapříčinil, že vždy šestice sousedních pixelů mohla být obarvena pouze dvěma vybranými barvami (což vzdáleně připomíná grafický režim Hi-res u C64, popř. slavný „atributový“ režim ZX Spectra), ovšem na druhou stranu se potřebná kapacita obrazové paměti oproti výše zmíněným 27 kB dosti podstatným způsobem snížila, o čemž se můžeme přesvědčit jednoduchým výpočtem. Nejprve zjistíme, kolik bajtů bylo zapotřebí alokovat pro uložení každého obrazového řádku:
samostatné pixely na obrazovém řádku | 288/8 | 36 bajtů |
barvové atributy (2 bity/6 pixelů) | 2×288/6/8 | 12 bajtů |
počet bajtů na jeden obrazový řádek | 36+12 | 48 bajtů |
Celkový počet bajtů alokovaných pro celou obrazovou paměť je při 256 obrazových řádcích roven: 48×256 = 12 kB. Organizace obrazové paměti však byla kvůli způsobu generování obrazu (používal se stejný krystal, který řídil samotný CPU, jenž byl připojený na čítač pixelů) poněkud netypická. Každý obrazový řádek totiž začínal na hranici 64 bajtů (viz další obrázek). To znamená, že prvních 48 bajtů bylo skutečně využito jako obrazová paměť a zbývajících 16 bajtů na každém řádku využíval buď operační systém nebo se jednalo o oblast, kterou mohl programátor využít pro uložení svých programů nebo dat. Zatímco tedy vlastní obrazová paměť vyžaduje 12 kB pro uložení barev pixelů a jejich atributů, je pro ni vyhrazena větší oblast o velikosti 64×256 = 16 kB, tj. celá jedna třetina operační paměti, která byla mapována do horní části adresového prostoru mikroprocesoru, konkrétně na adresy C000 až FFFF.
Obrázek 16: Organizace paměti u počítače PMD 85.
Druhá otázka pro čtenáře kteří si pamatují výklad o způsobu generování video signálu na zahraničních osobních počítačích (Spectrum, Atari, C64) či funkci prvních grafických karet na PC: z jakého důvodu je pro každý obrazový řádek rezervována paměť o velikosti 64 bajtů, když je ve skutečnosti pro obraz využito pouze 48 bajtů (resp. na co generátor video signálu oněch zbývajících 16 bajtů využil)?
7. Řekli o PMD 85…
S počítačem PMD-85 jsem se setkala v páté třídě a byl to můj úplně první pohled na něco, co jsem naprosto nechápala a mám pocit, že nechápu dodnes. Bylo to asi hodinové setkání, které mne doživotně poznamenalo. Jediné co si pamatuji, bylo neustálé kontrolování počítače, jak moc hřeje a pak většinou následovalo protipožární zaopatření = vypnutí počítače.
Byla to nespolehlivá obluda s překvapující architekturou. BASIC jste museli natahovat z ROM-ky, videoramka zabrala 16 kB (pozor, třetinu RAM!), ale zobrazovala obsah pouze z 12 kB. První verze měla klávesnici, při které jste nevěděli, zda „klik“ vydala ona nebo prasknutá kost v prstu. Druhá verze byla, samozřejmě, s první prakticky nekompatibilní, ale měla aspoň tu výhodu, že to, co jste nahráli na magnetofon, jste aspoň občas přečetli.
Obrázek 17: Hra Jet Set Willy^H^H^H^H^H^H^H^H^H^H^H^H^H Willy Walker :-)
8. Poděkování a obsah následující části seriálu
Za poskytnutí informací a především fotografií PMDčka velmi děkuji Václavu Bálkovi, Tomáši Smetanovi, Michalovi Suchánkovi i dalším autorům.
V následující části seriálu o architekturách počítačů dokončíme popis počítače PMD 85 i jeho klonů. Řekneme si, jaké aplikace (samozřejmě především hry, ale i programovací jazyky) na tomto počítači vznikly a jakým způsobem je možné si tyto aplikace vyzkoušet i v současnosti. Pro PMD 85 totiž existuje několik softwarových emulátorů a dokonce i jeden emulátor hardwarový, jehož autorovi (Ing. Peter Chrenko) se podařilo všechny čipy PMDčka nasimulovat na mikrořadiči ATmega128 doplněném šedesáti čtyřmi kilobajty operační paměti.
Obrázek 18: Geniální hra Hlípa, která byla později portována z PMD 85 na osmibitové počítače Sharp MZ.
9. Odkazy na Internetu
- Muzeum československých mikropočítačů
http://cs-pocitace.ic.cz/ - Počítače PMD 85
http://balek.v.sweb.cz/cs%20pocitace/8bity/pmd85.htm - Muzeum starého hardwaru a počítačů
http://hardware.najd.cz/nej.php - Archive.Free8bit.net (archivy her a dalších aplikací)
http://archive.free8bit.net/index.php?ACTION=1004 - Emulation.Free8bit.net (emulátory osmibitů)
http://emulation.free8bit.net/ - Game Manic Miner PMD-85 remake
http://freeloc.kopromaster.com/index.php?ACTION=1021&FILE=7&chlng=36&chpjt=1 - Stručná historie počítače IQ150/IQ151
http://www.iq151.net/history.htm - Didaktik Alfa 1
http://osmi.tarbik.com/cssr/didaktik_alfa.html - Didaktik
http://en.wikipedia.org/wiki/Didaktik - Alfy mali vo výbave i sovietske televízory „Junost“
http://bombara.blog.sme.sk/c/205503/Alfy-mali-vo-vybave-i-sovietske-televizory-Junost.html - Hlípa
http://pmd85.djb-studios.com/wiki/Hlípa - Video s řešením hry Hlípa
http://pmd85.djb-studios.com/w/media/hlipa-riesenie.avi - Urob si sám PMD-85
http://pmd85.topindex.sk/