Obsah
1. Osmibitové počítače řady Didaktik
3. Didaktik Alfa 2 a Didaktik Beta
4. Úspěšný domácí mikropočítač Didaktik Gama
5. Struktura paměti originálního ZX Spectra 16K a ZX Spectra 48 k
6. Struktura paměti počítačů Didaktik Gama
7. Obsah následující části seriálu
8. Odkazy na Internetu – oskenovaná dobová literatura
1. Osmibitové počítače řady Didaktik
V předchozích pěti částech tohoto seriálu jsme se zabývali popisem československých osmibitových počítačů, které byly založené na mikroprocesoru MHB 8080A, což je klon procesoru Intel 8080A vyráběný v tuzemské Tesle. Jednalo se o počítače PMI 80 (které se ovšem v mnoha ohledech vymykají klasickým mikropočítačům), sérii PMD 85, počítač MAŤO a taktéž o minule a předminule popisovaný počítač IQ-151. Od druhé poloviny osmdesátých let minulého století se však v ČSSR začaly navrhovat a následně i vyrábět počítače využívající mikroprocesor Zilog Z80 popř. jeho východoněmeckou variantu U880D (pro zajímavost – pro výrobu tohoto mikroprocesoru nebyla vydána licence). Mezi přednosti mikroprocesoru Z80 a samozřejmě i U880D patří zpětná programová kompatibilita s procesorem 8080, rozšířený repertoár instrukcí, druhá sada pracovních registrů, dva šestnáctibitové indexové registry a taktéž zjednodušené napájení procesoru a podpora dynamických pamětí s jejich (polo)automatickým osvěžováním (refresh).
Obrázek 1: Jedna z prvních verzí osmibitového mikroprocesoru Zilog Z80.
Mezi československé osmibitové mikropočítače založené na mikroprocesorech Zilog Z80 (U880D) patří především domácí počítač Ondra (jehož popisem se budeme zabývat v následující části tohoto seriálu) a taktéž počítače Didaktik Gama, Didaktik M a Didaktik Kompakt, jejichž značná popularita mezi tehdejší tuzemskou počítačovou veřejností vyplývala mj. i z faktu, že se jednalo o počítače kompatibilní se slavným ZX Spectrem a taktéž z jejich příznivé ceny i kompaktního designu (zejména při porovnání s relativně velkými a těžkými počítači PMD 85 a IQ-151). Právě počítači řady Didaktik se budeme zabývat v následujících kapitolách. Nejprve si pro úplnost zopakujeme některé základní fakty o počítačích Didaktik Alfa a Didaktik Beta založených na architektuře PMD 85 (a tedy i historicky starším procesoru 8080) a poté se již přeorientujeme na Didaktik Gama, M a Kompakt.
Obrázek 2: U880D neboli nelicencovaný klon mikroprocesoru Zilog Z80 vyráběný v DDR.
2. Didaktik Alfa
Prvními československými osmibitovými mikropočítači nesoucími název Didaktik jsme si již zabývali v jedné z předchozích částí tohoto seriálu, konkrétně při popisu vývoje počítačů PMD 85. Skutečně – první počítače Diaktik, konkrétně typy Didaktik Alfa a Didaktik Beta, vyráběné v závodu Didaktik Skalica, byly založené na architektuře PMD 85, což znamenalo, že byly s těmito počítači do určité míry kompatibilní, tj. používaly shodný mikroprocesor Tesla MHB 8080A taktovaný na 2048 kHz, totožné pomocné obvody řady 8080, grafický režim měl stejné rozlišení 288×256 pixelů atd. Na rozdíl od počítačů PMD 85, jejichž jednotlivé verze byly číslovány, se ve Skalici rozhodli odlišovat své počítače (a některá periferní zařízení) fonetickým zápisem písmen řecké abecedy (později se od tohoto způsobu pojmenování upustilo, což je možná škoda). První počítač ze Skalice se tedy jmenoval Didaktik Alfa a pocházel z roku 1986. Jeho architektura byla odvozena od PMD 85.1.
Obrázek 3: Mikropočítač Didaktik Alfa v červené variantě.
Oproti originálnímu PMDčku však došlo k několika podstatnějším změnám, zejména v designu celého stroje – byla použita odlišná klávesnice, změnilo se zapojení součástek na plošném spoji a došlo i k úpravám struktury paměti. Interpret programovacího jazyka BASIC byl umístěn přímo v paměti ROM (stejně jako u většiny dalších domácích osmibitových počítačů) a nikoli v samostatném zásuvném modulu, jak bylo zvykem u počítačů PMD 85 i IQ-151. 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. V předchozích částech tohoto seriálu jsme si taktéž řekli, že mikropočítač Didaktik Alfa byl dodáván ve větším „setu“ společně s černobílým tranzistorový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 o barvu červenou (pravděpodobně nejtypičtější konfigurace, která je zobrazena na fotografiích), modrou i černou.
Obrázek 4: Detail klávesnice počítače Didaktik Alfa 2. Takové pěkné symboly PCčkové klávesnice nemají…
3. Didaktik Alfa 2 a Didaktik Beta
Dalším počítačem vyráběným v závodě Didaktik Skalica byl počítač nazvaný Didaktik Alfa 2. Jednalo se o klon PMD 85.2 (nikoli tedy PMD 85.1 jako v případě původního Didaktiku Alfa), ovšem i při návrhu tohoto počítače došlo k několika úpravám v jeho 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, která byla původně používána u minipočítačů, posléze u osmibitových mikropočítačů a následně po nějakou dobu i po nástupu osobních počítačů (tato norma uživatele „strašila“ například ještě v textovém editoru T602 a dokonce i v konverzním programu dodávaném k české verzi Wordu for Windows). 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 více či méně kompatibilním s řadou PMD 85, 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 5: Detail zadní části Didaktiku Alfa s konektory.
4. Úspěšný domácí mikropočítač Didaktik Gama
Při návrhu dalších typů osmibitových počítačů, které měly být vyráběny v podniku Didaktik Skalica, se inženýři odklonili od sice u nás rozšířené, nicméně pro domácí použití v některých ohledech nevyhovující platformy PMD 85 postavené na procesoru MHB 8080A a poměrně netypické struktuře obrazové paměti. Namísto toho se inspirovali, podobně jako i několik dalších výrobců počítačů pocházejících ze zemí RVHP, architekturou pravděpodobně nejznámějšího a v té době (alespoň v Evropě) stále nejrozšířenějšího osmibitového počítače vůbec – slavného ZX Spectra. Počítače ZX Spectrum byly založené na mikroprocesoru Zilog Z80 a zákaznickém čipu ULA firmy Ferranti, jenž se kromě několika dalších činností staral i o generování obrazu na televizoru na základě údajů uložených ve framebufferu (struktura framebufferu neboli obrazové paměti používané u ZX Spectra i mnohých jeho klonů bude podrobněji popsána v následující části tohoto seriálu.
Se kterým počítačem řady "Spectrum" jste se poprvé setkali?
Obrázek 6: Úvodní obrazovka známé hry Manic Miner spuštěné na ZX Spectru (resp. na emulátoru tohoto počítače).
Do značné míry shodná architektura byla použita i u počítačů Didaktik počínaje modelem Didaktik Gama verze 87, 88 a 89, na který navázaly modely Didaktik M a Didaktik Kompakt. Mezi původním ZX Spectrem a těmito Didaktiky existovalo několik více či méně závažných rozdílů, které znepříjemňovaly život jak uživatelům, tak i programátorům, zejména u těch aplikací, které využívaly možností ZX Spectra doslova do posledního bitu paměti a tiku hodin. Například došlo k úpravám strojových rutin v paměti ROM, které sice opravovaly některé chyby v původním ZX Spectru, nicméně mohly vést k nekorektnímu chování některých aplikací. Poněkud větší odlišnosti byly způsobeny instalací neoriginálního čipu ULA sovětské výroby v Didaktiku M a Didaktiku Kompakt, což se mj. projevilo odlišnou geometrií obrazu. Ovšem největší rozdíl mezi originálním ZX Spectrem a Didaktikem Gama, který zpočátku (u verze 87) působil značné problémy, spočíval v odlišné organizaci paměti, jejímž popisem se budeme zabývat v následující kapitole.
Obrázek 7: Pro počítače Didaktik Gama/M/Kompakt (a nepřímo též pro ZX Spectrum) vzniklo velké množství různé literatury, od krátkých tematických článků v klubových časopisech přes různé ucelené manuály až po skutečné knihy. Některou literaturu zachraňuje a následně v digitalizované podobě na svých stránkách nabízí kamarád Pavel Křivánek – viz odkazy uvedené v deváté kapitole.
5. Struktura paměti originálního ZX Spectra 16K a ZX Spectra 48 k
Pro vysvětlení struktury paměti počítače Didaktik Gama se nejprve seznámíme s tím, jakým způsobem byla organizována paměť na původním ZX Spectru. Paměťový prostor původního ZX Spectra 48K, tj. celých 64 kilobajtů, které mohl mikroprocesor Z80 přímo adresovat, byl rozdělen na tři části (bloky) o velikostech 16 kB, 16 kB a 32 kB. Na začátku adresového prostoru mikroprocesoru se nacházela oblast paměti ROM o velikosti 16 kB s interpretem jazyka BASIC, strojovými rutinami pro práci v pohyblivé řádové čárce, práci s magnetofonem, obsluhu obrazovky apod. Za pamětí ROM se nacházelo 16 kB RAM, do které měl sdílený přístup jak mikroprocesor, tak i zákaznický čip ULA (který zde měl uložený framebuffer o velikosti 6912 bajtů), zbytek této oblasti paměti byl využit pro uložení systémových proměnných, bufferu tiskárny, data i programy v BASICu atd., a konečně poslední oblast o kapacitě 32 kB byla dostupná pouze mikroprocesoru.
Obrázek 8: Pohled na osazený plošný spoj počítače Didaktik Gama, na kterém jsou vidět tři hlavní čipy, ze kterých je počítač sestaven: mikroprocesor Z80 či některý z jeho klonů, čip ULA (zde originál) a obvod 8255 sloužící jak k vytvoření externí sběrnice, tak i (jeden jeho pin) pro přepínání paměťových bank. Po levé straně je vidět VF modulátor (kovová krabička) a vestavěný reproduktor.
Kromě ZX Spectra 48K byl prodáván i levnější model ZX Spectrum 16K, u něhož byla osazena pouze paměť ROM o kapacitě 16 kB a paměť RAM o kapacitě taktéž 16 kB (zde byl uložen framebuffer atd., stejně jako u modelu s větší kapacitou operační paměti). Struktura paměti počítače ZX Spectrum je ve značně zjednodušené podobě vypsána v následující tabulce (všechny adresy jsou vypsány – pro programátory v assembleru možná poněkud netypicky – v desítkové soustavě):
Adresa od | Adresa do | Délka | Význam |
---|---|---|---|
0 | 16383 | 16384 | paměť ROM s BASICem a základním systémem |
16384 | 22527 | 6144 | bitmapa o rozlišení 256×192 pixelů |
22528 | 23295 | 768 | barvové atributy obrazu |
23296 | 23551 | 256 | vyrovnávací paměť tiskárny |
23552 | 23754 | 203 | systémové proměnné |
23755 | -?- | volná RAM pro BASIC i strojové programy | |
65368 | 65535 | 168 | oblast s uložením bitmap uživatelských znaků (měnitelná velikost) |
Obrázek 9: Sken úvodního listu příručky k počítači Didaktik Gama, kde je stručně popsána jak jeho architektura, tak i základy práce s programovacím jazykem BASIC.
6. Struktura paměti počítačů Didaktik Gama
Uspořádání paměti u počítačů Didaktik Gama sice vycházelo z původního ZX Spectra (což bylo samozřejmě nutné pro zachování zpětné kompatibility), ovšem došlo k jedné poměrně zásadní změně. Kapacita operační paměti byla totiž zvýšena z původních 48 kB na celých 80 kB. Ovšem vzhledem k tomu, že mikroprocesor Z80 měl pouze šestnáctibitovou adresovou sběrnici a dokázal tedy v jeden okamžik adresovat maximálně 64 kB, musela se operační paměť (resp. její část) rozdělit do takzvaných paměťových banků. Prvních adresovatelných 16 kB zůstalo vyhrazeno pro paměť ROM, dalších 16 kB obsadil framebuffer, systémové proměnné, buffer tiskárny atd. (opět stejně jako u ZX Spectra, viz předchozí kapitolu), ovšem do nejvyšších 32768 bajtů adresového prostoru mikroprocesoru se přepínal (mapoval) vždy jeden třicetidvoukilobajtový paměťový blok. RAM byla rozdělena na „dolních 16 kB“, banku A o velikosti 32 kB a banku B taktéž o velikosti 32 kB, celkem 16 + 32 + 32 = 80 kB.
Bylo podle vašeho názoru rozšíření paměti na 80kB u Didaktiku Gama spíše přínosem nebo zbytečným zavedením nekompatibility?
Obrázek 10: Jednoduchý kreslicí program pro Didaktik Gama neboli Photoshop verze 0.1 alfa.
Pro přepínání paměťových bloků byl využit jeden pin (konkrétně se jednalo o bit 0 brány C) čipu 8255, který byl v počítači Didaktik Gama použit mj. i pro vytvoření externí sběrnice, na kterou bylo možné připojovat další periferní zařízení. Přepnutí paměťových bank se provádělo pomocí OUT 127,0 a OUT 127,1, přičemž právě aktivní (vybraná) paměťová banka byla indikována i pomocí LED umístěné vedle klávesnice. Právě přepnutí paměťových bank vedlo k některým nepříjemnostem, zejména u první verze Didaktiku Gama z roku 1987. Pokud byla systémová proměnná RAMTOP (ukazatel na poslední adresu dostupnou pro BASIC, který se nastavoval příkazem CLEAR) nastavena na adresu vyšší než 32768 a došlo k přepnutí paměťového banku, počítač (resp. systém) havaroval. Tato chyba byla odstraněna až v následujících letech u modelů 88 a 89, kde se při přepnutí dotčená paměť mezi adresou 32768 a RAMTOP prostě zkopírovala, takže si systém vlastně ani „nevšiml“, že došlo k přepnutí a pracuje s odlišným paměťovým bankem.
Jakto, že bylo možné samotnou instrukcí OUT 127,0 či OUT 127,1 nastavit jediný bit osmibitové brány obvodu 8255?
7. Obsah následující části seriálu
V následující části seriálu o architekturách počítačů si podrobně popíšeme uspořádání obrazové paměti (framebufferu) počítačů Didaktik, včetně některých triků, které bylo možné s framebufferem provádět. Následně si popíšeme další dva modely Didaktiků, tj. Didaktik M a Didaktik Kompakt, i některé periferní zařízení určené pro připojení k těmto počítačům – jedná se například o populární disketové jednotky D40 a D80, plottery a tiskárny (včetně tiskárny BT-100 neboli „splašeného hřebíku“).
Obrázek 11: Domácí osmibitový mikropočítač Didaktik M, který si popíšeme příště.
8. Odkazy na Internetu – oskenovaná dobová literatura
Dobová literatura o Didakticích naskenovaná Pavlem Křivánkem:
- ABC strojového kódu 1 (čtivá učebnice strojáku pro začátečníky)
http://www.grandjihlava.cz/tmp/abc1.pdf - ABC strojového kódu 2
http://www.grandjihlava.cz/tmp/abc2.pdf - GEN3 MONS3 příručka uživatele
http://www.grandjihlava.cz/tmp/gensmons.pdf - Kladivo na programy (je tam třeba popsán způsob nahrávání a ochran programů protí kopírování a crackování)
http://www.grandjihlava.cz/tmp/kladivo.pdf - Didaktik Gama návod k obsluze
http://www.grandjihlava.cz/tmp/navod.pdf - Můj přítel Didaktik Gama
http://www.grandjihlava.cz/tmp/priteldidaktik.pdf - Tip & trip pro Didaktik
http://www.grandjihlava.cz/tmp/tiptrikdidaktik.pdf
Poznámka: pokud má některý ze čtenářů taktéž naskenované či jiným způsobem uchované materiály o Didakticích, nechť se prosím ozve, můžeme článek rozšířit o další odkazy a informace.
Obrázek 12: Příručka pro začínající crackery :-), která však byla poučná pro všechny programátory, neboť vysvětlovala některé zajímavé vlastnosti operačního systému a interpretru jazyka Basic u Didaktiků i ZX Spectra.
9. Odkazy na Internetu
- Didaktik Alfa 1
http://osmi.tarbik.com/cssr/didaktik_alfa.html - Stránky firmy Didaktik
http://www.didaktik.cz/ - Didaktik
http://en.wikipedia.org/wiki/Didaktik - Didaktik
http://cs.wikipedia.org/wiki/Didaktik - Computers made by Didaktik Skalica Co.
http://zx.interface1.net/clones/didaktik.html - Uncommitted logic array (ULA)
http://en.wikipedia.org/wiki/Uncommitted_Logic_Array - Didaktik Gama
http://zx.interface1.net/clones/didaktik.html - Didaktik Gama
http://www.old-computers.com/museum/computer.asp?st=1&c=463 - Didaktik M
http://www.old-computers.com/museum/computer.asp?st=1&c=459 - Historická stránka s článkem jednoho z vývojářů Didaktiku Gama
http://web.archive.org/web/20050518010425/http://www.didaktik.cz/pocitace_didaktik/didaktik8.htm - Muzeum československých mikropočítačů
http://cs-pocitace.ic.cz/ - Popis modulů a aplikací pro IQ-151
http://cs.felk.cvut.cz/~bily/iq151/ - IQ 151
http://osmi.tarbik.com/cssr/iq151.html - „Domácí počítače“ nedávné minulosti
http://www.fi.muni.cz/usr/jkucera/pv109/xkrejcir.htm - ZPA: IQ-151
http://www.homecomputer.de/pages/easteurope_cz.html#iq151 - Zrození IQ-151
http://www.iq151.net/index.htm - Stručná historie počítače IQ150/IQ151
http://www.iq151.net/history.htm - Old Computers – IQ 151
http://www.old-computers.com/MUSEUM/computer.asp?st=1&c=1045 - Wikipedia EN: IQ 151
http://en.wikipedia.org/wiki/IQ151 - Wikipedia CZ: IQ 151
http://cs.wikipedia.org/wiki/IQ151 - 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/ - Muzeum starého hardwaru a počítačů
http://hardware.najd.cz/nej.php - Počítače PMD 85
http://balek.v.sweb.cz/cs%20pocitace/8bity/pmd85.htm - 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/ - Stránky Martina „Schotka“ o PMD 85, jeho klonech i emulátorech
http://www.schotek.cz/pmd/index.htm