Hlavní navigace

Mikropočítače založené na čipu RCA 1802

V úterním článku jsme si popsali zajímavý a v našich končinách poněkud přehlížený osmibitový mikroprocesor RCA 1802. Dnes se budeme zabývat mikropočítači, které na bázi tohoto čipu vznikly, především mikropočítačem pojmenovaným COSMAC ELF.
Pavel Tišnovský 17. 9. 2020
Doba čtení: 23 minut

Sdílet

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ů

5. COSMAC ELF

6. Základní charakteristiky mikropočítače COSMAC ELF

7. Programování počítače COSMAC ELF

8. Další rozšíření ELFu

9. První krůčky v oblasti počítačové grafiky na mikropočítačích

10. Netronics ELF II

11. SuperELF

12. ELF 2000

13. Podobné projekty založené na použití jiných mikroprocesorů nebo mikrořadičů

14. Mikropočítač IMSAI 8048 Control Computer

15. Mikropočítač Kosmos CP1

16. PMI-80

17. Malá odbočka – monitory

18. Literatura

19. Odkazy na Internetu

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.

Poznámka: v některých článcích se setkáme s tvrzením, že se jednalo o první RISCový procesor. To ve skutečnosti nebyla pravda, protože u RISCových procesorů se sice používá relativně velký počet registrů, ovšem jedná se o registry univerzální (u RCA 1802 je univerzální jen akumulátor). Navíc je celá idea RISCu založena na tom, že se používá instrukční pipeline a v tomto ohledu je RCA 1802 pravým opakem RISCové architektury.

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í:

  1. 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).
  2. 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é).
  3. 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.
  4. 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.
xyzzy

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
Poznámka: za zmínku stojí především druhý zmíněný mikropočítač KIM-1, který byl použit v mnoha úspěšných projektech. Tomuto mikropočítači (opět u nás dosti neznámému) se budeme věnovat v samostatném článku.

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
Poznámka: některé z těchto mikropočítačů, zejména slavný ZX80 a ZX81, byly dostupné jak ve formě kitu, tak i složeného stroje (samozřejmě za rozdílnou cenu). Dalším příkladem je slavný Altair 8800, jenž byl dostupný buď ve formě součástek za 395 dolarů (v tehdejší tvrdší měně), popř. již složený za celých 650 dolarů. Není divu, že mnozí uživatelé raději vzali do ruky pájku a počítač si sami složili a oživili (typicky bez logického analyzátoru či alespoň osciloskopu).
8051

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.

Poznámka: v předchozím textu skutečně nechybí údaj kapacitě ROM či PROM. Tato paměť totiž nebyla součástí schématu, protože se program ukládal (ručně) do RAM.

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í.

Poznámka: na tomto místě je nutné zdůraznit, že toto řešení bylo umožněno jen díky poměrně unikátním vlastnostem mikroprocesoru RCA 1802 s jeho DMA. Pokud by byl použit jiný mikroprocesor, počítač by musel být vybaven pamětí ROM či EPROM, která by zajistila inicializaci systému a programovou smyčku pro čtení přepínačů a zápis dat do paměti.

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
Poznámka: další počítače již většinou měly horizontální rozlišení 320 pixelů – těchto počítačů je již celá řada a tabulka by velmi narostla.

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).

xyzzy

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).

xyzzy

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).

xyzzy

Obrázek 15: Další varianta počítače IMSAI nazvaná IMSAI Express.

Poznámka: nejednalo se tedy zdaleka o tak elegantní minimalistické řešení, jako v případě COSMAC ELFu.

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í).

xyzyy

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ě.

xyzzy

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.

Linuxová školení

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

  1. 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
  2. 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
  3. U.S Shah,
    Microprocessor and its applications

19. Odkazy na Internetu

  1. RCA 1802 (Wikipedia)
    https://en.wikipedia.org/wi­ki/RCA_1802
  2. Great Microprocessors of the Past and Present (V 13.4.0)
    http://www.cpushack.com/CPU/cpu.html
  3. Chip Hall of Fame: RCA CDP 1802
    https://spectrum.ieee.org/se­miconductors/processors/chip-hall-of-fame-rca-cdp-1802
  4. The CPUs of Spacecraft: Computers in Space
    http://cpushack.com/space-craft-cpu.html
  5. Part I: RCA 1802, weirdness at its best (1974)
    http://www.cpushack.com/CPU/cpu2­.html#Sec2Part1
  6. Embedded Processor and Microcontroller primer and FAQ
    http://www.faqs.org/faqs/mi­crocontroller-faq/primer/
  7. COSMAC ELF: The CDP1802’s Place in Microcomputing History
    http://www.cosmacelf.com/
  8. Cosmac 1802
    http://www.nyx.net/~lturner/pu­blic_html/Cosmac.html
  9. CDP1802AC/3: High-Reliability CMOS 8-Bit Microprocessor
    https://www.renesas.com/e­u/en/www/doc/datasheet/cdp1802ac-3.pdf
  10. A Short Course In Programming
    http://www.ittybittycompu­ters.com/IttyBitty/ShortCor­.htm
  11. The 1802 Instruction Set
    https://www.atarimagazines­.com/computeii/issue3/page52­.php
  12. Jak se zrodil procesor?
    https://www.root.cz/clanky/jak-se-zrodil-procesor/
  13. Osmibitové mikroprocesory a mikrořadiče firmy Motorola (1)
    https://www.root.cz/clanky/osmibitove-mikroprocesory-a-mikroradice-firmy-motorola-1/
  14. 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/
  15. 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/
  16. Československé osmibitové počítače
    https://www.root.cz/clanky/ces­koslovenske-osmibitove-pocitace/
  17. 25 Microchips That Shook the World
    https://spectrum.ieee.org/tech-history/silicon-revolution/25-microchips-that-shook-the-world
  18. COSMAC 1802: history of microprocessors in space
    https://www.retrotechnolo­gy.com/memship/1802_space­craft.html
  19. COSMAC 1802 on AMSATs running IPS
    https://www.retrotechnolo­gy.com/memship/amsat.html
  20. Technické informace o sondě Galileo
    https://www.retrotechnolo­gy.com/memship/galileo.txt
  21. COSMAC “ELF” Microcomputer Trainer User’s Manual:
    http://www.cosmacelf.com/pu­blications/books/cosmac-elf-manual.pdf
  22. RCA COSMAC MICROPROCESSOR
    http://www.decodesystems.com/cosmac/
  23. Netronics ELF II
    https://oldcomputers.net/netronics-elf.html
  24. Netronics Elf II
    http://www.qwkslva.com/Mu­seum/Netronics_Elf/netronic­s_elf.html
  25. Assorted COSMAC Computers
    http://www.cosmacelf.com/ga­llery/assorted-cosmac-computers.html
  26. RCA 1802 COSMAC (plocha čipu)
    http://visual6502.org/ima­ges/pages/RCA_1802_die_shot­s.html
  27. Joseph Weisbecker
    https://en.wikipedia.org/wi­ki/Joseph_Weisbecker
  28. Joe Weisbecker Video Game Collection
    https://digital.hagley.org/weisbecker
  29. CDP1802A
    https://www.renesas.com/us/en/pro­ducts/space-harsh-environment/harsh-environment/microprocessors-peripherals/device/CDP1802A­.html#overviewInfo
  30. Grafické karty a grafické akcelerátory (7)
    https://www.root.cz/clanky/graficke-karty-a-graficke-akceleratory-7/
  31. Osmibitové mikrořadiče Rabbit: praví dědicové mikroprocesoru Zilog Z80
    https://www.root.cz/clanky/osmibitove-mikroradice-rabbit-pravi-dedicove-mikroprocesoru-zilog-z80
  32. Čtyřicet let existence slavných mikroprocesorů řady Motorola 68000
    https://www.root.cz/clanky/ctyricet-let-existence-slavnych-mikroprocesoru-rady-motorola-68000/
  33. Intel 8008 Instruction Set
    https://www.bytecollector­.com/archive/mark8/My_Mark-8_Info/Software/8008_ReferenceCard.PDF
  34. Intel 8008 instruction set
    https://www.pastraiser.com/cpu/i8008/i8008_op­codes.html
  35. Silicon on sapphire
    https://en.wikipedia.org/wi­ki/Silicon_on_sapphire
  36. COSMAC ELF Lives Again, In FPGA
    https://hackaday.com/2020/01/23/cosmac-elf-lives-again-in-fpga/
  37. verilog1802
    https://github.com/jamesbow­man/verilog1802
  38. 1802 FIG FORTH
    https://www.retrotechnolo­gy.com/memship/figforth_1802­.html
  39. SuperElf
    http://oldcomputermuseum.com/su­per_elf.html
  40. COSMAC na Hackaday
    https://hackaday.com/tag/cosmac/
  41. Vintage COSMAC Elf Is Pretty Close To Original
    https://hackaday.com/2017/03/06/vin­tage-cosmac-elf-is-pretty-close-to-original/
  42. KIM Uno: a DIY clone of the KIM-1
    https://obsolescence.wixsi­te.com/obsolescence/kim-uno-summary-c1uuh
  43. Colorburst
    https://en.wikipedia.org/wi­ki/Colorburst
  44. List of common resolutions
    https://en.wikipedia.org/wi­ki/List_of_common_resoluti­ons
  45. Intel MCS-8 (SIM8–01)
    http://oldcomputermuseum.com/mcs-8.html