ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1
1 TITLE 'PLAN 80A MONITOR V.2.Q'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
26 ;X X;
27 ;X X;
28 ;X PLAN-80A V.2.Q 27.09.88 X;
29 ;X X;
30 ;X MONITOR PRO ZAKLADNI VERZE S KLAVESNICI TS5220004 X;
31 ;X X;
32 ;X X;
33 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-1
57
58
59
60
61
62
63
64 ; PREDPOKLADANE ROZDELENI PAMETI
65 ; ==============================
66 ;
67 ;
68 ; E000 - EFFF EPROM S TINY BASICEM
69 ; F000 - F7FF EPROM S MAGNETOFONEM
70 ; F800 - FFFF EPROM S MONITOREM
71 ;
72 ; 0000 - 0FFF STAT. RAM (2114)
73 ; 1000 - DFFF DYN. RAM (4116)
74 ;
75 ; (OBLASTI DYNAMICKE PAMETI, KTERE SE PREKRIVAJI S
76 ; EPROM NEBO RAM MAJI OBVODOVE BLOKOVANOU AKTIVACI)
77 ;
78 ;
79 ; P O Z O R: PREDPOKLADA SE SEMIGRAFIKA !
80 ;
81 ;
82 ; PREDPOKLADANE VYUZITI PAMETI RAM
83 ; ================================
84 ;
85 ;
86 ; 0000 C3 SKOK NA STUDENY START MONITORU
87 ; 0001 00
88 ; 0002 F8
89 ; 0003 55 I/O BYTE (NENI VYUZITY)
90 ; 0004 RAMEND-LOW KONEC PROGRAMOVE RAM
91 ; 0005 REMEND-HIGH
92 ; 0038 C3 SKOK DO OBSLUHY PRERUSENI RST7
93 ; 0039 INTER-LOW
94 ; 003A INTER-HIGH
95 ;
96 ;
97 ; POZN.: EXISTUJI TRI RUZNE KONCE PAMETI RAM:
98 ; 1. FYZICKY KONEC RAM (CALL GETEND)
99 ; 2. KONEC PROGRAMOVE RAM ([RAMEND])
100 ; 3. KONEC UZIVATELSKE RAM (CALL MEMCK)
101 ; (U MAGNETOFONU ZMENSENY O BUFFER)
102 ;
103 ; INSTRUKCE SKOKU DO MONITOROVSKE OBSLUHY
104 ; PRERUSENI SE NASTAVUJE VZDY PO VLOZENI
105 ; DRUHEHO OPERANDU PRIKAZU GOTO NA ADRESU
106 ; RST7 = 0038H.
107 ;
108 ;
109 ; 0006 ZACATEK UZIVATELSKE PAMETI
110 ;
111 ; DISRAM ZACATEK PAMETI DISPLEJE, VRCHOL ZASOBNIKU:
112 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-2
113 ; RAM = 1 K ... DISRAM = 0200 ... 8 RADKU
114 ; RAM = 2 K ... DISRAM = 0400 ... 16 RADKU
115 ; RAM = 3 K ... DISRAM = 0400 ... 16 RADKU
116 ; RAM > 3 K ... DISRAM = RAMEND - 0800 ... 32 RADKU
117 ;
118 ; DISPLEJ VYUZIVA Z KAZDYCH 64 BYTU PAMATI POUZE
119 ; PRVNICH 48 (JEDEN RADEK), ZBYLYCH 16 BYTU V PRV-
120 ; NICH 9 RADCICH (PO ADRDIS + 023FH) VYUZIVA MONITOR
121 ; NEBO BASIC. OSTATNI 16-TICE V RADCICH 9-32 JSOU
122 ; NEPOUZITE. POKUT JE POUZITA DYNAMICKA PAMET, PAK
123 ; JE DISPLEJ ULOZEN NA POSLEDNI DVE KILA KVADRU S
124 ; NEJVYSSI ADRESOU (REFRES POMOCI ZOBRAZENI).
125 ;
126 ;;
127 ; VYUZITI 16-TIC BYTU V PRVNICH 8 RADCICH DISRAM :
128 ;
129 ; RADEK: 0
130 ;
131 ; DISRAM + 30H -
132 ; DISRAM + 31H UREND = NIZSI BYTE ADRESY KONCE UZIV. RAM
133 ; DISRAM + 32H VYSSI BYTE ADRESY KONCE UZIV. RAM
134 ; DISRAM + 33H MSTACK = NIZSI BYTE ADRESY VRCHOLU ZASOBNIKU
135 ; DISRAM + 34H VYSSI BYTE ADRESY VRCHOLU ZASOBNIKU
136 ; DISRAM + 35H LINECO = CITAC RADKU
137 ; DISRAM + 36H CHARCO = CITAC ZNAKU NA RADKU
138 ; DISRAM + 37H LINENO = POCET RADKU V OBRAZE
139 ; DISRAM + 38H CHARNO = POCET ZNAKU NA RADKU
140 ; DISRAM + 39H -
141 ; DISRAM + 3AH -
142 ; DISRAM + 3BH - (REZERVOVANO PRO VYSSI VERZE)
143 ; DISRAM + 3CH -
144 ; DISRAM + 3DH -
145 ; DISRAM + 3EH -
146 ; DISRAM + 3FH -
147 ;
148 ;
149 ; RADEK: 1
150 ;
151 ; DISRAM + 70H BRADR = VYSSI BYTE ADRESY PRERUSENI (VIZ 'GOTO')
152 ; DISRAM + 71H NIZSI BYTE ADRESY PRERUSENI (VIZ 'GOTO')
153 ; DISRAM + 72H BRCODE = KOD INSTRUKCE NA TETO ADRESE (VIZ 'GOTO')
154 ; DISRAM + 73H SPREG = NIZSI BYTE <SP> (VIZ 'GOTO')
155 ; DISRAM + 74H VYSSI BYTE <SP> (VIZ 'GOTO')
156 ; DISRAM + 75H HREG = OBSAH REG <H> (VIZ 'GOTO')
157 ; DISRAM + 76H LREG = OBSAH REG <L> (VIZ 'GOTO')
158 ; DISRAM + 77H DREG = OBSAH REG <D> (VIZ 'GOTO')
159 ; DISRAM + 78H EREG = OBSAH REG <E> (VIZ 'GOTO')
160 ; DISRAM + 79H BREG = OBSAH REG <B> (VIZ 'GOTO')
161 ; DISRAM + 7AH CREG = OBSAH REG <C> (VIZ 'GOTO')
162 ; DISRAM + 7BH AREG = OBSAH REG <A> (VIZ 'GOTO')
163 ; DISRAM + 7CH FREG = OBSAH REG <F> (VIZ 'GOTO')
164 ; DISRAM + 7DH INOUT = VYHRAZENO PRO PRIKAZY IN/OUT
165 ; DISRAM + 7EH -"-
166 ; DISRAM + 7FH -"-
167 ;
168 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-3
169 ; RADEK: 2
170 ;
171 ; DISRAM + B0H CONINP = KOD INSTRUKCE JMP NEBO RET (PRO CI)
172 ; DISRAM + B1H NIZSI BYTE ADRESY SKOKU
173 ; DISRAM + B2H VYSSI BYTE ADRESY SKOKU
174 ; DISRAM + B3H CONOUT = KOD INSTRUKCE JMP NEBO RET (PRO CO)
175 ; DISRAM + B4H NIZSI BYTE ADRESY SKOKU
176 ; DISRAM + B5H VYSSI BYTE ADRESY SKOKU
177 ; DISRAM + B6H READIN = KOD INSTRUKCE JMP NEBO RET (PRO RI)
178 ; DISRAM + B7H NIZSI BYTE ADRESY SKOKU
179 ; DISRAM + B8H VYSSI BYTE ADRESY SKOKU
180 ; DISRAM + B9H USRRI = KOD INSTRUKCE JMP NEBO RET (DUMMY)
181 ; DISRAM + BAH NIZSI BYTE ADRESY SKOKU
182 ; DISRAM + BBH VYSSI BYTE ADRESY SKOKU
183 ; DISRAM + BCH PUNOUT = KOD INSTRUKCE JMP NEBO RET (PRO PO)
184 ; DISRAM + BDH NIZSI BYTE ADRESY SKOKU
185 ; DISRAM + BEH VYSSI BYTE ADRESY SKOKU
186 ; DISRAM + BFH -
187 ;
188 ;
189 ; RADEK: 3
190 ;
191 ; DISRAM + F0H USRPO = KOD INSTRUKCE JMP NEBO RET (DUMMY)
192 ; DISRAM + F1H NIZSI BYTE ADRESY SKOKU
193 ; DISRAM + F2H VYSSI BYTE ADRESY SKOKU
194 ; DISRAM + F3H LSTOUT = KOD INSTRUKCE JMP NEBO RET (PRO LO)
195 ; DISRAM + F4H NIZSI BYTE ADRESY SKOKU
196 ; DISRAM + F5H VYSSI BYTE ADRESY SKOKU
197 ; DISRAM + F6H CONSTA = KOD INSTRUKCE JMP NEBO RET (PRO CSTS)
198 ; DISRAM + F7H NIZSI BYTE ADRESY SKOKU
199 ; DISRAM + F8H VYSSI BYTE ADRESY SKOKU
200 ; DISRAM + F9H -
201 ; DISRAM + FAH -
202 ; DISRAM + FBH -
203 ; DISRAM + FCH -
204 ; DISRAM + FDH -
205 ; DISRAM + FEH -
206 ; DISRAM + FFH -
207 ;
208 ;
209 ; RADEK: 4
210 ;
211 ; DISRAM + 130H NAME1 = 16-TI BITOVY NAZEV SOUBORU (PRO CTENI)
212 ; DISRAM + 131H
213 ; DISRAM + 132H
214 ; DISRAM + 133H
215 ; DISRAM + 134H
216 ; DISRAM + 135H
217 ; DISRAM + 136H
218 ; DISRAM + 137H
219 ; DISRAM + 138H
220 ; DISRAM + 139H
221 ; DISRAM + 13AH
222 ; DISRAM + 13BH
223 ; DISRAM + 13CH
224 ; DISRAM + 13DH
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-4
225 ; DISRAM + 13EH
226 ; DISRAM + 13FH
227 ;
228 ;
229 ; RADEK: 5
230 ;
231 ; DISRAM + 170H NAME2 = 16-TI BITOVY NAZEV SOUBORU (PRO ZAPIS)
232 ; DISRAM + 171H
233 ; DISRAM + 172H
234 ; DISRAM + 173H
235 ; DISRAM + 174H
236 ; DISRAM + 175H
237 ; DISRAM + 176H
238 ; DISRAM + 177H
239 ; DISRAM + 178H
240 ; DISRAM + 179H
241 ; DISRAM + 17AH
242 ; DISRAM + 17BH
243 ; DISRAM + 17CH
244 ; DISRAM + 17DH
245 ; DISRAM + 17EH
246 ; DISRAM + 17FH
247 ;
248 ;
249 ; RADEK: 6
250 ;
251 ; DISRAM + 1B0H PNADR = NIZSI BYTE ADRESY BUFFERU DEROVACE
252 ; DISRAM + 1B1H VYSSI BYTE ADRESY BUFFERU DEROVACE
253 ; DISRAM + 1B2H PNPOI = ADRESY UKAZATELE BUFFERU DEROVACE
254 ; DISRAM + 1B3H RDADR = NIZSI BYTE ADRESY BUFFERU SNIMACE
255 ; DISRAM + 1B4H VYSSI BYTE ADRESY BUFFERU SNIMACE
256 ; DISRAM + 1B5H RDPOI = ADRESY UKAZETELE BUFFERU SNIMACE
257 ; DISRAM + 1B6H PBLKC = CITAC BLOKU DEROVACE
258 ; DISRAM + 1B7H PFILC = CITAC SOUBORU DEROVACE
259 ; DISRAM + 1B8H RBLKC = CITAC BLOKU SNIMACE
260 ; DISRAM + 1B9H RFILC = CITAC SOUBORU SNIMACE
261 ; DISRAM + 1BAH PNSTS = STATUS LOGICKEHO ZARIZENI PRO ZAPIS
262 ; DISRAM + 1BBH RDSTS = STATUS LOGICKEHO ZARIZENI PRO CTENI
263 ; DISRAM + 1BCH -
264 ; DISRAM + 1BDH -
265 ; DISRAM + 1BEH -
266 ; DISRAM + 1BFH -
267 ;
268 ;
269 ; RADEK: 7
270 ;
271 ; DISRAM + 1F0H TMPAR = POMOCNA OBLAST
272 ; DISRAM + 1F1H
273 ; DISRAM + 1F2H
274 ; DISRAM + 1F3H
275 ; DISRAM + 1F4H
276 ; DISRAM + 1F5H
277 ; DISRAM + 1F6H
278 ; DISRAM + 1F7H
279 ; DISRAM + 1F8H
280 ; DISRAM + 1F9H
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-5
281 ; DISRAM + 1FAH
282 ; DISRAM + 1FBH
283 ; DISRAM + 1FCH
284 ; DISRAM + 1FDH
285 ; DISRAM + 1FEH
286 ; DISRAM + 1FFH
287 ;
288 ;
289 ; RADEK: 8
290 ;
291 ; DISRAM + 230H KEYCD = VZORKY KLAVESNICE
292 ; DISRAM + 231H -"-
293 ; DISRAM + 232H -"-
294 ; DISRAM + 233H -"-
295 ; DISRAM + 234H ZNAK = VSTUPNI ZNAK
296 ; DISRAM + 235H UPLO = HORNI/DOLNI
297 ; DISRAM + 236H CTRL = RIDICI ZNAKY
298 ; DISRAM + 237H NUM = CISLICE
299 ; DISRAM + 238H CTN = CITAC BLIKANI KURZORU
300 ; DISRAM + 239H -
301 ; DISRAM + 23AH -
302 ; DISRAM + 23BH -
303 ; DISRAM + 23CH -
304 ; DISRAM + 23DH -
305 ; DISRAM + 23EH -
306 ; DISRAM + 23FH -
307 ;
308 ;
309 ;
310 ; PREDPOKLADANE VYUZITI V/V PORTU
311 ; ===============================
312 ;
313 ;--------------------------------------------------------------------
314 ;I A7 A5 A3 I A1 A0 I A1 A0 I A1 A0 I A1 A0 I
315 ;I A6 A4 A2 I 0 0 I 0 1 I 1 0 I 1 1 I
316 ;I--------------I------------I------------I------------I------------I
317 ;I X X 0 0 0 0 I ST/OP (RW) I ST/OP (RW) I ST/OP (RW) I ST/OP (RW) I
318 ;I--------------I------------I------------I------------I------------I
319 ;I X X 0 0 0 1 I D '12 (RO) I D '12 (RO) I D '12 (RO) I D '12 (RO) I
320 ;I--------------I------------I------------I------------I------------I
321 ;I X X 0 0 1 0 I A '55 (RW) I B '55 (RW) I C '55 (RW) I CT'55 (RW) I
322 ;I--------------I------------I------------I------------I------------I
323 ;I X X 0 0 1 1 I KEY? (WO) I KEY? (WO) I KEY? (WO) I KEY? (WO) I
324 ;I--------------I------------I------------I------------I------------I
325 ;I X X 0 1 0 0 I BEEP (WO) I BEEP (WO) I BEEP (WO) I BEEP (WO) I
326 ;I--------------I------------I------------I------------I------------I
327 ;I X X 0 1 0 1 I '14 M (WO) I '14 M (WO) I '14 M (WO) I '14 M (WO) I
328 ;I--------------I------------I------------I------------I------------I
329 ;I X X 0 1 1 0 I ADRES (RW) I ADRES (RW) I ADRES (RW) I ADRES (RW) I
330 ;I--------------I------------I------------I------------I------------I
331 ;I X X 0 1 1 1 I ADRET (WO) I ADRET (WO) I ADRET (WO) I ADRET (WO) I
332 ;--------------------------------------------------------------------
333 ;
334 ; KDE: X '55 JE REGISTR X OBVODU 8255
335 ; D '12 JE VYSTUPNI PORT OBVODU 3212
336 ; ST/OP JE OBOUSMERNY PORT STAVOVE INFORMACE/VYSTUPU
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-6
337 ; '14 M JE MASKOVACI PORT OBVODU 8214
338 ; ADRES JE SIGNAL NULOVANI REGISTRU ADRESY ZOBRAZOVANI
339 ; ADRET JE SIGNAL ZAPISU ADRESY DO REGISTRU ZOBRAZOVANI
340 ; KEY? JE TEST PRITOMNOSTI SOFTWAROVE KLAVESNICE
341 ; (WO) JE POUZE VYSTUPNI PORT (VZHLEDEM K SYSTEMU)
342 ; (RO) JE POUZE VSTUPNI PORT (POUZE OPERACE CTENI)
343 ; (RW) JE OBOUSMERNY PORT
344 ;
345 ;
346 ;
347 ; OBLAST DEFINIC
348 ; ==============
349 ;
350 0000 RAMBEG EQU 0000H ; PRVNI ADRESA MAMETI RAM
351 F800 MONIT EQU 0F800H ; PRVNI ADRESA MONITORU
352 F000 TAPREC EQU 0F000H ; PRVNI ADRESA PROGRAMU MAGNETOFON
353 E000 BASIC EQU 0E000H ; STUDENY START TINY BASICU
354 E003 CONIT EQU 0E003H ; TEPLY START TINY BASICU
355 ;
356 F001 TINIT EQU TAPREC + 1 ; ADRESA INICIACE PROGRAMU MAGNETOFON
357 F004 TJOIN EQU TAPREC + 4 ; ADRESA INICIACE MAGNETOFONU
358 F007 TQUAF EQU TAPREC + 7 ; ADRESA PRIKAZU CTENI BIN. SOUBORU
359 F00A TPUT EQU TAPREC + 0AH ; ADRESA PRIKAZU ZAPISU BIN. SOUBORU
360 F00D TAPP EQU TAPREC + 0DH ; ADRESA PRIKAZU BEZPR. ZAPISU BIN. SOUBORU
361 F010 TLOAD EQU TAPREC + 10H ; ADRESA PRIKAZU OVLADANI MOTORKU
362 F013 TDIR EQU TAPREC + 13H ; ADRESA PRIKAZU DIRECTORY PASKY
363 F016 TUNNA EQU TAPREC + 16H ; ADRESA PRIKAZU POJMENOVANI NOVE PASKY
364 F019 TKI EQU TAPREC + 19H ; ADRESA PRIKAZU CTENI BYTU
365 F01C TKO EQU TAPREC + 1CH ; ADRESA PRIKAZU ZAPISU BYTU
366 F01F TWR EQU TAPREC + 1FH ; ADRESA PRIKAZU VYDEROVANI HEX. SOBORU
367 F022 TRD EQU TAPREC + 22H ; ADRESA PRIKAZU PRECTENI HEX. SOUBORU
368 F025 TEOF EQU TAPREC + 25H ; ADRESA PRIKAZU UZAVRENI HEX. SOUBORU
369 F028 TCLOS EQU TAPREC + 28H ; ADRESA PODPROGRAMU UZAVRENI SOUBORU
370 ;
371 ;
372 000E SO EQU 0EH ; ZNAK 'SO' = POMOCNY ZNAK
373 0020 SPC EQU 20H ; ZNAK 'SP' = MEZERA
374 00A0 ETX EQU 0A0H ; ZNAK 'ETX' = KONEC TEXTU
375 0003 EOT EQU 03H ; ZNAK 'EOT' = KONEC VYSILANI
376 001A SUBS EQU 1AH ; ZNAK 'SUB' = CTRL Z
377 001B ESC EQU 1BH ; ZNAK 'ESC' = CTRL [
378 000B VT EQU 0BH ; ZNAK 'VT' = POSUN NAHORU
379 0009 HT EQU 09H ; ZNAK 'HT' = TABELACE
380 000C FF EQU 0CH ; ZNAK 'FF' = VYMAZ OBRAZOVKY
381 000D CR EQU 0DH ; ZNAK 'CR' = POSUN NA ZACATEK RADKU
382 0008 BS EQU 08H ; ZNAK 'BS' = ZNAK ZPET
383 000A LF EQU 0AH ; ZNAK 'LF' = NOVY RADEK
384 007F DEL EQU 07FH ; ZNAK 'DEL' = VYMAZ ZNAKU
385 001D HOME EQU 1DH ; ZNAK 'HOME' = CTRL ]
386 001E DL EQU 1EH ; ZNAK 'DELETE LINE' = CTRL ^
387 001F DSCR EQU 1FH ; ZNAK 'DELETE SCREEN' = CTRL _
388 0007 BELL EQU 07H ; ZNAK 'BELL' = ZVONEK
389 0000 BLANK EQU 0 ; ZNAK 'BLANK' = CTRL @
390 ;
391 0000 JMPMON EQU 0000H ; SKOK DO STUDENEHO STARTU MONITORU
392 0003 IOBYT EQU 0003H ; ADRESA I/O-BYTU
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-7
393 0004 RAMEND EQU 0004H ; ADRESA KONCE RAM
394 0038 INTADR EQU 0038H ; SKOK DO OBSLUHY RST7
395 0031 UREND EQU 31H ; ADRESA KONCE UZIVATELSKE PAMETI
396 0033 MSTACK EQU 33H ; ADRESA VRCHOLU ZASOBNIKU
397 0035 LINECO EQU 35H ; ADRESA CITACE RADKU
398 0036 CHARCO EQU 36H ; ADRESA CITACE ZNAKU
399 0037 LINENO EQU 37H ; ADRESA POCTU RADKU V OBRAZE
400 0038 CHARNO EQU 38H ; ADRESA POCTU ZNAKU V OBRAZE
401 003C ADRLO EQU 3CH ; POMOCNA ADRESA
402 003D ADRHI EQU 3DH ; POMOCNA ADRESA
403 0070 BRADR EQU 70H ; ADRESA V PC PRI PRERUSENI
404 0072 BRCODE EQU 72H ; KOD INSTRUKCE PRI PRERUSENI
405 0073 SPREG EQU 73H ; NOVY OBSAH (SP) PO GOTO
406 0075 HREG EQU 75H ; NOVY OBSAH (H) PO GOTO
407 0076 LREG EQU 76H ; NOVY OBSAH (L) PO GOTO
408 0077 DREG EQU 77H ; NOVY OBSAH (D) PO GOTO
409 0078 EREG EQU 78H ; NOVY OBSAH (E) PO GOTO
410 0079 BREG EQU 79H ; NOVY OBSAH (B) PO GOTO
411 007A CREG EQU 7AH ; NOVY OBSAH (C) PO GOTO
412 007B AREG EQU 7BH ; NOVY OBSAH (A) PO GOTO
413 007C FREG EQU 7CH ; NOVY OBSAH (F) PO GOTO
414 007D INOUT EQU 7DH ; POMOCNA PROMENA PRIKAZU INPUT A OUTPUT
415 00B0 CONINP EQU 0B0H ; SKOK NA HANDLER KONZOLY - KLAVESNICE
416 00B3 CONOUT EQU 0B3H ; SKOK NA HANDLER KONZOLY - OBRAZOVKY
417 00B6 READIN EQU 0B6H ; SKOK NA HANDLER SNIMACE
418 00BC PUNOUT EQU 0BCH ; SKOK NA HANDLER DEROVACE
419 00F0 USRPO EQU 0F0H ; ADRESA NEPOUZIVANEHO SKOKU
420 00F3 LSTOUT EQU 0F3H ; SKOK NA HANDLER TISKARNY
421 00F6 CONSTA EQU 0F6H ; SKOK NA HANDLER STATUSU KONZOLY
422 0130 NAME1 EQU 130H ; JMENO PROGRAMU PRECTENE Z KAZETY
423 0170 NAME2 EQU 170H ; JMENO HLEDANEHO PROGRAMU NA KAZETE
424 01B0 PNADR EQU 1B0H ; ADRESA BUFFERU DEROVACE
425 01B3 RDADR EQU 1B3H ; ADRESA BUFFERU SNIMACE
426 01B2 PNPOI EQU 1B2H ; ADRESA UKAZATELE DEROVACE
427 01B5 RDPOI EQU 1B5H ; ADRESA UKAZATELE SNIMACE
428 01B6 PBLKC EQU 1B6H ; ADRESA CITACE BLOKU DEROVACE
429 01B8 RBLKC EQU 1B8H ; ADRESA CITACE BLOKU SNIMACE
430 01B7 PFILC EQU 1B7H ; ADRESA CITACE SOUBORU DEROVACE
431 01B9 RFILC EQU 1B9H ; SDRESA CITACE SOUBORU SNIMACE
432 01BB RDSTS EQU 1BBH ; ADRESA STAVU LOGICKEHO ZARIZENI PRO CTENI
433 01BA PNSTS EQU 1BAH ; ADRESA STAVU LOGICKEHO ZARIZENI PRO ZAPIS
434 01F0 TMPAR EQU 1F0H ; POMOCNA OBLAST PRO CTENI SOUBORU Z KAZETY
435 0230 KEYCD EQU 230H ; POLE VZORKU ZNAKU Z KLAVESNICE
436 0235 ZNAK EQU 235H ; VSTUPNI ZNAK Z KLAVESNICE
437 0236 UPLO EQU 236H ; PRIZNAK VSTUPU HORNICH ZNAKU
438 0237 CTRL EQU 237H ; PRIZNAK VSTUPU RIDICICH ZNAKU
439 0238 NUM EQU 238H ; PRIZNAK VSTUPU CISLIC
440 0239 CTN EQU 239H ; CITAC BLIKANI KURZORU
441 ;
442 0040 STCKLN EQU 64 ; DELKA ZASOBNIKU
443 ;
444 00C3 KEYBAS EQU 0C3H ; KLIC PRO ROZPOZNAVANI BASICU
445 E000 ADRBAS EQU BASIC ; ADRESA - " -
446 0055 KEYTPR EQU 055H ; KLIC PRO ROZPOZNAVANI MAGNETOFONU
447 F000 ADRTPR EQU TAPREC ; ADRESA - " -
448 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-8
449 0004 ADRCIN EQU 04H ; DATOVY PORT 8212
450 0000 ADRCST EQU 00H ; STAVOVY PORT 8216
451 0008 RDYCIN EQU 08H ; MASKA STAVOVEHO BITU KLAVESNICE
452 0004 REPCIN EQU 04H ; MASKA STAVOVEHO BITU OPAKOVANI ZNAKU X KLAV.
453 0002 RDYRE1 EQU 02H ; MASKA STAVOVEHO BITU ZARIZENI 1
454 0001 RDYRE2 EQU 01H ; MASKA STAVOVEHO BITU ZARIZENI 2
455 0008 ADRPA EQU 08H ; ADRESA PORTU PA
456 0009 ADRPB EQU 09H ; ADRESA PORTU PB
457 000A ADRPC EQU 0AH ; ADRESA PORTU PC
458 000B ADRCT EQU 0BH ; ADRESA RIDICIHO PORTU
459 0090 CTRLWD EQU 90H ; RIDICI SLOVA PA=IN, PB=OUT, PC=OUT, M0 VSE
460 0001 PC0SET EQU 01H ; NASTAVENI PC0
461 0000 PC0RES EQU 00H ; NULOVANI PC0
462 0003 PC1SET EQU 03H ; NASTAVENI PC1
463 0002 PC1RES EQU 02H ; NULOVANI PC1
464 0008 PC4SET EQU 08H ; NASTAVENI PC4
465 0009 PC4RES EQU 09H ; NULOVANI PC4
466 0010 ADRBIP EQU 10H ; ADRESA ZVUKOVEHO PORTU
467 0000 ADROUT EQU 00H ; ADRESA VYSTUPNIHO PORTU 8216
468 0008 MSKWD EQU 08H ; MASKA OBVODU 8214, POVOLUJE VSECHNY PRERUSENI
469 0014 ADRMSK EQU 14H ; ADRESA MASKOVEHO PORTU OBVODU 8214
470 0018 ADRES EQU 18H ; ADRESA PRO NULOVANI REGISTRU ADRESY ZOBRAZOVANI
471 001F ADSET EQU 1FH ; ADRESA PRO NASTAVENI REGISTRU ADRESY ZOBRAZOVANI
472 0050 BEEPLN EQU 80 ; DELKA PIPNUTI
473 0060 BEEPFQ EQU 60H ; VYSKA PIPNUTI
474 ;
475 ;---------------------------------------------------------------------
476 ;
477 .PHASE MONIT
478 ;
479 ;
480 ;
481 ; TABULKA SKOKU DO ZAKLADNICH PODPROGRAMU:
482 ;
483 F800 C3 F85A JMP COLDST ; STUDENY START MONITORU
484 F803 C3 FE7A JMP CI ; VSTUP Z KONZOLY <A>
485 F806 C3 FE37 JMP RI ; VSTUP ZE SERIOVEHO PORTU <A>
486 F809 C3 FA21 JMP CO ; VYSTUP NA KONZILU <C>
487 F80C C3 FE30 JMP PO ; VYSTUP NA SERIOVY PORT <C>
488 F80F C3 FE29 JMP LO ; VYSTUP NA TISKARNU
489 F812 C3 FE69 JMP CSTS ; STAVOVY PORT KONZOLY <A>
490 F815 C3 FE1E JMP IOCHK ; ZJISTENI I/O-BYTU <A>
491 F818 C3 FE22 JMP IOSET ; NASTAVENI I/O-BYTU <C>
492 F81B C3 FE13 JMP MEMCK ; ZJISTENI KONCE UZIV. PAMETI RAM <AB>
493 F81E C3 FE3E JMP IODEF ; VASTAVENI UZIVATELSKYCH V/V <C>
494 F821 C3 FB12 JMP INTER ; SKOK DO OSERENI PRERUSENI
495 F824 C3 FB0C JMP CRLF ; NOVY RADEK
496 F827 C3 FA8A JMP EXPR ; VSTUP PARAMETRU, POCET C <C>
497 F82A C3 F931 JMP ERROR ; VYPIS '#' NA OBRAZOVKU
498 F82D C3 FAC1 JMP ASHEX ; PREVOD ASCII NA HEX, <A>
499 F830 C3 FA0C JMP DADR ; ZOBRAZENI OBSAHU <HL>
500 F833 C3 FA11 JMP DBYTE ; ZOBRAZENI OBSAHU <A>
501 F836 C3 FDE4 JMP HILO ; DEKREMENTACE <HL> A SROVNANI S <DE>
502 F839 C3 F8E4 JMP NEXT ; TEPLY START MONITORU
503 F83C C3 FA79 JMP SPACE ; MEZERA NA CO
504 F83F C3 F9F2 JMP CINCR ; VSTUP NA ROZPOZNANI PRIKAZU
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-9
505 F842 C3 FD16 JMP IMTEXT ; ZOBRAZENI TEXTU <HL>, D8
506 F845 C3 F9D2 JMP ADRKUP ; ADRESA KURZORU DO <HL>
507 F848 C3 FAD3 JMP HXASC ; PREVOD HEX NA ASCII
508 F84B C3 FE02 JMP TIMER ; CEKANI <BC> MILISEKUND
509 F84E C3 FA01 JMP GETADR ; ADRESA SKRYTE PROMENNE DO <HL>
510 F851 C3 F9CD JMP STJMB ; ULOZ <DE> NA [<HL>,<HL+1>]
511 F854 C3 FA6B JMP ECHO ; VSTUP A ZOBRAZENI ZNAKU
512 F857 C3 FDA7 JMP BACST ; KROK ZPET NA OBRAZOVCE
513 ;
514 ;
515 ; M O N I T
516 ; =========
517 ;
518 ; UVODNI CAST MONITORU, KTERA UMOZNUJE
519 ; RESTART (STUDENY I TEPLY) SYSTEMU. PROVADI
520 ; NASTAVOVANI PRACOVNICH PROMENNYCH, ZJISTUJE
521 ; ROZSAH PAMETI RAM A NASTAVI SPOJOVACI ADRESY.
522 ; OBSAHUJE TAKE VYHODNOCENI PRIKAZU OPERATORA.
523 ;
524 F85A 21 0006 COLDST: LXI H,6 ; NASTAVENI PROZATIMNIHO VRCHOLU ZASOBNIKU
525 F85D F9 SPHL ; NA ADRESU 0006H ZAMEZI POSKOZENI UZIV. PAM.
526 F85E CD F96F CALL GETDIS ; ADRESA DISRAM <HL>, POCET RADKU <C>
527 F861 F9 SPHL ; NASTAVENI SKUTECNEHO VRCHOLU ZASOBNIKU
528 F862 22 0004 SHLD RAMEND ; NASTAVY KONEC PROGRAMOVE RAM
529 F865 EB XCHG
530 F866 21 FFC0 LXI H,-STCKLN ; DELKA ZASOBNIKU
531 F869 19 DAD D ; KONEC UZIVATELSKE PAMETI
532 F86A EB XCHG
533 F86B E5 PUSH H
534 F86C 21 0031 LXI H,UREND
535 F86F CD FA01 CALL GETADR ; ADRESA PROMENNE U(SER)R(AM)END
536 F872 CD F9CD CALL STJMB ; ULOZENI KONCE UZIV. RAM
537 F875 E3 XTHL ; NA VRCHOL ZASOBNIKU ADRESA MSTACK
538 F876 7C MOV A,H
539 F877 EB XCHG ; POSLEDNI ADRESA V <DE>
540 F878 3C INR A
541 F879 E6 F8 ANI 11111000B ; VYBER BITU A15-A11 (PO DVOU KILECH)
542 F87B 0F RRC
543 F87C 0F RRC
544 F87D 0F RRC ; POSUNUTI O 3 BITY DOPRAVA
545 F87E D3 18 OUT ADRES ; VYNULOVANI REGISTRU ADRESY ZOBRAZOVANE RAM
546 F880 D3 1F OUT ADSET ; NASTAVENI PLATNE ADRESY ZOBRAZOVANE RAM
547 F882 E1 POP H ; ADRESA MSTACK DO <HL>
548 F883 CD F9CD CALL STJMB ; VRCHOL ZASOBNIKU DO MSTACK
549 F886 36 00 MVI M,0 ; KURZOR NA PRVNI RADEK (LINECO = 0)
550 F888 23 INX H
551 F889 36 00 MVI M,0 ; KURZOR NA POCATEK PRVEHO RADKU (CHARCO = 0)
552 F88B 23 INX H
553 F88C 71 MOV M,C ; POCET RADKU (Z PODPROGRAMU GETDIS)
554 F88D 23 INX H
555 F88E 36 2F MVI M,2FH ; POCET ZNAKU NA RADKU JE 48
556 ;
557 F890 D5 PUSH D
558 F891 21 00B0 LXI H,CONINP
559 F894 11 FE81 LXI D,CI4
560 F897 CD F9C7 CALL STJMP ; NASTAVENI SKOKU PRO VSTUP Z KLAVESNICE
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-10
561 F89A 11 FA28 LXI D,CO2
562 F89D CD F9CA CALL STJMA ; NASTAVENI SKOKU VYSTUP NA OBRAZOVKU
563 F8A0 21 00F6 LXI H,CONSTA
564 F8A3 11 FE70 LXI D,CSTS1
565 F8A6 CD F9C7 CALL STJMP ; NASTAVENI SKOKU PRO STATUS KONZOLY
566 F8A9 D1 POP D
567 ;
568 F8AA CD F9C1 CALL GETSPR ; ADRESA PROMENNE SPREG
569 F8AD 1B DCX D
570 F8AE 1B DCX D
571 F8AF 73 MOV M,E
572 F8B0 23 INX H
573 F8B1 72 MOV M,D ; NASTAVENI POCATECNICH HODNOTY UKAZ. ZASOB.
574 ;
575 F8B2 CD FD16 COLD2: CALL IMTEXT
576 F8B5 0C 50 4C 41 DB FF,'PLAN80A MON V2Q',BELL OR 80H
577 F8B9 4E 38 30 41
578 F8BD 20 4D 4F 4E
579 F8C1 20 56 32 51
580 F8C5 87
581 ;
582 F8C6 11 FA21 LXI D,CO ; ADRESA OBSLUHY CO
583 F8C9 0E 06 MVI C,6 ; V/V ZARIZENI LO
584 F8CB CD FE3E CALL IODEF ; NASTAVENI SKOKU LO --> CO
585 ;
586 F8CE 3E 08 MVI A,MSKWD
587 F8D0 D3 14 OUT ADRMSK ; NASTAVENI MASKY OBVODU 8214
588 ;
589 F8D2 CD FBCF COLD0: CALL CHKTPR ; JE PRITOMEN MAGNETOFON ?
590 F8D5 CC F001 CZ TINIT ; INICIACE OBVODU MAGNETOFONU A PRIRAZENI PO,RI
591 ;
592 F8D8 3E 90 MVI A,CTRLWD
593 F8DA D3 0B OUT ADRCT
594 ;
595 F8DC 3A E000 LDA ADRBAS ; JE PRITOMEN BASIC
596 F8DF FE C3 CPI KEYBAS
597 F8E1 CA E000 JZ BASIC ; ANO - SKOK DO BASICU
598 ;
599 F8E4 CD F9BB NEXT: CALL GETSTK ; ADRESA PROMENNE MSTACK
600 F8E7 CD F93C CALL NEXT6 ; UKAZATEL ZASOBNIKU DO <HL>
601 F8EA F9 SPHL ; NASTAVENI UKAZATELE ZASOBNIKU
602 ;
603 F8EB 21 0000 LXI H,JMPMON
604 F8EE 11 F85A LXI D,COLDST
605 F8F1 CD F9CA CALL STJMA ; NASTAVENI SKOKU DO STUDENEHO STARTU MONITORU
606 ;
607 F8F4 CD FB0C CALL CRLF ; PRECHOD NA NOVY RADEK
608 F8F7 0E 2E MVI C,'.'
609 F8F9 CD FA21 CALL CO ; VYCKAVACI TECKA NA DISPLAY
610 F8FC CD FA6B CALL ECHO ; VSTUP A ZOBRAZENI ZNAKU
611 F8FF 11 F8E4 LXI D,NEXT ; NAVRATOVA ADRESA PRO RETURN
612 F902 D5 PUSH D ; SIMULACE CALL PRO PRIZNAK
613 F903 01 1702 LXI B,(CTEND SHL 8) OR 2 ; <B>...DELKA TABULKY <C>...2...(EXPR)
614 F906 21 F941 LXI H,CTABL ; ZACATEK TABULKY
615 F909 D6 41 SUI 'A' ; PREVOD NA 0-26
616 F90B FA F931 JM ERROR ; ZNAK ASCII < KOD 'A' ?
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-11
617 F90E B8 CMP B ; SROVNANI KODU S DELKOU TABULKY
618 F90F D2 F931 JNC ERROR ; ZNAK ASCII > KOD 'X' ?
619 F912 CD F937 CALL GETTAB
620 F915 7C MOV A,H ; VYSSI BYTE ADRESY PRIKAZU
621 F916 E6 FC ANI 0FCH ; VYBER BITU A15 AZ A10
622 F918 FE F8 CPI MONIT SHR 8 ; SROVNANI S ADRESOU MONITORU
623 F91A D2 F928 JNC NEXT4 ; PROVED MONITOROVSKY PRIKAZ
624 F91D FE F0 CPI TAPREC SHR 8 ; SROVNANI S ADRESAMI MAGNETOFONU
625 F91F DA F929 JC NEXT2 ; PROVED PRIKAZ V BASICU
626 F922 CD FBCF CALL CHKTPR ; PROGRAM MAGNETOFONU PRITOMEN?
627 F925 C2 F931 JNZ ERROR ; NENI --> CHYBA
628 F928 E9 NEXT4: PCHL ; PROVED PRIKAZ
629 F929 3A E000 NEXT2: LDA ADRBAS
630 F92C FE C3 CPI KEYBAS ; JE PRITOMEN TINY BASIC?
631 F92E CA F928 JZ NEXT4 ; ANO - PROVED PRIKAZ BASICU
632 ;
633 ;
634 ;
635 ; E R R O R
636 ; =========
637 ;
638 ; PODPROGRAM ERROR PROVADI VYPIS HLASENI O VYSKYTU CHYBY
639 ; VE FORME DVOJITEHO KRIZKU (#).
640 ;
641 ; POSKOZENE REGISTRY: - - -
642 ;
643 F931 C5 ERROR: PUSH B
644 F932 0E 23 MVI C,'#' ; KOD ZNAKU #
645 F934 C3 FA85 JMP WQUA0 ; VYPIS ZNAKU #
646 ;
647 ;
648 ;
649 ; G E T T A B
650 ; ===========
651 ;
652 ; PODPROGRAM PRO VYVOLANI ADRESY PRIKAZU Z TABULKY DO <HL>, OFFSET JE
653 ; V <A>, ADRESA POCATKU TABULKY JE V <HL>
654 ;
655 ; POSKOZENE REGISTRY: A,F,H,L,D,E
656 ;
657 F937 87 GETTAB: ADD A ; ZDVOJNASOBENI ODSTUPU (ADRESA...2 BYTY)
658 F938 16 00 MVI D,0 ; VYNULOVANI VYSSIHO BYTU OFFSETU
659 F93A 5F MOV E,A ; ULOZENI NIZSIHO BYTU OFFSETU
660 F93B 19 DAD D ; VYPOCET VYSLEDNE ADRESY DO <HL>
661 F93C 7E NEXT6: MOV A,M ; DOLNI BYTE ADRESY PRIKAZU
662 F93D 23 INX H ; INKREMENTACE UKAZATELE
663 F93E 66 MOV H,M ; HORNI BYTE ADRESY
664 F93F 6F MOV L,A ; ADRESA PRIKAZU V <HL>
665 F940 C9 RET
666 ;
667 ;
668 ;
669 ; TABULKA ADRES OBSLUH PRIKAZU
670 ; ============================
671 ;
672 F941 F00D CTABL: DW TAPP ; A...(APPEND) PRIPOJENI BINARNIHO SOUBORU
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-12
673 F943 E000 DW BASIC ; B...(BASIC) STUDENY START BASICU
674 F945 E003 DW CONIT ; C...(CONTINUE) TEPLY START BASICU
675 F947 FC61 DW DISPL ; D...(DISPLAY) ZOBRAZENI OBSAH PAMETI
676 F949 F025 DW TEOF ; E...(END OF FILE) ZAPIS UZAV. HEX. SOUBORU
677 F94B FCBD DW FILL ; F...(FILL) VYPLNENI PAMETI ZNAKEM
678 F94D FC1A DW GOTO ; G...(GOTO) SKOK DO PROGRAMU
679 F94F F931 DW ERROR ; H...
680 F951 FCF7 DW INPUT ; I...(INPUT) VSTUP Z PORTU
681 F953 F004 DW TJOIN ; J...(JOIN) NASTAVENI ADRES MAGNETOFONU
682 F955 F028 DW TCLOS ; K...(CLOSE) UZAVRENI ZAPSANEHO SOUBORU
683 F957 F010 DW TLOAD ; L...(LOAD) OVLADANI MOTORKU MAGNETOFONU
684 F959 FCD0 DW MOVE ; M...(MOVE) PRESUN OBLASTI PAMETI
685 F95B F931 DW ERROR ; N...
686 F95D FCDD DW OUTPT ; O...(OUTPUT) VYSTUP NA PORT
687 F95F F00A DW TPUT ; P...(PUT) ZAPIS BINARNIHO SOUBORU NA PASKU
688 F961 F007 DW TQUAF ; Q...(QUAFF) CTENI BINARNIHO SOUBORU Z PASKY
689 F963 F022 DW TRD ; R...(READ) CTENI HEX. SOUBORU Z PASKY
690 F965 FBD5 DW SUBST ; S...(SUBSTITUTE) ZMENA OBSAHU PAMETI
691 F967 F013 DW TDIR ; T...(TAPE) VYPIS NAZVU VSECH SOBORU
692 F969 F016 DW TUNNA ; U...(UNNAMED) POJMENOVANI NOVE KAZETY
693 F96B F931 DW ERROR ; V...
694 F96D F01F DW TWR ; W...(WRITE) ZAPIS HEX. SOUBORU NA PASKU
695 0017 CTEND EQU ($-CTABL)/2 ; POCET POLOZEK TABULKY
696 ;
697 ; NAVRAT Z PRIKAZU VZDY: RET
698 ;
699 ;
700 ; G E T D I S
701 ; ===========
702 ;
703 ;
704 ; PODPROGRAM GETDIS PROVADI ZJISTENI KONCE PAMETI RAM> PRI
705 ; SVE CINNOSTI PREDPOKLADA SPOJITOU OBLAST PAMETI (BEZ ME-
706 ; OSAZENEHO ADRESOVEHO PROSTORU), KTERY PROHLEDAVA PO KILECH OD
707 ; KONCE. DALE PROVADI VYPOCET ADRESY ZACATKU OBRAZOVE
708 ; PAMETI A JI PRISLUSEJICI POCET RADKU. VYCHAZI Z ADRESY KONCE
709 ; PAMETI RAM. POSKYTUJE POSLEDNI BUNKU PAMETI RAM.
710 ; ADRESU OBRAZOVE PAMETI ULOZI DO <HL>, POCET RADKU DO <C>.
711 ;
712 ; POSKOZENE REGISTRY: A,F,B,C,D,E,H,L
713 ;
714 F96F 21 03FF GETDIS: LXI H,03FFH ; ADRESA KONCE PAM.PROSTORU + 3FF
715 F972 11 FC00 LXI D,0FC00H ; DVOKOVY DOPLNEK 1 KILA
716 F975 19 GETD0: DAD D ; VYPOCET DALSI ADRESY
717 F976 7E MOV A,M
718 F977 2F CMA ; INVERZE PUVODNIHO OBSAHU
719 F978 77 MOV M,A ; TESTOVACI ZAPIS
720 F979 BE CMP M ; OBSAH PLATNY ?
721 F97A C2 F975 JNZ GETD0 ; NE - DALSI KILO
722 F97D 7C MOV A,H ; HORNI BYTE ADRESY
723 F97E EB XCHG ; ULOZENI ADRESY KONCE RAM
724 F97F E6 FC ANI 0FCH ; VYBER 'KILOVICH' BITU
725 F981 21 01FF LXI H,1FFH ; ADRESA DISRAM PRO 1 KILO RAM
726 F984 0E 07 MVI C,7 ; 8 RADKU
727 F986 C8 RZ ; RAM = 1K
728 F987 FE 04 CPI 4
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-13
729 F989 29 DAD H ; ADRESA DIRAM PRO 2 KILA
730 F98A 23 INX H
731 F98B 0E 0F MVI C,0FH ; 16 RADKU
732 F98D C8 RZ ; RAM = 2K
733 F98E FE 08 CPI 8
734 F990 26 07 MVI H,7 ; ADRESA DISRAM PRO 3 KILA
735 F992 C8 RZ ; RAM = 3K
736 F993 EB XCHG ; OBNOVENI ADRESY KONCE RAM
737 F994 11 F800 LXI D,0F800H ; DVOJKOVY DOPLNEK 2 KIL
738 F997 19 DAD D ; VYPOCET ADRESY DISRAM PRO 4K AZ 15K RAM
739 F998 0E 1F MVI C,1FH ; 32 RADKU
740 F99A C9 RET
741 ;
742 ;
743 ;
744 ;
745 ; N U M L I N
746 ; ===========
747 ;
748 ; PODPROGRAM PRO ZJISTENI ADRESY PROMENNE S POCTEM ZOBRAZOVANYCH
749 ; RADKU NA OBRAZOVCE. VYSLEDNA ADRESA JE V <HL>.
750 ;
751 ; POSKOZENE REGISTRY: H,L
752 ;
753 F99B 21 0037 NUMLIN: LXI H,LINENO ; ODSTUP PROMENNE S POCTEM RADKU
754 F99E CD FA01 NUML0: CALL GETADR ; ZJISTENI ADRESY TETO PROMENE
755 F9A1 C9 RET
756 ;
757 ;
758 ;
759 ; N U M C H R
760 ; ===========
761 ;
762 ; PODPROGRAM PRO ZJISTENI ADRESY PROMENNE S POCTEM ZNAKU,
763 ; ULOZI SE DO <HL>.
764 ;
765 ; POSKOZENE REGISTRY: H,L
766 ;
767 F9A2 21 0038 NUMCHR: LXI H,CHARNO
768 F9A5 C3 F99E JMP NUML0
769 ;
770 ;
771 ;
772 ; J A D R
773 ; =======
774 ;
775 ; PODPROGRAM PRO SKOK NA ADRESU DANOU ODSTUPEM V <HL> OD ADRESY
776 ; DISRAM, PREDPOKLADA OBSAH <HL> V ZASOBNIKU, TENTO OBSAH OBNOVY.
777 ;
778 ; POSKOZENE REGISTRY: H,L,SP
779 ;
780 F9A8 CD FA01 JADR: CALL GETADR ; VYPOCET FYZICKE ADRESY
781 F9AB E3 XTHL ; OBNOVENI <HL>
782 F9AC C9 RET ; SKOK NA VYPOCTENOU ADRESU
783 ;
784 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-14
785 ;
786 ; G E T L I N
787 ; ===========
788 ;
789 ; PODPROGRAM PRO ZJISTENI OBSAHU CITACE RADKU A JEHO ULOZENI DO <A>
790 ;
791 ; POSKOZENE REGISTRY: H,L,A
792 ;
793 F9AD 21 0035 GETLIN: LXI H,LINECO ; ODSTUP CITACE RADKU
794 F9B0 C3 F9B6 JMP GETC0
795 ;
796 ;
797 ;
798 ; G E T C H R
799 ; ===========
800 ;
801 ; PODPROGRAM PRO ZJISTENI OBSAHU CITACE ZNAKU A JEHO ULOZENI DO <A>
802 ;
803 ; POSKOZENE REGISTRY: H,L,A
804 ;
805 F9B3 21 0036 GETCHR: LXI H,CHARCO ; ODSTUP CITACE ZNAKU
806 F9B6 CD FA01 GETC0: CALL GETADR ; VYPOCET ADRESY CITACE ZNAKU
807 F9B9 7E MOV A,M ; PRICTENI OBSAHU CITACE ZNAKU
808 F9BA C9 RET
809 ;
810 ;
811 ;
812 ; G E T S T K
813 ; ===========
814 ;
815 ; PODPROGRAM PRO ZJISTENI ADRESY PROMENE MSTACK (VRCHOL ZASOBNIKU
816 ; PRO MONITOR).
817 ;
818 ; POSKOZENE REGISTRY: H,L
819 ;
820 F9BB 21 0033 GETSTK: LXI H,MSTACK ; ODSTUP PROMENNE MSTACK
821 F9BE C3 F9B6 JMP GETC0 ; VYPOCET ADRESY PROMENNE MSTACK
822 ;
823 ;
824 ; G E T S P R
825 ; ===========
826 ;
827 ; PODPROGRAM PRO ZJISTENI ADRESY PROMENNE SPREG (VRCHOL ZASOBNIKU
828 ; PRO UZIVATELE).
829 ;
830 ; POSKOZENE REGISTRY: H,L
831 ;
832 F9C1 21 0073 GETSPR: LXI H,SPREG
833 F9C4 C3 F9B6 JMP GETC0
834 ;
835 ;
836 ;
837 ; S T J M P
838 ; =========
839 ;
840 ; PODPROGRAM ULOZI DO <HL> ADRESU URCENOU ODSTUPEM OD DISRAM ULOZENYM
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-15
841 ; V <HL>, PAK ULOZI KOD 0C3H NA ADRESU <HL>, ABSAH <E> NA
842 ; ADESU <HL+1> A <D> NA ADRESU <HL+2>. PO VYSTUPU Z PODPROGRAMU
843 ; JE V <HL> HODNOTA ZVETSENA O 3 (HL+2).
844 ;
845 ; POSKOZENE REGISTRY: H,L
846 ;
847 F9C7 CD FA01 STJMP: CALL GETADR ; VYPOCET ADRESY A ULOZENI DO <HL>
848 F9CA 36 C3 STJMA: MVI M,0C3H ; KOD INSTRUKCE SKOKU DO [<HL>]
849 F9CC 23 INX H
850 F9CD 73 STJMB: MOV M,E ; ULOZENI DOLNIHO BYTU ADRESY SKOKU
851 F9CE 23 INX H
852 F9CF 72 MOV M,D ; ULOZENI HORNIHO BYTU ADRESY SKOKU
853 F9D0 23 INX H
854 F9D1 C9 RET
855 ;
856 ;
857 ;
858 ; A D R K U R
859 ; ===========
860 ;
861 ; PODPROGRAM ADRKUR VYPOCITA ZE SOURADNICOVYCH UKAZATELU
862 ; LINECO (CITAC RADKU) A CHARCO (CITAC ZNAKU) FYZICKOU
863 ; ADRESU PRISLUSNEHO MISTA V OBRAZOVE PAMETI DISRAM.
864 ; VYSLEDNOU ADRESU UKLADA DO <HL>.
865 ;
866 ; POSKOZENE REGISTRY: H,L
867 ;
868 F9D2 F5 ADRKUP: PUSH PSW
869 F9D3 D5 PUSH D
870 F9D4 11 0040 LXI D,64 ; POCET BYTU NA JEDEN RADEK
871 F9D7 CD F9AD CALL GETLIN ; OBSAH CITACE RADKU DO <A>
872 F9DA 2A 0004 LHLD RAMEND
873 F9DD 23 INX H ; ZACATEK OBRAZOVE PAMETI V <HL>
874 F9DE 3D ADRK2: DCR A
875 F9DF FA F9E6 JM ADRK1 ; PRES VSECHNY RADKY ?
876 F9E2 19 DAD D ; VYPOCET BYTU V PREDCH. RADCICH
877 F9E3 C3 F9DE JMP ADRK2
878 F9E6 E5 ADRK1: PUSH H
879 F9E7 16 00 MVI D,0
880 F9E9 CD F9B3 CALL GETCHR ; OBSAH CITACE ZNAKU DO <A>
881 F9EC 5F MOV E,A
882 F9ED E1 POP H ; OBNOVENI <HL>
883 F9EE 19 DAD D ; PRICTENI POCTU ZNAKU V PRUB. RADKU
884 F9EF D1 POP D
885 F9F0 F1 POP PSW
886 F9F1 C9 RET
887 ;
888 ;
889 ;
890 ; C I N C R
891 ; =========
892 ;
893 ; PODPROGRAM CINCR PROVADI VSTUP, ZOBRAZENI A ANALIZU
894 ; ZNAKU Z KLAVESNICE. ZNAK JE V REGISTRU <A>, POLE
895 ; JEHO HODNOTY NASTAVUJE PRIZNAKY NASLEDOVNE:
896 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-16
897 ; ZNAK FF-C FF-Z
898 ; , SP 0 1
899 ; CR 1 1
900 ; OSTATNI 0 0
901 ;
902 ;
903 ; POSKOZENE REGISTRY: A,F
904 ;
905 F9F2 CD FA6B CINCR: CALL ECHO ; VSTUP A ZOBRAZENI ZNAKU
906 F9F5 FE 2C ANAL: CPI ',' ; ANAJIZATOR ZNAKU V <A>
907 F9F7 C8 RZ
908 F9F8 FE 20 CPI SPC
909 F9FA C8 RZ ; PRO , A SP ... FF-Z = 1, FF-C = 0
910 F9FB FE 0D CPI CR
911 F9FD 37 STC
912 F9FE C8 RZ ; PRO CR ... FF-Z = 1, FF-C = 1
913 F9FF 3F CMC
914 FA00 C9 RET ; JINY ZNAK ... FF-Z = 0, FF-C = 0
915 ;
916 ;
917 ;
918 ;
919 ; G E T A D R
920 ; ===========
921 ;
922 ; PODPROGRAM GETADR UMOZNUJE VYPOCET ADRESY
923 ; PROMENNYCH UMISTENYCH V NEVIUZITE CASTI
924 ; PAMETI RAM URCENE PRO UCHOVANI OBRAZU. VSTUPNI
925 ; PROMENOU JE ODSTUP OD ZACATKU DISRQM, UKLADA
926 ; SE DO <HL>, VYSLEDNA ADRESA JE V <HL>
927 ;
928 ; POSKOZENE REGISTRY: H,L
929 ;
930 FA01 D5 GETADR: PUSH D
931 FA02 F5 PUSH PSW
932 FA03 EB XCHG ; ULOZENI ODSTUPU DO <DE>
933 FA04 2A 0004 LHLD RAMEND ; ADRESA KONCE PROGRAMOVE PAMETI
934 FA07 23 INX H ; ADRESA ZACATKU OBRAZOVE RAM
935 FA08 19 DAD D ; VYPOCET VYSLEDNE ADRESY DO <HL>
936 FA09 F1 POP PSW ; FF-C JE POSKOZENO INSTRUKCI DAD
937 FA0A D1 POP D
938 FA0B C9 RET
939 ;
940 ;
941 ;
942 ; D A D R
943 ; =======
944 ;
945 ; PODPROGRAM DADR (DBYTE) SLOUZI K ZOBRAZENI ADRESY
946 ; (BYTU) ULOZENEHO V REGISTRECH <HL> (V REG. <A>) NA
947 ; OBRAZOVCE POMOCI HEXADECIMALNI NOTACE.
948 ;
949 ; POSKOZENE REGISTRY: A,F,C
950 ;
951 FA0C 7C DADR: MOV A,H ; VYSSI BYTE ADRESY
952 FA0D CD FA11 CALL DBYTE ; JEJI ZOBRAZENI
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-17
953 FA10 7D MOV A,L ; NIZSI BYTE ADRESY
954 FA11 F5 DBYTE: PUSH PSW
955 FA12 0F RRC
956 FA13 0F RRC
957 FA14 0F RRC
958 FA15 0F RRC ; DELENI <A> / 16
959 FA16 E6 0F ANI 0FH ; HORNI NIBBLE
960 FA18 CD FA1E CALL DBYT0 ; PREVOD A ZOBRAZENI
961 FA1B F1 POP PSW ; OBNOVENI ODSAHU <A>
962 FA1C E6 0F ANI 0FH ; DOLNI NIBBLE
963 FA1E CD FAD3 DBYT0: CALL HXASC ; PREVOD0HEX --> ASCII0<C>
964 ;
965 ;
966 ;
967 ; C O
968 ; ===
969 ;
970 ;
971 ; PODPROGRAM CO PROVADI VYSTUP ZNAKU ULOZENEHO V REGISTRU
972 ; <C> NA OBRAZOVKU NA MISTO URCENE SOURADNICEMI LINECO A
973 ; CHARCO. SOUCASNE SIMULUJE CHOVANI OBVODOVE KONZOLY
974 ; PRO ZNAKY FF,BS,CR,LF,HT,HOME,DL,DSCR A BELL.
975 ;
976 ; POSKOZENE REGISTRY: - - -
977 ;
978 FA21 E5 CO: PUSH H
979 FA22 21 00B3 LXI H,CONOUT ; SPOJOVACI ADRESA
980 FA25 C3 F9A8 JMP JADR ; SKOK NA NI
981 ;
982 FA28 E5 CO2: PUSH H
983 FA29 F5 PUSH PSW
984 FA2A 79 MOV A,C
985 FA2B 21 FA68 LXI H,CO0 ; NAVRATOVA ADRESA
986 FA2E E5 PUSH H ; SIMULACE CALL
987 FA2F FE 0D CPI CR ; JDE O ZNAK 'CR' ?
988 FA31 CA FB02 JZ CARRET ; ZACATEK RADKU
989 FA34 FE 0A CPI LF ; JDE A ZNAK 'LF' ?
990 FA36 CA FADD JZ LINEF ; O JEDEN RADEK DOLU
991 FA39 79 MOV A,C ; OBNOVENI <A>
992 FA3A FE 08 CPI BS ; JDE O ZNAK 'BS' ?
993 FA3C CA FDA7 JZ BACST ; POSUN ZPET
994 FA3F FE 0C CPI FF ; JDE O ZNAK 'FF' ?
995 FA41 CA FD86 JZ FORFI ; VYMAZ DISRAM
996 FA44 FE 1D CPI HOME ; JDE O ZNAK 'HOME' ?
997 FA46 CA FD7A JZ GHOME ; DO LEVEHO HOR. ROHU
998 FA49 FE 1E CPI DL ; JDE O ZNAK 'DL' ?
999 FA4B CA FDC9 JZ DELLIN ; VYMAZ RADKU
1000 FA4E FE 1F CPI DSCR ; JDE O ZNAK 'DS' ?
1001 FA50 CA FD89 JZ DELSCR ; VYMAZ OBRAZOVKY
1002 FA53 FE 07 CPI BELL ; JDE O ZNAK 'BELL' ?
1003 FA55 CA FDEF JZ BEEPS ; PIPNUTI
1004 ;
1005 FA58 E1 POP H ; SPLACHNUTI NAVR. AD.
1006 FA59 CD F9D2 CALL ADRKUP ; ADRESA KURZORU <HL>
1007 FA5C 71 MOV M,C ; VYPIS ZNAKU
1008 FA5D CD F9B3 CALL GETCHR ; CISLO ZNAKU V <A>
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-18
1009 FA60 34 INR M ; DALSI POZICE
1010 FA61 CD F9A2 CALL NUMCHR ; ADRESA POCTU ZNAKU
1011 FA64 BE CMP M ; NA KONCI RADKU ?
1012 FA65 CC FB0C CZ CRLF ; ANO - NOVY RADEK
1013 FA68 F1 CO0: POP PSW
1014 FA69 E1 POP H
1015 FA6A C9 RET
1016 ;
1017 ;
1018 ;
1019 ;
1020 ; E C H O
1021 ; =======
1022 ;
1023 ; PODPROGRAM ECHO PROVADI VSTUP A ZOBRAZENI ZNAKU Z
1024 ; KLAVESNICE. ZNAK JE ULOZEN V REGISTRU <A>.
1025 ;
1026 ; POSKOZENE REGISTRY: A,F
1027 ;
1028 FA6B C5 ECHO: PUSH B
1029 FA6C CD FE7A CALL CI ; VSTUP ZNAKU
1030 FA6F 4F MOV C,A
1031 FA70 CD FA21 CALL CO ; ZOBRAZENI ZNAKU
1032 FA73 79 MOV A,C
1033 FA74 C1 POP B
1034 FA75 C9 RET
1035 ;
1036 ;
1037 ;
1038 ; S D A D R
1039 ; =========
1040 ;
1041 ; PODPROGRAM PRO ZOBRAZENI <HL> A MEZERY NA OBRAZOVCE.
1042 ;
1043 ; POSKOZENE REGISTRY: A,F,C
1044 ;
1045 FA76 CD FA0C SDADR: CALL DADR ; ZOBRAZENI <HL>
1046 ;
1047 ;
1048 ;
1049 ; S P A C E
1050 ; =========
1051 ;
1052 ; PODPROGRAM SPACE PROVEDE VYPIS MEZERY NA OBRAZOVKU.
1053 ;
1054 ; POSKOZENE REGISTRY: - - -
1055 ;
1056 FA79 C5 SPACE: PUSH B
1057 FA7A 0E 20 MVI C,SPC ; KOD MEZERY DO <C>
1058 FA7C C3 FA85 JMP WQUA0 ; PROVEDENI VYPISU
1059 ;
1060 ;
1061 ;
1062 ; E D A D R
1063 ; =========
1064 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-19
1065 ; PODPROGRAM PRO ZOBRAZENI <HL> A ROVNITKA NA OBRAZOVCE.
1066 ;
1067 ; POSKOZENE REGISTRY: A,F,C
1068 ;
1069 FA7F CD FA0C EDADR: CALL DADR ; ZOBRAZENI <HL>
1070 ;
1071 ;
1072 ;
1073 ; E Q U A T E
1074 ; ===========
1075 ;
1076 ; PODPROGRAM EQUATE PROVEDE VYPIS ROVNITKA NA OBRAZOVKU.
1077 ;
1078 ; POSKOZENE REGISTRY: - - -
1079 ;
1080 FA82 C5 EQUATE: PUSH B
1081 FA83 0E 3D MVI C,'=' ; ZNAK ROVNITKO DO <C>
1082 FA85 CD FA21 WQUA0: CALL CO ; ZOBRAZENI ROVNITKA
1083 FA88 C1 POP B
1084 FA89 C9 RET
1085 ;
1086 ;
1087 ;
1088 ; E X P R
1089 ; =======
1090 ;
1091 ; PODPROGRAM EXPR UMOZNUJE CSTYP PARAMETRU (ADRES,BYTU)
1092 ; DO PROGRAMU. POCET PARAMETRU JE V REGISTRU <C>.
1093 ; JEDNOTLIVE PARAMETRY UKLADA POSTUPNE DO ZASOBNIKU.
1094 ;
1095 ; POSKOZENE REGISTRY: A,F,B,C,H,L,SP
1096 ;
1097 FA8A F5 EXPR: PUSH PSW
1098 FA8B F1 EXPR0: POP PSW
1099 FA8C CD FA82 CALL EQUATE ; ROVNITKO NA DISPLEJ
1100 FA8F 21 0000 LXI H,0 ; VYNULOVANI <HL>
1101 FA92 CD FA6B EXPR1: CALL ECHO ; VSTUP A ZOBRAZENI ZNAKU
1102 FA95 FE 1B CPI ESC ; JDE O ZNAL 'ESC' ?
1103 FA97 CA F8E4 JZ NEXT ; POKUT ANO -> PRERUS PRIKAZ
1104 FA9A 47 MOV B,A ; ULOZENI ZNAKU DO <B>
1105 FA9B CD FAC1 CALL ASHEX ; PREVOD ZNAKU Z ASCII NA HEX
1106 FA9E DA FAAA JC EXPR2 ; NEJDE O HEXADECIMALNI CIFRU ?
1107 FAA1 29 DAD H
1108 FAA2 29 DAD H
1109 FAA3 29 DAD H
1110 FAA4 29 DAD H ; VYNASOBENI <HL> * 16
1111 FAA5 B5 ORA L ; PRIDANI DALSIHO NYBBLU
1112 FAA6 6F MOV L,A ; DO <HL>
1113 FAA7 C3 FA92 JMP EXPR1 ; VSTUP DALSI CIFRY
1114 FAAA C6 30 EXPR2: ADI '0' ; OPRAVA KODU PO ASHEX
1115 FAAC CD F9F5 CALL ANAL ; ANALIZATOR ZNAKU
1116 FAAF CA FAB8 JZ EXPR3 ; PRIJAT UKONCOVACI ZNAK 'SP' , ',' , 'CR'
1117 FAB2 CD F931 CALL ERROR ; HLASENI NESMISLNEHO OPERANDU - SPLACHNOUT
1118 FAB5 C3 FA8A JMP EXPR ; VSTUP NAHRADNIHO OPERANDU
1119 FAB8 E3 EXPR3: XTHL ; ULOZENI ZIZKANEHO OPERANDU DO ZASOBNIKU
1120 FAB9 E5 PUSH H ; OBNOVENI NARATOVE ADRESY
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-20
1121 FABA F5 PUSH PSW
1122 FABB 0D DCR C ; DEKREMENTACE CITACE OPERANDU
1123 FABC C2 FA8B JNZ EXPR0 ; VSECHNY OPERANDY NACTENY ?
1124 FABF F1 POP PSW
1125 FAC0 C9 RET
1126 ;
1127 ;
1128 ;
1129 ;
1130 ; A S H E X
1131 ; =========
1132 ;
1133 ; PODPROGRAM ASHEX ROVADI PREVOD HEX. CISLA ZADA-
1134 ; NEHO POMOCI ASCII ZNAKU NA HEX. HODNOTU. PUNODNI
1135 ; ZNAKY V REGISTRU <A>, VYSLEDEK V REGISTRU <A>.
1136 ; AUTOMATICKY POSOUVA RAD PRI VICENASOBNEM VOLANI,
1137 ; TAKZE LZE PREVADET AZ CTYR-NIBBLOVA HEX. CISLA.
1138 ;
1139 ; POSKOZENE REGISTRY: A,F
1140 ;
1141 FAC1 D6 30 ASHEX: SUI '0'
1142 FAC3 D8 RC ; JE KOD ZNAKU < 30H ?
1143 FAC4 C6 E9 ADI 0E9H
1144 FAC6 D8 RC ; JE KOD ZNAKY > 46H ?
1145 FAC7 C6 06 ADI 6
1146 FAC9 F2 FACF JP ASHE0 ; JDE O PISMENOVY KOD (A-F) ?
1147 FACC C6 07 ADI 7
1148 FACE D8 RC ; JDE O ZNAKY : (3AH) AZ (60H) ?
1149 FACF C6 0A ASHE0: ADI 10 ; POSUN NA NOVOU DEKADU
1150 FAD1 B7 ORA A ; NULOVANI PRIZNAKU NESMISLNEHO KODU
1151 FAD2 C9 RET ; FF-C = 0 => OK
1152 ;
1153 ;
1154 ;
1155 ; H X A S C
1156 ; =========
1157 ;
1158 ; PODPROGRAM HXASC PROVADI PREVOD HEX. HODNOTY
1159 ; NA KOD EKVIVALENTNIHO ZNAKU ASCII. HEX. HODNOTA
1160 ; JE V REGISTRU <A>, KOD ZNAKU V REGISTRU <C>.
1161 ;
1162 ; POSKOZENE REGISTRY: C
1163 ;
1164 FAD3 F5 HXASC: PUSH PSW
1165 FAD4 C6 90 ADI 90H ; PREHODNI KONSTANTA
1166 FAD6 27 DAA
1167 FAD7 CE 40 ACI 40H ; VYTVORENI KODU ZNAKU
1168 FAD9 27 DAA
1169 FADA 4F MOV C,A ; ULOZENI KODU DO <C>
1170 FADB F1 POP PSW
1171 FADC C9 RET
1172 ;
1173 ;
1174 ;
1175 ; L I N E F
1176 ; =========
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-21
1177 ;
1178 ;
1179 ; PODPROGRAM LINEF PROVADI PRECHOD NA NOVY RADEK.
1180 ; POKUT JDE O RADEK POSLRDNI, PAK SLEDUJE PRI-
1181 ; TOMNOST EXP-MONITORU. PRI JEHO PRITOMNOSTI VY-
1182 ; VOLA PODPROGRAM ROLL (POSUV OBSAHU OBRAZOVKY
1183 ; O JEDEN RADEK NAHORU, STARY PRVNI RADEK SE STRACI).
1184 ; PRI NEPRITOMNOSTI EXPANDU PROVEDE PRECHOD NA PRV-
1185 ; NI ZOBRAZOVANY RADEK. POZICE KURZORU V RADKU ZUSTANE
1186 ; NEZMENENA.
1187 ;
1188 ; POSKOZENE REGISTRY: - - -
1189 ;
1190 ;
1191 FADD F5 LINEF: PUSH PSW
1192 FADE E5 PUSH H
1193 FADF CD F9AD CALL GETLIN ; OBSAK CITACE RADKU
1194 FAE2 E5 PUSH H
1195 FAE3 CD F99B CALL NUMLIN ; ADRESA BUNKY S POCTEM RADKU
1196 FAE6 BE CMP M ; NA POSLEDNIM RADKU ?
1197 FAE7 DA FAFA JC LINE1
1198 FAEA CA FAF1 JZ LINE0 ; ZMENA POCTU RADKU ?
1199 FAED 7E MOV A,M ; NOVY POCET RADKU
1200 FAEE E1 POP H ; KURZOR NA POSLEDNI RADEK
1201 FAEF E5 PUSH H
1202 FAF0 77 MOV M,A
1203 FAF1 CD FD37 LINE0: CALL ROLL ; ROLOVANI DISPLAYE, KURZOR NEPOSUNE
1204 FAF4 CD FDC9 CALL DELLIN ; VYMAZ CASTI RADKU OD KURZORU
1205 FAF7 C3 FAFE JMP LINE2
1206 FAFA 3C LINE1: INR A
1207 FAFB E1 POP H ; KURZOR NA DALSI RADEK
1208 FAFC E5 PUSH H
1209 FAFD 77 MOV M,A
1210 FAFE E1 LINE2: POP H
1211 FAFF E1 POP H
1212 FB00 F1 POP PSW
1213 FB01 C9 RET
1214 ;
1215 ;
1216 ;
1217 ; C A R R E T
1218 ; ===========
1219 ;
1220 ; PODPROGRAM CARRET UMISTI KURZOR NA ZACATEK PRAZDNEHO RADKU.
1221 ;
1222 ; POSKOZENE REGISTRY: - - -
1223 ;
1224 FB02 E5 CARRET: PUSH H
1225 FB03 F5 PUSH PSW
1226 FB04 CD F9B3 CALL GETCHR ; V <HL> ADRESA CITACE ZNAKU
1227 FB07 36 00 MVI M,0
1228 FB09 F1 POP PSW
1229 FB0A E1 POP H
1230 FB0B C9 RET
1231 ;
1232 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-22
1233 ;
1234 ; C R L F
1235 ;
1236 ; PODPROGRAM CRLF PROVEDE PRECHOD NA ZACATEK NASLEDUJICIHO RADKU,
1237 ; KTERY CELY VYMAZE (POKUD JE PRITOMEN EXPAND).
1238 ;
1239 ; POSKOZENE REGISTRY: - - -
1240 ;
1241 FB0C CD FB02 CRLF: CALL CARRET ; KURZOR NA ZACATEK RADKU
1242 FB0F C3 FADD JMP LINEF ; KURZOR NA NASLEDUJICI RADEK
1243 ;
1244 ;
1245 ;
1246 ; I N T E R
1247 ; =========
1248 ;
1249 ; INTER OSETRUJE PRERUSENI. OBSAHY REGISTRU SE
1250 ; ULOZI DO PRACOVNIHO POLE PAMETI PRIKAZU GOTO.
1251 ; DALE SE ZJISTI, ZDA SLO O PRERUSENI PROGRAMOVE
1252 ; NEBO OBVODOVE. POKUT BYLO PROGRAMOVE, URCI
1253 ; SE POMOCI OBSAHU PROMENNE BRADR, ZDA SLO O PRE-
1254 ; RUSENI VYVOLANE PRERUSOVACI ADRESOU PRIKAZU
1255 ; GOTO. POKUT ANO, OBNOVI SE PUVODNI KOD NA
1256 ; TETO ADRESE. ABSAH VSECH REGISTRU SE ZABRAZI
1257 ; A PROVEDE SE SKOK NA HORKY START MONITORU.
1258 ;
1259 ; POSKOZENE REGISTRY: A,F,B,C,D,E,H,L,SP
1260 ;
1261 FB12 E5 INTER: PUSH H
1262 FB13 D5 PUSH D
1263 FB14 C5 PUSH B
1264 FB15 F5 PUSH PSW
1265 FB16 21 0000 LXI H,0
1266 FB19 39 DAD SP ; V <HL> VRCHOL ZASOBNIKU
1267 FB1A EB XCHG
1268 FB1B 21 007C LXI H,FREG
1269 FB1E CD FA01 CALL GETADR ; ADSTUP PROMENNE 'FRAG'
1270 FB21 06 08 MVI B,8
1271 FB23 1A INTER2: LDAX D
1272 FB24 13 INX D
1273 FB25 77 MOV M,A
1274 FB26 2B DCX H
1275 FB27 05 DCR B
1276 FB28 C2 FB23 JNZ INTER2 ; ULOZENI REGISTRU DO PRAC. POLE
1277 FB2B 13 INX D
1278 FB2C 13 INX D ; SPLACHNUTI POSUNU VRCHOLU OD RST
1279 FB2D 72 MOV M,D
1280 FB2E 2B DCX H
1281 FB2F 73 MOV M,E ; ULOZENI PUV. VRCHOLU ZASOBNIKU
1282 FB30 F1 POP PSW
1283 FB31 C1 POP B
1284 FB32 D1 POP D
1285 FB33 E1 POP H ; OBNOVENI ABSAHU REGISTRU
1286 FB34 CD FB0C INTER3: CALL CRLF ; NOVY RADEK
1287 FB37 C5 PUSH B ; [SP]=<BC>,<ADR>
1288 FB38 E5 PUSH H
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-23
1289 FB39 21 5043 LXI H,5043H ; KODY 'PC' DO <HL>
1290 FB3C CD FBC3 CALL INTER1 ; VYPIS 'PC='
1291 FB3F E1 POP H
1292 FB40 C1 POP B ; [SP]=<ADR>
1293 FB41 E3 XTHL ; [SP] <--> <HL>
1294 FB42 C5 PUSH B ; [SP]=<BC>,<HL>
1295 FB43 F5 PUSH PSW ; [SP]=<AF>,<BC>,<HL>
1296 FB44 2B DCX H ; ADRESA PRERUSUJICI INSTRUKCE RSTX
1297 FB45 CD FA7F CALL EDADR ; ZOBRAZENI <HL>=ADR A VYPIS =
1298 FB48 7E MOV A,M
1299 FB49 CD FA11 CALL DBYTE ; ZOBRAZENI [HL]=[ADR]...INSTR
1300 FB4C E5 PUSH H
1301 FB4D 21 0070 LXI H,BRADR ; ODSTUP PROMENNE 'BRADR'
1302 FB50 CD FA01 CALL GETADR ; ADRESA 'BRADR' DO <HL>
1303 FB53 7E MOV A,M
1304 FB54 E1 POP H ; OBNOVENI <HL>
1305 FB55 BD CMP L
1306 FB56 C2 FB70 JNZ INTER0 ; POKUT NE - POKRACUJ V ZOBRAZOVANI
1307 FB59 E5 PUSH H
1308 FB5A 21 0071 LXI H,BRADR + 1
1309 FB5D CD FA01 CALL GETADR
1310 FB60 7E MOV A,M
1311 FB61 E1 POP H
1312 FB62 BC CMP H
1313 FB63 C2 FB70 JNZ INTER0 ; TO STEJNE PRO HI-BYTE ADRESY BREAKU
1314 FB66 E5 PUSH H
1315 FB67 21 0072 LXI H,BRCODE
1316 FB6A CD FA01 CALL GETADR
1317 FB6D 7E MOV A,M
1318 FB6E E1 POP H
1319 FB6F 77 MOV M,A ; OBNOVENI KODU INSTRUKCE PRI BREAKU
1320 FB70 F1 INTER0: POP PSW ; [SP]=<BC>,<HL>
1321 FB71 C1 POP B ; [SP]=<HL>
1322 FB72 E1 POP H ; [SP]=
1323 FB73 CD FA79 CALL SPACE
1324 FB76 C5 PUSH B ; [SP]=<BC>
1325 FB77 F5 PUSH PSW ; [SP]=<AF>,<BC>
1326 FB78 E5 PUSH H
1327 FB79 21 484C LXI H,484CH ; KODY 'HL' DO <HL>
1328 FB7C CD FBC3 CALL INTER1 ; VYPIS 'HL='
1329 FB7F E1 POP H
1330 FB80 CD FA7F CALL EDADR ; ZOBRAZENI <HL> A VYPIS =
1331 FB83 7E MOV A,M
1332 FB84 CD FA11 CALL DBYTE ; ZOBRAZENI [HL]
1333 FB87 CD FA79 CALL SPACE
1334 FB8A E5 PUSH H
1335 FB8B 21 5350 LXI H,5350H ; KODY 'SP' DO <HL>
1336 FB8E CD FBC3 CALL INTER1 ; VYPIS 'SP='
1337 FB91 E1 POP H
1338 FB92 21 0004 LXI H,4
1339 FB95 39 DAD SP ; VYPOCET HODNOTY SP PRI PRERUSENI
1340 FB96 CD FA7F CALL EDADR ; ZOBRAZENI TETO ADRESY A '='
1341 FB99 CD F93C CALL NEXT6 ; V <HL> VRCHOL ZASOBNIKU PRI PRERUSENI
1342 FB9C CD FA0C CALL DADR ; ZOBRAZENI TETO ADRESY
1343 FB9F CD FB0C CALL CRLF ; NOVY RADEK
1344 FBA2 21 4146 LXI H,4146H ; KODY 'AF' DO <HL>
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-24
1345 FBA5 CD FBC3 CALL INTER1 ; VYPIS 'AF='
1346 FBA8 E1 POP H ; [SP]=<BC>
1347 FBA9 CD FA76 CALL SDADR ; ZOBRAZENI <HL>=<AF> A ' '
1348 FBAC 21 4243 LXI H,4243H ; KODY 'BC' DO <HL>
1349 FBAF CD FBC3 CALL INTER1 ; VYPIS 'BC='
1350 FBB2 E1 POP H ; [SP] = JAKO PRED PRERUSENIM
1351 FBB3 CD FA76 CALL SDADR ; ZOBRAZENI <HL>=<BC> A ' '
1352 FBB6 21 4445 LXI H,4445H ; KODY 'DE' DO <HL>
1353 FBB9 CD FBC3 CALL INTER1 ; VYPIS 'DE='
1354 FBBC EB XCHG ; VYMENA <HL> <--> <DE>
1355 FBBD CD FA0C CALL DADR ; ZOBRAZENI <HL>=<DE>
1356 FBC0 C3 F8E4 JMP NEXT ; NAVRAT DO MONITORU
1357 ;
1358 FBC3 4C INTER1: MOV C,H
1359 FBC4 CD FA21 CALL CO ; ZOBRAZENI OBSAHU <H> ASCII
1360 FBC7 4D MOV C,L
1361 FBC8 CD FA21 CALL CO ; ZOBRAZENI OBSAHU <L> ASCII
1362 FBCB CD FA82 CALL EQUATE ; ZOBRAZENI '='
1363 FBCE C9 RET
1364 ;
1365 ;
1366 ;
1367 ; C H K P R
1368 ; =========
1369 ;
1370 ; PODPROGRAM CHKTPR ZJISTUJE PRITOMNOST
1371 ; PROGRAM OBSLUHY MAGNETOFONU. JE-LI
1372 ; PRITOMEN, JE FF-Z NASTAVEN, NENI-LI PRITOMEN,
1373 ; JE FF-Z NULOVAN.
1374 ;
1375 ; POSKOZENE REGISTRY: A,F
1376 ;
1377 FBCF 3A F000 CHKTPR: LDA ADRTPR ; CTENI Z CHAR. BUNKY OBSLUHY MGF
1378 FBD2 FE 55 CPI KEYTPR ; SROVNANI S KLICEM
1379 FBD4 C9 RET
1380 ;
1381 ;
1382 ;
1383 ;*****************************************************************
1384 ;
1385 ; P R I K Z Y
1386 ; ###########
1387 ;
1388 ;
1389 ;
1390 ; S U B S T
1391 ; =========
1392 ;
1393 ; PRIKAZ SUBST UMOZNUJE ZAMENIT OBSAH LIBOVOLNE BUNKY
1394 ; PAMETI NOVYM OBSAHEM. MA JEDINY VSTUPNI PARAMETR -
1395 ; ADRESU PRVNI PREPISOVANE BUNKY A SOUBOR PRACOVNICH
1396 ; PARAMETRU - NOVE OBSAHY PO SOBE JDOUCICH BUNEK POCI-
1397 ; NAJE URCENOU PRVNI BUNKOU. "SP" NEMENI OBSAH - INKRE-
1398 ; MENTUJE ADRESU, "CR" UKONCI PRIKAZ. PRI CHYBE V ZADAVANI
1399 ; PRVEHO ZNAKU SE OPRAVA PROVEDE STISKNUTIM LIBOVOLNE
1400 ; KLAVESY MIMO HEXADECIMALNICH A RIDICICH ZNAKU. TIM SE
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-25
1401 ; PUVODNI ZNAK IGNORUJE A VYPISE SE ZNOVU ROVNITKO.
1402 ; PRI CHYBE V DRUHEM ZNAKU JE TREBA ZADAT OBA ZNAKY ZNOVU
1403 ; OPAKOVANIM CELEHO PRIKAZU SUBST.
1404 ;
1405 FBD5 0D SUBST: DCR C ; VSTUP JEDNOHO OPERANDU
1406 FBD6 CD FA8A CALL EXPR ; PROVEDENI VSTUPU
1407 FBD9 CD FB0C CALL CRLF ; NOVY RADEK
1408 FBDC E1 POP H ; POCATECNI ADRESA DO <HL>
1409 FBDD CD FA76 SUBS0: CALL SDADR ; ZOBRAZENI ADRESY
1410 FBE0 7E MOV A,M ; PRECTI OBSAH PAMETI
1411 FBE1 CD FA11 CALL DBYTE ; ZOBRAZ OBSAH PAMETI
1412 FBE4 CD FA79 CALL SPACE ; ZOBRAZ MEZERU
1413 FBE7 CD F9F2 SUBS1: CALL CINCR ; VSTUP,ECHO A ANALIZA ZNAKU
1414 FBEA D8 RC ; PRO 'CR' UKONCI PRIKAZ
1415 FBEB CA FC13 JZ SUBS4 ; PRO 'SP' A ',' DALSI BUNKA
1416 FBEE CD FAC1 CALL ASHEX ; PRI OSTATNICH ZNACICH PREVOD NA HEX
1417 FBF1 DC F931 CC ERROR ; HLASENI CHYBY
1418 FBF4 DA FBE7 JC SUBS1 ; VSTUP NAHRADNIHO ZNAKU
1419 FBF7 47 MOV B,A ; ULOZENI HORNI CIFRY DO <B>
1420 FBF8 CD F9F2 SUBS2: CALL CINCR ; ECHO A ANALIZA ZNAKU
1421 FBFB CA FC12 JZ SUBS3 ; PRO 'CR','SP',',' KONEC VSTUPU
1422 FBFE CD FAC1 CALL ASHEX ; OSTATNI = DOLNI CIFRA, PREVOD
1423 FC01 DC F931 CC ERROR ; HLASENI CHYBY
1424 FC04 DA FBE7 JC SUBS1 ; VSTUP NAHRADNIHO CISLA
1425 FC07 4F MOV C,A ; DOLNI CIFRA DO <C>
1426 FC08 78 MOV A,B ; HORNI CIFRA DO <A>
1427 FC09 0F RRC
1428 FC0A 0F RRC
1429 FC0B 0F RRC
1430 FC0C 0F RRC ; NASOBENI HORNI CIFRY * 16
1431 FC0D 81 ADD C ; PRICTENI DOLNI CIFRY
1432 FC0E 77 MOV M,A ; ULOZENI NOVEHO OBSAHU RAM
1433 FC0F C3 FC13 JMP SUBS4 ; NOVA BUNKA
1434 FC12 70 SUBS3: MOV M,B ; ULOZENI JEDNOCIFERNEHO CISLA
1435 FC13 23 SUBS4: INX H ; INKREMENTACE UKAZATELE PAMETI
1436 FC14 CD FB0C CALL CRLF ; PRECHOD NA NOVY RADEK
1437 FC17 C3 FBDD JMP SUBS0 ; DALSI BUNKA
1438 ;
1439 ;
1440 ;
1441 ;
1442 ;
1443 ; G O T O
1444 ; =======
1445 ;
1446 ; PRIKAZ GOTO UMOZNUJE START UZIVATELSKYCH PROGRAMU.
1447 ; MA DVA VSTUPNI PARAMETRY: STARTOVACI ADRESU PROGRAMU
1448 ; A NEPOVINNOU (PRI STISKU "SP" PO START. ADRESE) ADRESU
1449 ; PRERUSENI BEHU PROGRAMU S VYPISEM OBSAHU REGISTRU (V
1450 ; TOMTO PRIPADE SE NA ADRESU 38H UKLADA SKOK DO INTER).
1451 ; OBSAHY ZUSTAVAJI ZACHOVANY V PRACOVNI OBLASTI PAMETI A
1452 ; OBNOVI SE PRI OPETNEM SPUSTENI PROGRAMU PRIKAZEM GOTO.
1453 ; PRI SPOUSTENI PROGRAMU LZE POCATECNI HODNOTY REGISTRU
1454 ; CPU NASTAVIT NAPR. PRIKAZEM SUBST V PRISLUSNE PRACOVNI
1455 ; OBLASTI PAMETI (SPREG - HREG).
1456 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-26
1457 FC1A E1 GOTO: POP H ; SPLACHNUTI NAVRATOVE ADR. NA NEXT
1458 FC1B 21 0072 LXI H,BRCODE ; ODSTUP PROMENNE 'BRCODE'
1459 FC1E CD FA01 CALL GETADR ; ADRESA PROMENNE 'BRCODE' DO <HL>
1460 FC21 36 FF MVI M,0FFH ; VYPLNENI PROMENNE 'BRCODE'
1461 FC23 0D DCR C ; VSTUP JEDINEHO PARAMETRU
1462 FC24 CD FA8A CALL EXPR ; VSTUP STARTOVACI ADRESY
1463 FC27 DA FC47 JC GOTO0 ; NEBUDE ADRESA PRERUSENI ?
1464 FC2A 21 0038 LXI H,INTADR
1465 FC2D 11 FB12 LXI D,INTER
1466 FC30 CD F9CA CALL STJMA ; NASTAVENI SKOKU OBSLUHY RST 7
1467 FC33 0E 01 MVI C,1
1468 FC35 CD FA8A CALL EXPR ; VSTUP ADRESY PRERUSENI
1469 FC38 D1 POP D ; ADRESA PRERUSENI DO <DE>
1470 FC39 21 0070 LXI H,BRADR ; ODSTUP PROMENNE 'BRADR'
1471 FC3C CD FA01 CALL GETADR ; ADRESA PROMENNE 'BRADR'
1472 FC3F CD F9CD CALL STJMB ; ULOZENI ADRESY PRERUSENI DO 'BRADR'
1473 FC42 1A LDAX D ; KOD INSTRUKCE NA ADRESE PRERUSENI
1474 FC43 77 MOV M,A ; ULOZENI TOHOTO KODU DO 'BRCODE'
1475 FC44 3E FF MVI A,0FFH ; KOD INSTRUKCE RST7
1476 FC46 12 STAX D ; ULOZENI KODU RST7 NA ADRESU PRERUSENI
1477 FC47 CD F9C1 GOTO0: CALL GETSPR ; ADRESA PROMENNE 'SPREG'
1478 FC4A 5E MOV E,M
1479 FC4B 23 INX H
1480 FC4C 56 MOV D,M ; V <DE> NOVY OBSAH UKAZATELE ZASOBNIKU
1481 FC4D 23 INX H
1482 FC4E 0E 08 MVI C,8
1483 FC50 7E GOTO1: MOV A,M ; CTENI OBSAHU REGISTRU Z PR. OBL. RAM
1484 FC51 1B DCX D
1485 FC52 23 INX H
1486 FC53 12 STAX D ; UKLADANI OBSAHU REG. DO NOVEHO ZAS.
1487 FC54 0D DCR C
1488 FC55 C2 FC50 JNZ GOTO1 ; VSECHNY REGISTRY ULOZENY ?
1489 FC58 EB XCHG ; VRCHOL NOVEHO ZASOBNIKU V <HL>
1490 FC59 D1 POP D ; STARTOVACI ADRESA V <DE>
1491 FC5A F9 SPHL ; NASTAVENI NOVEHO OBSAHU UKAZATELE
1492 FC5B F1 POP PSW
1493 FC5C C1 POP B
1494 FC5D E1 POP H
1495 FC5E EB XCHG
1496 FC5F E3 XTHL ; NASTAVENI POC. OBSAHU REGISTRU
1497 FC60 C9 RET ; SKOK DO UZIV. PROGRAMU
1498 ;
1499 ;
1500 ; D I S P L
1501 ; =========
1502 ;
1503 ; PRIKAZ DISPL UMOZNUJE ZOBRAZIT LIBOVOLNEHO USEKU
1504 ; PAMETI. MA DVA OPERANDY: POCATECNI A KONCOVOU ADRESU
1505 ; ZOBRAZOVANE OBLASTI. INFORMACE JE ZOBRAZOVANA HEXA-
1506 ; DECIMALNE I POMOCI ASCII ZNAKU. TAM, KDE JE OBSAH BYTU
1507 ; KODEM MALEHO PISMENE NEBO RIDICIHO ZNAKU, ZOBRAZI
1508 ; SE V DOPLNKOVEM POLI TECKA.
1509 ;
1510 FC61 CD FA8A DISPL: CALL EXPR ; VSTUP DVOU ADRES
1511 FC64 D1 POP D ; KONCOVA ADRESA
1512 FC65 13 INX D ; INKREMENTACE <DE> PRO UKONCENI
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-27
1513 FC66 E1 POP H ; POCATECNI ADRESA
1514 FC67 CD FE69 DISP0: CALL CSTS ; STATUS KONZOLY ?
1515 FC6A CA FC77 JZ DISP1 ; NEBILA STISKNUTA KLAVESA ?
1516 FC6D CD FE7A CALL CI ; VSTUP ZNAKU
1517 FC70 CD F9F5 CALL ANAL ; JEHO ANALIZA
1518 FC73 D8 RC ; POKUT JDE O 'CR' - KONEC
1519 FC74 CD FE7A CALL CI ; POKUT NE, POKRACUJ PO DALSIM ZNAKU
1520 FC77 CD FB0C DISP1: CALL CRLF ; PRECHOD NA NOVY RADEK
1521 FC7A CD FA76 CALL SDADR ; ZOBRAZENI ADRESY OSMICE
1522 FC7D CD FA79 CALL SPACE ; MEZERY NA DISPLAY
1523 FC80 E5 PUSH H ; ADRESA OSMICE DO ZASOBNIKU
1524 FC81 06 08 MVI B,8 ; CITAC ZNAKU
1525 FC83 7E DISP2: MOV A,M ; PRECTI ZNAK
1526 FC84 CD FA11 CALL DBYTE ; ZOBRAZ HEX OBSA BUNKY
1527 FC87 CD FA79 CALL SPACE ; MEZERA NA DISPLAY
1528 FC8A CD FDE4 CALL HILO ; INKREMENTACE <HL> A SROVNANI S <DE>
1529 FC8D CA FC94 JZ DISP3 ; PRECTEN CELY POZADOVANY USEK PAMETI?
1530 FC90 05 DCR B ; DEKREMENTACE CITACE BUNEK
1531 FC91 C2 FC83 JNZ DISP2 ; PRECTENA CELA OSMICE ?
1532 FC94 E1 DISP3: POP H ; OBNOVENI ADRESY OSMICE
1533 FC95 06 08 MVI B,8 ; CITAC ZNAKU
1534 FC97 CD FA79 CALL SPACE ; MEZERA NA DISPLAY
1535 FC9A E5 PUSH H
1536 FC9B CD F9B3 CALL GETCHR ; ADRESA CITACE ZNAKU DO <HL>
1537 FC9E 36 1F MVI M,1FH
1538 FCA0 E1 POP H ; POSUN KURZORU NA URCENOU POZICI
1539 FCA1 7E DISP4: MOV A,M ; PRICTI ZNAK
1540 FCA2 4F MOV C,A ; ULOZ HO DO <C>
1541 FCA3 D6 20 SUI 20H ; JDE O RIDICI ZNAK ?
1542 FCA5 DA FCAD JC DISP5 ; ANO - ZOBRAZ TECKU
1543 FCA8 D6 40 SUI 40H ; JDE O MALE PISMENO ?
1544 FCAA DA FCAF JC DISP6 ; ANO - ZOBRAZ TECKU
1545 FCAD 0E 2E DISP5: MVI C,2EH ; KOD TECKY DO <C>
1546 FCAF CD FA21 DISP6: CALL CO ; ZOBRAZENI ZNAKU NEBO TECKY
1547 FCB2 CD FDE4 CALL HILO ; INKREMENTACE <HL> A SROVNANI S <DE>
1548 FCB5 C8 RZ ; ZOBRAZEN CELI USEK PAMETI ?
1549 FCB6 05 DCR B
1550 FCB7 C2 FCA1 JNZ DISP4 ; ZOBRAZENA CELA OSMICE ?
1551 FCBA C3 FC67 JMP DISP0 ; ZOBRAZENI DALSI OSMICE
1552 ;
1553 ;
1554 ;
1555 ; F I L L
1556 ; =======
1557 ;
1558 ; PRIKAZ FILL ZAPLNI OBSAH URCENE OBLASTI PAMETI ZADANYM
1559 ; ZNAKEM. MA TRI OPERANDY: POCATECNI A KONCOVOU ADRESU
1560 ; PAMETOVE OBLASTI A HEXADECIMALNI JEDNOBYTOVY OBSAH.
1561 ;
1562 FCBD CD FCC8 FILL: CALL INADR ; VSTUP TRI PARAMETRU
1563 FCC0 71 FILL0: MOV M,C ; PREPIS BUNKY PAMETI
1564 FCC1 CD FDE4 CALL HILO ; INKREMANTACE <HL> A SROVNANI S <DE>
1565 FCC4 C2 FCC0 JNZ FILL0 ; ZAPLNEN CELY USEK?
1566 FCC7 C9 RET
1567 ;
1568 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-28
1569 ;
1570 ;
1571 FCC8 0C INADR: INR C ; PRI PARAMETRY
1572 FCC9 CD FA8A CALL EXPR ; VSTUP DVOU ADRES A OBSAHU
1573 FCCC C1 POP B ; OBSAH DO <C>
1574 FCCD D1 POP D ; KONCOVA ADRESA DO <DE>
1575 FCCE E1 POP H ; POCATECNI ADRESA DO <HL>
1576 FCCF C9 RET
1577 ;
1578 ;
1579 ;
1580 ;
1581 ; M O V E
1582 ; =======
1583 ;
1584 ; PRIKAZ MOVE PRENASI OBSAH ZADANE OBLASTI PAMETI NA
1585 ; JINE MISTO V PAMETI. MA TRI VSTUPNI PARAMETRY: POCA-
1586 ; TECNI A KONCOVOU ADRESU ZDROJOVE OBLASTI A ADRESU URCENI
1587 ;
1588 FCD0 CD FCC8 MOVE: CALL INADR ; VSTUP TRI PARAMETRU
1589 FCD3 7E MOVE0: MOV A,M ; CTENI BYTU
1590 FCD4 02 STAX B ; ULOZENI BYTU
1591 FCD5 03 INX B ; INKREMENTACE KAM
1592 FCD6 CD FDE4 CALL HILO ; INKREMENTACE ODKUD A SROVNANI S POKUD
1593 FCD9 C2 FCD3 JNZ MOVE0 ; PRENESENA CELA OBLAST ?
1594 FCDC C9 RET
1595 ;
1596 ;
1597 ;
1598 ; O U T P U T
1599 ; ===========
1600 ;
1601 ; PRIKAZ OUTPUT UMOZNUJE ZAPSAT NA LIBOVOLNY PORT
1602 ; ZADANOU HODNOTU
1603 ;
1604 FCDD CD FA8A OUTPT: CALL EXPR
1605 FCE0 C1 POP B ; VYSLANY OBSAH <C>
1606 FCE1 D1 POP D ; CISLO PORTU V <E>
1607 FCE2 21 007D LXI H,INOUT ; ODSTUP PROMENNE OPOUT
1608 FCE5 CD FA01 CALL GETADR ; ADRESA PROMENNE OPOUT V <HL>
1609 FCE8 E5 PUSH H ; ULOZENI STARTOVACI ADRESY
1610 FCE9 36 D3 MVI M,0D3H ; KOD INSTRUKCE OUT
1611 FCEB 23 INX H
1612 FCEC 73 MOV M,E ; CISLO PORTU
1613 FCED 23 INX H
1614 FCEE 36 C9 MVI M,0C9H ; KOD INSTRUKCE RET
1615 FCF0 21 FCF6 LXI H,OUTP0 ; NAVRATOVA ADRESA
1616 FCF3 E3 XTHL ; MAVR. ADR. V [<SP>], START. V <HL>
1617 FCF4 79 MOV A,C ; VYSILANY OBSAH
1618 FCF5 E9 PCHL ; SIMULACE INSTRUKCE CALL OPOUT
1619 FCF6 C9 OUTP0: RET
1620 ;
1621 ;
1622 ;
1623 ; I N P U T
1624 ; =========
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-29
1625 ;
1626 ; PRIKAZ INPUT UMOZNUJE PRECIST HODNOTU LIBOVOLNEHO
1627 ; PORTU (0-FF) A ZOBRAZIT JI NA DISPLEJ. K TOMU POU-
1628 ; ZIVA OBLASTI VYHRAZENE PAMETI, KAM SIMULUJE KOD
1629 ; INSTRUKCE IN.
1630 ;
1631 FCF7 0D INPUT: DCR C
1632 FCF8 CD FA8A CALL EXPR ; VSTUP CISLA PORTU
1633 FCFB C1 POP B ; ULOZENI CISLA PORTU DO <C>
1634 FCFC 21 007D LXI H,INOUT
1635 FCFF CD FA01 CALL GETADR ; V <HL> ADRESA POM. USEKU PAMETI
1636 FD02 E5 PUSH H
1637 FD03 36 DB MVI M,0DBH ; INSTRUKCE IN
1638 FD05 23 INX H
1639 FD06 71 MOV M,C ; ADRESA PORTU
1640 FD07 23 INX H
1641 FD08 36 C9 MVI M,0C9H ; INSTRUKCE RET
1642 FD0A 21 FD0F LXI H,INPU0
1643 FD0D E3 XTHL ; NAVRATOVA ADRESA
1644 FD0E E9 PCHL ; SIMULACE INSTRUKCE CALL
1645 FD0F CD FA82 INPU0: CALL EQUATE
1646 FD12 CD FA11 CALL DBYTE ; ZOBRAZENI OBSAHU PORTU
1647 FD15 C9 RET
1648 ;
1649 ;
1650 ;
1651 ;******************************************************************
1652 ;
1653 ; POMOCNE PODPROGRAMY
1654 ; *******************
1655 ;
1656 ;
1657 ; I M T E X T
1658 ; ===========
1659 ;
1660 ; PODPROGRAM IMTEXT UMOZNUJE VYPIS RETEZCU ZNAKU
1661 ; UMISTENEHO BAZPROSTREDNE ZA VOLANIM NA OBRAZOVKU,
1662 ; POSLEDNIM (TISKNUTYM) ZNAKEM JE ZNAK D D7=1.
1663 ; POZOR: NESTANDARTNE POUZIVA ZASOBNIK.
1664 ;
1665 ; POSKOZENE REGISTRY: H,L,C,A,F
1666 ;
1667 FD16 E3 IMTEXT: XTHL
1668 FD17 7E IMTX0: MOV A,M ; CTI ZNAK
1669 FD18 E6 7F ANI 7FH ; VYBER ASCII BITY
1670 FD1A 4F MOV C,A
1671 FD1B CD FA21 CALL CO ; ZOBRAZ ZNAK
1672 FD1E 7E MOV A,M
1673 FD1F 07 RLC ; POSLEDNI ZNAK ?
1674 FD20 23 INX H
1675 FD21 D2 FD17 JNC IMTX0 ; NE - ZABRAZ DALSI ZNAK
1676 FD24 E3 XTHL
1677 FD25 C9 RET
1678 ;
1679 ;
1680 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-30
1681 ; I N V C H R
1682 ; ===========
1683 ;
1684 ; PODPROGRAM INVCHR UMOZNUJE INVERTOVAT ZOBRAZOVANI
1685 ; ZNAKU NA OBRAZOVCE (BILY ZNAK A CERNE POZADI CI
1686 ; NAOPAK). PRI NASTAVENEM FF-Z PROVEDE INVERZI DOSAVAD-
1687 ; NIHO STAVU, PRI NULOVEM FF-Z NASTAVI VZDY D7
1688 ; KODU ZNAKU DANEHO KURZOREM DO NULY.
1689 ;
1690 ; POSKOZENE REGISTRY: - - -
1691 ;
1692 FD26 F5 INVCHR: PUSH PSW
1693 FD27 E5 PUSH H
1694 FD28 CD F9D2 CALL ADRKUP ; ADRESA ZNAKU DO <HL>
1695 FD2B 7E MOV A,M ; CTENI KODU ZNAKU
1696 FD2C 17 RAL ; D7 ZNAK DO FF-C
1697 FD2D CA FD31 JZ INVC0 ; INVERTOVAT ?
1698 FD30 37 STC ; D7 DO 1
1699 FD31 3F INVC0: CMC ; INVERZE D7
1700 FD32 1F RAR ; OBNOVENI KODU ZNAKU S UPRAVENYM D7
1701 FD33 77 MOV M,A ; PREPIS KODU ZNAKU
1702 FD34 E1 POP H
1703 FD35 F1 POP PSW
1704 FD36 C9 RET
1705 ;
1706 ;
1707 ;
1708 ;
1709 ; R O L L
1710 ; =======
1711 ;
1712 ; PODPROGRAM ROLL PROVADI ROLOVANI OBSAHU OBRAZOVKY
1713 ; (TJ. OBRAZOVE PAMETI DISRAM) O JEDEN RADEK NAHORU.
1714 ; PRITOM HORNI RADEK SE ZTRACI, SPODNI RADEK ZUSTAVA
1715 ; NEPORUSEN (ZDVOJUJE SE).
1716 ;
1717 ; POSKOZENE REGISTRY: - - -
1718 ;
1719 FD37 F5 ROLL: PUSH PSW
1720 FD38 C5 PUSH B
1721 FD39 D5 PUSH D
1722 FD3A E5 PUSH H ; UKLID VSEHO
1723 FD3B CD F9A2 CALL NUMCHR
1724 FD3E 46 MOV B,M ; POCET ZNAKU
1725 FD3F CD F99B CALL NUMLIN
1726 FD42 4E MOV C,M ; POCET ROLOVANYCH RADKU V <C>
1727 FD43 79 MOV A,C
1728 FD44 B7 ORA A
1729 FD45 FE 00 CPI 0
1730 FD47 CA FD73 JZ ROLL2
1731 FD4A 2A 0004 LHLD RAMEND
1732 FD4D 23 INX H ; <HL> ADRESA 0. RADKU
1733 FD4E 11 FFC0 LXI D,-64 ; ZAPORNY POCET BYTE NA RADKU
1734 FD51 EB XCHG
1735 FD52 19 DAD D ; <DE> ADRESA -1. RADKU
1736 FD53 EB XCHG
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-31
1737 FD54 D5 PUSH D
1738 FD55 E5 PUSH H
1739 FD56 E1 ROLL0: POP H
1740 FD57 D1 POP D
1741 FD58 C5 PUSH B
1742 FD59 01 0040 LXI B,64 ; POCET BYTU NA RADEK
1743 FD5C 09 DAD B
1744 FD5D EB XCHG
1745 FD5E 09 DAD B ; <HL> ADRESA I+1 NIHO RADKU
1746 FD5F EB XCHG ; <DE> ADRESA I TEHO RADKU
1747 FD60 C1 POP B ; <B> CITAC ZNAKU, <C> CITAC RADKU
1748 FD61 D5 PUSH D
1749 FD62 E5 PUSH H
1750 FD63 7E ROLL1: MOV A,M
1751 FD64 12 STAX D
1752 FD65 13 INX D
1753 FD66 23 INX H
1754 FD67 05 DCR B
1755 FD68 F2 FD63 JP ROLL1 ; ROLOVANY VSECHNY ZNAKY?
1756 FD6B CD F9A2 CALL NUMCHR
1757 FD6E 46 MOV B,M
1758 FD6F 0D DCR C
1759 FD70 C2 FD56 JNZ ROLL0 ; ROLOVANY VSECHNY RADKY?
1760 FD73 E1 ROLL2: POP H
1761 FD74 D1 POP D
1762 FD75 E1 POP H
1763 FD76 D1 POP D
1764 FD77 C1 POP B
1765 FD78 F1 POP PSW
1766 FD79 C9 RET
1767 ;
1768 ;
1769 ;
1770 ; G H O M E
1771 ; =========
1772 ;
1773 ; PODPROGRAM GHOME PREMISTI KURZOR DO LEVEHO HORNIHO
1774 ; ROHU OBRAZOVKY.
1775 ;
1776 ; POSKOZENE REGISTRY: - - -
1777 ;
1778 FD7A E5 GHOME: PUSH H
1779 FD7B CD F99B CALL NUMLIN ; ADRESA POCTU RADKU
1780 FD7E 2B DCX H
1781 FD7F 36 00 MVI M,0 ; VYNULOVANI CITACE ZNAKU
1782 FD81 2B DCX H
1783 FD82 36 00 MVI M,0 ; VYNULOVANI CITACE RADKU
1784 FD84 E1 POP H
1785 FD85 C9 RET
1786 ;
1787 ;
1788 ;
1789 ; F O R F I
1790 ; =========
1791 ; PODPROGRAM FORFI PROVEDE VYMAZ CELE OBRAZOVKY A UMISTI
1792 ; KURZOR DO LENEHO HORNIHO ROHU OBRAZOVKY.
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-32
1793 ;
1794 ; POSKOZENE REGISTRY: - - -
1795 ;
1796 FD86 CD FD7A FORFI: CALL GHOME ; KURZOR DO LEVEHO HORNIHO ROHU
1797 ;
1798 ;
1799 ;
1800 ; D E L S C R
1801 ; ===========
1802 ;
1803 ; PODPROGRAM DELSCR PROVEDE VYMAZ OBRAZOVKY POCITACE
1804 ; (VCETNE) RADKU, NA KTEREM JE KURZOR.
1805 ;
1806 ; POSKOZENE REGISTRY: - - -
1807 ;
1808 FD89 F5 DELSCR: PUSH PSW
1809 FD8A C5 PUSH B
1810 FD8B D5 PUSH D
1811 FD8C E5 PUSH H
1812 FD8D CD F99B CALL NUMLIN
1813 FD90 4E MOV C,M ; POCET RADKU
1814 FD91 CD FD7A CALL GHOME
1815 FD94 CD F9AD CALL GETLIN ; <HL> CITAC RADKU
1816 FD97 CD FDC9 DELS0: CALL DELLIN ; VYMAZ RADKU
1817 FD9A 34 INR M
1818 FD9B 0D DCR C
1819 FD9C F2 FD97 JP DELS0 ; VSECHNY RADKY?
1820 FD9F CD FD7A CALL GHOME
1821 FDA2 E1 POP H
1822 FDA3 D1 POP D
1823 FDA4 C1 POP B
1824 FDA5 F1 POP PSW
1825 FDA6 C9 RET
1826 ;
1827 ;
1828 ;
1829 ; B A C S T
1830 ; =========
1831 ;
1832 ; PODPROGRAM BACST POSOUVA KURZOR O JEDNU POZICI
1833 ; DOLEVA. PRI DOSAZENI PRVNIHO ZNAKU NA PRVNIM RADKU
1834 ; ZADNOU DALSI CINNOST NEPROVADI.
1835 ;
1836 ; POSKOZENE REGISTRY: - - -
1837 ;
1838 FDA7 F5 BACST: PUSH PSW
1839 FDA8 E5 PUSH H
1840 FDA9 CD F9B3 CALL GETCHR ; POCET ZNAKU V <A>, ADRESA CITACE V <HL>
1841 FDAC 3D DCR A
1842 FDAD FA FDB4 JM BAC0 ; NA ZACATKU RADKY ?
1843 FDB0 77 MOV M,A
1844 FDB1 C3 FDC6 JMP BAC1
1845 FDB4 CD F9AD BAC0: CALL GETLIN
1846 FDB7 3D DCR A
1847 FDB8 FA FDC6 JM BAC1 ; NA PRVNIM RADKU ?
1848 FDBB 77 BAC2: MOV M,A
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-33
1849 FDBC CD F9B3 CALL GETCHR
1850 FDBF E5 PUSH H
1851 FDC0 CD F9A2 CALL NUMCHR
1852 FDC3 7E MOV A,M ; POCET ZNAKU
1853 FDC4 E1 POP H
1854 FDC5 77 MOV M,A ; KURZOR NA KONEC PREDCHOZIHO RADKU
1855 FDC6 E1 BAC1: POP H
1856 FDC7 F1 POP PSW
1857 FDC8 C9 RET
1858 ;
1859 ;
1860 ;
1861 ; D E L L I N
1862 ; ===========
1863 ;
1864 ; PODPROGRAM DELLIN VYMAZE RADEK OD MISTA KURZORU.
1865 ;
1866 ; POSKOZENE REGISTRY: - - -
1867 ;
1868 FDC9 F5 DELLIN: PUSH PSW
1869 FDCA C5 PUSH B
1870 FDCB E5 PUSH H
1871 FDCC CD F9B3 CALL GETCHR ; POCET ZOBRAZENYCH ZNAKU V <A>
1872 FDCF 2F CMA ; DOPLNEK
1873 FDD0 3C INR A
1874 FDD1 CD F9A2 CALL NUMCHR
1875 FDD4 86 ADD M ; POCET MAZANYCH ZNAKU V <A>
1876 FDD5 47 MOV B,A
1877 FDD6 CD F9D2 CALL ADRKUP ; ADRESA KURZORU
1878 FDD9 36 20 DELL0: MVI M,SPC ; ZNAK MEZERA
1879 FDDB 23 INX H
1880 FDDC 05 DCR B
1881 FDDD F2 FDD9 JP DELL0 ; VYMAZAN CELI RADEK ?
1882 FDE0 E1 POP H
1883 FDE1 C1 POP B
1884 FDE2 F1 POP PSW
1885 FDE3 C9 RET
1886 ;
1887 ;
1888 ;
1889 ; H I L O
1890 ; =======
1891 ;
1892 ; PODPROGRAM HILO PROVEDE INKREMENTACI PARU <HL> A
1893 ; JEHO SROVNANI S PAREM <DE>. VYSLEDEK ULOZI DO PRIZNA-
1894 ; KU FF-Z. PODPROGRAM COMP PROVADI POUZE SROVNANI.
1895 ; PRI NASTAVENEM FF-C JE <HL> > <DE>.
1896 ; POKUT JE <HL>=FFFFH UKONCI SE S FF-Z=1, FF-C=1.
1897 ;
1898 ; POSKOZENE REGISTRY: A,F,H,L
1899 ;
1900 FDE4 23 HILO: INX H ; INKREMENTACE <HL>
1901 FDE5 7C MOV A,H
1902 FDE6 B5 ORA L
1903 FDE7 37 STC
1904 FDE8 C8 RZ ; NAVRAT PRI <HL>=0000, FF-Z = 1, FF-C = 1
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-34
1905 FDE9 7A COMP: MOV A,D
1906 FDEA BC CMP H ; SROVNANI <H> S <D>
1907 FDEB C0 RNZ ; NAVRAT PRI NEROVNOSTI, FF-Z = 0, FF-C...VZTAH
1908 FDEC 7B MOV A,E ; MEZI <HL> A <DE>
1909 FDED BD CMP L ; SROVNANI <L> S <E>
1910 FDEE C9 RET ; PRI ROVNOSTI <HL>=<DE>...FF-Z = 1, FF-C = 0
1911 ;
1912 ;
1913 ;
1914 ; B E E P S
1915 ; =========
1916 ;
1917 ; PODPROGRAM BEEP PROVADI GENERACI ZVUKOVEHO
1918 ; SIGNALU ZADANE DELKY BEEPLN A VYSKY BEEPFQ.
1919 ;
1920 ; POSKOZENE REGISTRY: - - -
1921 ;
1922 FDEF F5 BEEPS: PUSH PSW
1923 FDF0 D5 PUSH D
1924 FDF1 16 50 MVI D,BEEPLN ; DELKA TONU
1925 FDF3 3E 60 BEEP0: MVI A,BEEPFQ ; VYSKA TONU
1926 FDF5 3D BEEP1: DCR A
1927 FDF6 C2 FDF5 JNZ BEEP1
1928 FDF9 15 DCR D ; CIKLUS PRO DELKU
1929 FDFA D3 10 OUT ADRBIP ; BUZENI REPRODUKTORU
1930 FDFC C2 FDF3 JNZ BEEP0 ; UKONCIT TON ?
1931 FDFF D1 POP D
1932 FE00 F1 POP PSW
1933 FE01 C9 RET
1934 ;
1935 ;
1936 ;
1937 ; T I M E R
1938 ; =========
1939 ;
1940 ; PODPROGRAM V VYTVORENI PRODLEVY <BC> MILISEKUND.
1941 ;
1942 ; POSKOZENE REGISTRY:
1943 ;
1944 FE02 F5 TIMER: PUSH PSW
1945 FE03 C5 PUSH B
1946 FE04 3E 6F TIME0: MVI A,6FH
1947 FE06 3D TIME1: DCR A
1948 FE07 C2 FE06 JNZ TIME1
1949 FE0A 0B DCX B
1950 FE0B 78 MOV A,B
1951 FE0C B1 ORA C
1952 FE0D C2 FE04 JNZ TIME0
1953 FE10 C1 POP B
1954 FE11 F1 POP PSW
1955 FE12 C9 RET
1956 ;
1957 ;
1958 ;
1959 ; M E M C K
1960 ; =========
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-35
1961 ;
1962 ;
1963 ; PODPROGRAM MEMCK ULOZI DO REGISTRU <B> HORNI A DO REGISTRU
1964 ; <A> DOLNI BYTE ADRESY KONCE UZIVATELSKE PAMETI. TU ZISKA TAK,
1965 ; ZE OD ADRESY PONCE PAMETI RAM 'RAMEND' ODECTE DELKU ZASOBNIKU
1966 ; STKLN.
1967 ;
1968 ; POSKOZENE REGISTRY: A,F,B
1969 ;
1970 FE13 E5 MEMCK: PUSH H
1971 FE14 21 0031 LXI H,UREND ; PROMENA S KONCEM UZIV. RAM
1972 FE17 CD F9B6 CALL GETC0 ; VYPOCET ADRESY PROMENNE A CTENI NIZSIHO BYTU
1973 FE1A 23 INX H
1974 FE1B 46 MOV B,M ; VYSSI BYTE
1975 FE1C E1 POP H
1976 FE1D C9 RET
1977 ;
1978 ;
1979 ;
1980 ; I O C H K
1981 ; =========
1982 ;
1983 ;
1984 ; PODPROGRAM IOCHK ULOZI DO REGISTRU <A> PLATNY I.O-BYT,
1985 ; TJ. OBSAH ADRESY 0003H.
1986 ;
1987 ; POSKOZENE REGISTRY: A
1988 ;
1989 FE1E 3A 0003 IOCHK: LDA IOBYT
1990 FE21 C9 RET
1991 ;
1992 ;
1993 ;
1994 ;
1995 ; I O S E T
1996 ; =========
1997 ;
1998 ;
1999 ; PODPROGRAM IOSET PROVEDE ULOZENI OBSAHU REGISTRU <C> NA
2000 ; ADRESU 0003H, TJ. UPRAVU STAVAJICIHO I/O-BYTU.
2001 ;
2002 ; POSKOZENE REGISTRY: - - -
2003 ;
2004 FE22 F5 IOSET: PUSH PSW
2005 FE23 79 MOV A,C ; NOVY I/O-BYTE
2006 FE24 32 0003 STA IOBYT ; ULOZENI NOVEHO I/O-BYTU
2007 FE27 F1 POP PSW
2008 FE28 C9 RET
2009 ;
2010 ;
2011 ;
2012 ;
2013 ; L O
2014 ; ===
2015 ;
2016 ; JDE O SKOK NA SPOJOVACI ADRESU PRO VYSTUP NA TISKARNU.
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-36
2017 ;
2018 ; POSKOZENE REGISTRY: - - -
2019 ;
2020 FE29 E5 LO: PUSH H ; UKLID <HL>
2021 FE2A 21 00F3 LXI H,LSTOUT
2022 FE2D C3 F9A8 JMP JADR ; SKOK NA SPOJOVACI ADRESU
2023 ;
2024 ;
2025 ;
2026 ;
2027 ; P O
2028 ; ===
2029 ;
2030 ; JDE O SKOK NA SPOJOVACI ADRESU PRO SERIOVY VYSTUP.
2031 ;
2032 ; POSKOZENE REGISTRY: - - -
2033 ;
2034 FE30 E5 PO: PUSH H ; UKLID <HL>
2035 FE31 21 00BC LXI H,PUNOUT
2036 FE34 C3 F9A8 JMP JADR ; SKOK NA SPOJOVACI ADRESU
2037 ;
2038 ;
2039 ;
2040 ; R I
2041 ; ===
2042 ;
2043 ;
2044 ; JDE O SKOK NA SPOJOVACI ADRESU PRO SERIOVY VSTUP.
2045 ;
2046 ; POSKOZENE REGISTRY: - - -
2047 ;
2048 FE37 E5 RI: PUSH H ; UKLID <HL>
2049 FE38 21 00B6 LXI H,READIN
2050 FE3B C3 F9A8 JMP JADR ; SKOK NA SPOJOVACI ADRESU
2051 ;
2052 ;
2053 ;
2054 ; I O D E F
2055 ; =========
2056 ;
2057 ; PODPROGRAM IODEF UMOZNUJE NASTAVIT UZIVATELSKE ADRESY
2058 ; PRO ZARIZENI. DRUH ZARIZENI JE URCEN OBSAHEM REGISTRU
2059 ; <C> NASLEDOVNE:
2060 ; 0 ... CI
2061 ; 1 ... CO
2062 ; 2 ... RI
2063 ; 3 ... DUMMY
2064 ; 4 ... PO
2065 ; 5 ... DUMMY
2066 ; 6 ... LO
2067 ; 7 ... CSTS
2068 ; ADRESA UZIVATELSKEHO PROGRAMU JE V REGISTRU <DE>.
2069 ;
2070 ; POSKOZENE REGISTRY: A,F
2071 ;
2072 FE3E E5 IODEF: PUSH H
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-37
2073 FE3F C5 PUSH B
2074 FE40 21 0004 LXI H,RAMEND ; BUNKA S KONCEM RAM
2075 FE43 79 MOV A,C ; ZARIZENI
2076 FE44 FE 08 CPI 8 ; CHYBA?
2077 FE46 D2 F931 JNC ERROR
2078 FE49 FE 05 CPI 5
2079 FE4B 21 00B0 LXI H,CONINP ; ADRESA PRO PRVNI 4 ZARIZENI
2080 FE4E DA FE57 JC IODEF1
2081 FE51 D6 05 SUI 5 ; OPRAVA CISLA ZARIZENI PRO DRUHY BLOK
2082 FE53 4F MOV C,A
2083 FE54 21 00F0 LXI H,USRPO ; ADRESA PRO ZBYLE 4 ZARIZENI
2084 FE57 81 IODEF1: ADD C ; <C> * 3 --> <C>
2085 FE58 81 ADD C
2086 FE59 4F MOV C,A
2087 FE5A 06 00 MVI B,0
2088 FE5C CD FA01 CALL GETADR ; VYPOCET FYZICKYCH SPOJOVACICH ADRES
2089 FE5F 09 DAD B ; PRICTENI OFFSETU
2090 FE60 36 C3 MVI M,0C3H ; INSTRUKCE SKOKU
2091 FE62 23 INX H
2092 FE63 73 MOV M,E ; DOLNI BYTE ADRESY SKOKU
2093 FE64 23 INX H
2094 FE65 72 MOV M,D ; HORNI BYTE ADRESY SKOKU
2095 FE66 C1 POP B
2096 FE67 E1 POP H
2097 FE68 C9 RET
2098 ;
2099 ;
2100 ;
2101 ; C S T S
2102 ; =======
2103 ;
2104 ; PODPROGRAM CSTS ZJISTUJE STAV KLAVESNICE:
2105 ; <A> = FFH, FF-Z = 0 ... OBSAHUJE PLATNY ZNAK
2106 ; <A> = 00H, FF-Z = 1 ... NEMA PLATNY ZNAK
2107 ;
2108 ; POSKOZENE REGISTRY: A,F
2109 ;
2110 FE69 E5 CSTS: PUSH H
2111 FE6A 21 00F6 LXI H,CONSTA ; ODSTUP SPOJOVACI ADRESY
2112 FE6D C3 F9A8 JMP JADR ; SKOK NA SPOJOVACI ADRESU
2113 ;
2114 FE70 AF CSTS1: XRA A
2115 FE71 D3 09 OUT ADRPB
2116 FE73 DB 04 IN ADRCIN
2117 FE75 3C INR A ; STISKNUTA KLAVESA?
2118 FE76 C8 RZ ; NE
2119 FE77 3E FF MVI A,0FFH
2120 FE79 C9 RET ; ANO
2121 ;
2122 ;
2123 ;
2124 ;
2125 ;
2126 ; C I
2127 ; ===
2128 ;
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-38
2129 ; PODPROGRAM CI UMOZNUJE VSTUP ZNAKU Z KLAVESNICE.
2130 ;
2131 ; POSKOZENE REGISTRY: A,F
2132 ;
2133 FE7A E5 CI: PUSH H
2134 FE7B 21 00B0 LXI H,CONINP ; SPOJOVACI ADRESA
2135 FE7E C3 F9A8 JMP JADR
2136 ;
2137 FE81 C5 CI4: PUSH B
2138 FE82 D5 PUSH D
2139 FE83 E5 PUSH H
2140 ;
2141 ; INICIALIZACE OBLASTI VZORKU A PROMENNICH
2142 ;
2143 FE84 CD FFAD CI1: CALL GETKCD ; ADRESA OBL.VZORKU
2144 FE87 06 05 MVI B,5
2145 FE89 36 FF CI2: MVI M,0FFH ; ZAPLNENA 0FFH
2146 FE8B 23 INX H
2147 FE8C 05 DCR B
2148 FE8D F2 FE89 JP CI2 ; CELA OBLAST ?
2149 FE90 36 00 MVI M,0 ; UPLO
2150 FE92 23 INX H
2151 FE93 36 00 MVI M,0 ; CTRL
2152 FE95 23 INX H
2153 FE96 36 00 MVI M,0 ; NUM
2154 FE98 23 INX H
2155 FE99 34 INR M ; CTN
2156 FE9A 3E 16 MVI A,22 ; CIKLUS BLIKANI KURZORU
2157 FE9C BE CMP M
2158 FE9D CC FD26 CZ INVCHR ; BLIKANI KURZORU
2159 FEA0 D2 FEA5 JNC CI20
2160 FEA3 36 00 MVI M,0
2161 ;
2162 ; VYTVORENI SOUBORU VZORKU
2163 ;
2164 FEA5 CD FFAD CI20: CALL GETKCD ; ADRESA OBL. VZORKU
2165 FEA8 06 DF MVI B,0DFH ; VYBER RADKU
2166 FEAA 78 CI3: MOV A,B
2167 FEAB 0F RRC
2168 FEAC D2 FEB9 JNC CI84 ; VSECHNY RADKY
2169 FEAF 47 MOV B,A
2170 FEB0 D3 09 OUT ADRPB ; AKTIVACE RADKU
2171 FEB2 DB 04 IN ADRCIN ; CTENI SLOUPCU
2172 FEB4 77 MOV M,A ; ULOZENI VZORKU
2173 FEB5 23 INX H
2174 FEB6 C3 FEAA JMP CI3 ; DALSI VZOREK
2175 ;
2176 ; TEST NA USTALENI KLAVES
2177 ;
2178 FEB9 0E 40 CI84: MVI C,64 ; POCET TESTU SHODY
2179 FEBB 0D CI5: DCR C
2180 FEBC CA FED6 JZ CI7 ; VSECHNY TESTY
2181 FEBF CD FFAD CALL GETKCD ; ADRESA OBL. VZORKU
2182 FEC2 06 DF MVI B,0DFH ; VYBER RADEK
2183 FEC4 78 CI6: MOV A,B
2184 FEC5 0F RRC
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-39
2185 FEC6 D2 FEBB JNC CI5 ; VSECHNY RADKY
2186 FEC9 47 MOV B,A
2187 FECA D3 09 OUT ADRPB ; AKTIVUJ RADK
2188 FECC DB 04 IN ADRCIN ; SLEDUJ SLOUPCE
2189 FECE BE CMP M ; SROVNEJ VZOREK
2190 FECF C2 FE84 JNZ CI1 ; PRI NESHODE ZNOVU
2191 FED2 23 INX H
2192 FED3 C3 FEC4 JMP CI6 ; DALSI VZOREK
2193 ;
2194 ; VYHODNOCENI VZORKU
2195 ;
2196 FED6 06 04 CI7: MVI B,4 ; <B> CITAC RADKU
2197 FED8 CD FFAD CALL GETKCD ; ADRESA OBL. VZORKU
2198 FEDB EB XCHG
2199 FEDC 1A CI8: LDAX D ; VZOREK V <A>
2200 FEDD 13 INX D
2201 FEDE FE FF CPI 0FFH
2202 FEE0 C4 FF68 CNZ CI9 ; PLATNY - DEKODOVAT
2203 FEE3 05 DCR B ; DALSI KOD
2204 FEE4 F2 FEDC JP CI8 ; NE-DALSI RADEK
2205 ;
2206 ; GENERACE VYSLEDNEHO KODU ZNAKU
2207 ;
2208 FEE7 21 0235 LXI H,ZNAK
2209 FEEA CD FA01 CALL GETADR
2210 FEED EB XCHG
2211 FEEE 1A LDAX D
2212 FEEF FE FF CPI 0FFH ; NEPLATNY ZNAK?
2213 FEF1 CA FE84 JZ CI1 ; ANO - NOVY ZNAK
2214 ;
2215 FEF4 CD FD26 CALL INVCHR ; UPRAV POZADI
2216 ;
2217 FEF7 21 0236 CI41: LXI H,UPLO ; POMOCNE ZNAKY
2218 FEFA CD FA01 CALL GETADR
2219 FEFD 7E MOV A,M
2220 FEFE B7 ORA A
2221 FEFF CA FF0E JZ CI42
2222 FF02 1A LDAX D
2223 FF03 D6 41 SUI 'A'
2224 FF05 6F MOV L,A
2225 FF06 26 00 MVI H,0
2226 FF08 01 FFDC LXI B,TABUP
2227 FF0B 09 DAD B
2228 FF0C 7E MOV A,M
2229 FF0D 12 STAX D
2230 ;
2231 FF0E 21 0238 CI42: LXI H,NUM ; CISLICE
2232 FF11 CD FA01 CALL GETADR
2233 FF14 7E MOV A,M
2234 FF15 B7 ORA A
2235 FF16 CA FF33 JZ CI43
2236 FF19 0E 30 MVI C,30H
2237 FF1B 21 FFF6 LXI H,TABNUM
2238 FF1E 1A CI44: LDAX D
2239 FF1F BE CMP M
2240 FF20 C2 FF28 JNZ CI45
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-40
2241 FF23 79 MOV A,C
2242 FF24 12 STAX D
2243 FF25 C3 FF33 JMP CI43
2244 FF28 23 CI45: INX H
2245 FF29 0C INR C
2246 FF2A 79 MOV A,C
2247 FF2B FE 3A CPI 3AH
2248 FF2D DA FF1E JC CI44
2249 FF30 C3 FE84 JMP CI1 ; CHYBNE KLAVESY
2250 ;
2251 FF33 21 0237 CI43: LXI H,CTRL ; RIDICI ZNAKY
2252 FF36 CD FA01 CALL GETADR
2253 FF39 7E MOV A,M
2254 FF3A B7 ORA A
2255 FF3B CA FF42 JZ CI40
2256 FF3E 1A LDAX D
2257 FF3F E6 1F ANI 1FH
2258 FF41 12 STAX D
2259 ;
2260 FF42 CD FDEF CI40: CALL BEEPS ; BEEP
2261 ;
2262 ; TEST UVOLNENI KLAVESY
2263 ;
2264 FF45 0E 00 CI15: MVI C,0 ; POCET TESTU
2265 FF47 0D CI11: DCR C
2266 FF48 CA FF63 JZ CI99 ; OPAKUJ ZNAK
2267 FF4B CD FFAD CALL GETKCD ; ADRESA OBL. VZORKU
2268 FF4E 06 DF MVI B,0DFH
2269 FF50 37 STC
2270 FF51 78 CI55: MOV A,B
2271 FF52 0F RRC
2272 FF53 D2 FF47 JNC CI11 ; VSECHNY RADKY?
2273 FF56 47 MOV B,A
2274 FF57 D3 09 OUT ADRPB
2275 FF59 DB 04 IN ADRCIN
2276 FF5B BE CMP M ; STEJNY KOD?
2277 FF5C C2 FF63 JNZ CI99 ; NE - DALSI ZNAK
2278 FF5F 23 INX H
2279 FF60 C3 FF51 JMP CI55
2280 ;
2281 FF63 1A CI99: LDAX D
2282 FF64 E1 POP H
2283 FF65 D1 POP D
2284 FF66 C1 POP B
2285 FF67 C9 RET
2286 ;
2287 ; PODPROGRAM VYHODNOCENI KODU
2288 ;
2289 FF68 D5 CI9: PUSH D
2290 FF69 0E 00 MVI C,0 ; CITAC SLOUPCU
2291 FF6B 0F CI14: RRC
2292 FF6C F5 PUSH PSW
2293 FF6D D4 FF7C CNC CI10 ; AKTIVNI?
2294 FF70 F1 POP PSW
2295 FF71 57 MOV D,A
2296 FF72 0C INR C
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-41
2297 FF73 79 MOV A,C
2298 FF74 FE 08 CPI 8
2299 FF76 7A MOV A,D
2300 FF77 DA FF6B JC CI14
2301 FF7A D1 POP D
2302 FF7B C9 RET
2303 ;
2304 FF7C 78 CI10: MOV A,B ; CITAC RADKU
2305 FF7D E6 07 ANI 07H
2306 FF7F 07 RLC
2307 FF80 07 RLC
2308 FF81 07 RLC
2309 FF82 B1 ORA C
2310 FF83 6F MOV L,A
2311 FF84 26 00 MVI H,0 ; OFFSET
2312 FF86 11 FFB4 LXI D,KTAB ; TABULKA KODU
2313 FF89 19 DAD D
2314 FF8A 7E MOV A,M
2315 ;
2316 FF8B 21 0236 CI30: LXI H,UPLO
2317 FF8E CD FA01 CALL GETADR
2318 FF91 FE 1D CPI 1DH ; UPLO?
2319 FF93 C2 FF98 JNZ CI31
2320 FF96 77 MOV M,A
2321 FF97 C9 RET
2322 ;
2323 FF98 23 CI31: INX H
2324 FF99 FE 1E CPI 1EH ; CTRL?
2325 FF9B C2 FFA0 JNZ CI32
2326 FF9E 77 MOV M,A
2327 FF9F C9 RET
2328 ;
2329 FFA0 23 CI32: INX H
2330 FFA1 FE 1F CPI 1FH ; NUM?
2331 FFA3 C2 FFA8 JNZ CI33
2332 FFA6 77 MOV M,A
2333 FFA7 C9 RET
2334 ;
2335 FFA8 2B CI33: DCX H
2336 FFA9 2B DCX H
2337 FFAA 2B DCX H
2338 FFAB 77 MOV M,A ; ULOZ DO PROM. ZNAK
2339 FFAC C9 RET
2340 ;
2341 FFAD 21 0230 GETKCD: LXI H,KEYCD ; VYPOCET
2342 FFB0 CD FA01 CALL GETADR ; ADRESY OBL. VZORKU
2343 FFB3 C9 RET
2344 ;
2345 FFB4 04 KTAB: DB 004H ; [00H] = '->'
2346 FFB5 00 DB 000H ; [01H] = 'UC/UL'
2347 FFB6 1D DB 01DH ; [02H] = 'UP/LO'
2348 FFB7 41 DB 041H ; [03H] = 'A'
2349 FFB8 51 DB 051H ; [04H] = 'Q'
2350 FFB9 1E DB 01EH ; [05H] = 'CTRL'
2351 FFBA 0D DB 00DH ; [06H] = 'CR'
2352 FFBB 50 DB 050H ; [07H] = 'P'
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-42
2353 FFBC 08 DB 008H ; [08H] = '<-'
2354 FFBD 1F DB 01FH ; [09H] = '0-9'
2355 FFBE 58 DB 058H ; [0AH] = 'X'
2356 FFBF 44 DB 044H ; [0BH] = 'D'
2357 FFC0 45 DB 045H ; [0CH] = 'E'
2358 FFC1 4D DB 04DH ; [0DH] = 'M'
2359 FFC2 4B DB 04BH ; [0EH] = 'K'
2360 FFC3 49 DB 049H ; [0FH] = 'I'
2361 FFC4 FF DB 0FFH ; [10H] = 'DUMMY'
2362 FFC5 FF DB 0FFH ; [11H] = 'DUMMY'
2363 FFC6 56 DB 056H ; [12H] = 'V'
2364 FFC7 47 DB 047H ; [13H] = 'G'
2365 FFC8 54 DB 054H ; [14H] = 'T'
2366 FFC9 42 DB 042H ; [15H] = 'B'
2367 FFCA 48 DB 048H ; [16H] = 'H'
2368 FFCB 59 DB 059H ; [17H] = 'Y'
2369 FFCC 20 DB 020H ; [18H] = ' '
2370 FFCD FF DB 0FFH ; [19H] = 'DUMMY'
2371 FFCE 43 DB 043H ; [1AH] = 'C'
2372 FFCF 46 DB 046H ; [1BH] = 'F'
2373 FFD0 52 DB 052H ; [1CH] = 'R'
2374 FFD1 4E DB 04EH ; [1DH] = 'N'
2375 FFD2 4A DB 04AH ; [1EH] = 'J'
2376 FFD3 55 DB 055H ; [1FH] = 'U'
2377 FFD4 18 DB 018H ; [20H] = 'DOWN'
2378 FFD5 1B DB 01BH ; [21H] = 'CS'
2379 FFD6 5A DB 05AH ; [22H] = 'Z'
2380 FFD7 53 DB 053H ; [23H] = 'S'
2381 FFD8 57 DB 057H ; [24H] = 'W'
2382 FFD9 05 DB 005H ; [25H] = 'UP'
2383 FFDA 4C DB 04CH ; [26H] = 'L'
2384 FFDB 4F DB 04FH ; [27H] = 'O'
2385 ;
2386 FFDC 2D TABUP: DB 02DH ; '-' ... A
2387 FFDD 3F DB 03FH ; '?' ... B
2388 FFDE 3A DB 03AH ; ':' ... C
2389 FFDF 3D DB 03DH ; '=' ... D
2390 FFE0 23 DB 023H ; '#' ... E
2391 FFE1 5E DB 05EH ; '^' ... F
2392 FFE2 5F DB 05FH ; '_' ... G
2393 FFE3 3C DB 03CH ; '<' ... H
2394 FFE4 28 DB 028H ; '(' ... I
2395 FFE5 3E DB 03EH ; '>' ... J
2396 FFE6 5B DB 05BH ; '[' ... K
2397 FFE7 5D DB 05DH ; ']' ... L
2398 FFE8 2E DB 02EH ; '.' ... M
2399 FFE9 2C DB 02CH ; ',' ... N
2400 FFEA 29 DB 029H ; ')' ... O
2401 FFEB 40 DB 040H ; '@' ... P
2402 FFEC 21 DB 021H ; 'VYKRICNIK' ... Q
2403 FFED 24 DB 024H ; '$' ... R
2404 FFEE 2B DB 02BH ; '+' ... S
2405 FFEF 25 DB 025H ; '%' ... T
2406 FFF0 27 DB 027H ; ''' ... U
2407 FFF1 3B DB 03BH ; ';' ... V
2408 FFF2 22 DB 022H ; '"' ... W
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE 1-43
2409 FFF3 2F DB 02FH ; '/' ... X
2410 FFF4 26 DB 026H ; '&' ... Y
2411 FFF5 2A DB 02AH ; '*' ... Z
2412 ;
2413 FFF6 50 TABNUM: DB 'P' ; 0
2414 FFF7 51 DB 'Q' ; 1
2415 FFF8 57 DB 'W' ; 2
2416 FFF9 45 DB 'E' ; 3
2417 FFFA 52 DB 'R' ; 4
2418 FFFB 54 DB 'T' ; 5
2419 FFFC 59 DB 'Y' ; 6
2420 FFFD 55 DB 'U' ; 7
2421 FFFE 49 DB 'I' ; 8
2422 FFFF 4F DB 'O' ; 9
2423 ;
2424 ;*****************************************************************
2425 ;
2426 .DEPHASE
2427 END
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE S
Macros:
Symbols:
E000 ADRBAS 0010 ADRBIP 0004 ADRCIN
0000 ADRCST 000B ADRCT 0018 ADRES
003D ADRHI F9E6 ADRK1 F9DE ADRK2
F9D2 ADRKUP 003C ADRLO 0014 ADRMSK
0000 ADROUT 0008 ADRPA 0009 ADRPB
000A ADRPC F000 ADRTPR 001F ADSET
F9F5 ANAL 007B AREG FACF ASHE0
FAC1 ASHEX FDB4 BAC0 FDC6 BAC1
FDBB BAC2 FDA7 BACST E000 BASIC
FDF3 BEEP0 FDF5 BEEP1 0060 BEEPFQ
0050 BEEPLN FDEF BEEPS 0007 BELL
0000 BLANK 0070 BRADR 0072 BRCODE
0079 BREG 0008 BS FB02 CARRET
0036 CHARCO 0038 CHARNO FBCF CHKTPR
FE7A CI FE84 CI1 FF7C CI10
FF47 CI11 FF6B CI14 FF45 CI15
FE89 CI2 FEA5 CI20 FEAA CI3
FF8B CI30 FF98 CI31 FFA0 CI32
FFA8 CI33 FE81 CI4 FF42 CI40
FEF7 CI41 FF0E CI42 FF33 CI43
FF1E CI44 FF28 CI45 FEBB CI5
FF51 CI55 FEC4 CI6 FED6 CI7
FEDC CI8 FEB9 CI84 FF68 CI9
FF63 CI99 F9F2 CINCR FA21 CO
FA68 CO0 FA28 CO2 F8D2 COLD0
F8B2 COLD2 F85A COLDST FDE9 COMP
00B0 CONINP E003 CONIT 00B3 CONOUT
00F6 CONSTA 000D CR 007A CREG
FB0C CRLF FE69 CSTS FE70 CSTS1
F941 CTABL 0017 CTEND 0239 CTN
0237 CTRL 0090 CTRLWD FA0C DADR
FA1E DBYT0 FA11 DBYTE 007F DEL
FDD9 DELL0 FDC9 DELLIN FD97 DELS0
FD89 DELSCR FC67 DISP0 FC77 DISP1
FC83 DISP2 FC94 DISP3 FCA1 DISP4
FCAD DISP5 FCAF DISP6 FC61 DISPL
001E DL 0077 DREG 001F DSCR
FA6B ECHO FA7F EDADR 0003 EOT
FA82 EQUATE 0078 EREG F931 ERROR
001B ESC 00A0 ETX FA8A EXPR
FA8B EXPR0 FA92 EXPR1 FAAA EXPR2
FAB8 EXPR3 000C FF FCBD FILL
FCC0 FILL0 FD86 FORFI 007C FREG
FA01 GETADR F9B6 GETC0 F9B3 GETCHR
F975 GETD0 F96F GETDIS FFAD GETKCD
F9AD GETLIN F9C1 GETSPR F9BB GETSTK
F937 GETTAB FD7A GHOME FC1A GOTO
FC47 GOTO0 FC50 GOTO1 FDE4 HILO
001D HOME 0075 HREG 0009 HT
FAD3 HXASC FD16 IMTEXT FD17 IMTX0
FCC8 INADR 007D INOUT FD0F INPU0
FCF7 INPUT 0038 INTADR FB12 INTER
'PLAN 80A MONITOR V.2.Q' MACRO-80 3.44 09-Dec-81 PAGE S-1
FB70 INTER0 FBC3 INTER1 FB23 INTER2
FB34 INTER3 FD31 INVC0 FD26 INVCHR
0003 IOBYT FE1E IOCHK FE3E IODEF
FE57 IODEF1 FE22 IOSET F9A8 JADR
0000 JMPMON 00C3 KEYBAS 0230 KEYCD
0055 KEYTPR FFB4 KTAB 000A LF
FAF1 LINE0 FAFA LINE1 FAFE LINE2
0035 LINECO FADD LINEF 0037 LINENO
FE29 LO 0076 LREG 00F3 LSTOUT
FE13 MEMCK F800 MONIT FCD0 MOVE
FCD3 MOVE0 0008 MSKWD 0033 MSTACK
0130 NAME1 0170 NAME2 F8E4 NEXT
F929 NEXT2 F928 NEXT4 F93C NEXT6
0238 NUM F9A2 NUMCHR F99E NUML0
F99B NUMLIN FCF6 OUTP0 FCDD OUTPT
01B6 PBLKC 0000 PC0RES 0001 PC0SET
0002 PC1RES 0003 PC1SET 0009 PC4RES
0008 PC4SET 01B7 PFILC 01B0 PNADR
01B2 PNPOI 01BA PNSTS FE30 PO
00BC PUNOUT 0000 RAMBEG 0004 RAMEND
01B8 RBLKC 01B3 RDADR 01B5 RDPOI
01BB RDSTS 0008 RDYCIN 0002 RDYRE1
0001 RDYRE2 00B6 READIN 0004 REPCIN
01B9 RFILC FE37 RI FD37 ROLL
FD56 ROLL0 FD63 ROLL1 FD73 ROLL2
FA76 SDADR 000E SO FA79 SPACE
0020 SPC 0073 SPREG 0040 STCKLN
F9CA STJMA F9CD STJMB F9C7 STJMP
001A SUBS FBDD SUBS0 FBE7 SUBS1
FBF8 SUBS2 FC12 SUBS3 FC13 SUBS4
FBD5 SUBST FFF6 TABNUM FFDC TABUP
F00D TAPP F000 TAPREC F028 TCLOS
F013 TDIR F025 TEOF FE04 TIME0
FE06 TIME1 FE02 TIMER F001 TINIT
F004 TJOIN F019 TKI F01C TKO
F010 TLOAD 01F0 TMPAR F00A TPUT
F007 TQUAF F022 TRD F016 TUNNA
F01F TWR 0236 UPLO 0031 UREND
00F0 USRPO 000B VT FA85 WQUA0
0235 ZNAK
No Fatal error(s)
ADRBAS 445# 595 629
ADRBIP 466# 1929
ADRCIN 449# 2116 2171 2188 2275
ADRCST 450#
ADRCT 458# 593
ADRES 470# 545
ADRHI 402#
ADRK1 875 878#
ADRK2 874# 877
ADRKUP 506 868# 1006 1694 1877
ADRLO 401#
ADRMSK 469# 587
ADROUT 467#
ADRPA 455#
ADRPB 456# 2115 2170 2187 2274
ADRPC 457#
ADRTPR 447# 1377
ADSET 471# 546
ANAL 906# 1115 1517
AREG 412#
ASHE0 1146 1149#
ASHEX 498 1105 1141# 1416 1422
BAC0 1842 1845#
BAC1 1844 1847 1855#
BAC2 1848#
BACST 512 993 1838#
BASIC 353# 445 597 673
BEEP0 1925# 1930
BEEP1 1926# 1927
BEEPFQ 473# 1925
BEEPLN 472# 1924
BEEPS 1003 1922# 2260
BELL 388# 579 1002
BLANK 389#
BRADR 403# 1301 1308 1470
BRCODE 404# 1315 1458
BREG 410#
BS 382# 992
CARRET 988 1224# 1241
CHARCO 398# 805
CHARNO 400# 767
CHKTPR 589 626 1377#
CI 484 1029 1516 1519 2133#
CI1 2143# 2190 2213 2249
CI10 2293 2304#
CI11 2265# 2272
CI14 2291# 2300
CI15 2264#
CI2 2145# 2148
CI20 2159 2164#
CI3 2166# 2174
CI30 2316#
CI31 2319 2323#
CI32 2325 2329#
CI33 2331 2335#
CI4 559 2137#
CI40 2255 2260#
CI41 2217#
CI42 2221 2231#
CI43 2235 2243 2251#
CI44 2238# 2248
CI45 2240 2244#
CI5 2179# 2185
CI55 2270# 2279
CI6 2183# 2192
CI7 2180 2196#
CI8 2199# 2204
CI84 2168 2178#
CI9 2202 2289#
CI99 2266 2277 2281#
CINCR 504 905# 1413 1420
CO 486 582 609 978# 1031 1082 1359 1361 1546 1671
CO0 985 1013#
CO2 561 982#
COLD0 589#
COLD2 575#
COLDST 483 524# 604
COMP 1905#
CONINP 415# 558 2079 2134
CONIT 354# 674
CONOUT 416# 979
CONSTA 421# 563 2111
CR 381# 910 987
CREG 411#
CRLF 495 607 1012 1241# 1286 1343 1407 1436 1520
CSTS 489 1514 2110#
CSTS1 564 2114#
CTABL 614 672# 695
CTEND 613 695#
CTN 440#
CTRL 438# 2251
CTRLWD 459# 592
DADR 499 951# 1045 1069 1342 1355
DBYT0 960 963#
DBYTE 500 952 954# 1299 1332 1411 1526 1646
DEL 384#
DELL0 1878# 1881
DELLIN 999 1204 1816 1868#
DELS0 1816# 1819
DELSCR 1001 1808#
DISP0 1514# 1551
DISP1 1515 1520#
DISP2 1525# 1531
DISP3 1529 1532#
DISP4 1539# 1550
DISP5 1542 1545#
DISP6 1544 1546#
DISPL 675 1510#
DL 386# 998
DREG 408#
DSCR 387# 1000
ECHO 511 610 905 1028# 1101
EDADR 1069# 1297 1330 1340
EOT 375#
EQUATE 1080# 1099 1362 1645
EREG 409#
ERROR 497 616 618 627 643# 679 685 693 1117 1417 1423 2077
ESC 377# 1102
ETX 374#
EXPR 496 1097# 1118 1406 1462 1468 1510 1572 1604 1632
EXPR0 1098# 1123
EXPR1 1101# 1113
EXPR2 1106 1114#
EXPR3 1116 1119#
FF 380# 576 994
FILL 677 1562#
FILL0 1563# 1565
FORFI 995 1796#
FREG 413# 1268
GETADR 509 535 754 780 806 847 930# 1269 1302 1309 1316 1459
1471 1608 1635 2088 2209 2218 2232 2252 2317 2342
GETC0 794 806# 821 833 1972
GETCHR 805# 880 1008 1226 1536 1840 1849 1871
GETD0 716# 721
GETDIS 526 714#
GETKCD 2143 2164 2181 2197 2267 2341#
GETLIN 793# 871 1193 1815 1845
GETSPR 568 832# 1477
GETSTK 599 820#
GETTAB 619 657#
GHOME 997 1778# 1796 1814 1820
GOTO 678 1457#
GOTO0 1463 1477#
GOTO1 1483# 1488
HILO 501 1528 1547 1564 1592 1900#
HOME 385# 996
HREG 406#
HT 379#
HXASC 507 963 1164#
IMTEXT 505 575 1667#
IMTX0 1668# 1675
INADR 1562 1571# 1588
INOUT 414# 1607 1634
INPU0 1642 1645#
INPUT 680 1631#
INTADR 394# 1464
INTER 494 1261# 1465
INTER0 1306 1313 1320#
INTER1 1290 1328 1336 1345 1349 1353 1358#
INTER2 1271# 1276
INTER3 1286#
INVC0 1697 1699#
INVCHR 1692# 2158 2215
IOBYT 392# 1989 2006
IOCHK 490 1989#
IODEF 493 584 2072#
IODEF1 2080 2084#
IOSET 491 2004#
JADR 780# 980 2022 2036 2050 2112 2135
JMPMON 391# 603
KEYBAS 444# 596 630
KEYCD 435# 2341
KEYTPR 446# 1378
KTAB 2312 2345#
LF 383# 989
LINE0 1198 1203#
LINE1 1197 1206#
LINE2 1205 1210#
LINECO 397# 793
LINEF 990 1191# 1242
LINENO 399# 753
LO 488 2020#
LREG 407#
LSTOUT 420# 2021
MEMCK 492 1970#
MONIT 351# 477 622
MOVE 684 1588#
MOVE0 1589# 1593
MSKWD 468# 586
MSTACK 396# 820
NAME1 422#
NAME2 423#
NEXT 502 599# 611 1103 1356
NEXT2 625 629#
NEXT4 623 628# 631
NEXT6 600 661# 1341
NUM 439# 2231
NUMCHR 767# 1010 1723 1756 1851 1874
NUML0 754# 768
NUMLIN 753# 1195 1725 1779 1812
OUTP0 1615 1619#
OUTPT 686 1604#
PBLKC 428#
PC0RES 461#
PC0SET 460#
PC1RES 463#
PC1SET 462#
PC4RES 465#
PC4SET 464#
PFILC 430#
PNADR 424#
PNPOI 426#
PNSTS 433#
PO 487 2034#
PUNOUT 418# 2035
RAMBEG 350#
RAMEND 393# 528 872 933 1731 2074
RBLKC 429#
RDADR 425#
RDPOI 427#
RDSTS 432#
RDYCIN 451#
RDYRE1 453#
RDYRE2 454#
READIN 417# 2049
REPCIN 452#
RFILC 431#
RI 485 2048#
ROLL 1203 1719#
ROLL0 1739# 1759
ROLL1 1750# 1755
ROLL2 1730 1760#
SDADR 1045# 1347 1351 1409 1521
SO 372#
SPACE 503 1056# 1323 1333 1412 1522 1527 1534
SPC 373# 908 1057 1878
SPREG 405# 832
STCKLN 442# 530
STJMA 562 605 848# 1466
STJMB 510 536 548 850# 1472
STJMP 560 565 847#
SUBS 376#
SUBS0 1409# 1437
SUBS1 1413# 1418 1424
SUBS2 1420#
SUBS3 1421 1434#
SUBS4 1415 1433 1435#
SUBST 690 1405#
TABNUM 2237 2413#
TABUP 2226 2386#
TAPP 360# 672
TAPREC 352# 356 357 358 359 360 361 362 363 364 365 366
367 368 369 447 624
TCLOS 369# 682
TDIR 362# 691
TEOF 368# 676
TIME0 1946# 1952
TIME1 1947# 1948
TIMER 508 1944#
TINIT 356# 590
TJOIN 357# 681
TKI 364#
TKO 365#
TLOAD 361# 683
TMPAR 434#
TPUT 359# 687
TQUAF 358# 688
TRD 367# 689
TUNNA 363# 692
TWR 366# 694
UPLO 437# 2217 2316
UREND 395# 534 1971
USRPO 419# 2083
VT 378#
WQUA0 645 1058 1082#
ZNAK 436# 2208
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000