Občasné návštěvy bývalých stránek Nostalcomp ve mně probudily nostalgickou náladu a vzpomínky (asi to měl být jeden z účelů těchto stránek). I zavzpomínal jsem na dobu, kdy pro mne nedostupný počítač měl kalkulačkový displej a malou klávesnici s pár tlačítky.
Na zmíněných stránkách se objevila i výzva, aby se někdo pokusil vytvořit legendární československý počítač PMI80 s jiným procesorem. Protože jsem měl z dřívější doby hotový jednoduchý emulátor procesoru 8080 využitý v počítači CP/M, zvedl jsem hozenou rukavici a vytvořil "PMI80A" s integrovaným "kazetovým magnetofonem".

| Napájecí napětí: | 5 V= |
| Odběr proudu: | max. 100 mA |
| Vnitřní kmitočet hodin: | 8 MHz |
| Velikost operační paměti: | 8 kB (z toho 1 kB zabírá monitor) |
| Velikost "kazetové" paměti: | 16 bloků po 256 B |
| Ladicí prostředek: | Zabudovaný zavaděč Intelhex souborů |
Celý počítač je vložen do mikrořadiče ATmega1284P, jehož výstupní porty tvoří rozhraní PMI80:

Porty A,B,C představují stejnojmenné brány základního obvodu 8255 na desce PMI80. Port D je určen rozšiřujícímu paralelnímu perifernímu obvodu 8255 a nahrazuje jeho bránu A.
Téměř o vše se stará programové vybavení. K mikrořadiči je potřeba připojit jenom klávesnici s displejem podle obrázku č. 3 v Amatérském rádiu 8/84. Aby se to nepletlo, je zachováno číslování bitů a jména portů. Budete-li chtít vaše PMI80A rozšířit o "zvukovou kartu" připojte na výstup PA7 vysokoohmový reproduktorek nebo piezoměnič přes sériový rezistor 68 Ω. Pro přímé nahrávání Intelhex souborů do PMI80A je možné připojit přes vývod PD0 převodník sériového rozhraní.
Aby bylo zapojení maximálně jednoduché, nebyl použit ani externí krystal. Taktování zajišťuje vnitřní oscilátor mikrořadiče na frekvenci 8 MHz.
Jelikož jde spíše o hračku, jsou u popsaného počítače udělány 4 změny:
Zapojení vlastního počítače PMI80A je velmi jednoduché, takže obvod ATmega1284P stačí jenom zapíchnout do nepájivého kontaktního pole a k němu doplnit pár pasivních součástek.
Klávesnice s tlačítky by se na kontaktním poli realizovala hůře. Také sehnat kalkulačkový displej není dnes snadný úkol. Proto je pro displej a klávesnici navržena deska plošného spoje. Místo původního displeje jsou použity 3 kusy trojitých sedmisegmentových displejů LTD036AUE-101C.
Pod displejem je ukryto více drátových propojek, které ze tří samostatných kusů vytvoří jeden displej se společnými katodami.
Všechny součástky jsou umístěny na jedné jednostranné desce plošného spoje (jsou použity součástky v klasickém vývodovém provedení i v provedení SMD). Můžete si obrázky vytisknout v rozlišení 600 dpi. Rozměr je 75 x 140 mm.

Zde je seznam součástek pro PMI80 včetně klávesnice a rozmístění součástek na desce plošného spoje klávesnice:

Program pro mikrořadič ATmega 1284P najdete v balíku pmi80src. Je zde přiložen jak zdrojový kód ve 3 souborech, tak výsledný přeložený kód v souboru pmi80.hex. Nahrajte tento soubor do paměti mikrořadiče.
Jako druhý krok je potřeba nastavit správné pojistky. Mikrořadič by měl mít zapnutý interní oscilátor 8 MHz. Proti továrnímu nastavení stačí obvykle pouze vypnout volbu rozhraní JTAG a vnitřní dělič hodin osmi. Mělo by postačit vypnutí předvoleb "JTAG" a "CKDIV8".
Po naprogramování je PMI80A připraveno k akci. Nezbývá než připojit napájecí napětí 5V a můžete si hrát.
PMI80A se používá stejným způsobem jako klasický PMI80. Rozdíl je v připojení "kazetového EEPROM magnetofonu". Vnitřní EEPROM nahrazuje v omezené míře jeho funkci. Můžete do ní uložit maximálně 16 bloků o velikosti až 256 B. Postup je shodný s původní PMI80. Příkazy pro ukládání bloku zadáváte stejně. Pro číslo bloku se však bere pouze spodní část hexadecimálního čísla (dolní nible). Číslo bloku může být tedy 00 až 0Fhex, vyšší čísla nemají význam a přepisují bloky v režimu modulo 0Fhex. Po výzvě "MG run" potvrďte spuštění magnetofonu a data jsou rychle přenesena.
Úprava umožňuje nahrávat data z "kazetového EEPROM magnetofonu" na adresy v rozsahu 0400hex až 1FFFhex. Při zadání cílové adresy mimo tento rozsah je hlášena chyba a data se nepřesouvají. Výjimkou je zadání funkce LOAD na adresu 0ABCDhex, které spustí interní zavedení dat z PC ve formátu Intelhex souboru.
Zvláštní cílová adresa 0ABCDhex příkazu LOAD spustí v PMI80A příjem dat ve formátu Intelhex. Poté, co je "spuštěn magnetofon" potvrzením výzvy "MG run", přejde mikrořadič do čekání na sériová data na portu D0. Časové okno pro zahájení komunikace je přibližně 3 sekundy.
Na vývod PD0 je potřeba připojit výstup TX obvodu USART (např. převodníku USB/USART připojeného k PC). Klidová úroveň TX výstupu by měla být +5V. Jako komunikační parametry nastavte rychlost 9600 Bd, bez parity a 2 stop bity. Pro odeslání souboru do sériového portu můžete na PC použít některý z mnoha volně dostupných terminálových programů.
Začne-li USART vysílat během časového okna, zahájí PMI80A příjem dat v Intelhex formátu. Jednotlivé řádky dat jsou průběžně ukládány do paměti. Přenos je ukončen, pokud je zjištěna chyba dat, data mají jiný cíl než 0400hex až 1FFFhex, je detekován řádek signalizující konec dat nebo nepřišla data po dobu 3 sekund. Data jsou ukládána přímo na adresy přeložené překladačem a definované v začátku každého řádku Intelhex formátu.
V balíku pmi80tst jsou k dispozici 2 příklady pro vyzkoušení komunikace. Stačí podle uvedeného postupu spustit nahrávání dat a pak vždy poslat soubor .hex do sériového portu. Příklad pozdrav.hex se uloží od adresy 1D00hex a pouští se skokem a adresu 1D80hex. Po spuštění začne na displeji vypisovat představení počítače ukončeným skokem do úvodního hlášení monitoru. Druhý příklad varhany.hex se ukládá od adresy 1E00hex a startuje se na stejné adrese 1E00hex. Vyžaduje připojený piezo měnič nebo reproduktorek a udělá z PMI80A mikrovarhany.
Protože jde jenom o hračku, která měla za úkol umožnit nostalgické vzpomínání, není tento jednoduchý počítač odladěný do detailů. Pro uvedený účel však plně postačuje a pamětník alespoň může "zamáčknout slzu"... :-)
[1] Časopis: Amatérské rádio č. 8/1984
[2] Microchip: ATmega1284P datasheet, 11/09