Obsah
1. Mikropočítače založené na čipu RCA 1802
2. Od prvních mikropočítačů k domácím mikropočítačům
3. Seznam testovacích a vývojových mikropočítačů
4. Seznam mikropočítačových kitů
6. Základní charakteristiky mikropočítače COSMAC ELF
7. Programování počítače COSMAC ELF
9. První krůčky v oblasti počítačové grafiky na mikropočítačích
13. Podobné projekty založené na použití jiných mikroprocesorů nebo mikrořadičů
14. Mikropočítač IMSAI 8048 Control Computer
1. Mikropočítače založené na čipu RCA 1802
V úterním článku jsme si popsali osmibitový mikroprocesor RCA 1802, který vznikl v polovině sedmdesátých let minulého století, což znamená, že konkuroval tak slavným čipům jako je Intel 8080, Motorola 6800 a MOS 6502 (později i mikroprocesoru Zilog Z80 a mikrořadiči Intel 8048). Víme již, že se jednalo o poněkud zvláštní mikroprocesor, který byl (z pohledu programátora) založen na osmibitové aritmeticko-logické jednotce s osmibitovým akumulátorem doplněným o šestnáct (!) šestnáctibitových registrů. Tyto registry se ovšem používaly převážně pro adresování operandů v operační paměti a nebylo je tedy možné použít například v aritmetických ani logických operacích. Z tohoto pohledu vypadá architektura RCA 1802 dosti nevyváženě, protože značně velká plocha čipu byla zabrána pro uložení adres (a nikoli potenciálních operandů). Na druhou stranu však toto řešení vedlo k pravidelné instrukční sadě, ke které se ještě později na chvíli vrátíme.
Obrázek 1: Čip RCA 1802.
Čip RCA 1802 má poměrně zajímavě řešené vstupní a výstupní piny, které ho předurčily k tomu, že byl dosti často používán i v těch aplikacích, pro něž by se běžně použil mikrořadič. K tomu navíc dopomohlo to, že RCA 1802 byl jako jeden z prvních mikroprocesorů postaven na technologii CMOS a díky použití statických registrů bylo možné úplně zastavit hodinovou frekvenci (0 Hz), popř. měnit napájecí napětí, a to ve značném rozsahu (cca od 4V do 10V, resp. neoficiálně do 12V). Jednou z nevýhod čipu RCA 1802 bylo pomalé vykonávání instrukcí; přesněji řečeno instrukce byly provedeny ve vyšším počtu hodinových cyklů, než tomu bylo u prakticky všech konkurenčních čipů (16, popř. 24 cyklů). I to je jeden z důvodů, proč tento mikroprocesor nebyl použit v klasických herních konzolích či domácích osmibitových mikropočítačích. To však ale neznamená, že by se RCA 1802 neuplatnil. Dodnes populární je jeho použití v mikropočítači COSMAC ELF, který si popíšeme v navazujících kapitolách.
Obrázek 2: Piny mikroprocesoru RCA 1802.
2. Od prvních mikropočítačů k domácím mikropočítačům
COSMAC ELF byl zástupcem mikropočítačů, což je označení pro relativně malá elektronická zařízení vybavená mikroprocesorem, která je možné programovat a měnit tak jejich chování. Mikropočítače začaly vznikat v první polovině sedmdesátých let minulého století společně s prvními univerzálními mikroprocesory a hrubě je lze rozdělit do čtyř kategorií:
- Testovací a vývojové mikropočítače; jejich vzorem byl Intel SIM8–01 postavený na mikroprocesoru Intel 8008 (viz odkazy). Byly většinou dodávány složené a byly určeny pro seznámení firem a movitějších zákazníků s mikroprocesorovou technikou (mimochodem: zmíněný SIM8–01 byl dodáván i s programátorem EPROM).
- Mikropočítačové kity, které si uživatelé složili doma. Do této kdysi velké a populární skupiny patří i dnes popisovaný mikropočítač COSMAC ELF. Vzhledem k relativně malým sériím se původně nevyplatilo budovat výrobu složených kitů; to se změnilo o několik let později. Taktéž zákazníci, kteří si kity pořizovali, byli většinou více či méně zdatnými elektroniky, pro které sestavení kitu nemuselo představovat zásadní problém (čipy mívaly klasické DIP pouzdro s rozestupem pinů 2,5, resp. 2,54 mm, takže i pájení bylo snadné).
- Mikropočítače primárně určené pro výuku. Sem spadá například MTP8080 Microtutor či československý stroj PMI-80, o němž se v krátkosti zmíníme v závěru článku. Do značné míry se tyto mikropočítače prolínají s první skupinou.
- Domácí mikropočítače, které již měly zcela odlišný charakter – výstup na TV, později podporu barevného obrazu, podporu zvuku, plnohodnotnou klávesnici, byly vybaveny kazetovou jednotkou či dokonce disketovou jednotkou atd.
Obrázek 3: Originální mikropočítač Apple II postavený na bázi osmibitového mikroprocesoru MOS 6502.
Dnes nás budou zajímat především první tři skupiny, které mají určité společné vlastnosti. Většinou mají minimalistický design a taktéž důraz na práci s mikroprocesorem. Naproti tomu domácí osmibitové mikropočítače měly již odlišný charakter a byly určeny spíše koncovým zákazníkům, kteří počítač chtěli používat jako celek a nechtěli a vlastně ani nemuseli chápat jeho interní architekturu.
3. Seznam testovacích a vývojových mikropočítačů
Jak již víme z předchozí kapitoly, jednalo se o zařízení určená především pro otestování možností mikroprocesorové techniky i pro návrh nových zařízení. Tyto mikropočítače byly dražší, než dále zmíněné kity a byly určeny spíše pro průmyslové firmy a nikoli pro domácí bastlíře (v dobrém slova smyslu). Schémata těchto mikropočítačů byla mnohdy chápána jako standard v dané oblasti (proto například mnoho vzájemně velmi odlišných strojů mělo namapovány registry obvodu 8255 na stejné adresy atd.). V průběhu sedmdesátých let minulého století vznikly takové mikropočítače pro prakticky všechny významné mikroprocesory:
# | Název | Rok vzniku | Založeno na CPU/MCU |
---|---|---|---|
1 | Intel SIM8–01 | 1972 | Intel 8008 |
2 | MOS Technology KIM-1 | 1975 | MOS 6502 |
3 | Motorola MEK6800D2 | 1976 | Motorola 6800 |
4 | Rockwell AIM-65 | 1976 | MOS 6502 |
5 | Synertek SYM-1 | 1978 | MOS 6502 |
6 | Intel SDK-85 | 1978 | Intel 8085 |
Obrázek 4: Mikropočítač KIM-1 nemá nic společného se Severní Koreou.
CC BY-SA 2.0 fr
4. Seznam mikropočítačových kitů
Mikropočítačové kity představovaly pro mnoho uživatelů ekonomicky zajímavější (a pravděpodobně i dostupnější) řešení. Většinou byly dodávány v balíčku s plošným spojem a součástkami, ovšem některé kity obsahovaly pouze plošný spoj společně s návodem – na Západě bylo pravděpodobně jednoduché (či alespoň možné) sehnat všechny potřebné součástky v lokálních obchodech. V další tabulce možná stojí za zmínku Apple I, ke kterému si uživatelé stavěli i více či méně originální obaly. Dále si povšimněte, že COSMAC ELF se v tabulce (setříděné podle roku vzniku kitu) nachází již na čtvrtém řádku, protože se jednalo o jeden z prvních dostupných mikropočítačových kitů (i když se původně jednalo „pouze“ o schéma a popis v časopise):
# | Název | Rok vzniku | Založeno na CPU/MCU |
---|---|---|---|
1 | SCELBI | 1974 | Intel 8008 |
2 | Mark-8 | 1974 | Intel 8008 |
3 | MITS Altair 8800 | 1975 | Intel 8080 |
4 | COSMAC ELF | 1976 | RCA 1802 |
5 | Apple I | 1976 | MOS 6502 |
6 | Nascom, Nascom 1 | 1977 | Zilog Z80 |
1 | Nascom 2 | 1979 | Zilog Z80 |
2 | Telmac 1800 | 1977 | RCA 1802 |
3 | Newbear 77–68 | 1977 | Motorola 6800 |
4 | Heathkit H8 | 1977 | Intel 8080 |
5 | Heathkit H11 | 1977 | LSI-11 |
6 | Electronics Australia | 1977 | 2650 |
1 | Netronics ELF II | 1977 | RCA 1802 |
2 | Quest SuperELF | 1978 | RCA 1802 |
3 | Elektor TV Games Computer | 1979 | Signetics 2650 |
4 | System 68 | 1977 | Motorola 6800 |
5 | PSI comp 80 | 1979 | Zilog Z80 |
6 | Science of Cambridge MK14 | 1978 | National Semiconductor SC/MP |
1 | Acorn System 1 | 1979 | MOS 6502 |
2 | Tangerine Microtan 65 | 1979 | MOS 6502 |
3 | Compukit UK101 | 1979 | MOS 6502 |
4 | Sinclair's ZX80 | 1980 | Zilog Z80 |
5 | Sinclair ZX81 | 1981 | Zilog Z80 |
6 | MicroBee | 1982 | Zilog Z80 |
Obrázek 5: Amatérský mikropočítač postavený na základě osmibitového mikrořadiče 8051. Funkce nabízené tímto mikropočítačem jsou v mnoha ohledech podobné funkcím kitu PMI-80 (i když se jedná o zařízení postavená na odlišných čipech a s využitím jiných technologií).
5. COSMAC ELF
Konečně se dostáváme k popisu mikropočítače COSMAC ELF, kterému je část tohoto článku věnována. Tento počítač navrhl Joseph Weisbecker v roce 1976 (Joseph byl i spolutvůrce samotné koncepce 1802). Mikropočítač ELF byl popsán v magazínu Popular Electronics a byl navržen takovým způsobem, že vyžadoval pouze absolutně nezbytné množství elektronických součástek a přitom se jednalo o programovatelný počítač. Cena při vlastním složení byla odhadována na osmdesát dolarů (pozdější ZX80 za 79,95 liber ve formě kitu či 99,95 liber ve složené podobě). COSMAC ELF byl zpočátku dostupný pouze v podobě schématu zveřejněného v časopise, takže si případní zájemci museli sami obstarat potřebné součástky, plošný spoj (popř. pouze desku bez vodivé vrstvy) a zdroj. Později některé firmy začaly COSMAC ELF dodávat ve formě kitu, takže si uživatelé mikropočítač sami sestavili z dodaných dílů. A několik firem se dokonce snažilo o prodej již sestaveného ELFu, to však poměrně značným způsobem zvyšovalo jeho cenu.
Obrázek 6: Obálka časopisu Popular Electronics, ve kterém byl popsán mikropočítač COSMAC ELF.
Mimochodem, výše zmíněné číslo Popular Electronics je dostupné na adrese https://worldradiohistory.com/Archive-Poptronics/70s/1976/Poptronics-1976–08.pdf. Stačí zalistovat na stránku 31.
6. Základní charakteristiky mikropočítače COSMAC ELF
Mikropočítač COSMAC ELF byl pojat skutečně minimalisticky. Ostatně to posuďte sami. Pochopitelně byl vybaven osmibitovým mikroprocesorem RCA 1802. Kromě tohoto čipu se na desce mikropočítače (kterou si museli uživatelé sami osadit) nacházely dva čipy s pamětí RAM o celkové kapacitě závratných 256 bajtů (každý čip měl kapacitu 256×4 bity – viz schéma převzaté z článku). Dále byl počítač vybaven osmi přepínači, které sloužily pro modifikaci (resp. zápis) do jednoho bajtu operační paměti. Zápis byl potvrzen dalším tlačítkem. Následují tři přepínače sloužící pro volbu režimů (programování, běh programu, …) a pro zákaz záznamu (ochrana paměti). Pro komunikaci s uživatelem sloužila dvojice sedmisegmentových displejů, které mohly zobrazit dvoucifernou hexadecimální hodnotu (typicky hodnotu bajtu v paměti, což se používalo při programování). Tyto displeje byly připojeny přes záchytné registry, protože sběrnice mikroprocesoru sloužila ke třem účelům: práci s operační pamětí, čtení přepínačů se zápisem do RAM a právě zápis dat na displej. A aby toho nebylo málo, byla na pin označený Q (jenž je možné přímo ovládat dvojicí instrukcí) připojena LED. A to bylo vše – uživatelé si mohli s LED blikat (což asi byl jeden z prvních programů), zkoušet Morseovku, připojit namísto LED další obvod (teoreticky i zesilovač) atd.
Obrázek 7: První (pravá) část schématu mikropočítače COSMAC ELF. Vodiče zobrazené na levém okraji pokračují na další schéma.
Obrázek 8: Druhá (levá) část schématu s ovládací částí (tři přepínače a programovací tlačítko).
Shodou okolností byl tento mikropočítač popsán v době, kdy společnost Intel představila nový koncept čipu, který byl nazván mikrořadičem. Takový čip (většinou) obsahoval jak RAM, tak i ROM (maskovaná ROM, PROM či EPROM) a mohl tak teoreticky vést k návrhu mikropočítače s jediným integrovaným obvodem. To je samozřejmě pravda, ovšem navíc byl vyžadován programátor pamětí. Ten nebyl u ELFu nutný, ostatně by jeho cena přesáhla cenu samotného ELFu a navíc je nutné mít možnost zápisu ROM z připravených dat.
7. Programování počítače COSMAC ELF
Zápis programů, resp. přímo strojového kódu reprezentovaného sekvencí osmibitových hodnot, se prováděl s využitím osmi přepínačů, jimiž se zvolila potřebná kombinace bitů. Následně se stlačením tlačítka IN provedl zápis bajtu do operační paměti (adresy se generovaly s využitím DMA) a hexadecimální kód instrukce se zobrazil na dvojici sedmisegmentových displejů. Jak to vypadalo v praxi si můžete prohlédnout na tomto videu. Spuštění programu bylo realizováno přepínačem RUN. Jedná se o velmi minimalistický přístup, který však nevyžadoval žádnou ROM/EPROM s monitorem ani složité obvodové řešení.
8. Další rozšíření ELFu
V dalších článcích, které navázaly na výše zmíněný článek se schématem ELFu, se Weisbecker zabývat dalšími rozšířeními tohoto minimalistického projektu. Jednalo se například o úpravu spočívající v použití běžných LED namísto hexadecimálního displeje (což bylo levnější, neboť se ušetřilo za relativně drahé součástky), klávesnici pro zadávání hexadecimálních číslic (to bylo samozřejmě mnohem rychlejší, než zápis programu v binárním kódu pomocí přepínačů), popisem, jak zajistit zálohu RAM s využitím baterie, jak k počítači připojit skutečnou ROM, jak zajistit relativně primitivní video výstup (!) atd.
V jednom z článků byl popsán i relativně mocný monitor, který dokonce dokázal použít video výstup. Postupnými úpravami – které ovšem mnohdy nebyly levné – tak bylo možné z původního značně primitivního ELFa postavit relativně výkonný a univerzální mikropočítač (pochopitelně s ohledem na dobu vzniku a možností konkurenčních strojů).
9. První krůčky v oblasti počítačové grafiky na mikropočítačích
Nejsložitější úprava mikropočítače COSMAC ELF byla prezentována ve čtvrtém článku, v němž byl popsán a použit pomocný integrovaný obvod nazvaný RCA 1861 (IC1861), velmi často přezdívaný „pixie“. Jednalo se o dosti primitivní generátor obrazu pro monitory, po zapojení RF části i pro televizory. Oficiálně tento integrovaný obvod vyžadoval hodinový signál o frekvenci 1,76 MHz, ovšem krystaly s touto frekvencí nebyly běžně k dispozici. Proto se namísto toho používaly přece jen dostupnější krystaly s frekvencí 3,579545 MHz určené primárně do televizorů (tam řídily color burst). Po zapojení takového krystalu do oscilátoru se generovaný hodinový signál běžným způsobem dělil dvěma, takže se získala frekvence 1,7897725 MHz, která již byla dostatečně blízko požadované frekvenci, aby „pixie“ spolehlivě pracoval.
Obrázek 9: Vpravo dole je patrné, jak vypadal grafický výstup.
Dosahované rozlišení obrazu na stínítku monitoru dosahovalo 64×128 pixelů monochromaticky, což sice z dnešního pohledu není mnoho, ovšem musíme si uvědomit, že éra dostatečně levných domácích osmibitových mikropočítačů s vyššími rozlišeními (a typicky osazenými specializovanými čipy) ještě nenastala. Obraz musel být do čipu posílán přes DMA ovládanou vhodně navrženou vykreslovací rutinou. Pokud se ovšem skutečně mělo využít již zmíněné rozlišení 64×128 pixelů, musel se obraz generovat programově, protože COSMAC ELF neměl dostatečnou kapacitu operační paměti pro uložení celé bitmapy (dnes bychom řekli video RAM), protože pro uložení monochromatické bitmapy 64×128 je zapotřebí 64×128/8=1024 bajtů. Z tohoto důvodu se rozlišení programově (různými triky s DMA) snižovalo na 64×32 pixelů, což kromě menších nároků na RAM mělo i ten pozitivní důsledek, že pixely byly čtvercové.
Jen pro zajímavost si uveďme rozlišení dosahovaná v různých jednodušších mikropočítačích, popř. grafických kalkulátorech:
Zařízení | Horizontálně | Vertikálně | Počet pixelů |
---|---|---|---|
Microvision (herní konzole) | 16 | 16 | 256 |
Etch A Sketch Animator (kreslicí destička) | 40 | 30 | 1200 |
Etch A Sketch Animator 2000 (kreslicí destička) | 60 | 40 | 2400 |
Epoch Game Pocket Computer (herní konzole) | 75 | 64 | 4800 |
TRS-80 (mikropočítač se Z80) | 128 | 48 | 6144 |
COSMAC ELF | 64 | 128 | 8192 |
Atari Lynx (herní konzole) | 160 | 102 | 16320 |
Game Boy (herní konzole) | 160 | 144 | 23040 |
ZX Spectrum a spousta dalších | 256 | 192 | 49152 |
10. Netronics ELF II
Někteří výrobci elektronických zařízení si záhy uvědomili, že existuje docela velká poptávka po mikropočítači COSMAC ELF, takže začali nabízet vlastní skládačky (plošný spoj, sadu součástek, mnohdy i klávesnici pro hexa vstup). A právě tímto způsobem vznikla i stavebnice nazvaná ELF II nabízená společností Netronics. Tento mikropočítač byl vydán v roce 1978 a dostupný byl jak ve formě kitu (99,95 dolarů) či ve složené podobě za 149,95 dolarů. Základní kapacita RAM zůstávala rovna 256 bajtům, ovšem byla rozšiřitelná na 64kB. I dvoumístný sedmisegmentový displej zůstal zachován, ovšem programy se zapisovaly na „hexadecimální“ klávesnici. Nejzajímavější byla pětice slotů určených pro rozšiřující moduly. Jeden z takových modulů obsahoval i interpret jazyka BASIC, konkrétně Tiny BASIC (což je varianta BASICu očesaná na nutné minimum).
Obrázek 10: Netronics ELF II.
11. SuperELF
Dalším mikropočítačem založeným na čipu RCA 1802, tentokrát nabízeným přímo společností RCA, byl mikropočítač pojmenovaný SuperELF. Tento počítač obsahoval čip 1861 „pixie“ o němž jsme se zmínili v deváté kapitole, takže umožňoval video výstup. Přidány byly i obvody pro připojení reproduktoru, který využíval pin Q, stejně jako klasická LED. Tento pin tedy mohl být používán větším množstvím zařízení. Kromě hexadecimální klávesnice byl počítač doplněn o další řídicí tlačítka, mj. o tlačítko Wait pro zastavení hodinového signálu a taktéž o tlačítka Single step určené pro krokování programu po jednotlivých instrukcích.
SuperELF byl rozšiřitelný pomocí připojovaných karet. Nabízeny byly karty se sériovým portem (ovšem řízeným čistě programově), dále pro připojení kazetového magnetofonu (opět řízeno softwarově), karta s ROM o kapacitě 1kB s monitorem, popř. další ROM o kapacitě 2kB s Tiny BASICem atd.
12. ELF 2000
Počítač nazvaný COSMAC ELF 2000 byl představen na stránce Spare Time Gizmos. Jedná se o jednu z mnoha reinkarnací původního ELFa, ovšem s řadou vylepšení. Došlo například k rozšíření kapacity paměti RAM na 32kB a připojit je možné i EPROM o kapacitě taktéž 32kB. Tato EPROM může obsahovat Editor/Assembler, interpret programovacího jazyka BASIC, prostředí FORTHu i jazyka CHIP-8. Nejzajímavější je ovšem možnost načíst program z běžného PC po startu ELFa, čímž se uživatel může vyhnout zápisu programů po jednotlivých bajtech (což v případě RAM o kapacitě 256 bajtů bylo možné, u 32kB však nelidské :-).
13. Podobné projekty založené na použití jiných mikroprocesorů nebo mikrořadičů
V závěru dnešního článku si jen připomeneme další mikropočítače založené na podobné myšlence, jako COSMAC ELF a jeho nástupci: zápis programů v hexadecimálním kódu (na hexadecimální klávesnici), výstup ve formě znaků na sedmisegmentovém displeji a možnost přímého ovládání vstupních a výstupních portů. Takových mikropočítačů vznikla celá řada a některé z nich namísto mikroprocesorů používaly mikrořadiče (což je ostatně logické). Nutno však dodat, že cenu 80 dolarů překonaly prakticky všechny dále popsané stroje.
Obrázek: Nákres oficiálního kitu pro mikrořadič Intel 8048.
Obrázek: Další mikropočítač založený na čipu RCA 1802 – COSMAC FRED s poněkud zvláštním rozložením kláves.
14. Mikropočítač IMSAI 8048 Control Computer
Jedním z prvních mikropočítačů postavených na mikrořadiči Intel 8048, je mikropočítač IMSAI 8048 Control Computer, který byl určený, jak již ostatně jeho název napovídá, pro řízení různých elektronických zařízení. Nejednalo se tedy o klasický domácí osmibitovový počítač s grafickým výstupem na televizor či monitor a plnohodnotnou klávesnicí – standardním výstupním zařízením byl jednoduchý devítimístný sedmisegmentový displej, popř. tiskárna připojená přes sériový port; klávesnice umožňovala zápis programu ve strojovém kódu (jednalo se o přímý zápis hexadecimálních hodnot 00 až FF), editaci buněk paměti, krokování programu atd. Mikropočítač IMSAI 8048 byl nabízen ve dvou variantách. První varianta byla založena přímo na mikrořadiči Intel 8048 (PROM), druhá verze využívala čip Intel 8748 vybavený interní pamětí EPROM, popř. byl použit čip 8035 (zcela bez interní ROM), ke kterému byla připojena paměť EPROM představovaná známým a v minulosti často používaným paměťovým modulem 2716 s kapacitou dva kilobajty (tento paměťový modul byl mj. součástí tuzemského osmibitového domácího mikropočítače PMD-85–2).
Obrázek 13: Dobová fotografie počítače IMSAI 8048 Control Computer.
Varianta počítače IMSAI 8048 Control Computer s pamětí ROM byla nabízena za 249 dolarů v případě dodání počítače ve formě stavebnice, popř. za 299 dolarů, pokud si uživatel přál získat již hotovou sestavu; zatímco varianta obsahující paměť EPROM byla dražší – 399 dolarů za stavebnici nebo 499 dolarů za počítač sestavený výrobcem. Z těchto cen si mimochodem můžeme odvodit, jakou novinkou a poměrně drahou záležitostí byly paměťové moduly EPROM před rokem 1980 (ale i to, že marže výrobců počítačů byly možná až o řád vyšší než v současnosti). V paměti ROM či EPROM byl uložen program umožňující základní práci se systémem. Především se jednalo o ovládání periferních zařízení (včetně kazetového magnetofonu a sériového portu), tvorbu uživatelských programů, krokování těchto programů (včetně možnosti nastavení breakpointů), jejich úpravu (editaci), zobrazení obsahu libovolné buňky interní či externí paměti na displeji, změnu těchto údajů atd. Tento program se nazýval, podobně jako tomu bylo i na některých dalších mikropočítačích, monitor (viz závěr článku).
Obrázek 14: Pohled na počítač IMSAI 8048 bez horního krytu.
Jeden z problémů, který museli konstruktéři mikropočítače IMSAI 8048 vyřešit, byl způsob editace a spouštění uživatelských programů. Všechny varianty počítače IMSAI totiž používaly mikrořadič s pouhými 64 bajty interní paměti údajů, v níž se navíc nacházely i pracovní registry a zásobník. Z tohoto důvodu byla tato paměť rozšířena o další jeden kilobajt externí paměti RAM, v níž mohla být uložena jak uživatelská data, tak i části programu, které bylo možné pomocí monitoru modifikovat. Mikrořadiče řady 8048 umožňovaly přímo adresovat pouze 256 bajtů z externí paměti údajů, proto monitor obsahoval logiku pro stránkování externí paměti RAM po blocích o velikosti 256 bajtů (po obvodové stránce se nejednalo o nic jiného, než připojení nejvyšších dvou bitů adresové sběrnice na záchytný registr – latch). V praxi měl tedy uživatel k dispozici 1024 bajtů RAM pro uložení svého programu, přičemž mohl využívat podprogramy uložené v 2048 bajtech paměti ROM (tyto podprogramy byly součástí monitoru).
Obrázek 15: Další varianta počítače IMSAI nazvaná IMSAI Express.
15. Mikropočítač Kosmos CP1
Druhým mikropočítačem založeným na mikrořadiči Intel 8048, jímž se v dnešním článku budeme alespoň ve stručnosti zabývat, je počítač nazvaný Computer Praxis 1 (zkráceně CP1) vyráběný na přelomu sedmdesátých a osmdesátých let minulého století německou firmou Kosmos. Tento minimalisticky pojatý počítač byl vybaven mikrořadičem 8049H s 2 kB paměti ROM a pamětí údajů o kapacitě 128 bajtů, která byla doplněna externími 256 bajty RAM (viz další text). Mikrořadič byl doplněn obvodem 8155, který zajišťoval vstupně/výstupní operace (rozšiřoval I/O porty mikrořadiče o 22 linek) a taktéž obsahoval již zmíněnou externí RAM s organizací 256×8 bitů. Podobně jako v případě mikropočítače IMSAI, i počítač Kosmos CP1 se programoval přímo ve strojovém kódu, přičemž jednotlivé instrukce i jejich operandy byly zadávány v desítkové soustavě, což bylo spíše neobvyklé řešení (i dnes je možné zakoupit kity pro různé typy mikrořadičů, ale většina jich zobrazuje údaje v soustavě hexadecimální).
Obrázek 16: Mikropočítač Kosmos CP1.
Mikropočítač Kosmos CP1 byl vybaven jednoduchou klávesnicí zobrazenou na předchozím obrázku a šestimístným sedmisegmentovým LED displejem. K tomuto mikropočítači bylo možné připojit prakticky libovolné elektrické zařízení, které bylo ovladatelné signály s úrovněmi odpovídajícími TTL logice. Vzhledem k poměrně velké oblibě tohoto mikropočítače mezi německými uživateli vzniklo velké množství různých projektů na něm založených, od jednoduchých budíků, přes zvukové syntetizéry až po systém umožňující automatické ovládání modelového kolejiště.
Obrázek 17: O oblibě počítače Kosmos CP1 svědčí i to, že vznikl jeho emulátor.
16. PMI-80
Zástupcem mikropočítačů určených pro výuku je například československý mikropočítač PMI-80. 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 mikroprocesoru 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 skoků atd.).
Obrázek 18: Školní mikropočítač PMI-80 sice nebyl vybaven plnohodnotnou klávesnicí ani výstupem na televizi, ovšem způsob jeho ovládání připomínal klasické monitory. 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.
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 19: Někteří programátoři dokázali i v primitivním monitoru naprogramovat rozsáhlé aplikace a to včetně her. V takovém případě se pro ruční převod assembleru do strojového kódu používaly takovéto tabulky (i když osobně znám člověka, který si dokázal zapamatovat kódy všech strojových instrukcí i jejich variant).
17. Malá odbočka – monitory
Na skutečných osmibitových mikropočítačích měli ti uživatelé, kteří se chtěli zabývat programováním, na výběr z relativně velkého množství různých vývojových nástrojů a pomůcek. Některé mikropočítače byly vybaveny pouze velmi jednoduchým operačním systémem zajišťujícím základní vstupně/výstupní operace (čtení klávesnice, zápis znaku na obrazovku, rutiny pro čtení a zápis dat na magnetofon). Poměrně často byl operační systém doplněn o takzvaný monitor což byl (a někde doposud je) program umožňující manipulaci s daty v operační paměti, tj. zápis dat do paměti, čtení (zobrazení) vybraného bloku, přesun bloku, vyplnění určité oblasti konstantou, čtení a zápis dat na externí paměťové médium (typicky magnetofon) a některé pokročilejší monitory byly vybaveny i disassemblerem umožňujícím transformaci sekvence bajtů na symbolické instrukce. Mimochodem – při výpisu obsahu operační paměti se v monitorech většinou používal stejný formát, jaký najdeme u mnoha moderních programátorských hexa editorů.
Obrázek 20: Celoobrazovkové uživatelské rozhraní monitoru pro mikropočítače Apple II.
Pro zajímavost – původní monitor použitý v počítači PMD 85.1 byl uložen ve čtyřech kilobajtech paměti EPROM a obsahoval následující příkazy: SUB, JUMP, MEM, DUMP, BASIC, MGLD, MGSV, MGEND a JOB.
Obrázek 21: Monitor pro slavné osmibitové počítače Commodore C64.
Obrázek 22: Strohé uživatelské rozhraní monitoru pro československé mikropočítače PMD-85. Kdo říká, že minimalismus je „in“ až v současnosti?
18. Literatura
- A Radiation-Hardened Bulk Si-Gate Microprocessor Family, R.E. Stricker, A.G.F. Dingwall, S. Cohen, J.R. Adams, and W.C. Slemmer
IEEE Conference on Nuclear and Space Radiation Effects,
Santa Cruz, CA, July 17–20, 1979 - Rapid Annealing Response of the Hardened 1802 Bulk CMOS Microprocessor, John Scarpulla, Robert Mozulay, Christine Ausnit, Edward W. Hogan, and Richard H. Casey
IEEE Transactions on Nuclear Science, Vol. NS-27, No. 6 December 1980
- U.S Shah,
Microprocessor and its applications
19. Odkazy na Internetu
- RCA 1802 (Wikipedia)
https://en.wikipedia.org/wiki/RCA_1802 - Great Microprocessors of the Past and Present (V 13.4.0)
http://www.cpushack.com/CPU/cpu.html - Chip Hall of Fame: RCA CDP 1802
https://spectrum.ieee.org/semiconductors/processors/chip-hall-of-fame-rca-cdp-1802 - The CPUs of Spacecraft: Computers in Space
http://cpushack.com/space-craft-cpu.html - Part I: RCA 1802, weirdness at its best (1974)
http://www.cpushack.com/CPU/cpu2.html#Sec2Part1 - Embedded Processor and Microcontroller primer and FAQ
http://www.faqs.org/faqs/microcontroller-faq/primer/ - COSMAC ELF: The CDP1802’s Place in Microcomputing History
http://www.cosmacelf.com/ - Cosmac 1802
http://www.nyx.net/~lturner/public_html/Cosmac.html - CDP1802AC/3: High-Reliability CMOS 8-Bit Microprocessor
https://www.renesas.com/eu/en/www/doc/datasheet/cdp1802ac-3.pdf - A Short Course In Programming
http://www.ittybittycomputers.com/IttyBitty/ShortCor.htm - The 1802 Instruction Set
https://www.atarimagazines.com/computeii/issue3/page52.php - Jak se zrodil procesor?
https://www.root.cz/clanky/jak-se-zrodil-procesor/ - Osmibitové mikroprocesory a mikrořadiče firmy Motorola (1)
https://www.root.cz/clanky/osmibitove-mikroprocesory-a-mikroradice-firmy-motorola-1/ - Mikrořadiče a jejich použití v jednoduchých mikropočítačích
https://www.root.cz/clanky/mikroradice-a-jejich-pouziti-v-jednoduchych-mikropocitacich/ - Mikrořadiče a jejich aplikace v jednoduchých mikropočítačích (2)
https://www.root.cz/clanky/mikroradice-a-jejich-aplikace-v-jednoduchych-mikropocitacich-2/ - Československé osmibitové počítače
https://www.root.cz/clanky/ceskoslovenske-osmibitove-pocitace/ - 25 Microchips That Shook the World
https://spectrum.ieee.org/tech-history/silicon-revolution/25-microchips-that-shook-the-world - COSMAC 1802: history of microprocessors in space
https://www.retrotechnology.com/memship/1802_spacecraft.html - COSMAC 1802 on AMSATs running IPS
https://www.retrotechnology.com/memship/amsat.html - Technické informace o sondě Galileo
https://www.retrotechnology.com/memship/galileo.txt - COSMAC “ELF” Microcomputer Trainer User’s Manual:
http://www.cosmacelf.com/publications/books/cosmac-elf-manual.pdf - RCA COSMAC MICROPROCESSOR
http://www.decodesystems.com/cosmac/ - Netronics ELF II
https://oldcomputers.net/netronics-elf.html - Netronics Elf II
http://www.qwkslva.com/Museum/Netronics_Elf/netronics_elf.html - Assorted COSMAC Computers
http://www.cosmacelf.com/gallery/assorted-cosmac-computers.html - RCA 1802 COSMAC (plocha čipu)
http://visual6502.org/images/pages/RCA_1802_die_shots.html - Joseph Weisbecker
https://en.wikipedia.org/wiki/Joseph_Weisbecker - Joe Weisbecker Video Game Collection
https://digital.hagley.org/weisbecker - CDP1802A
https://www.renesas.com/us/en/products/space-harsh-environment/harsh-environment/microprocessors-peripherals/device/CDP1802A.html#overviewInfo - Grafické karty a grafické akcelerátory (7)
https://www.root.cz/clanky/graficke-karty-a-graficke-akceleratory-7/ - Osmibitové mikrořadiče Rabbit: praví dědicové mikroprocesoru Zilog Z80
https://www.root.cz/clanky/osmibitove-mikroradice-rabbit-pravi-dedicove-mikroprocesoru-zilog-z80 - Čtyřicet let existence slavných mikroprocesorů řady Motorola 68000
https://www.root.cz/clanky/ctyricet-let-existence-slavnych-mikroprocesoru-rady-motorola-68000/ - Intel 8008 Instruction Set
https://www.bytecollector.com/archive/mark8/My_Mark-8_Info/Software/8008_ReferenceCard.PDF - Intel 8008 instruction set
https://www.pastraiser.com/cpu/i8008/i8008_opcodes.html - Silicon on sapphire
https://en.wikipedia.org/wiki/Silicon_on_sapphire - COSMAC ELF Lives Again, In FPGA
https://hackaday.com/2020/01/23/cosmac-elf-lives-again-in-fpga/ - verilog1802
https://github.com/jamesbowman/verilog1802 - 1802 FIG FORTH
https://www.retrotechnology.com/memship/figforth_1802.html - SuperElf
http://oldcomputermuseum.com/super_elf.html - COSMAC na Hackaday
https://hackaday.com/tag/cosmac/ - Vintage COSMAC Elf Is Pretty Close To Original
https://hackaday.com/2017/03/06/vintage-cosmac-elf-is-pretty-close-to-original/ - KIM Uno: a DIY clone of the KIM-1
https://obsolescence.wixsite.com/obsolescence/kim-uno-summary-c1uuh - Colorburst
https://en.wikipedia.org/wiki/Colorburst - List of common resolutions
https://en.wikipedia.org/wiki/List_of_common_resolutions - Intel MCS-8 (SIM8–01)
http://oldcomputermuseum.com/mcs-8.html