Počítač bol primárne určený na výuku programovania na stredných elektrotechnických školách a technických univerzitách. Okrem výuky bol využiteľný aj na jednoduchšiu priemyselnú a experimentálnu automatizáciu a pre nedostupnosť iných alternatív bol v 80. rokoch 20. storočia v Česko-Slovensku obľúbený aj medzi počítačovými nadšencami.[5][6]
Vznik
Prototyp počítača vyvinul na prelome rokov 1980 – 1981 Ing. Roman Kišš, v tom čase 32-ročný testovací technik integrovaných obvodov v národnom podniku Tesla Piešťany. Inšpiráciou mu bol článok v nemeckom odbornom časopise a práci na prototype sa venoval mimo svojej oficiálnej pracovnej náplne, pričom materiál na stavbu získal využitím nevyhovujúcich súčiastok z výroby a výmenou s kolegami (napr. nepotrebná kalkulačka, ktorá poslúžila ako jednoduché vstupno-výstupné zariadenie).[7][1]
Neskôr v priebehu roku 1981 založil v Tesle Piešťany školiace stredisko, prvé svojho druhu vo vtedajšom Česko-Slovensku, kde si účastníci týždenného školenia mohli postaviť vlastný exemplár PMI-80 z pripravených súčiastok a naučiť sa základy jeho programovania v strojovom kóde. Svoje znalosti mohli absolventi následne odovzdať ďalej v mieste svojho pôsobenia, takže školenia svojou mierou prispeli k naštartovaniu vlny záujmu o mikropočítačovú techniku v 80. rokoch v ČSSR.[1]
Po hardvérovej stránke predstavoval počítač minimálny funkčný 8080 systém, obsahujúci len nevyhnutné podporné obvody. Operačná pamäť bola použitá statická, nevyžadujúca obvody, zabezpečujúce periodickú obnovu (refresh), ako v prípade DRAM. Zobrazovanie na displeji a skenovanie klávesnice bolo softvérovo multiplexované, pričom pre obnovu displeja a prípadné nasnímanie kódu stlačenej klávesy bolo potrebné volať príslušné systémové rutiny z monitoru (počítač neobsahoval časovač). Bez ich pravidelného volania z používateľského programu bolo možné na displeji ponechať staticky zobrazený len jeden znak.
Okrem toho počítač z aktívnych súčiastok obsahoval už len 7 tranzistorovPNP (budenie segmentov displeja), 3 tranzistory NPN (tvarovač magnetofónového vstupu, invertor) a 6 kremíkových diód. Klávesnica 5×5, červený sedemsegmentový displej VQD30 a dekodér/budič MH1082 boli prevzaté z vreckovej kalkulačky Tesla OKU 205.
Časovanie
Počítač bol osadený 10 MHzkryštálom, pričom takt pre samotný procesor je interne v obvode MH8224 delený deviatimi, tzn. výsledný takt CPU bol 10 / 9 ≈ 1,111 MHz. Doba vykonávania jednej inštrukcie bola pri 8080 4 – 11 taktov, tzn. výpočtový výkon PMI-80 bol približne v rádoch stoviek tisíc inštrukcií za sekundu (0,1 – 0,28 MIPS).
Pre porovnanie, súčasný (2014) jednodoskový počítač Raspberry Pi 2 so štvorjadrovým 32-bitovým procesorom s jadrom ARM Cortex-A7, dosahuje výkon približne 1 000 MIPS na jedno jadro, je teda približne 20 000-násobne výkonnejší, už pokiaľ ide čisto o počet inštrukcií, vykonateľných za jednotku času (a teda odhliadnuc od ďalších benefitov, súvisiacich so 4-násobnou šírkou slova, integrovanou hw. násobičkou/deličkou priamo v ALU, integrovaným numerickým a grafickým koprocesorom a pod.).
Vstupno-výstupné rozhrania a rozšíriteľnosť
Dve z troch 8-bitových brán obvodu MHB8255A boli využité interne pre multiplexované budenie displeja, klávesnice a vstup/výstup na magnetofón. Zvyšná brána bola vyvedená na FRB konektor (K2) a využiteľná používateľsky ako 8 paralelných vstupno-výstupných liniek s TTL úrovňami. Na doske je ďalej pripravené miesto pre osadenie druhého obvodu MHB8255A so všetkými troma bránami vyvedenými na konektor.[3][5]
Voľné miesto bolo tiež ponechané pre prípadnú druhú používateľskú pamäť EPROM 8708 a na konektore systémovej zbernice (K1) bolo vyvedených 5 z 8 vybavovacích signálov z adresového dekodéru MH3205, ktoré sa dali využiť na jednoduché externé rozšírenia RAM alebo ROM o jednu až päť 1 KiB stránok bez potreby ďalších adresových dekodérov.
V spodnej časti dosky bolo k dispozícii pole 31×8 predvŕtaných kontaktných plôšok (padov) v rastri 2,54 mm, ktoré bolo použiteľné ako univerzálna DPS pre realizáciu prípadných vlastných obvodov, prepojených s počítačom.
Softvér
Počítač bol z výroby osádzaný 1 KiB pamäťou PROM resp. EPROM, obsahujúcou základný obslužný program – monitor strojového kódu (ďalej len „monitor“) s nasledovnými funkciami:[6]
inicializácia systému (klávesa RE; reset zachováva obsah pamäte)
čítanie a zápis údajov na pripojený magnetofón (klávesy L, S)
Programovanie
Programovanie počítača bolo, najmä z dnešného pohľadu, pomerne namáhavé. Program si bolo treba najprv premyslieť a manuálne zapísať v jazyku symbolických inštrukcií (JSI) procesoru 8080. Pri školskom využití v 80. rokoch sa koncept programu v JSI pripravoval spravidla na papieri, v pracovnom zošite. Počítače s obrazovkovým výstupom a textovým editorom, prípadne asemblerom pre automatizovaný preklad programu z JSI do strojového kódu 8080, ktoré by túto prácu dokázali výrazne uľahčiť, ešte neboli bežne dostupné, okrem toho PMI-80 bol cielený primárne práve na výuku nízkoúrovňového programovania.
Program, vopred pripravený v JSI sa potom na PMI-80 zapisoval do pamäte formou zadávania inštrukčných kódov na klávesnici v šestnástkovej sústave. Ako pomôcka slúžil okrem príručky aj papierový „ťahák“ s blokovou schémou počítača a prehľadom inštrukčného súboru 8080 v štruktúrovanej podobe s názvami inštrukcií a ich hexadecimálnymi kódmi, umiestnený na vnútornej strane transportného kufríka počítača.
Zmeny v už zapísanom programe boli možné znova len prepisom inštrukčných kódov na zadaných adresách v pamäti. Prípadné nadbytočné inštrukcie bolo možné prepísať kódom „prázdnej“ inštrukcie NOP (z angl.no operation), avšak vsúvanie nových inštrukcií medzi existujúce nebolo možné – zostávalo jedine zapísať ich na iné voľné miesto v pamäti ako podprogram a na pôvodné miesto vložiť jeho volanie (pokiaľ sa zmestilo), alebo celý program prípadne jeho časť prepísať nanovo, vrátane prepočítania adries všetkých volaných návestí a podprogramov.
Príklad programu
Príklad jednoduchého programu, realizujúceho 8-bitové počítadlo stlačení klávesy s priebežným zobrazovaním počtu (0 až 28−1 = 255, tzn. 00 až FF v šestnástkovej sústave) na displeji. Program využíva ako podprogramy zdokumentované rutiny monitoru PMI-80 pre vymazanie displeja, zobrazenie číselnej hodnoty a vstup z klávesnice.[4] Do pamäte PMI-80 sa program zadá zapísaním postupnosti inštrukčných kódov zo stredného stĺpca a spustí skokom na adresu 1C00. Zaberá 21 bajtov, tzn. približne 2 % z 1 KiB operačnej pamäte PMI-80.
;adresa ;inštrukčné kódy ;komentovaný zápis v JSI
1C00 3E 0C MVI A, 0Ch ; vlož kód znaku 'C' do akumulátora
1C02 CD AB 00 CALL CLEAR ; vymaž displej a vľavo zobraz znak z akumulátora
1C05 1E 00 MVI E, 0 ; inicializuj register E na 0
1C07 7B L: MOV A, E ; presuň obsah E do akumulátora
1C08 32 FA 1F STA IN_DATA ; ulož obsah akumulátora do pamäte na adresu bufferu
1C0B CD F2 00 CALL OUTDA ; zobraz 8b hodnotu z bufferu na displeji
1C0E CD 16 01 CALL OUTKE ; obnovuj displej a čakaj na stlačenie klávesy
1C11 1C INR E ; zvýš hodnotu v E o jedna
1C12 C3 07 1C JMP L ; skoč na adresu návestia L (opakovanie v slučke)
Galéria
Plastový transportný kufrík, vyrábalo sa viacero farebných prevedení
Počítač v kufríku
Doska počítača
Úvodná správa monitoru po zapnutí alebo resete
Programovanie prvého bajtu programu z príkladu
Spustený program
Program po 56 (38h) iteráciách
Referencie
↑ abcdPrednáška Romana Kišša: Ako vznikli počítače PMI 80, PMD 85, Didaktik Alfa [online]. ui42.sk, [cit. 2018-02-25]. Dostupné online.
↑Výrobný štítok s maloobchodnou cenou na obale [online]. Tesla Piešťany, 1984, [cit. 2018-02-11]. Dostupné online.
↑ abŠkolský mikropočítač PMI 80 : Užívateľská príručka : Časť I: Technický popis. Piešťany : Tesla Piešťany, 1982. 27 s. Dostupné online. Archivované 2017-04-22 z originálu.
↑ abŠkolský mikropočítač PMI 80 : Užívateľská príručka : Časť II: Popis základného monitora. Piešťany : Tesla Piešťany, 1982. 22 s. Dostupné online. Archivované 2017-04-22 z originálu.
↑ abcTÓTH, Štefan. Školský mikropočítač PMI-80. Amatérské radio (Praha: Naše vojsko), 1984, roč. XXXIII, čís. 7, 8, s. 257, 258, 297 – 301. Dostupné online [cit. 2020-07-12]. Archivované 2017-07-01 z originálu.
↑ abKIŠŠ, Roman. Monitor PMI-80. Amatérské radio (Praha: Naše vojsko), 1984, roč. XXXIII, čís. 11, s. 417 – 422. Dostupné online [cit. 2020-07-12]. Archivované 2017-07-01 z originálu.
↑ MADE IN Slovakia. Quark : Magazín o vede a technike (Bratislava: CVTI SR), 2017-10-23. Dostupné online [cit. 2018-02-25]. Archivované 2019-10-31 z originálu.