Následující konstrukce vznikla jako vzpomínka na "retro" časy, kdy osobní počítače začaly vyrůstat z plenek. V dávných dobách byly ještě programy mezi počítači různých výrobců prakticky nepřenosné. Asi nejúspěšnějším pokusem vedoucím k prolomení programové bariéry mezi osmibitovými počítači byl operační systém CP/M Garyho Kildalla.
Éra osmibitových počítačů však byla příliš krátká na to, aby se výrazněji zapsala do historie lidstva :-). Přesto některé myšlenky jsou uloženy hluboko v základech operačních systémů dnešní doby. A velmi pravděpodobně něco z idejí G. Kildalla běhá v počítači, u kterého sedíte dnes.
Kdybyste si chtěli vyzkoušet, jak takový prehistorický systém fungoval, máte zde k dispozici emulátor jednoduchého CP/M počítače. Nejde o detailní popis, hlavní podklady pro stavbu zde ale najdete. Zbytek z velkého množství informací o CP/M počítačích hledejte na jiných stránkách. Vždyť víte: Google je mocný :-)

Popisovaný počítač není zcela původní. Vyrostl na základě upraveného projektu FatFS, který vytvořil a dále vylepšuje ChaN na svých stránkách:
http://elm-chan.org/fsw/ff/00index_e.html
Náplní FatFS projektu je implementace souborového FAT, který používají MMC a SD karty pro různé mikrořadiče. Je zde uvedeno několik příkladů použití tohoto systému, mimo jiné i pro ATmega64. Možnost číst a ukládat soubory na paměťovou kartu mne přivedla k myšlence, kolik práce by bylo potřeba na doplnění konstrukce k vytvoření jednoduchého počítače s funkčním operačním systémem.
Mikrořadiče ATmega mají Harwardskou strukturu, nejsou tedy na podobné úkoly příliš vhodné. Ale napadlo mne, že při emulaci jiného procesoru pomocí výpočetní síly mikrořadičů ATmega, by bylo možné na tomto procesoru spustit tak "archaický" systém, jako je CP/M.
A skutečně. Stačilo upravit ChaNovo zapojení a pak obětovat asi 14 dnů po večerech psaní programu a ejhle - podařilo se zkompilovat a pak i spustit první program napsaný na tomto "CP/M" počítači.
Pozor! Upozorňuji, že vše bylo děláno za účelem zábavy a uspokojení vlastní zvědavosti. Nejde o kompletně dodělaný projekt. Řada funkcí v emulátoru CP/M není implementována. Napsal jsem pouze kostru potřebnou k základnímu spouštění některých programů. Pokud byste měli chuť nad tím bádat dále, je zde ještě minimálně stejné množství práce na dodělání :-)
Emulovaný počítač je uložen v paměti mikrořadiče ATmega128. Mikrořadič v rámci hlavní programové smyčky provádí několik úkolů:
Největší část programu počítače obsahuje soubor "Pocitac.c". Některé instrukce 8080 jsem ale pro větší rychlost napsal přímo v assembleru do souboru "Arit80.S".
Projekt byl vytvořen a přeložen v AVR Studiu 4. Přeložený program je v souboru "Pocitac.hex". Po naprogramování nezapomeňte nastavit propojky procesoru, především externí krystal s maximální frekvencí.
Následující obrázky získáte ve větším rozlišení po kliknutí na ně.
První část schéma je jenom mírnou obměnou zapojení, které vytvořil ChaN.

Druhá část je velmi jednoduchá. K mikrořadiči je katalogovým způsobem připojena rozšiřující paměť SRAM a jsou zde zakresleny obvody napájení. Z napájecího napětí 8 až 12 V= je vyrobeno pomocí dvou stabilizátorů napětí 5 V pro napájení logických obvodů a 3,3 V pro napájení paměťové karty.

Celý počítač je sestaven na jednom jednostranném plošném spoji. Obrázek uložte a vytiskněte v rozlišení 600 dpi. Rozměr je 100 x 90 mm.

Zde je seznam součástek a rozmístění SMD součástek na desce plošného spoje.

K počítači je potřeba připojit terminál a stejnosměrný napájecí zdroj. Zdroj postačuje 100 mA. Terminál pro připojení má vstupní úrovně TTL, nelze zde přímo připojit rozhraní RS232. V tomto případě doporučuji obvod MAX232 (nebo jeho ekvivalent), případně postačí i jednoduchý převodník úrovní se 2 tranzistory.
Po osazení součástek a po kontrole napájecích napětí naprogramujte pomocí sériového programování mikrořadič přímo na desce plošného spoje. Zdrojový program včetně přeloženého .HEX souboru najdete zde
Připojte počítač k vhodnému terminálu. Po zapnutí by se měl počítač ohlásit a pak můžete zkusit reakci na první dva příkazy podle obrázku:

Příkaz "TIME" by měl již fungovat, "DIR" odpoví, že "disk" není připraven.
V této fázi můžete ještě otestovat, zda RTC obvod pracuje správně a při opakovaném zadávání příkazu "TIME" dochází k posunu času.
Aby byl počítač použitelný, musí mít možnost data (programy) odněkud číst a někam je zase ukládat. Rozjíždět v dnešní době disketový systém by bylo náročnější a kromě hezkých zvuků, které vydávaly, byste to už moc neocenili :-)
Diskový systém nám může nahradit jedna paměťová SD nebo MMC karta. Nejvhodnější jsou nějaké malé staré "reklamní" karty s kapacitou např. 32 MB, které bývaly dříve přibalené k fotoaparátům. Na takovouto kartu umístěte do kořenového adresáře obsah tohoto souboru.
Vzniknou tam 4 adresáře, představující 4 disky "A:" až "D:". Disky "C:" a "D:" jsou prázdné. Disk "A:" obsahuje editor ED a překladač jazyka C s assemblerem AS a řadu zdrojových programů pro použití. Doporučuji přeložit si COPY.C a výsledek používat pro kopírování souborů. Postup je uveden zde:

Kdo by chtěl vyzkoušet překladač jazyka BASIC, může se podívat na disk "B:" a vyzkoušet:

Pro fajnšmekry bych pak doporučil interpret jazyka BASIC:

Zde popsaný počítač byl (jak bylo uvedeno na začátku) vyvíjen pouze pro zábavu a nebylo záměrem jeho seriózní nasazení a používání.
Přiznávám, že nejvíce práce a přemáhání mi dalo vytvořit tuto dokumentaci, protože počítač doposud neměl ani schéma. Původně jsem jej tvořil přímo na desku plošného spoje při nahlížení do technických listů :-).