COSMAC

Psal se rok 1975. Toho roku přišla forma RCA s procesorem, který nazvala COSMAC.

Původně byl označen jako 1801 a umístěn ve dvou čipech – zvlášť registry 1801R a zvlášť jádro 1801U.
COSMAC má totiž kromě akumulátoru dalších 16 obecně použitelných 16bitových registrů. Nemá zásobník jako takový, ale pro tento účel lze využít některého registru. Stejně tak jakýkoli registr může sloužit jako programový čítač.
Teprve později, roku 1976, byly obě části (jádro a registry) sloučeny do jednoho čipu označeného 1802.

Procesor 1802 popsal už Martin Malý, tak se nebudu tolik rozepisovat.

RCA samozřejmě potřebovala nějaké jednoduché základní zapojení, na kterém by bylo možné procesor nějak demonstrovat, a tak pro 1801 vydala COSMAC Microtutor, destičku s přepínači a displejem, do jejíchž rozšiřujících slotů se zasouvala i karta s oběma procesorovými čipy.

Zajímavé je použití displeje – počítač tak nezobrazoval hodnoty binárně pomocí LED, ale využíval zvláštní typ displeje TIL311, který po přivední hodnoty po čtyřech (nebo třech) drátech zobrazil rovnou hexadecimální číslo (nebo oktálové, v případě použití tří datových vodičů. Použití pro nižší číselné soustavy než oktálová poněkud postrádá smysl).
Použití tohoto displeje ušetřilo hodně dodatečné elektroniky a nevyžadovalo ani obslužný program v ROM.

Po sloučení obu čipů 1801 do jednoho čipu označeného jako 1802 pak byl základ Microtutoru použit pro počítač označený COSMAC Elf.

COSMAC Elf byl chválně konstruován tak, aby byl pokud možno co nejlevnější a mohl si jej tedy postavit obyčejný člověk, který se chce seznámit s počítači, ale nechce investovat tisíce dolarů třeba do tehdejší hvězdy IBM 5100, Altair 8800 či IMSAI 8080, případně Wave Mate Jupiter II.
Cena součástek se pohybovala do asi 80 dolarů (v tom předběhl Elf i slavný Timex Sinclair 1000, “počítač pod 100 dolarů”) a počítač nebyl vyráběn, ale v časopise Popular Electronics byl zveřejněn návod na jeho stavbu.
Protože se jednalo o opravdu minimalistickou konstrukci s jen pár šváby, podle originálního návodu stavěné navíc na univerzální desce, neměl problém jej postavit ani méně zkušený páječ.
(Pro ty ještě méně šikovné pak třeba firma Quest prodávala desky tištěných spojů, takže nebylo potřeba nic drátovat a stačilo jen osadit a přípájet součástky, které se daly rovněž objednat.)

Elf používá podobně konstruovanou konzolu s přepínači a hexadecimálním displejem, jako Microtutor. Díky chytrému zapojení ale umožňuje nahradit přepínače hexadecimální klávesnicí.
Samozřejmě využíval jen malou RAM (256 bajtů SRAM) a neobsahoval žádnou ROM, panel byl tedy nutný k vložení programu, nebo alespoň nějakého zavaděče pro načtení programu z periferie.
Displej Elfa tak, jak vyšel v časopise, obsahoval jen dvoumístný displej zobrazující data, neukazoval adresu, kterou si musel uživatel tak nějak pamatovat sám (Elf byl ovšem stavba na univerzálce, takže bylo možné si displej pro zobrazování adres dodatečně dobastlit).

(Nástup ROM obsahující firmware do oblasti mikropočítačů obecně znamenal v podstatě vymizení čelních panelů, protože ty přestaly být potřeba, a s počítačem se pak komunikovalo už výhradně pomocí konzole.)

K Elfu se brzy objevila zajímavá periferie – videokarta, schopná pomocí čipu 1861 nazývaného Pixie zobrazovat na televizi úžasnou monochromatickou grafiku v rastru 64×32 bodů (i když skutečně dosažitelných bylo 64×128), vyčítaných z 256 byte bitmapové VideoRAM (bez paměťového rozšíření tedy zvládl na obrazovce ukázat obsah celé dostupné paměti – populární obrázek lodi Enterprise tedy v části obrazu nese i program, který vesmírnou loď kreslí).

Možnost zobrazování textu tím byla hodně limitovaná, ale i tak bylo možné na Elfu spustit třeba Tiny Basic, později (ale to se používalo připojení k terminálu nebo přídavné karty zobrazující text v běžně použitelném rozlišení, třeba 80 znaků na řádek) i SuperBasic.
Pro Elf byly roku 1977 zveřejněny i první “operační systémy” – ETOPS zabíral 32 bajtů a EHOPS celých 74 bajtů.

Pozdější modely už obsahovaly ROM.

Aby si nemuseli lidé Elfa jenom stavět, přišla firma Netronics s hotovým počítačem – v jejich podání měl Elf II hexadecimální klávesnici, malou ROM, Pixie grafiku a na rozšiřující kartě kazetový, sériový a paralelní interface.
Bylo možné dokoupit i další paměť, ASCII klávesnici a provozovat (buď na Pixie televizním výstupu, nebo na sériovém terminálu) Elf II Tiny Basic.
Dokonalejší Netronics Basic level III s plovoucí desetinnou čárkou umístěný v ROM na rozšiřující “Basic/Math Card” používal neobvykle k zápisu výrazů RPN, dle některých pramenů proto, že tento formát potřeboval jednoduchý kalkulačkový koprocesor umístěný na této rozšiřující kartě.
I Elf II měl pouze dvoumístný displej zobrazující data, bez zobrazení adresy.

Počítač COSMAC VIP, který už RCA sama vyráběla, a který rovněž obsahoval Pixie grafiku, ROM s monitorem rovněž měl, stejně jako kazetový interface a jednoduchý zvukový výstup.
A dodával se k němu i interpret virtuálního stroje Chip-8, ve kterém bylo vytvořeno několik her.
COSMAC VIP tak byl vlastně i herním strojem, byť svým hardwarem omezeným, a vznikla dokonce na jeho hardware založená herní konzole RCA Studio II, nesoucí si interpret Chip-8 v ROM. Proti barevnému Fairchild Channel F a nově vzniklému Atari 2600 se spoustou barev a vícekanálovým zvukem už ale konzole s monochromatikcou kostičkovanou grafikou a jedním tónem neměla šanci.
Zajímavé je, že používá už v základu hexadecimální klávesnici místo přepínačů, ale displej mu chybí úplně (v interakci s uživatelem už tedy plně spoléhá na Pixie televizní výstup).

Quest SuperElf sice nebyl od RCA, ale dále rozvíjel původního Elfa. V ROM měl ETOPS, rozšiřování umožňoval pomocí tehdy standardní S-100 sběrnice, obvyklé spíše u počítačů s procesory 8080 nebo Z80.
SuperElf je opravdu super, protože kromě dvoumístného displeje pro zobrazení dat obsahuje i čtyřmístný displej pro zobrazení 16bitové adresy.

Telmac 1800 byl skandinávský počítač, vybavený alfanumerickou klávesnicí, ale jinak podobný COSMAC VIP – s možností pouštět hry psané pro Chip-8, uložený v ROM. Dokonce ačkoli 1861 umí PAL i NTSC (podle nastavení PAL/NTSC vstupu), generoval Telmac NTSC obraz! Po přidání televizní karty s textovým výstupem pak bylo možno provozovat poněkud pohodlněji Tiny Basic.
Telmac 1800 byl následován počítači Oscom Nano (s PAL obrazem), Telmac 2000 a Telmac TMC-600 se SBasicem v ROM.

Ani další počítače už nejsou od RCA, mají sice procesor 1802, ale nejsou přísně vzato následovníky Elfa:

Počítač Comx-35 z Hong Kongu obsahuje ROM se systémem a Basicem, který se už chová jako normální Basic (nepoužívá RPN, jako Netronics Basic). Číslovka 35 v názvu je odvozena od velikosti RAM.
Místo Pixie je použit čip 1870, který umí zobrazovat textový režim v barvách, ovšem navíc je možné tvar znaků předefinovat. Pro zvuk a generování adres je použit čip 1869.
Software pro Comx-35 jde nalézt ZDE (počítač byl nejspíše rozšířený v Nizozemí, protože “spellen” obsahuje více titulů, než “games”).
(c) www.tietokonemuseo.net

Jugoslávský (vyráběný ve Srbsku) počítač Ei PECOM 32 je podle všech dostupných informací zřejmě jen klonem Comx-35, protože má stejný hardware a stejný Basic (jen místo loga COMX zobrazuje “(c) Ei”).
Drobný rozdíl je ten, že Comx-35 má ROM s Basicem od adresy 0, zatímco PECOM po startu přestránkuje ROM na adresu 32768 a od adresy 0 nastaví RAM.
Existuje ještě rozšířená verze PECOM 64, který má stejně velkou RAM, ale ROM má z 16 KB rozšířenu na 32 KB a vedle Basicu obsahuje i assembler a monitor strojového kódu.

Zajímavé je, že PECOM má sice rozšiřující sběrnici, ale nemá v case odpovídající otvor, a sběrnice je tak bez rozebrání počítače nepřístupná (Comx-35 ji měl vyvedenu na konektor na boku).
Hry pro PECOM jsou ZDE.
(c) www.old-computers.com

Pak už procesory COSMAC opouští oblast domácích počítačů, ale byly ještě dlouho využívány ve vesmírném výzkumu. Procesor, který šel prakticky libovolně podtaktovat, našel využití na palubě mnoha sond.

V současné době existují tři reinkarnace Elfa:

Elf 2000 od Spare Time Gizmos.
Počítač je vybaven odpojitelným panelem, lze tak místo něj připojit hexadecimální klávesnici nebo jej úplně odpojit.
Kromě zobrazování dat obsahuje i čtyřmístný displej pro zobrazení 16bitové adresy.
Má dostatečně velkou RAM, samozřejmě Pixie nebo jeho moderní náhradu, sériák, obsahuje ROM s vybaveným monitorem, nesoucí i Forth, Basic, Editor/Assembler, Chip-8 a další programy, a možností bootovat moderní operační systém ElfOS, pro který lze připojit kartu obsahující připojení CF karty a sériák.
Elf 2000 je velmi dobře vybavený stroj, v podstatě moderní evoluce Elfa, ale byl vždy k dostání jen jako stavebnice, výrobních běhů bylo jen pár, v případě, že se nějaký objeví na prodej, je cena závratná (i když třeba nemá všechna rozšíření), a nebyla uvolněna výrobní dokumentace, takže vyrobit si desky není možné.

Micro Elf.
Jde o zjednodušenou a zmenšenou základní konstrukci Elfa tak, jak byl zveřejněn v Popular Electronics, bez dalších rozšíření – bez televizního zobrazovadla, bez záznamového zařízení – prostě jen procesor, RAM (aspoň je jí 32 KB) a displej s přepínači. Kromě displeje pro zobrazení dat má i displej pro zobrazení adresy – původní autor osazoval jen dvě pozice pro zobrazení osmibitové adresy, ale osazoval i prázdné patice pro další dvě místa, takže po dokoupení displejů je lze rovnou osadit a zobrazovat plnou 16bitovou adresu.
Desku pro Micro-Elf je možné si objednat nebo stáhnout podklady na OSH Park.
Na OSH Park je i deska pro Pixie video, ale zřejmě to není dokončený projekt.

Elf Membership Card.
Elf zmenšený na desku velikosti kreditky tak, aby se vešel do krabičky od bonbónů.
Zajímavé je, že místo číselného displeje používá binární zobrazení dat pomocí diod (adresy nezobrazuje).
V poslední inkarnaci obsahuje i sériák pro komunikaci s PC. V ROM je obsažen monitor zvaný IDIOT, RAM je 32 KB.
Hlavně, narozdíl od předchozích, se dá stále ještě koupit – kompletní kit (i s tou krabičkou na bonbóny) je za 89 dolarů, ale kdo si chce poshánět součástky sám, nebo nepotřebuje panel (či si chce panel ozdobit vlastním designem), může vybrat i levnější variantu.

A jak se takový Elf, respektive jeho čelní panel, ovládá?

Funkce osmi přepínačů D0-D7 je asi celkem pochopitelná.
Dále má Elf další čtyři přepínače, označené MP, INP, LOAD a RUN.
MP je “memory protect”, který brání zápisu do RAM (například při prohlížení paměti, pokud nechcete měnit její obsah; může se hodit i pro simulaci běhu programu v ROM).
Při stisku INP (lze jej realizovat jako přepínač, nebo jako tlačítko) dojde (pokud není zapnuta ochrana paměti přepínačem MP) k zápisu na přepínačích nastavené hodnoty na aktuální adresu a adresa se zvýší o 1.

Režim práce ovlivňuje nastavení přepínačů LOAD a RUN v kombinaci s přepínačem MP.
Režimy jsou čtyři:
Clear/reset – oba (LOAD i RUN) přepínače jsou v nule. Vynuluje se ukazatel adresy na 0000 a resetuje procesor. Vynulování se ale, pokud je instalováno zobrazování adresy, na displeji neprojeví hned.
Load/Review – LOAD v 1, RUN v 0. V tomto režimu se stiskem INP listuje a prohlíží obsah paměti (při zapnuté ochraně paměti) nebo vkládá či mění program (při povoleném zápisu). Podstatné je, že po stisku INP se adresa zvýšila o 1, ale datový displej zobrazuje vloženou hodnotu (tedy na adrese o 1 nižší, než je právě aktivní adresa)!
Run – LOAD je v 0, RUN v 1. Běží program a je vykonáván (při zapnutí MP jsou samozřejmě blokovány zápisy do paměti).
Wait / pause – LOAD i RUN jsou v 1. Procesor je v aktivním stavu, ale provádění programu je dočasně zastaveno.

Výjimkou je počítač Membership Card, kde je jeden z přepínačů otočen.
Po polohy Run a Load směřují oba přepínače stejným směrem (Load dolů, Run nahoru), a každý jinak jsou pak polohy Wait a Clear.

Funkce přepínačů si můžete vyzkoušet i v online emulátoru.

(c) www.cosmacelf.com