Hrajeme si s (emulátorem) PMI-80

Pokud si chcete vyzkoušet, jak funguje můj emulátor PMI-80, nevadí vám, že to je alfaverze a potřebujete trošku postrčit, tak tu pro vás mám takového menšího průvodce…

Emulátor PMI-80 je součást mého osmibitového IDE ASM80. Je zatím v první veřejné alfaverzi, ale už je aspoň trošku funkční, tak pro největší nedočkavce zveřejňuju návod, jak si zkusit něco málo s PMI.

Pokud hledáte informace o PMI-80, mohu doporučit stránku PMI-80 na NOSTALCOMP.cz.

Spuštění emulátoru

Není co řešit – klikněte na odkaz Emulátor PMI-80. Je to webový emulátor, takže stačí mít nový prohlížeč (na starých nefunguje, protože používá některé moderní vymoženosti) a myš.

Intermezzo: Ano, asi by šlo vše upravit tak, aby to fungovalo i s IE6, ale „poměr cena-výkon“ je velmi nepříznivý. Ztratil bych tím tolik času, že by mě to pravděpodobně přestalo bavit ještě před dokončením, takže jsem upřednostnil řešení „mít hotovo pro 97 % internetové populace“ před řešením „nikdy to nedodělat pro 100 %“

pmi1

 

Vlevo je sloupec se soubory, které máte uložené v prohlížeči. Uprostřed je samotný emulátor. Vpravo pak ovládání „virtuální magnetofonové pásky“ a tabulku s nápovědou, která říká, jak jsou přiřazené klávesy. Nemusíte klikat myší na virtuální klávesnici (i když to můžete taky), můžete použít klávesnici svého PC.

První krok

Stisknutím jakéhokoli tlačítka (kromě RE, což je RESET, a I, které vyvolá přerušení) se dostanete do režimu, kdy PMI čeká na příkaz – poznáte to podle toho, že se vlevo objeví „něco jako otazník“:

pmi2Co teď? Teď tam naťukáme první program. Kde ho vezmeme?

První program

Já použiju program z knihy Mikropočítač PMI-80. Co s ním? od Jaroslava Vlacha (naleznete ji na výše uvedeném odkazu na webu NOSTALCOMP). Použiju program číslo 3 – stopky. Jeho zdrojový kód je následující:

Jistě znáte výpis assembleru – úplně vlevo adresa, pak operační kód, pak instrukce. Teď je potřeba operační kódy naťukat do PMI.

Vkládání dat do PMI-80

Na displeji máme otazník. Stiskneme M (pro práci s pamětí) a na displeji se objeví „M 0000“ (samosebou limitované sedmisegmentovým displejem, takže M je spíš takové obrácené U). Zadáme adresu (1c00) a stiskneme [=] (na PC klávesnici je to ENTER). V pravé části se objeví „00“. Teď zadáváme data. Na adrese 1C00 je to 3E, takže zadáme 3E, mačkáme ENTER ([=]), adresa se o jedničku zvýší, zadáme obsah na adrese 1C01, tedy 19… a pokračujeme, dokud nenaťukáme všechno.

pmi3

Když dojdeme k poslední adrese a poslední hodnotě, tak stiskneme třeba [EX] (na klávesnici je to X). Na displeji se objeví „Err:data“, po dalším stisknutí se dostaneme zpátky na otazník.

Spouštíme program

Na displeji je otazník, PMI čeká na pokyny. Mačkáme tedy [EX]. Displej vlevo zobrazí G a čtyři znaky adresy. Zadáme 1C00 a mačkáme [=]. Tím se program spustí od adresy 1C00.

Krása, že?

Když se ho nabažíme, stiskneme [RE]. Tím se PMI resetuje, ale nebojte – o program v paměti nepřijdete, zůstane tam uložený.

Ukládáme program na pásku

Po náročném ťukání by bylo dobré svou práci uložit, ať se s tím příště nemusíte ťukat zas. PMI k tomu má rozhraní pro práci s páskou, a můj emulátor má zase „virtuální pásky“. Jak na to?

  • Z pohotovostního režimu (s otazníkem) stiskneme [S]
  • Adresu zadáme 1C00 a potvrdíme [=]
  • Číslo bloku necháme 00 a potvrdíme [=]
  • Displej ukazuje „MG run“…
  • Klikneme na „Tape start – record“, tím spustíme nahrávání. Rozhraní signalizuje „RECORDING“
  • Stiskneme opět [=] (na PMI), čímž se spustí záznam. Nějakou dobu to potrvá. Během té doby se úplně vlevo objeví znak „t“ a počítadlo odpočítává.
  • Po skončení záznamu displej ukáže „MG STOP“.
  • Klikněte na tlačítko „Tape stop“, čímž se ukončí nahrávání na virtuální pásku.
  • „Tape length: 4626“ je správná délka záznamu.
  • Stiskneme naposledy [=] a tím se ocitneme zase v pohotovostním režimu.

Virtuální páska je uložena v prohlížeči, takže když se na stránku s emulátorem vrátíte po čase, budete ji mít k dispozici.

Čteme program z pásky

Postup je obdobný ukládání.

  • Stiskneme [L] v pohotovostním režimu
  • Zadáme adresu, od které chceme data nahrát (1C00) a potvrdíme [=]
  • Zadáme číslo bloku (00) a potvrdíme [=]
  • Displej vyzve „MG Start“
  • Nejprve potvrdíme [=]…
  • … a pak klikneme na Tape start – playback
  • Data se začnou nahrávat, ukazatel odpočítává
  • Po nahrání displej zobrazí „MG Stop“
  • Stiskem [=] se zase dostaneme do pohotovostního režimu.

pmi4

Ukládáme si pásku pro pozdější použití

Máme pásku nahranou. Bohužel se na ni vejde vždy jen jeden záznam. Ale to nevadí, můžeme si ji uložit pro pozdější použití. Stačí kliknout na „Save tape“ a zadat vhodné jméno („Stopky“ třeba). Soubor se uloží do souborového systému v prohlížeči a objeví se v levém sloupci s příponou „.pmitape“. Můžete si jich uložit kolik chcete. Kliknutím na něj jej zase „přesunete“ do „virtuálního magnetofonu“.

Použijeme assembler, protože jsme líní to celé překládat ručně a ťukat do klávesnice.

To samosebou lze. V horním pravém rohu je tlačítko „Back to IDE“. Klikněte na něj a ocitnete se v IDE ASM80. Vlevo je seznam souborů, vpravo ovládání, uprostřed okno editoru. Klikněte na „New file“, jako jméno zadejte „stopky.a80“ (přípona A80 řekne překladači, že má použít modul pro procesor 8080) a napište program. Nebo si ho zkopírujte odsud:

Klikněte na „Save file“ a pak na „Compile“ (nebo použijte F9). Program se přeloží a v levém sloupci, mezi soubory, se kromě „stopky.a80“ objeví i další dva soubory: „stopky.a80.hex“, který obsahuje HEX formát binárních dat, a „stopky.a80.lst“, ve kterém je výpis přeloženého kódu (to je ten první výpis v tomto článku).

A protože je to celé propojené (cizím slovem „integrované“), tak se vraťte do emulátoru PMI-80 (stačí kliknout na tlačítko vpravo nahoře s nápisem PMI-80, nebo ručně zadat adresu…) V emulátoru teď vidíte v levém sloupci soubor „stopky.a80.hex“. Kliknutím na něj ho natáhnete do paměti. Tralala, žádné ťukání do kláves. Můžete si vyzkoušet – pomocí klávesy M si projděte paměť od adresy 1C00 a uvidíte, že tam je to, co čekáte…

Co dál?

Vezměte si k ruce tu knihu, experimentujte, hrajte si, ať se vám líbí! Kdybyste objevili jakoukoli chybu, použijte Uservoice (to je taková ta bublina s otazníkem vpravo nahoře) a nahlašte mi ji, děkuju.

No a pro zvědavce prozradím, že mi funguje prealfa verze emulátoru BOB-85. Musím dodělat přesné časování instrukcí procesoru 8085 a napojit jej na virtuální magnetofon. Až bude hotovo, dám vědět opět tady…

 

Příspěvek byl publikován v rubrice ASM80.com se štítky . Můžete si uložit jeho odkaz mezi své oblíbené záložky.