PMI-80
PMI-80 | |
Typ | 8-bitový školský jednodoskový mikropočítač |
---|---|
Procesor | MHB8080A @ 1,111 MHz |
Pamäť | 1 KiB SRAM 1 KiB PROM / EPROM |
Displej | integrovaný 9-miestny 7-segmentový LED displej |
Klávesnica | integrovaná kalkulačková, 25 kláves |
Rozhrania | vstup/výstup pre magnetofón paralelné GPIO rozhranie systémová zbernica |
Dátové nosiče | audiokazeta |
Operačný systém | monitor strojového kódu |
Napájanie | externý zdroj +5 V / 0,7 A +12 V / 0,3 A −5 V / 0,1 A |
Rozmery | 240 × 145 mm |
Hmotnosť | 300 g |
Vývojár | Roman Kišš |
Výrobca | Tesla Piešťany, ČSSR |
Premiéra | 1981 |
Výroba | od 1982 |
Vyrobených kusov | približne 5 000 [1] |
Cena | 4 770 Kčs [2] |
Nástupca | PMD 85 |
PMI-80 bol jednoduchý 8-bitový jednodoskový výukový mikropočítač, vyrábaný v ČSSR v podniku Tesla Piešťany od roku 1982. Vybavený bol 9-miestnym sedemsegmentovým kalkulačkovým LED displejom a modifikovanou kalkulačkovou klávesnicou s 25 klávesami. Využíval procesor Tesla MHB8080A, česko-slovenský klon rozšíreného mikroprocesoru Intel 8080 z roku 1974, taktovaný na frekvencii 1,111 MHz a disponoval 1 KiB pamäte RAM a rovnakým množstvom pamäte ROM.[3][4]
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
[upraviť | upraviť zdroj]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 odovzdaní PMI-80 do výroby pracoval Roman Kišš aj na vývoji počítačov PMD 85, Didaktik Alfa a PC 88, ktoré už mali charakter štandardných osobných počítačov s plnohodnotnými alfanumerickými klávesnicami a grafickým výstupom na televízor alebo obrazovkový monitor.[1]
Hardvér
[upraviť | upraviť zdroj]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.
Osadenie mikropočítača tvorilo desať integrovaných obvodov:[5]
- 1× MHB8080A (mikroprocesor, česko-slovenský ekvivalent Intel 8080)
- 1× MH8224 (generátor taktu a signálu RESET)
- 1× MH8228 (riadiaci obvod a budič zbernice)
- 1× MH3205 (dekodér z 3-bitového kódu na 1 z 8, ekvivalent 74LS138, slúžiaci ako adresový dekodér)
- 2× MHB2114 (pamäť SRAM 1024×4b)
- 1× MHB8608 (pamäť PROM 1024×8b) alebo MHB8708 (EPROM 1024×8b)
- 1× MHB8255A (programovateľné paralelné rozhranie, 3×8 vstupno-výstupných liniek)
- 1× MH1082 (dekodér a budič 7-segmentového LED displeja)
- 1× MH7400 (4× hradlo NAND)
Okrem toho počítač z aktívnych súčiastok obsahoval už len 7 tranzistorov PNP (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
[upraviť | upraviť zdroj]Počítač bol osadený 10 MHz kryš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ť
[upraviť | upraviť zdroj]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
[upraviť | upraviť zdroj]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)
- inšpekcia a zmena hodnôt registrov (klávesa R)
- inšpekcia a zmena obsahu pamäte (klávesa M)
- štart používateľského programu od zadanej adresy (klávesa EX)
- trasovanie programu (breakpoint; klávesa BR)
- spracovanie vonkajšieho prerušenia (klávesa I)
- čítanie a zápis údajov na pripojený magnetofón (klávesy L, S)
Programovanie
[upraviť | upraviť zdroj]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
[upraviť | upraviť zdroj]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
[upraviť | upraviť zdroj]-
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
[upraviť | upraviť zdroj]- ↑ a b c d Prednáš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.
- ↑ a b Š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.
- ↑ a b Š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.
- ↑ a b c TÓ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.
- ↑ a b KIŠŠ, 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.
Iné projekty
[upraviť | upraviť zdroj]- Commons ponúka multimediálne súbory na tému PMI-80
Externé odkazy
[upraviť | upraviť zdroj]- PMI-80 na nostalcomp.cz
- Online emulátor PMI-80 na asm80.com
- Prednáška Romana Kišša: Ako vznikli počítače PMI 80, PMD 85, Didaktik Alfa