Didaktik M
Počítač za méně než 3000 korun

Ing. Ladislav Sieger, CSc., BAJT 6/1992

Kladu si otázku, s jakými asi pocity začínáte číst tento článek. Ještě před rokem by většina z vás nový model počítače kompatibilního se ZX Spectrem, nota bene o víc jak o polovinu levnějšího, než stál Didaktik Gama, jistě přivítala. Dnes už možná leckdo ohrne nos. Vždyť je to osmibit...

Přesto se domnívám, že situace není tak jednoznačná, jak by se na první pohled mohlo zdát. Otevřením hranic se otevřela možnost dovozu počítačů kompatibilních s IBM PC. Řada drobných i větších dovozců to uvítala a s nimi ještě delší řada zákazníků. Ceny šly dolů, podniky a trochu movitější uživatelé získali přístup do světa profesionálních počítačů.

V honbě za IBM PC zde však vznikla "osmibitová díra". Je pochopitelné, že počítače srovnatelné s PMD 85, IQ 151, PMI 80 či PLAN 80 se rázem staly neprodejné. Kromě jiného je to dáno jejich technickou úrovní a rovněž faktem, že nepodporovaly žádný vžitý standard. Výjimkou zde byl vlastně jen Didaktik Gama, který se však již od dubna 1990 nevyrábí (vyrobilo a prodalo se ho kolem 45 000 kusů).

Přesto však počítač u nás stále ještě není něčím zcela běžným. Nadále panuje obecná zaostalost v oblasti, kterou sdělovací prostředky nazývají druhou gramotností. Nedostatek levného a na svou dobu vyspělého počítače "pro všechny" tento nedostatek jen prohlubuje. Proto zpráva o novém a levném počítači potěší.

Didaktik M aneb ZX Spectrum trochu jinak

Didaktik M je novým výrobkem v. d. Didaktik Skalica. Vychází ze svého předchůdce Didaktiku Gama. Převzal od něj programovou kompatibilitu odvozenou od ZX Spectra. Technické řešení, přes některé shodné rysy, je však nové. Něco napoví stručný přehled technických parametrů:

Didaktik M je určen především těm, kteří si chtějí s počítačem hrát a touto cestou poznat taje výpočetní techniky. Jeho kompatibilita se ZX Spectrem zpřístupňuje několik tisíc her včetně programů pro vážnou práci a studium. K nim náleží i řada programovacích jazyků – různé verze Basicu a Pascalu, dále C, Logo, Forth, Prolog, Lisp, Karel a samozřejmě assembler Z80. To, byly programy především zahraniční, dostupné v klubech mládeže, bývalém Svazarmu, ale i v početné rodině spectristů, jejichž počet se odhaduje na 250-300 tisíc.

V současné době existují softwarová družstva, která prodávají programy od výukových (jazyky, zeměpis, přijímací zkoušky na školy) až po hry. Tuto službu rovněž poskytuje výrobce.

m_schema.png|m_schema_thumb.jpg|Schéma zapojení počítače Didaktik M.

Technický popis

Didaktik M je osmibitový mikropočítač osazený mikroprocesorem Z80 s taktovací frekvencí 4 MHz. Z mikropočítače ZX Spectrum si zachoval rozdělení paměti. Od adresy 0 do 16K se nachází paměť ROM s interpreterem Basicu. Na něj navazuje 48K paměti RAM, která vyplňuje zbytek adresového prostoru procesoru. Přibližné rozdělení paměti ukazuje následující obrázek (je zřejmé, že mapa paměti je shodná se ZX Spectrem):

m_str_pamet.png

O vstupně/výstupní funkce se stará zákaznický obvod U-106-47, který je v pouzdře odpovídajícím technologii plošné montáže (SMD). Vykonává podobné funkce jako známá ULA Didaktiku Gama. O některých rozdílech se zmíním dále.

Přípojná místa na zadní stěně počítače jsou tvořena výstupem televizního signálu (48. kanál) a výstupem VIDEO. Oproti Didaktiku Gama jsou zde samostatné konektory pro napájení (sedmikolíkový) a pro magnetofon (pětikolíkový). Systémová sběrnice je shodná se sběrnicí Didaktiku Gama – to znamená, že lze použít veškeré periferie určené i pro tento počítač. Oproti Didaktiku Gama emko neobsahuje paralelní port s obvodem 8255, ale má dvě přípojná místa pro joysticky. Jeden v normě Kempston (port 31), druhý v normě Sinclair. Ukázalo se totiž, že využití této třídy počítačů ke hrám je mnohem častější, než připojování přídavných periferií. Uživatelé, kteří pro své aplikace potřebují PPI s 8255, si jej mohou objednat v úhledné krabičce přímo u výrobce.

Dostávám se k části, která vás určitě upoutá hned po rozbalení počítače – ke klávesnici. Tvoří ji 45 profilovaných kláves včetně čtyř kurzorových a spřaženého tlačítka RESET. Klávesnice, a to především na omak, připomíná spíše profesionální klávesnici počítačů třídy IBM PC než klasického Didaktiku nebo Spectra, o plusku ani nemluvě. Po rozebrání tlačítka zjistíte, že jde o kontaktní klávesnici s pozlacenými kontakty. To vše je ukryto v pohledné krabičce, která tvoří vlastní design počítače.

Počítač je napájen ze zdroje, který rovněž doznal změny vzhledu a odpovídá celkovému designu počítače.

Domnívám se však, že pro mnohé z vás bude mnohem zajímavější vlastní zapojení. Jeho dobrá znalost umožní řadě bastlířů vytvořit jeho zajímavé varianty, které budou sloužit jako doplňky Didaktiku M.

Zapojení

Zapojení odpovídá klasickému osmibitovému mikropočítači. Ústřední částí je mikroprocesor Z80A-CPU, paměť RAM a ROM, vstupně/výstupní obvod tvořený zákaznickým obvodem Didaktik U-106-47 a video část s modulátorem.

V levém rohu schématu zapojení je oscilátor tvořený dvěma hradly (IC12) invertoru 74LS04 v symetrickém zapojení spolu s krystalem 16 MHz. Tato frekvence je vydělena klopným obvodem D (IC11), který je zapojen jako dělička dvěma. Výsledná frekvence 8 MHz je vedena do hodinového vstupu CLK (pin 33) zákaznického obvodu U-106-47, na schématu označeném jako PLA (IC1). Dělička dvěma (IC11) zajišťuje symetrickou střídu signálu v poměru přesně 1:1. Frekvence 8 MHz – na rozdíl od Didaktiku Gama či ZX Spectra – byla zvolena z konstručních důvodů – obvod PLA hodiny dále vydělí na frekvenci 4 MHz pro potřeby procesoru.

PLA obsluhuje veškerá vstupně/výstupní zařízení. Je spojen datovou, adresovou i řídící sběrnicí s procesorem, vyjma signálů /HALT, /BUSAK, /BUSRQ, /NMI a /RES, které do PLA nevedou. PLA se chová shodně jako obvod ULA u Didaktiku Gama (až na některé rozdíly).

Paměť

K datové a adresové sběrnici procesoru je přímo připojena paměť ROM, konkrétně EPROM 27128 (obvod IC2). Vývod /OE (pin 20) je trvale uzem-něn a paměť je selektována obvodem PLA (vývod /CE pin 36), který je spojen se stejnojmenným pinem paměti EPROM (/CE pin 20) přes odpor R35 470 Ohmu. Zde je jedna zajímavost, která si zaslouží bližší vysvětlení:

U Didaktiku M i u Didaktiku Gama (s výjimkou prvních asi tisíce vyrobených kusů) je vývod /CE obvodu PLA vyveden přímo na konektor jako signál /ROMCS-D (na systémovém konektoru pin 20A), dále přes odpor R35 na /CE paměti ROM a zároveň na konektor jako klasický signál ROMCS (pin 25B). Signálu ROMCS se dá využít k zablokování výběrového signálu /CE paměti ROM a odpojit ji, přestože se ji bude PLA snažit aktivovat. Na straně PLA bude logická 0, ale jestliže mu zvnějšku vnutíme logickou jedničku, paměť ROM bude neaktivní. Toho se využívá při přistrán-kování externí paměti. U ZX Spectra, který nemá signál /ROMCS-D, je nutno okamžik připojení vnější paměti ke sběrnici dekódovat externím dekodérem adresy. U Didaktiku lze s výhodou využít signál/ROMCS-D, který to provede za nás. Paměť je selektována pouze v okamžiku, kdy nejsou aktivní adresy A14 a A15 (jsou v logické nule), tzn. že je adresován prostor 0-16K, který odpovídá paměti ROM.

Paměť RAM je tvořena osmi obvody typu 4164 (IC3-IC10), tedy s organizací 64K x 1 bit. Protože se pro paměť RAM využívá pouze 48 KB, znamená to, že 25% kapacity paměti není využito. Počítač ZX Spectrum to řešil tak, že pro video paměť (tedy paměť na adresách 16K-32K) používal paměti o kapacitě 16 KB a pro zbývajících 32K paměti o kapacitě 32 KB. Ve světě se však paměti s kapacitou 32 KB nikdy nevyráběly. Ve skutečnosti to byly paměti s kapacitou 64 KB, jejichž jedna polovina byla vadná. Takové paměti se musely vy třídit a označit, která polovina je funkční. Tyto paměti se pak dodávaly velkoodběrateli se slevou. Toho také Sir Cli ve Sinclair využil. V současné době, kdy úroveň výroby pamětí pokročila, se paměti s kapacitou 32KB už nedodávají. Proto je řešení s využitím čipů 64 KB (jak je tomu v Didaktiku M) nejlevnější možné. Oproti počítači ZX Spectrum totiž ušetříme celou jednu sadu pamětí o kapacitě 16 KB.

Datové bity paměti RAM jsou spojeny s datovou sběrnicí procesoru přes odpory R3-R10 o velikosti 1K. Z připojení paměti EPROM vyplývá, že je k datové sběrnici procesoru připojena přímo. Oddělení datové sběrnice paměti RAM odpory umožňuje oddělit procesor od PLA. PLA totiž kromě jiného plní též funkci videoprocesoru s nezávislým přístupem do video paměti. Najedná sběrnici tedy běží nezávisle dva procesory – Z80-CPU a PLA. PLA, která se stará o zobrazování vizuální informace na monitor, má vyšší prioritu než procesor počítače. Kdyby tomu tak nebylo, docházelo by ke ztrátě obrazové informace, která by se projevovala drobnými pruhy a zrněním na obrazovce. Bez odporů R3-R10 by docházelo k hazardům na datové sběrnici, protože procesor by se přetahoval o data s PLA. Procesor tedy může adresovat paměť EPROM a nezávisle na něm PLA paměť RAM. Horší je to v okamžiku, kdy chce CPU přistoupit k paměti RAM. Zde již odpory nepomohou a situaci bude zapotřebí řešit jiným způsobem. ZX Spectrum a s ním i Didaktik Gama ji řešily velmi svérázným způsobem. Jestliže ve stejném okamžiku chtěl do téže části paměti přistupovat procesor i ULA, ULA pozastavila procesoru hodiny (podržela je ve stavu H) do doby, než si sama paměť obsloužila, a teprve pak hodiny pro procesor opět pustila. Procesor tedy vůbec o existenci obvodu ULA nevěděl, protože ten mu pozastavoval jeho vnitřní čas, kterým se měří doba trvání událostí.

U Didaktiku M je to řešeno jinak. PLA generuje pro procesor hodiny s taktem 4 MHz. V případě vlastní potřeby přístupu do paměti RAM vygeneruje procesoru signál /WAIT (IC1 pin 34). V praxi to tedy vypadá tak, že procesor je periodicky waitován.

PLA rovněž generuje veškeré signály pro adresaci paměti RAM. Stará se o multiplexování adres a generování signálů /RAS, /CAS, /WE. U Didaktiku Gama a ZX Spectra tuto funkci plnily samostatné obvody. Hradlo OR (IC17 pin 12, 13) obvodu 74LS32 plní funkci zpožďovacího členu při generování signálu /CAS. Spectristé si jistě vzpomenou, že tento zpožďovací člen byl vs Spectru rovněž osazen od verze 3 nahoru. Tvořily jej dva invertory. Do verze 3 zde byl pouze odpor.

Malá drobnost na závěr. Tou drobností jsou odpory R48 a R53 o velikosti lOk, které jsou připojeny na adresové vodiče A14, A15 a na zem. Jsou zde z důvodů impendančního přizpůsobení sběrnice, i když se někomu může zdát jejich připojení na zem místo na +5V jako nezvyklé.

Klávesnice

Obsluha klávesnice je rovněž zajišťována obvodem PLA způsobem známým z Didaktiku Gama i ZX Spectra. Klávesnice je uspořádána do matice 5×8 kláves, poskytuje tedy celkem 40 možných kombinací. Kurzorová tlačítka jsou řešena jako dvojtlačítka podobně jako u ZX Spectra+. Příslušný řádek matice je selektován adresovými vodiči A8-A15 (aktivní úroveň je v nule), které jsou od klávesnice odděleny diodami KA206 (D1-D8). Stiskem tlačítka v příslušném sloupci se tato úroveň přenese na port obvodu PLA, který má jednotlivé vstupy označeny KEY1-KEY5. Když není stlačena žádná klávesa, jsou vstupy KEY1-KEY5 drženy na úrovni H odpory R29-R33. Klávesnice je čtena na portu 254 bity 0-4. Ostatní bity jsou využity pro komunikaci s magnetofonem, reproduktorem a pro změnu barvy borderu obrazovky.

Čelní panel klávesnice obsahuje tlačítko RESET, které nepatří do matice 5x8 kláves. Reset se aktivuje současným stiskem kláves CAPS SHIFT a RESET. Tím se zajišťuje, aby nedošlo k náhodné inicializaci počítače při nechtěném stisku tlačítka RESET. Vlastní zapojení obvodu, který tento signál generuje, je vylepšeno:

Tvoří jej kondenzátor C40, odpor R20 a ochranná dioda D9. Až potud to lze považovat za klasické zapojení, které však mělo tu nectnost, že signál Reset nebyl jednoznačně definován a byl měkký. Mohlo tak dojít k situaci, že procesor již prošel řešetem a další periferní obvody (např. PPI s 8255) ještě nikoli, nebo že při větším zatíženi sběrnice k resetu nedošlo vůbec. Při adresování módu činnosti periferních obvodů pak tyto instrukce mohly jít do-prázdna. Tato situace byla u Didaktiku Gama ošetřena zpožďovací smyčkou v paměti ROM. Aby k uvedené situaci nemohlo dojít, je třeba vygenerovat signál Reset s dostatečně ostrou hranou a zároveň dostatečně tvrdý, aby s rezervou snesl zatížení ode všech obvodů, které tento signál využívají. U Didaktiku M je Reset generován dvěma invertory 74LS04 (IC 12 pin 6) a vlastní tlačítko RESET je zapojeno na vstup invertoru (IC 12 pin 3).

Obsluha magnetofonu a reproduktoru

Jednou ze změn oproti počítači Didaktik Gama je hardwarové řešení obsluhy magnetofonu a reproduktoru. Signál z magnetofonu a do magnetofonu je oddělen (u obvodu ULA byl na jediném vývodu (pin 28)). Vstup signálu z magnetofonu je upraven vstupním filtrem z kondenzátorů C6, C7, C37 a odporu R52, který je dále veden na komparátor MAB 311 (IC19). Minimální vstupní amplituda signálu je 200 mV. Signál upravený kompa-rátorem je veden do vstupu TI (Tápe Input, pin 19) obvodu PLA a paralelně s ním na invertor (IC12 pin 1) obvodu 74LS04. Jeho výstup je zakončen na pájecím bodě tištěnéhb spoje v bezprostřední blízkosti reproduktoru. Výstup pro magnetofon je pak veden z vývodu TO (Tápe Output, pin 13) obvodu PLA na integrační člen tvořený odpory R24, R25 a kondenzátorem C5. Zde jde o klasické zapojení. Minimální amplituda výstupního signálu je 1 V.

Naproti tomu výstup na reproduktor je veden samostatně z vývodu SO (Speaker Output, pin 15) obvodu PLA přes invertor (IC12 pin 9) obvodu 74LS04, který signál z PLA odděluje a impen-dančně přizpůsobuje reproduktoru. Je zde použit ochranný odpor R46 a dioda D10. Toto zapojení, které odděluje vstupní a výstupní signál magnetofonu a signál reproduktoru, zamezuje vzájemným vazbám při použití libovolného magnetofonu. Důsledek toho je, že při nahrávání programů není slyšet signál nahrávaného programu v reproduktoru počítače, jak to známe u Didaktiku Gama nebo ZX Spectra. Komu by to nevyhovovalo, může si signál vyvést z hradla obvodu 74LS04 (IC12, pin 2).

Joystick je možno připojit na dva přímé konektory v zadní stěně počítače, buď v normě Kempston nebo Sinclair. Port pro normu Kempston se hlásí na adrese 31 a je tvořen budičem 74LS244 (IC16). Je to jednosměrný neinvertují-cí budič, který je selektován signálem /SSRD (IC1 pin 27). Tento signál je vyveden na konektor (pin 6A). Teprve po připojení joysticku dojde k propojení/SSRD s pinem 6B, a tak se signál /SSRD dostane až na budič 74LS244 (IC16 pin 1,19). Bez připojeného joysticku není budič selektován a jeho výstupy jsou ve třetím stavu.

Signál /SSWR (IC1, pin 26), který se aktivuje při zápisu na port 31, není v počítači využit. Je však na desce tištěných spojů vyveden na pájecí bod.

Joystick pro normu Sinclair je selektován adresou A12 a stisky jednotlivých tlačítek jsou čteny obvodem PLA (jeho vstupy pro čtení klávesnice KEY1-KEY5).

Zapojení konektorů pro oba typy joysticků je řešeno tak, že jsou navzájem záměnné. Znamená to, že je naprosto lhostejné, do kterého konektoru joystick zastrčíte. Jen si v příslušném programu musíte vybrat odpovídající normu pro jeho ovládání.

Je třeba upozornit, že při použití vnějšího firemního interfaců s obvodem 8255 nelze současně použít joystick normy Kempston, protože je selektován na stejné adrese. Přestože se to může zdát jako nevýhoda, bylo toto řešení použito s ohledem na zachování kompatibility se ZX Spectrem. Kdyby přesto někdo při hraní nějaké hry potřeboval současně používat interface, lze joystick připojit na konektor určený pro normu Sinclair, kde k žádné kolizi nedojde.

Zobrazení

Zobrazení vizuální informace odpovídá normě ZX Spectra. Kresba je tvořena v rastru 256 x 192 bodů s možností zobrazení osmi barev ve dvou jasových úrovních. Video filé v paměti zabírá 6912 bajtů.

Po hardwarové stránce se převod informace z paměti na monitor provádí odlišným způsobem. PLA negeneruje rozdílové signály U, V, Y jako ULA Didaktiku Gama. Výstupem z PLA jsou informace o barvě (složky RGB), o jasu (Y) a synchronizačních pulsech (S). Složka Y obsahuje pouze informaci o nastavení úrovně bright –je to tedy dvouhodnotový logicky signál. Výstupy R, G, B, Y, S jsou pak přivedeny do obvodů LM1886 (IC15) a LM1889 (IC14), kde jsou zpracovány standardním způsobem. Krystal 4,433 MHz tvoří nosný kmitočet pro barevnou složku signálu. Z tranzistoru KC239 (TI) se odebírá signál pro video výstup a modulátor, který je naladěn přibližně na 48. televizní kanál.

Co u Didaktiku Gama či ZX Spectra nenajdeme, jsou obvody 74LS32 (IC17) a 74123 (IC13), které jsou mezi PLA a LM1886. Hradla obvodu 74LS32 (IC17) spolu s diodou KA136 (Dli) a odporenv 330 Ohmů (R47) slouží k filtraci jasové složky (bright) v případě, že se zobrazuje černá barva. Každá barva se může zobrazit ve dvou úrovních jasu – základním (BRIGHT 0) nebo zvýšeném (BRIGHT 1). U ZX Spectra existuje však pouze jedna černá barva. Nenajdeme tam světlou černou a tmavou černou. U obvodu PLA tato podmínka není ošetřena a na druhé straně programátoři her pro ZX Spectrum při kreslení obrázků s černými plochami po sobě nezhasínají atributy. Bez této úpravy by úvodní obrázky většiny her nevypadaly tak lákavě, jak jsme na to zvyklí u počítačů Didaktik Gama.

Monostabilní klopné obvody 74123 (IC13) upravují signály z PLA do LM1886. Polovina obvodu slouží generování signálu burst a druhá půlka obvodu 74123 spolu s 74LS74 (IC11) zabezpečuje přepínání fáze barevné složky signálu.

Kompatibilita

Kompatibilita je magické slovíčko, které se ve světě výpočetní techniky chápe různě. Hovoří se o kompatibilitě hardwarové nebo softwarové. Softwarová kompatibilita se pak chápe jako záruka, že programové vybavení od různých výrobců bude fungovat stejným způsobem na různých typech počítačů, které používají shodný operační systém, tedy využívají pro komunikaci s hardwarem pouze služeb modulu DOS.

U malých počítačů, které žádný operační systém nepoužívají, tato definice pokulhává. Lze ji však upravit následovně:

Počítač je softwarově kompatibilní s nějakým vzorem (např. ZX Spectrem) tehdy, když jeho řídící program má veškeré podprogramy na stejných adresách jako srovnávaný vzor a jejich funkce je identická. Znamená to, že uvedené podprogramy nemusejí být totožné byte to byte, ale uživatelský program, který jednotlivé podprogramy z paměti ROM používá, nesmí poznat, že běží na jiném počítači.

Podle této definice je Didaktik M kompatibilní se ZX Spectrem. Znamená to, že na něm lze spustit okolo 99% programů určených pro ZX Spectrum (a těch je několik tisíc). Určitě mnohé z vás napadne – a co to zbylé 1%? Existuje nepatrné procento her, které kontrolují, zda běží na originálním ZX Spectru. Dělají to pomocí kontrolního součtu paměti ROM. Když zjistí, že se byť jediný bajt liší, nenahrají se. Protože mezi uživateli počítačů obyčejně kolují již upravené verze her, běžný uživatel-se nesetká s tím, že by nějaká hra vzdorovala. Lze však říci, že toto omezení neplatí u žádného uživatelského programu (textový editor, databáze, programovací jazyk).

Manuál a dokumentace

Počítač se dodává se dvěma příručkami, schématem zapojení a úvodní kazetou. Obě příručky jsou – ve srovnání s příručkami pro Didaktik Gama – po obsahové stránce i způsobem zpracování na nesrovnatelně lepší úrovni. První příručka o rozsahu 118 stran obsahuje základní informace o počítači a inter-preteru Basicu a je jakousi učebnicí.

Druhá příručka o 88 stranách je určena pokročilejším uživatelům. Zabývá se interpreterem Basicu na úrovni systémového programátora. Je zde rovněž kapitola věnovaná hardwarové činnosti počítače. Mnohé jistě potěší sedmnác-tistránkový slovníček cizích pojmů z výpočetní techniky. Další část tvoří seznam doporučené literatury (17 titulů) a přehled nejznámějších uživatelských programů včetně jejich stručné charakteristiky.