Historie | Počítače

Jak se před 35 lety pracovalo na prvním československém mikropočítači PMI 80

  • Už před 35 lety vyrobila Tesla svůj první počítač. Ne ta americká, ale Tesla z Piešťan
  • První československý počítač se jmenoval PMI-80 a jeho vznik za železnou oponou byl docela krkolomný
  • Historický kousek jsme zapnuli a vyzkoušeli si tehdejší programování

Programování na papíře

Assembler, neboli po česku „jazyk symbolických adres“ převádí strojový kód, tedy vlastní jazyk počítače, na příkazy pro nás srozumitelnější. Takže například pro přičtení nějakého operandu k registru A píšeme příkaz ADI.

Takovému příkazu ale mikroprocesor nerozumí. Je to pouze zkratka pro nás, nedokonalé lidi s chabou pamětí. Každá taková instrukce má vlastní kód (v uvedeném případě jde o hodnotu C6 v hexadecimální soustavě), takže když mikroprocesor načte z paměti byte s takovou hodnotou, ví, co má dělat, a že v dalším bytu se bude nacházet hodnota, kterou má k registru A přičíst.

Není pochopitelně cílem naučit laskavého čtenáře programovat mikroprocesor i8080, srdce PMI 80. Proto si pouze stručně vysvětlíme, že asi nejjednodušší program, který uloží do registru A hodnotu 9 a následně k ní přičte další devítku bude vypadat takto:

	MVI a, 9h	3E 09		1C00	
	ADI a,9h		C6 09		1C02

	DAA
	STA 1ffah
	CALL 00abh
L1: CALL 00f2h
	CALL 0140h
	JMP L1

Na výše uvedeném programu nás zajímají jen první dva řádky (vložení devítky do registru A a přičtení další devítky), které zajišťují onen zmíněný součet. Vpravo pak máme operační kódy příslušných instrukcí a jejich argumenty. To, co následuje v dalších řádcích, slouží pouze k tomu, aby PMI 80 výsledek zobrazilo na displeji. Není třeba se tím trápit.

Jak vypadala běžná praxe? Nejprve jste si na papír napsali onen program a následně jste si instrukce přeložili do operačních kódů. Bylo zároveň dobrým zvykem si ještě po straně napsat, na jakých adresách bude ta která instrukce – to se hodilo při programování skoků. Je to ten třetí sloupec v naší ukázce. Pokud jste totiž skok spočítali špatně a mikroprocesor skočil například na adresu 1C01, kde je 09, byl z toho poněkud zmaten. Netušil totiž, že se jedná o data, takže se hodnotu pokoušel interpretovat jako instrukci, což mělo dost jednoznačné následky.

Instrukce po instrukci

Následovalo zapnutí počítače, pokochali jste se úvodní zprávou „PMI – 80“, a následně zmáčkli M. Tento příkaz spustil mód zobrazování a měnění obsahu paměti. Museli jste zadat od které adresy chcete paměť měnit (v našem případě je to 1C00, ale mohli jste použít jinou, přičemž možnost volby limitovala „úžasná“ velikost 1 kB RAM). Poté se vám zobrazil obsah v paměťové buňce 1C00 a vy jste jej mohli pomocí klávesnice přepsat – třeba na právě námi potřebný kód první instrukce 3E.

Menime obsah pameti.JPGMod prohlizeni paměti.JPG
Měníme obsah paměti • Mód prohlížení paměti

Počítač automaticky zvýšil o jedničku zobrazovanou buňku, vy mohli zadat další potřebnou hodnotu, v našem případě se jedná o 09, a pokračovalo se dál a dál, dokud nebyl celý program pěkně zapsán do paměti.

Máte to? A co dál? Nejlépe bude program spustit, jinak nemělo celé takové úsilí smysl. Spouštění se realizuje stiskem klávesy EX, počítač se přeptá na adresu paměti, od které je program zapsán (u nás 1C00), no a voilà – na displeji máme správný výsledek. Kdo nevěří, ať použije kalkulačku, ale důvěřujte staré dobré technice. PMI 80 zcela správně uvede, že 9+9=18...

Vysledek vypoctu.JPG
Výsledek našeho výpočetního programu

Takto se mnozí dnešní skvělí programátoři naučili programovat. Pokud vám to přijde šílené, lze souhlasit. Byla to opravdu fuška. Bylo to drsné. Ovšem právě díky detailnímu pochopení, jak to vlastně v počítačových útrobách funguje, získali ti dnešní čtyřicátníci perfektní základy. Co si budeme povídat, některým jejich dnešním následovníkům velmi schází. To se lze domnívat minimálně o těch, co se holedbají uměním „programovat“ v HTTP...

Pokud si chce někdo ze čtenářů vyzkoušet programování PMI 80, byť třebas na emulátoru, doporučuji skvělý článek Martina Malého, kde je vše do detailu popsáno.

Bude se vám také líbit:

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,