Zdrojový kód k prvnímu programu


 
* Vypis 9-ti mistneho textu na PMI-80
* Text je nutne zapsat tabulky na konci programu od pozice 0 do 8 v PMI kodu
* Po stisku klavesy EX (kod 91h) se program ukonci skokem na 0000h (reset)

* Nejprve definice nekterych dulezitych adres v pametovem prostoru:

romstart EQU $0000 ;zacatek pameti ROM originalniho PMI
ramstart EQU $1C00 ;zacatek pameti RAM originalniho PMI
dispstart EQU $1FEF ;zacatek VIDEORAM (pozice 0 - prvni zleva)
OUTKE EQU $0116 ;systemovy podprog. zobrazovani + test klaves (kod klavesy v A)

* A vlastni program:

ORG ramstart ;nastavi programovy citac na ramstart
LXI H,text ;do HL nastavi adresu tabulky textu
LXI D,dispstart ;do DE nastavi adresu registru displeje (poz.0)
MVI B,$09 ;do B nastavi cislo 9 (pomocne pocitadlo)

cykl:
MOV A,M ;do A presune obsah mista adresovaneho HL
STAX D ;do mista adresovaneho DE presune obsah A
INX H ;inkrementuje HL
INX D ;inkrementuje DE
DCR B ;dekrementuje B
JNZ cykl ;je B = 0? Kdyz NE, skoc na cykl

disp:
call OUTKE ;je-li B = 0, volej OUTKE
CPI $91 ;je pro provedeni OUTKE v A kod klavesy EX (91h)?
JNZ disp ;kdyz NE, skoc na disp
JMP romstart ;kdyz ANO, skoc na OOOOh (ukonceni programu a reset PMI)


* Tabulka textu od pozice 0 do pozice 8 (zleva doprava)
* kody znaku musi odpovidat kodum pouzivanym monitorem PMI!
text:
DB $0c ;C
DB $0a ;A
DB $15 ;U
DB $19 ;blank
DB $0b ;B
DB $11 ;O
DB $12 ;R
DB $0c ;C
DB $0e ;E
* Konec zdrojoveho vypisu

* Prelozeny kod:
1C00:
21 1B 1C 11 EF 1F 06 09 7E 12 23 13 05 C2
08 1C CD 16 01 FE 91 C2 10 1C C3 00 00
1C1B:
0C 0A 15 19 0B 11 12 0C 0E





Vložení a spuštění prvního programu

Pokud máte PMI-80 v ruce poprvé a vůbec netušíte jak takový program zapsat a spustit, zde je návod:

Předpokládejme, že PMI je ve stavu po zapnutí (či po RESETu). Na displeji svítí hláška "PMI-80". Pokud ne, stiskněte tlačítko RE. Dále vložíme program: stiskněte 2x tlačítko M až se objeví 4-místná adresa. Postupně zadejte 1C00 a stiskněte =. Objeví se adresa 1C00 a 2-místná data. Nyní zadávejte data z výpisu programu (vždy dvoumístné číslo) a za každým stiskněte = (21=, 1B=, 1C=,..... až 0E=). Tím je program zadaný a můžeme ho spustit: 3x stiskněte tlačítko Ex (chybové hlášky si nevšímejte) až se objeví 4-místná adresa. Opět zadejte 1C00 a stiskněte =. Program se spustí od adresy 1C00...































RET



Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2017