MONSnav.3 TASWORD 2
7080 2A0072 LD HL,(#7200) ;CAST 1
7083 ED5B0272 LD DE,(#7202)
7087 CD0071 CALL Mult
708A 7C LD A,H
708B CD1D71 CALL Aout
708E 7D LD A,L
708F CD1D71 CALL Aout
7092 210000 LD HL,0
.
.
.
7100 AF Mult XOR A ;CAST 2
7101 ED52 SBC HL,DE
7103 19 ADD HL,DE
7104 3001 JR NC,Mu1
7106 EB EX DE,HL
7107 B2 Mu1 OR D
7108 37 SCF
7109 C0 RET NZ
710A B3 OR E
710B 5A LD E,D
710C 2007 JR NZ,Mu4
710E EB EX DE,HL
710F C9 RET
7110 EB Mu2 EX DE,HL
7111 19 ADD HL,DE
7112 EB EX DE,HL
7113 29 Mu3 ADD HL,HL
7114 D8 RET C
7115 1F Mu4 RRA
7116 30FB JR NC,Mu3
7118 B7 OR A
7119 20F5 JR NZ,Mu2
711B 19 ADD HL,DE
711C C9 RET
711D F5 Aout PUSH AF ;CAST 3
711E 0F RRCA
711F 0F RRCA
7120 0F RRCA
7121 0F RRCA
7122 CD2671 CALL Nibble
7125 F1 POP AF
7126 E60F Nibble AND %1111
7128 C690 ADD A,#90
712A 27 DAA
712B CE40 ADC A,#40
712D 27 DAA
712E FD213A5C LD IY,#5C3A
7132 D7 RST #10
7133 C9 RET
.
.
7200 1B2A DEFW 10779
7202 0300 DEFW 3
Chceme prosetrit vyseuvedeny program, abychom zjistili jak
pracuje, nebo zda vubec pracuje. To muzeme provest nasledujici
radou prikazu - nezapomente, ze je to pouze jeden zpusob
krokovani v programu a nemusi byt nezbytne ucinny, ale slouzi
jako ukazka krokovani.
M:7080 RETURN Nastavi pametovy ukazatel na &7080
7080 nastavi citac instrukci na &7080
':' krok
':' krok
':' sledujeme volani (CALL)
M:7115 RETURN vynechame pripravu cisel
W nastavi bod preruseni (BP)
'+' pokracuje provadeni od &7100 do BP
':' krok
':' krok
':' krok
':' krok
':' krok
':' krok
':' krok
':' navrat z podprogramu pro nasobeni
':' krok
':' sledujeme volani (CALL)
M:7128 RETRN nastavi pametovy ukazatel na zajimavou cast
W nastavi bod preruseni (BP)
'+' pokracuje v provadeni od &711D do BP
':' krok
':' krok
':' krok
':' krok
; podivame se na adresu navratu
W nastavime na ni bod preruseni
'+' a pokracujeme
':' krok
; navrat z podprogramu Aout
W
'+'
':' krok
':' provedeni CALL na Aout
Projdete si prosim uvedeny priklad. Nejdrive zapiste instrukce
programu (viz 'zmeny obsahu pameti') nebo pouzijte EDTASM a pak
provadejte vyseuvedene prikazy. Zjistite, ze priklad je
neobycejne cenny pro porozumeni, jak zjistovat chod programu.
" " " ( nepracuje uplne )
Prikaz je zcela stejny jako prikaz 'L', krome toho, ze vystup
smeruje na tiskarnu misto na obrazovku. Nezpomente na konci
stranky stisknout CTRL X k navratu na celni panel, nebo si
libovolnou klavesou vyzadat dalsi stranku.
Zmeny obsahu pameti
Obsah adresy, udane pametovym ukazatelem muzeme zmenit vlozenim
hexadecimalniho cisla, za kterym nasleduje zakoncovaci znak (viz
kapitola 1).
Dve hexadecimalni cislice nejnizzsiho radu (pokud byla vlozena
pouze jedna, pak se doplni zleva nulou), se vlozi na misto
adresovane beznou hodnotou adresoveho ukazatele a pak se prikaz
provede pokud byl pouzit jako zakoncovaci znak. Neni-li
zakoncovaci znak platnym prikazem, je ignorovan.
Priklad:
F2 RETURN Vlozi se &F2 a pametovy ukazatel postoupi o 1
123 CTRL ':' Vlozi se &23 a pametovy ukazatel postoupi o 8
EM:E00_ Vlozi se #0E na pozici pametoveho ukazatele a
pak je pametovy ukazatel aktualizovan na #E00.
Vsimnete si, ze mezera ('_') zde byla pouzita
pro ukonceni prikazu 'M'.
2A5D_ Vlozi se &5D a pametovy ukazatel se nezmeni,
jelikoz ukoncovaci znak je mezera a ne prikaz.Zmeny obsahu registru
Zapiseme-li jako odpoved na naznak '>' hexadecimalni cislo a
ukoncime je znakem '.', pak dane cislo bude vlozeno do registru
Z80, bezne adresovaneho ukazatelem '-->'. Pri vstupu do MONS 3
ukazuje --> na citac instrukci a tak pouziti '.' jako
ukoncovaciho znaku hexadecimalniho cisla, zmeni v prvni rade
obsah citace instrukci. Kdybyste chteli zmenit obsah jineho
registru, pak pouzijete samotny znak '.' a ukazatel --> se bude
cyklicky posunovat od registru PC k registru AF. Povsimnete si,
ze neni mozne adresovat (a tudiz zmenit) ani ukazatel
zasobnikove pameti (SP) ani registry IR.
Priklad:
Zaciname s ukazatelem v pozici PC.
. adresujeme IY
. " IX
0. nastavime IX na hodnotu 0
. adresujeme HL
2AFF nastavime HL na hodnotu &2AFF
. adresujeme DE
. " BC
E2A7. nastavime BC na hodnotu &E2A7
. adresujeme AF
FF00. nastavime A na hodnotu &FF a vynulujeme indikatory
. adresujeme PC
8000. nastavime PC na hodnotu &8000
Nezapomente, ze '.' lze rovnez pouzit ke zmene obsahu
alternativnich registru - pokud jsou zobrazeny. Pro zmenu
zobrazeni souboru registru pouzijte prikaz 'Q'.
PRILOHA - PRIKLAD ZOBRAZENI CELNIHO PANELU
710C 2007 JR NZ,`7115
--> PC 710C 20 07 EB C9 EB 19 EB
SP D0AF 8A 70 06 03 0A 03 0D
IY CF6A 0D 11 0C 0F 09 18 18
IX D09F 04 03 04 00 00 00 1B
HL 2A1B 0F FE 29 28 02 CF 02
DE 0000 F3 AF 11 FF FF C3 CB
BC 0004 FF C3 CB 11 2A 5D 5C
AF 0304 V
IR 3F7C 7100 AF 7108 37 7110 EB
7101 ED 7109 C0 7111 19
7102 52 710A B3 7112 EB
7103 19 710B 5A 7113 29
7104 30 >710C 20< 7114 D8
7105 01 710D 07 7115 1F
7106 EB 710E EB 7116 30
7107 B2 710F C9 7117 FB
>
Zde je uvedeno pomerne typicke zobrazeni celniho panelu - toto
zobrazeni ziskate pri krokovani v podprogramu Mult (viz
rozsireny priklad na prikaz ':'.
Prvnich devet radku zobrazuje registry Z80; nejprve je ueden
nazev registru, pak (pro PC - BC) okamzita hodnota registru a
konecne obsah sedmi pametovych mist pameti pocinaje adresou
ulozenou v registru. Registr indikatoru je dekodovan, aby ukazal
okamzite nastaveni indikaoru v poradi jak jsou usporadany v
registru - ma-li registr indikatoru hodnotu &FF,
pak zobrazeni bude vypadat takto:
00FF SZ HVNC
Coz znamena, ze jsou nastaveny indikatory SIGN,
ZERO,HALFCARRY,PARITY/OWERFLOW,ADD/SUBTRACT A CARRY.
Ukazatel --> oznacuje bezne adresovany registr; viz kapitola 2 -
Zmeny obsahu registru.
Pod zobrazenim registru nasleduje zobrazeni 24 bytu pameti a je
usporadano takto:
adresa obsah adresa obsah . . .
2 byty 1 byte 2 byty 1 byte
tj.4 znaky 2 znaky 4 znaky 2 znakyZobrazeni je vystredeno kolem pozice pametoveho
ukazatele, oznaceneho '> <'.
Prikaz se zapisuje na spodni radek obrazovky za systemovy naznak
'>'.
Zobrazeni se aktualizuje po provedeni kazdeho prikazu.
Prikazy pridane specielne pro SORD m-5:
vlnovka (ctvrta klavesa zprava v horni rade) - sesouhlasi pame-
tovy ukazatel M s PC
# - aritmeticke vypocty v HEXU
CTRL Y - prepnuti do druhe obrazovy
V - VERIFY zaznamu MONS
X - VSAVE pameti VRAM
Z - nacteni zaznamu ZX SPECTRUM do VRAM - nutno zadat 0
(nefunguje uplne)
R - preadresovani a presun programu ve strojovem kodu----------------------------------------------------------------
Poznámka pro SORDisty:
V klubové knihovně programů jsou k dispozici tyto programy MONS:
1. MONSvA000.CM
2. MONSvE000.CM
3. STARTMONS.BF, MONS 3.VM, LOADMONS.CM
První dva se startují CALL &A000 případně CALL &E000 a nelze je
přemisťovat. Jsou také zbaveny drobných nectností kterými trpí
třetí uvedený MONS, který je ale možné libovolně přemisťovat.