Ú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