Ú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
ZPS | Technické prostředky | Programové vybavení | Dokumentace
'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1 1 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 TITLE 'MONITOR SAPI-1 V4.0F' 3 ; 30.7.1985 (P+S) 4 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5 ; 6 ; VOLBA SYSTEMU 7 FFFF SP1 EQU -1 ; -1 YES 8 0000 SP1A EQU 0 ;FOR CP/M SYSTEM MONITOR 9 0000 CPM EQU 00 ;JPR-1 EPROM VERSION 10 ; 11 ; 12 ; *** DEFINOVANI PAMETOVEHO PROSTORU * 13 ; 14 0100 MONIT EQU 100H ; START MONITORU 15 ; NASTAVENI PAMETI R A M 16 17 4000 RAM EQU 4000H ;START RAM 18 IF CPM 19 ERAM EQU 9FFFH ;TOP RAM 20 TVBEG EQU 0E800H ;TV-RAM 21 EP2 EQU 800H+200H ; SECOND EPROM 22 ELSE 23 FFFF ERAM EQU 0FFFFH ;RAM-1 48K 24 3800 TVBEG EQU 3800H ;TV-RAM 25 0800 EP2 EQU 800H ; SECOND EPROM 26 ENDIF 27 4000 @R@ EQU 4000H ;RESTART VECTOR 28 00CF RSTN EQU 0CFH ; RST 1 29 30 ; GLOBAL CONSTANTS 31 32 000D CR EQU 0DH ; CARRIAGE RETURN 33 0009 HT EQU 9 ; TAB 34 0008 BACK EQU 8 ; BACK SPACE 35 0007 BELL EQU 7 ; BELL 36 000A LF EQU 0AH ; LINE FEED 37 0003 ETX EQU 03H ; BREAK CHAR.(CONTROL C) 38 0017 CTRLW EQU 17H ; BREAK USER 39 0055 BEGIO EQU 55H ; START VALUE FOR I/O BYTE 40 41 42 ; I/O STATUS BYTE MASKS AND VALUES 43 44 00FC CMSK EQU 11111100B ; MASK FOR CONZOLE 45 00F3 RMSK EQU 11110011B ; MASK FOR READER 46 00CF PMSK EQU 11001111B ; MASK FOR PUNCH 47 003F LMSK EQU 00111111B ; MASK FOR LIST 48 49 50 0000 CTTY EQU 00000000B ; CONZOLE=TTY 51 0001 CCRT EQU 00000001B ; CONZOLE=CRT 52 0002 BATCH EQU 00000010B ; INPUT=READER,OUTPUT=LIST 53 0003 CUSE EQU 00000011B ; USER REFINED CONZOLE 54 55 56 0000 RTTY EQU 00000000B ; READER=TTY 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-1 57 0004 RPTR EQU 00000100B ; READER=PTR 58 0008 RUSE1 EQU 00001000B ; USER DEFINED READER 1 59 000C RUSE2 EQU 00001100B ; USER DEFINED READER 2 60 61 62 0000 PTTY EQU 00000000B ; PUNCH=TTY 63 0010 PPTR EQU 00010000B ; PUNCH=PTR 64 0020 PUSE1 EQU 00100000B ; USER DEFINED PUNCH 1 65 0030 PUSE2 EQU 00110000B ; USER DEFINED PUNCH 2 66 67 68 0000 LTTY EQU 00000000B ; LIST=TTY 69 0040 LCRT EQU 01000000B ; LIST=CRT 70 0080 LLPT EQU 10000000B ; LIST=LPT 71 00C0 LUSE EQU 11000000B ; USER DEFINED LIST 72 ; 73 ; SEPI CONTROL I/O 74 ; 75 0012 UDATA EQU 12H 76 0011 USTAT EQU 11H 77 0011 MMODE EQU 11H 78 0010 UMODE EQU 10H 79 0013 URES EQU 13H 80 0002 ALLINT EQU 02H 81 82 0000' ASEG 83 IF SP1 84 ; 85 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 86 ; RESTARTS & CP/M ENTRY 87 ; 88 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 89 90 IF CPM 91 ORG 100H 92 ENDIF 93 IF NOT CPM 94 ORG 0 ; BEGIN MEMORY 95 ENDIF 96 0000 C3 04CF JMP COLD ; COLD START 97 0003 55 DB 55H ;INTEL IOBYT 98 0004 40 DB 40H ;V 4.0 99 0005 C3 003B JMP CCPM 100 0008 C3 4000 JMP @R@ 101 ; 102 000B 3E 2D MINUS: MVI A,'-' 103 000D C3 04B8 JMP COA 104 0010 C3 4003 JMP @R@+3 105 ; 106 0013 3E 3D EQUAL: MVI A,'=' 107 0015 C3 04B8 JMP COA 108 0018 C3 4006 JMP @R@+6 109 ; 110 001B 3E 3F QUES: MVI A,'?' 111 001D C3 04B8 JMP COA 112 0020 C3 4009 JMP @R@+9 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-2 113 ; 114 0023 3A 40ED IOCHK: LDA IOBYT 115 0026 C9 RET 116 0027 50 DB 'P' 117 0028 C3 400C JMP @R@+12 118 ; 119 002B 79 IOSET: MOV A,C 120 002C 32 40ED STA IOBYT 121 002F C9 RET 122 0030 C3 400F JMP @R@+15 123 ; 124 0033 2A 40A5 SPCL: LHLD CADR 125 0036 7E MOV A,M 126 0037 C9 RET ; FOR PEDIT 127 0038 C3 4012 JMP @R@+18 128 ; 129 003B 79 CCPM: MOV A,C ;CONTINUE ENTRY TO CPM 130 003C 4B MOV C,E ; INTEL 131 003D D5 PUSH D ;DE->HL 132 003E 21 0046 LXI H,TCPM 133 0041 06 0B MVI B,11 ; MAX CPM ENTRY 134 0043 C3 0554 JMP INJM@ 135 ;------------------------------- 136 0046 04CF 005E TCPM: DW COLD,CI 137 004A 05E4 02E9 DW CO,RI 138 004E 02F5 0301 DW PO,LO 139 0052 028B 0023 DW CICO,IOCHK 140 0056 002B 0162 DW IOSET,ERROR 141 005A 0162 01C6 DW ERROR,CSTS 142 143 005E E5 CI: PUSH H 144 005F 21 00D3 LXI H,CITB 145 0062 C3 05E8 JMP IOCOM-3 146 ; 147 148 0065 41 51 31 TABCOD: DB 'AQ1' 149 0068 1B 0D DB 1BH,0DH ; ESC, CR 150 006A 50 30 DB 'P0' 151 152 006C 5A 53 57 32 DB 'ZSW2 LO9' 153 0070 20 4C 4F 39 154 155 0074 58 44 45 33 DB 'XDE3MKI8' 156 0078 4D 4B 49 38 157 158 007C 43 46 52 34 DB 'CFR4NJU7' 159 0080 4E 4A 55 37 160 161 0084 56 47 54 35 DB 'VGT5BHY6' 162 0088 42 48 59 36 163 164 ; POKRACOVANI TABULKY - SHIFT 165 008C 10 11 DB 10H,11H ; ^A ^Q 166 008E 21 DB '!' 167 008F 0A 0D DB 0AH,0DH 168 0091 7F DB 7FH 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-3 169 0092 29 DB ')' 170 171 0093 5A DB 'Z' 172 0094 13 17 DB 13H,17H ; ^S, ^W 173 0096 3F DB '?' 174 0097 09 DB 9 ; TABELATOR/SHIFT SPC 175 0098 3D 23 28 DB '=#(' 176 177 009B 03 DB 3 ; EXT/SHIFT X 178 009C 26 45 22 2E DB '&E".*@>' 179 00A0 2A 40 3E 180 181 00A3 5B 5C 25 24 DB '[\%$,-:<' 182 00A7 2C 2D 3A 3C 183 184 00AB 5D 5F DB ']_' 185 00AD 08 DB 8 ; BACKSPACE 186 00AE 5E DB '^' 187 00AF 3B 2B 2F DB ';+/' 188 00B2 27 DB 27H ; ' UVOZOVKA 189 190 ; I/O DEVICE TABLE 191 ; 192 00B3 43 03 IOTAB: DB 'C',03H ;CONSOLE (LOCAL, MASK) 193 00B5 54 43 42 31 DB 'TCB1' ;PHYSICAL 194 00B9 52 0C DB 'R',0CH ;READER 195 00BB 54 50 31 32 DB 'TP12' 196 00BF 50 30 DB 'P',30H ;PUNCHER 197 00C1 54 50 31 32 DB 'TP12' 198 00C5 4C C0 DB 'L',0C0H ;LIST 199 00C7 54 43 4C 31 DB 'TCL1' 200 201 ; ASSING TABLE FOR LOG. DEVICE 202 ; 203 00CB 030D 06A4 COTB: DW COLO,CRT,LO,COLOC 204 00CF 0301 40CE 205 00D3 0265 0265 CITB: DW KBR,KBR,RI,CILOC 206 00D7 02E9 40CB 207 00DB 030D 05E4 LOTB: DW COLO,CO,LPR,LILOC 208 00DF 07B9 40DD 209 00E3 0265 07E8 RITB: DW KBR,RDR,R1LOC,R2LOC 210 00E7 40D1 40D4 211 00EB 05E4 07D3 POTB: DW CO,PUN,P1LOC,P2LOC 212 00EF 40D7 40DA 213 ; 214 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 215 00F3 0D 0A VERS: DB CR,LF 216 00F5 53 41 50 49 DB 'SAPI-1 V4.0' 217 00F9 2D 31 20 56 218 00FD 34 2E 30 219 000D LVER EQU $-VERS ; DELKA OHLASENI 220 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 221 222 ;*************************************************** 223 IF CPM 224 ORG MONIT+100H 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-4 225 ELSE 226 ORG MONIT ; *** ZACATEK MONITORU *** 227 ENDIF 228 ;*************************************************** 229 230 ; TABLE OF EXTERNALLY REFERENCED ROUTINES 231 232 0100 C3 04CF JMP COLD ; START MONITORU 233 0103 C3 005E JMP CI ; CONZOLE INPUT <A> 234 0106 C3 02E9 JMP RI ; READER INPUT <A>, CY=1 ERROR 235 0109 C3 05E4 JMP CO ; CONZOLE OUTPUT <C> 236 010C C3 02F5 JMP PO ; PUNCH OUTPUT <C> 237 010F C3 0301 JMP LO ; LIST OUTPUT <C> 238 0112 C3 01C6 JMP CSTS ; CONZOLE INPUT STATUS 239 0115 C3 0023 JMP IOCHK ; I/O BYTE CHEK <A> 240 0118 C3 002B JMP IOSET ; I/O BYTE SET <C> 241 011B C3 065F JMP MEMCK ; SIZE MEMORY CHECK 242 011E C3 0604 JMP IODEF ; DEFINE USER I/O ENTRY POINTS 243 0121 C3 0033 JMP SPCL ; I/O CONTROL SPECIAL 244 0124 C3 05DD JMP CRLF ; NOVY RADEK 245 0127 C3 05B1 JMP EXPR ; SKLADANI ADRES (N=POCET <C>, SP) 246 012A C3 0162 JMP ERROR ; HLASENI CHYBY 247 012D C3 0667 JMP ASHEX ; PREVOD ASCII->HEX,CHYBA-CARRY 248 0130 C3 0646 JMP DADR ; ZOBRAZENI ADRESY <HL> 249 0133 C3 0651 JMP DBYT ; ZOBRAZENI ZNAKU <A> NA 'CO' 250 0136 C3 0624 JMP HILO ; HL+1,SROVNANI S DE,(HL=0) 251 0139 C3 0526 JMP NEXT ; PREDANI MONITORU 252 013C C3 0697 JMP SPACE ; MEZERA NA 'CO' 253 013F C3 067B JMP CINCR ; ECHO+ANALIZA 254 0142 C3 068A JMP TEXT ; VYPIS TEXTU <HL=ADRESA>,<D=DELKA> 255 0145 C3 0547 JMP XY ; PROVEDENI POVELU DLE <A> 256 0148 C3 05A6 JMP HXASC ; PREVOD HEX->ASCII DO <A>,<C> 257 014B C3 04BF JMP EXFLG ; EXTERNAL CONTROL FLAGS 258 ; 259 ;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 260 ; ASSIGN I/O DEVICE MODUL 261 ; 262 014E CD 0678 ASIGN: CALL CIMIN ;NAME 263 ; <A>..NAME (EXTERN CALLS) 264 0151 21 00B3 LXI H,IOTAB ;TABLE 265 0154 0E 04 MVI C,4 ;COUNTER 266 0156 11 0006 LXI D,6 ;OFFSET 267 0159 BE ASS0: CMP M ;IS IT? 268 015A CA 016B JZ ASS1 ;+ 269 015D 19 DAD D ;ADR 270 015E 0D DCR C ;ALL ? 271 015F C2 0159 JNZ ASS0 ;- 272 ; 273 ; ERROR MESSAGE 274 ; 275 0162 CD 001B ERROR: CALL QUES 276 0165 CD 0218 CALL BEEP 277 0168 C3 051E JMP INIC ;START 278 ; 279 016B CD 0013 ASS1: CALL EQUAL 280 016E CD 04B5 CALL ECHO ;PHIS.D 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-5 281 0171 23 INX H 282 0172 46 MOV B,M ;MASK 283 0173 0E 00 MVI C,0 ;IOBYT 284 0175 23 ASS2: INX H 285 0176 BE CMP M ;IS IT? 286 0177 CA 0186 JZ ASS3 ;+ 287 017A F5 PUSH PSW 288 017B 3E 55 MVI A,55H ;OFFSET 289 017D 81 ADD C 290 017E 4F MOV C,A 291 017F DA 0162 JC ERROR ;NO # 292 0182 F1 POP PSW 293 0183 C3 0175 JMP ASS2 ;NEXT 294 0186 79 ASS3: MOV A,C ;COMPUTE IOBYT 295 0187 A0 ANA B ;MASK 296 0188 4F MOV C,A ;SAVE 297 0189 78 MOV A,B 298 018A 2F CMA ;NEG 299 018B 21 40ED IONEW: LXI H,IOBYT 300 018E A6 ANA M 301 018F B1 ORA C 302 0190 77 MOV M,A 303 0191 C9 RET 304 ; 305 ; QUERY DEVICE 306 ; 307 0192 21 00B3 QUERY: LXI H,IOTAB ;TABLE 308 0195 3A 40ED LDA IOBYT ; READ 309 0198 47 MOV B,A ;SAVE 310 0199 CD 019C CALL $+3 311 019C CD 019F CALL $+3 ;DO IT 312 ; DISPLAY ASSIGN I/O 313 019F CD 0697 CALL SPACE 314 01A2 7E MOV A,M ; READ LOGICAL NAME 315 01A3 CD 04B8 CALL COA 316 01A6 CD 0013 CALL EQUAL 317 01A9 E5 PUSH H ;SAVE ADR 318 01AA 23 INX H 319 01AB 23 INX H ;ADR 320 01AC 78 MOV A,B 321 01AD E6 03 ANI 3 322 01AF 5F MOV E,A 323 01B0 16 00 MVI D,0 324 01B2 19 DAD D ;PHYSICAL DEVICE ADR 325 01B3 7E MOV A,M 326 01B4 CD 04B8 CALL COA 327 01B7 78 MOV A,B 328 01B8 0F RRC 329 01B9 0F RRC ;ROTATE IOBYT 330 01BA 47 MOV B,A 331 01BB E1 POP H 332 01BC 1E 06 MVI E,6 ;OFFSET 333 01BE 19 DAD D 334 01BF C9 RET ;HL=NEXT ADR 335 ; 336 ;%%%%%%%%%%%%%%%%%%%%%%%%% 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-6 337 ; I/O DEVICE CONTROL 338 ;%%%%%%%%%%%%%%%%%%%%%%%%% 339 340 01C0 B7 CSTS1: ORA A 341 01C1 FA 40E0 JM CSLOC ;USER CSTS 342 01C4 AF XRA A 343 01C5 C9 RET ;BATCH-NOT READY 344 ; 345 01C6 3A 40ED CSTS: LDA IOBYT 346 01C9 1F RAR 347 01CA 1F RAR 348 01CB DA 01C0 JC CSTS1 349 IF NOT CPM 350 351 01CE E5 KBRST: PUSH H ; KEYBOARD STATUS 352 01CF D5 PUSH D 353 01D0 C5 PUSH B 354 01D1 26 24 MVI H,24H ; PORT0 355 ; #VERS."F"# 356 01D3 36 10 MVI M,10H ;#BEZ SLOUPCE SHIFT 357 01D5 7E MOV A,M ;# 358 01D6 3C INR A ;#0FFH+1=CO 359 01D7 C2 01E0 JNZ KBRS1 ;# 360 01DA 36 0F MVI M,0FH ;#JEN SLOUPEC SHIFT 361 01DC 37 STC ;# 362 01DD 7E MOV A,M ;# 363 01DE 1F RAR ;#SHIFT NETESTUJE 364 01DF 3C INR A ;# 365 01E0 21 40A8 KBRS1: LXI H,FLAG 366 01E3 CA 01F8 JZ SET80 ; POVOL 367 01E6 7E MOV A,M ; CSTS POVOLENO? 368 01E7 3C INR A ; FF+1=00..ZAKAZ 369 01E8 CA 01FB JZ CSTS0 370 01EB CD 0233 CALL KEYIN ; ZACHOVA 'HL' 371 01EE FA 01F8 JM SET80 ; POVOL 372 01F1 77 MOV M,A ; USCHOVA LIN. KODU 373 01F2 3E FF MVI A,0FFH 374 01F4 B7 ORA A ; TRUE, NOT ZERO 375 01F5 C3 01FB JMP CSTS0 376 377 01F8 36 80 SET80: MVI M,80H ; POVOL CSYS 378 01FA AF XRA A ; SET ZERO 379 01FB C1 CSTS0: POP B 380 01FC D1 POP D 381 01FD E1 POP H 382 01FE C9 RET 383 ; 384 ELSE 385 PUSH B 386 PUSH D 387 PUSH H 388 MVI C,6 389 MVI E,0FFH 390 CALL 5 391 CPI CTRLW 392 CZ RESTA ; BREAK 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-7 393 ORA A 394 POP H 395 POP D 396 POP B 397 RET 398 ; 399 ENDIF 400 401 01FF 3A 40A4 DTTO?: LDA LASTC 402 0202 B9 CMP C 403 0203 C2 02B6 JNZ LONG 404 0206 2A 40A9 LHLD LIMIT 405 0209 2B DCX H 406 020A 22 40A9 SHLD LIMIT 407 020D 7C MOV A,H 408 020E B5 ORA L 409 020F C2 02A4 JNZ CI1 410 0212 21 0064 LXI H,100 ; 100 MS 411 0215 C3 02B9 JMP LSET 412 413 0218 C5 BEEP: PUSH B 414 0219 0E 28 MVI C,40 415 021B CD 0224 CALL CLICK 416 021E 0D DCR C 417 021F C2 021B JNZ $-4 418 0222 C1 POP B 419 0223 C9 RET 420 421 0224 26 24 CLICK: MVI H,24H ; PORT0 422 0226 36 5F MVI M,5FH ; REPRO ON 423 0228 05 CLCK1: DCR B 424 0229 C2 0228 JNZ CLCK1 425 022C 36 1F MVI M,1FH ; REPRO OFF 426 022E 05 CLCK2: DCR B 427 022F C2 022E JNZ CLCK2 428 0232 C9 RET 429 430 431 ; PROHLEDAVANI KLAVESNICE ANK-1 432 ;=============================== 433 ; KONSTANTNI DOBA PROHLEDAVANI 0.816 MS/488NS. 434 ; PLATNA POSLEDNI NALEZENA KLAVESA. 435 ; B...CITAC DO 8, C... LINEARNI KOD 436 ; D...SHIFT FLAG, SOUCASNE MASKA LED. 437 ; E...CITAC LINEARNIHO KODU KLAVES: 438 ; A-Q-1-LF-CR-P-0 Z-S-W-SP-L-O-9.. 439 ; H...UKAZATEL NA PORT0 JPR-1 440 ; L...VYBER MATICE VODOROVNE 441 442 ; PO PROVEDENI KOD V 'A', 'C' REGISTRU. 443 ; PRIZNAK 'SHIFT' V 'D' REGISTRU. 444 ; FLAG 'SIGN' SIGNALIZUJE STISKNUTI- 445 ; PLUS...ANO, MINUS...NE 446 447 0233 E5 KEYIN: PUSH H ; V2.2 20.1.85 448 0234 11 1FFF LXI D,1FFFH ; MASKA&CITAC 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-8 449 0237 0E 00 MVI C,0 450 0239 26 24 MVI H,24H ; PORT0 451 023B 3E EF MVI A,11101111B 452 023D 6F NXLIN: MOV L,A 453 023E A2 ANA D 454 023F 77 MOV M,A 455 0240 06 08 MVI B,8 ; CITAC BITU 456 0242 7E MOV A,M 457 0243 0F KEY: RRC 458 0244 1C INR E ; NACTI KOD 459 0245 DA 024E JC NXKEY ; SKOC, KDYZ NIC 460 0248 4B MOV C,E ; KOD KLAVESY 461 0249 C2 024E JNZ NXKEY ; SHIFT ? 462 024C 16 3F MVI D,3FH ; ANO NASTAV MASKU 463 024E 05 NXKEY: DCR B 464 024F C2 0243 JNZ KEY 465 0252 7D MOV A,L 466 0253 0F RRC 467 0254 DA 023D JC NXLIN 468 0257 0D DCR C ; NASTAV 'SIGN' 469 0258 E1 POP H 470 0259 F8 RM ; STISKNUTA? 471 025A 7A MOV A,D ; SHIFT? 472 025B E6 20 ANI 20H 473 025D 79 MOV A,C 474 025E C8 RZ ; NE,NAVRAT 475 025F 83 ADD E ; ANO, +39 476 0260 4F MOV C,A 477 0261 C9 RET 478 479 ENDIF 480 ; 481 ; 482 ; 483 0262 CD 0313 CALL RESTA ;^W 484 0265 CD 0294 KBR: CALL KBRD 485 0268 FE 17 CPI CTRLW 486 026A CA 0262 JZ KBR-3 ; SIMUL. INTERRUPT 487 026D FE 11 CPI CTRLQ 488 026F C0 RNZ 489 490 0270 C5 PUSH B ;WINDOW 491 0271 D5 PUSH D 492 0272 E5 PUSH H 493 0273 06 00 MVI B,0 494 0275 CD 07A0 CALL UCMD ;CLEAR 495 0278 CD 0294 CALL KBRD ;NUMBER OF RESEVED LINES 496 027B E6 0F ANI 0FH ;MAX 15 497 027D 32 40EA STA RESL 498 0280 06 80 MVI B,80H ;SET NEW LINE 499 0282 CD 07A0 CALL UCMD 500 0285 E1 POP H 501 0286 D1 POP D 502 0287 C1 POP B 503 0288 C3 0265 JMP KBR ;NEW CHAR. 504 ; 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-9 505 028B 79 CICO: MOV A,C ; DIRECT CRT/KBRD 506 028C 3C INR A 507 028D C2 06A4 JNZ CRT ; ONLY OUTPUT 508 0290 CD 01CE CALL KBRST 509 0293 C8 RZ 510 511 0294 C5 KBRD: PUSH B ;DIRCT KEYBOARD 512 0295 D5 PUSH D 513 0296 E5 PUSH H 514 ; 515 IF CPM 516 KBR1 MVI E,0FFH 517 MVI C,6 518 CALL 5 519 ANI 7FH 520 JNZ KBR1 ;WAIT 521 ELSE 522 ; 523 ; AUTOREPEAT+KEYIN+CSTS+CLICK V2.6 524 525 0297 3A 40A8 LDA FLAG ; STATUS CSTS 526 029A B7 ORA A 527 029B FA 02A4 JM CI1 ; BIT7..STANDARD CI 528 029E 4F MOV C,A 529 029F 06 00 MVI B,0 ; LIN. KOD V 'BC' 530 02A1 C3 02C8 JMP SETLST ; SET LAST CODE 531 532 02A4 CD 0233 CI1: CALL KEYIN 533 02A7 F2 01FF JP DTTO? 534 02AA 2E 14 PRESS: MVI L,20 535 02AC CD 0233 WAIT0: CALL KEYIN 536 02AF F2 02AA JP PRESS 537 02B2 2D DCR L 538 02B3 C2 02AC JNZ WAIT0 539 02B6 21 03E8 LONG: LXI H,1000 ; 1 SEKUNDA 540 02B9 22 40A9 LSET: SHLD LIMIT 541 02BC 2E 0A FREE: MVI L,10 ; 10 MS 542 02BE CD 0233 WAIT1: CALL KEYIN 543 02C1 FA 02BC JM FREE 544 02C4 2D DCR L 545 02C5 C2 02BE JNZ WAIT1 546 02C8 32 40A4 SETLST: STA LASTC 547 02CB 21 0065 LXI H,TABCOD 548 02CE 09 DAD B 549 02CF 3E FF MVI A,0FFH 550 02D1 32 40A8 STA FLAG ; ZAKAZ CSTS 551 02D4 7E MOV A,M 552 02D5 CD 0224 CALL CLICK 553 554 ENDIF 555 ; 556 02D8 E1 POP H 557 02D9 D1 POP D 558 02DA C1 POP B 559 02DB FE 10 CPI CTRLP ;^P 560 02DD C0 RNZ 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-10 561 02DE 3A 40E3 LDA MODE 562 02E1 EE 01 XRI 1 563 02E3 32 40E3 STA MODE ; LPR ON/OFF 564 02E6 C3 0294 JMP KBRD 565 ; 566 ; 567 02E9 E5 RI: PUSH H 568 02EA 21 00E3 LXI H,RITB 569 02ED 3A 40ED LDA IOBYT 570 02F0 0F RICOM: RRC 571 02F1 0F RRC 572 02F2 C3 05EB JMP IOCOM 573 ; 574 02F5 E5 PO: PUSH H 575 02F6 21 00EB LXI H,POTB 576 02F9 3A 40ED LDA IOBYT 577 02FC 0F RRC 578 02FD 0F RRC 579 02FE C3 02F0 JMP RICOM 580 ; 581 0301 E5 LO: PUSH H 582 0302 21 00DB LXI H,LOTB 583 0305 3A 40ED LDA IOBYT 584 0308 07 RLC 585 0309 07 RLC 586 030A C3 05EB JMP IOCOM 587 ;---------------------------- 588 ; 589 030D CD 07B9 COLO: CALL LPR 590 0310 C3 06A4 JMP CRT 591 ;---------------------------- 592 ; 593 ; 594 ; RUN AND BREAK MODUL: 595 ; 596 0313 F3 RESTA: DI ;SAVE ALL 597 0314 22 4098 SHLD HLSAV 598 0317 F5 PUSH PSW 599 0318 21 0002 LXI H,2 ;OFSSET 600 031B 39 DAD SP 601 031C 22 409C SHLD SPSAV 602 031F F1 POP PSW 603 0320 E1 POP H ;PC 604 0321 31 4098 LXI SP,HLSAV 605 0324 D5 PUSH D 606 0325 C5 PUSH B 607 0326 F5 PUSH PSW 608 0327 EB XCHG 609 0328 1B DCX D ; PC-1 610 0329 21 409E LXI H,BRAD ;BREAK ? 611 032C 0E 02 MVI C,2 ; TWO BREAKS 612 032E C5 RST10: PUSH B ;COUNTER 613 032F 4E MOV C,M 614 0330 36 00 MVI M,0 615 0332 23 INX H 616 0333 46 MOV B,M 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-11 617 0334 36 00 MVI M,0 618 0336 23 INX H 619 0337 79 MOV A,C 620 0338 B0 ORA B ;0 ? 621 0339 CA 034A JZ RST20 ;NO BREAK 622 033C 7E MOV A,M ;RESTORE INSTR 623 033D 02 STAX B 624 033E 23 INX H 625 033F E5 PUSH H 626 0340 60 MOV H,B 627 0341 69 MOV L,C ;BREAK/INTR ? 628 0342 CD 0629 CALL COMPR 629 0345 E1 POP H 630 0346 C2 034A JNZ RST20 631 0349 1B DCX D ;PC-1 632 034A C1 RST20: POP B 633 034B 0D DCR C 634 034C C2 032E JNZ RST10 635 034F EB XCHG 636 0350 23 INX H ;RESTORE PC 637 0351 22 409A SHLD PCSAV 638 0354 37 STC 639 0355 CD 03AB CALL X+3 ;DISPLAY ALL REGISTERS 640 0358 C3 0526 JMP NEXT ;WAIT FOR COMMAND 641 ; 642 ; GO TO COMMAND 643 ; 644 035B CD 0013 GOTO: CALL EQUAL 645 035E CD 067B CALL CINCR ;COMMAND 646 0361 DA 0392 JC GO@ ;IF CR THEN GOTO FROM OLD PC 647 0364 CA 0374 JZ GO@BR ; OLD PC AND BREAK 648 0367 CD 05F0 CALL EXPRM ;START ADR 649 036A E1 POP H 650 036B 22 409A SHLD PCSAV ;SET NEW 651 036E 78 MOV A,B ;ONLY START ADR ? 652 036F FE 0D CPI CR 653 0371 CA 0392 JZ GO@ 654 0374 CD 062F GO@BR: CALL RADR ;READ BREAK ADR 655 0377 22 409E SHLD BRAD 656 037A 7E MOV A,M ;SAVE INSTR. CODE 657 037B 32 40A0 STA INSTR 658 037E 36 CF MVI M,RSTN ;SET RST 659 0380 3E 0D MVI A,CR 660 0382 B8 CMP B ;ONLY 1-BREAK ? 661 0383 CA 0392 JZ GO@ 662 ; SECOND BREAK 663 0386 CD 062F CALL RADR 664 0389 22 40A1 SHLD BRAD2 665 038C 7E MOV A,M 666 038D 32 40A3 STA INST2 667 0390 36 CF MVI M,RSTN 668 ; START PROGRAM 669 0392 CD 05DD GO@: CALL CRLF 670 0395 F3 DI 671 0396 31 4092 LXI SP,ACSAV ;REASTORE REGISTERS 672 0399 F1 POP PSW 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-12 673 039A C1 POP B 674 039B D1 POP D 675 039C 2A 409C LHLD SPSAV ;STACK 676 039F F9 SPHL 677 03A0 2A 409A LHLD PCSAV ; PC 678 03A3 E3 XTHL 679 03A4 2A 4098 LHLD HLSAV 680 03A7 C9 RET ;CONTINUE... 681 ; 682 ; EXAMINE REGISTRS 683 ; 684 03A8 CD 067B X: CALL CINCR ;COMMAND 685 03AB 21 0419 LXI H,RGNAM ;NAME TABLE 686 03AE 16 40 MVI D,HIGH ACSAV ;DATA 687 03B0 D2 03BE JNC X1 ;CHANGE 688 03B3 CD 05DD CALL CRLF 689 03B6 CD 03F6 X0: CALL XDISP 690 03B9 C8 RZ ;END 691 03BA 23 INX H 692 03BB C3 03B6 JMP X0 693 03BE CA 03D5 X1: JZ X2 ;NO CHANGE 694 03C1 5F MOV E,A ;SAVE NAME 695 03C2 01 DB 1 ; LXI B,## 696 03C3 23 X10: INX H 697 03C4 23 INX H 698 03C5 7E MOV A,M ; READ NAME REG. 699 03C6 E6 7F ANI 7FH 700 03C8 CA 0162 JZ ERROR ; NO FIND 701 03CB BB CMP E 702 03CC C2 03C3 JNZ X10 ; NEXT 703 03CF CD 0400 CALL XDIS1 ; DISPLAY IT 704 03D2 C3 03D8 JMP X2+3 705 ; 706 03D5 CD 03F9 X2: CALL XDISP+3 707 03D8 C8 RZ 708 03D9 CD 0678 CALL CIMIN ;- COMMAND 709 03DC D8 RC ;CR - END 710 03DD 5E MOV E,M ;LOW ADR 711 03DE 23 INX H 712 03DF CA 03D5 JZ X2 ;SP - NEXT 713 03E2 EB XCHG 714 03E3 D5 PUSH D 715 03E4 CD 0636 CALL RBYT ; READ NEW BYTE AND CHANGE 716 03E7 05 DCR B 717 03E8 CA 03EE JZ $+6 718 03EB 72 MOV M,D ; HIGH BYTE 719 720 03EC 2B DCX H 721 03ED 73 MOV M,E ;LOW 722 03EE D1 POP D 723 03EF EB XCHG 724 03F0 FE 0D CPI CR ;LAST? 725 03F2 C8 RZ ;+ 726 03F3 C3 03D5 JMP X2 ;NEXT 727 ; 728 03F6 CD 0697 XDISP: CALL SPACE 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-13 729 03F9 7E MOV A,M 730 03FA E6 7F ANI 7FH 731 03FC C8 RZ 732 03FD CD 04B8 CALL COA 733 0400 CD 0013 XDIS1: CALL EQUAL ;NAME= 734 0403 7E MOV A,M 735 0404 07 RLC 736 0405 3E 01 MVI A,1 737 0407 CE 00 ACI 0 ; COMPUTE LENGHT 738 0409 47 MOV B,A ; SAVE 739 040A 23 INX H 740 040B 5E MOV E,M ; LOW ADR 741 040C 1A LDAX D ;HIG BYTE 742 040D CD 0651 CALL DBYT 743 0410 78 MOV A,B ;SINGLE REG. ? 744 0411 3D DCR A 745 0412 1B DCX D 746 0413 1A LDAX D ;READ SECOND BYTE 747 0414 C4 0651 CNZ DBYT ;IF 2.BYTE REG. THEN DISP. 748 0417 B3 ORA E ;NZY (IN PAGE) 749 0418 C9 RET 750 ; 751 ; X: COMMAND TABLE 752 0419 41 93 RGNAM: DB 'A',LOW ACSAV+1 753 041B 46 92 DB 'F',LOW ACSAV 754 041D 42 95 DB 'B',LOW BCSAV+1 755 041F 43 94 DB 'C',LOW BCSAV 756 0421 44 97 DB 'D',LOW DESAV+1 757 0423 45 96 DB 'E',LOW DESAV 758 0425 48 99 DB 'H',LOW HLSAV+1 759 0427 4C 98 DB 'L',LOW HLSAV 760 0429 D0 9B DB 'P' OR 80H,LOW PCSAV+1 761 042B D3 9D DB 'S' OR 80H,LOW SPSAV+1 762 042D 00 DB 0 763 ; 764 ; DISPLAY CONTENS OF MEMORY 765 ; 766 042E CD 05B1 DISP: CALL EXPR ; FROM -TO 767 0431 D1 POP D 768 0432 E1 POP H 769 0433 E5 DI0: PUSH H ;FIRST ADR 770 0434 CD 0643 CALL DNADR ;NEW ADR 771 0437 7E DI1: MOV A,M 772 0438 CD 0694 CALL DBYTE 773 043B CD 0624 CALL HILO 774 043E DA 0447 JC DIA ;DISPLAY ASCII 775 0441 7D MOV A,L 776 0442 E6 07 ANI 7 777 0444 C2 0437 JNZ DI1 ;NEXT BYTE 778 0447 E1 DIA: POP H 779 0448 CD 0697 CALL SPACE 780 044B 7E DI2: MOV A,M 781 044C 0E 2E MVI C,'.' ;NO ASCII 782 044E FE 20 CPI ' ' 783 0450 D2 0454 JNC $+4 784 0453 79 MOV A,C 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-14 785 0454 FE 60 CPI 60H 786 0456 DA 045B JC $+5 787 0459 D6 20 SUI ' ' 788 045B CD 04B8 CALL COA 789 045E CD 0624 CALL HILO 790 0461 D8 RC 791 0462 7D MOV A,L 792 0463 E6 07 ANI 7 793 0465 C2 044B JNZ DI2 ;NEXT ASCII 794 0468 CD 01C6 CALL CSTS 795 046B CA 0433 JZ DI0 ;NEXT LINE 796 046E CD 0678 CALL CIMIN ;#VERS."F" - 797 0471 D8 RC ;#IF SPC WAIT 798 0472 C0 RNZ ;#ELSE BREAK. 799 0473 CD 067B CALL CINCR ;#CR? 800 0476 D2 0433 JNC DI0 ;#BREAK,IF CR 801 0479 C9 RET 802 ; 803 ; FILL MEMORY BLOCK WITH BYTE 804 ; 805 047A 0C FILL: INR C 806 047B CD 05B1 CALL EXPR ;FROM-TO-WITH 807 047E C1 POP B 808 047F D1 POP D 809 0480 E1 POP H 810 0481 71 FI1: MOV M,C 811 0482 CD 0624 CALL HILO 812 0485 D2 0481 JNC FI1 813 0488 C9 RET 814 ; 815 ; MOVE BLOCK MEMORY 816 ; 817 0489 0C MOVE: INR C 818 048A CD 05B1 CALL EXPR 819 048D C1 POP B 820 048E D1 POP D 821 048F E1 POP H 822 0490 7E MO1: MOV A,M 823 0491 02 STAX B 824 0492 03 INX B 825 0493 CD 0624 CALL HILO 826 0496 D2 0490 JNC MO1 827 0499 C9 RET 828 ; 829 ; SUBSTITUTE MEMORY 830 ; 831 049A CD 062F SUBS: CALL RADR ;ADR 832 049D 7E SU1: MOV A,M 833 049E CD 0651 CALL DBYT 834 04A1 CD 0678 CALL CIMIN ;- & CINCR 835 04A4 D8 RC ;CR 836 04A5 CA 04AC JZ SU2 837 04A8 CD 0636 CALL RBYT ;CHANGE 838 04AB C8 RZ ;END 839 04AC 23 SU2: INX H ;NEXT BYTE 840 04AD FE 2C CPI ',' ;IF , THEN DISPLAY ADR 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-15 841 04AF CC 0643 CZ DNADR 842 04B2 C3 049D JMP SU1 843 ; 844 ; CONSOLE MODUL 845 ; 846 ; 847 04B5 CD 005E ECHO: CALL CI 848 04B8 C5 COA: PUSH B 849 04B9 4F MOV C,A 850 04BA CD 05E4 CALL CO 851 04BD C1 POP B 852 04BE C9 RET 853 ; 854 IF SP1A 855 MINUS: MVI A,'-' 856 JMP COA 857 ; 858 EQUAL: MVI A,'=' 859 JMP COA 860 ; 861 QUES: MVI A,'?' 862 JMP COA 863 ; 864 ENDIF 865 ; 866 ;SET MODE. I/O FLAGS 867 ; 868 04BF 47 EXFLG: MOV B,A 869 04C0 79 MOV A,C 870 04C1 FE 0A CPI EXSER ; OVERFLOW ? 871 04C3 78 MOV A,B 872 04C4 D0 RNC 873 04C5 E5 PUSH H ; <A> .. COMMAND 874 ; <C> .. 0-N SLUZBA 875 04C6 06 00 MVI B,0 ; 0-MODE, 1-@IF1..4@OF2 876 04C8 21 40E3 LXI H,MODE ; 0=0 877 04CB 09 DAD B ; 5- RESERVE_LINE, 6-S@FLG 878 04CC 77 MOV M,A 879 04CD E1 POP H 880 04CE C9 RET 881 882 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 883 ; **** S T A R T M O N I T O R U **** 884 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 885 ; 886 04CF D3 13 COLD: OUT URES ; RESET 887 04D1 AF XRA A ;MONITORU 888 04D2 D3 10 OUT UMODE 889 04D4 3E 0D MVI A,0DH 890 04D6 D3 11 OUT MMODE 891 04D8 00 NOP ; RESERVA 892 04D9 00 NOP 893 04DA 00 NOP 894 04DB 00 NOP 895 ; 896 ;------------------------------------- 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-16 897 04DC F3 BEG: DI ; COMMAND "C" 898 04DD 21 4090 LXI H,MSTAK ; SET STACK POINTER 899 04E0 F9 SPHL 900 04E1 11 40FF LXI D,@R@+255 901 04E4 0E 00 MVI C,0 902 04E6 CD 0481 CALL FI1 ;CLEAR M-RAM 903 04E9 3E 55 MVI A,BEGIO ;SET IOBYTE 904 04EB 32 40ED STA IOBYT 905 04EE CD 069C CALL COINIT ;TV 906 04F1 CD 059A CALL EP2? ;M-PLUS ? 907 04F4 CC 0803 CZ EP2+3 ;INIT M-PLUS 908 04F7 21 4000 LXI H,RAM 909 04FA 24 MEM1: INR H ; NEXT PAGE 910 04FB 7C MOV A,H 911 IF HIGH ERAM NE 0FFH 912 CPI HIGH ERAM+1 913 ELSE 914 04FC FE 00 CPI 0 915 ENDIF 916 04FE CA 050A JZ MEM2 917 0501 7E MOV A,M 918 0502 2F CMA 919 0503 77 MOV M,A ; WRITE COMPLEMENT 920 0504 BE CMP M ; WRITE O.K. ? 921 0505 2F CMA 922 0506 77 MOV M,A ; RAM RESTORE 923 0507 CA 04FA JZ MEM1 924 050A 2B MEM2: DCX H ; LAST BYTE IN RAM 925 050B 22 40EE SHLD MEMTOP ; SAVE ADDRES 926 050E 3E 17 MVI A,17H ; LIN. KOD 'C' 927 0510 32 40A4 STA LASTC ; LAST CODE 928 0513 3E FF MVI A,0FFH 929 0515 32 40A8 STA FLAG ; ZAKAZ CSTS 930 0518 21 4070 LXI H,MSTAK-20H 931 051B 22 409C SHLD SPSAV 932 933 ; OHLASENI MONITORU 934 935 051E 21 00F3 INIC: LXI H,VERS ; TEXT OHLASENI 936 0521 16 0D MVI D,LVER ; DELKA TEXTU 937 0523 CD 068A CALL TEXT ; TEXT OHLASENI 938 ;------------------------------------ 939 ; * VYHODNOCENI POVELU OPERATORA * 940 ;------------------------------------ 941 942 0526 31 4090 NEXT: LXI SP,MSTAK ; SET STACK FOR MONITOR 943 0529 21 0526 LXI H,NEXT 944 052C E5 PUSH H ;RET. ADR 945 IF NOT CPM 946 052D 26 30 MVI H,30H ;INTERRUPT ENABLE 947 052F 36 02 MVI M,2 948 ENDIF 949 0531 CD 05DD CALL CRLF 950 0534 3E C3 MVI A,0C3H ; JMP 951 0536 32 4000 STA @R@ ; SET INTERUPT ADR "08CH" 952 0539 21 0313 LXI H,RESTA 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-17 953 053C 22 4001 SHLD @R@+1 954 053F 0E 2E MVI C,'.' 955 0541 CD 05E4 CALL CO 956 0544 CD 067B CALL CINCR ; POVEL 957 0547 6F XY: MOV L,A ; L-COMMAND 958 0548 E5 PUSH H ; SAVE 959 0549 D6 41 SUI 'A' 960 054B FA 0526 JM NEXT ; ASCII < "A" 961 054E 21 0561 LXI H,CTBL ; ZACATEK COMMAND TABLE 962 0551 01 1802 LXI B,(LCT SHL 8) OR 2 963 0554 B8 INJM@: CMP B 964 0555 D2 0162 JNC ERROR ;OVERFLOW 965 0558 87 INJMP: ADD A ;2* 966 0559 85 ADD L 967 055A 6F MOV L,A 968 055B 7E MOV A,M 969 055C 23 INX H 970 055D 66 MOV H,M 971 055E 6F MOV L,A 972 055F E3 XTHL ;SET HL 973 0560 C9 RET ;START 974 975 ;---------------------------------- 976 ; * TABULKA POVELU MOVITORU * 977 ;---------------------------------- 978 979 ; 980 0561 014E CTBL: DW ASIGN ; ASSING I/O RUTINE 981 0563 0591 DW EXROM ;B 982 0565 04DC DW BEG ; CLEAR 983 0567 042E DW DISP ; DISPLAY MEMORY 984 0569 0591 DW EXROM ; END OF FILE 985 056B 047A DW FILL ; FILL MEMORY 986 056D 035B DW GOTO ; GOTO WITH BREAK 987 056F 0591 DW EXROM 988 0571 0591 DW EXROM ;I 989 0573 0591 DW EXROM ;J 990 0575 0591 DW EXROM ;K 991 0577 0591 DW EXROM ;L 992 0579 0489 DW MOVE ; MOVE MEM. 993 057B 0591 DW EXROM ; N - BLANK 994 057D 0591 DW EXROM ;O 995 057F 0591 DW EXROM ;P 996 0581 0192 DW QUERY ; Q - MEMTOP & IOBYTE 997 0583 0591 DW EXROM ; READ TAPE 998 0585 049A DW SUBS ; SUBSTITUTE 999 0587 0591 DW EXROM 1000 0589 0591 DW EXROM ;U 1001 058B 0591 DW EXROM 1002 058D 0591 DW EXROM ;WRITE TO TAPE 1003 058F 03A8 DW X ;X - EXAMINE 1004 0018 LCT EQU ($-CTBL)/2 1005 1006 1007 ; 1008 ; EXTEND ROM WITH MONIT-PLUS ? 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-18 1009 ; 1010 0591 CD 059A EXROM: CALL EP2? 1011 0594 C2 0162 JNZ ERROR ;NO, ERROR 1012 0597 C3 0806 JMP EP2 + 6 ;YES, EXECUTE COMMAND 1013 ; 1014 059A 3A 0800 EP2?: LDA EP2 1015 059D FE C3 CPI 0C3H ;JMP? 1016 059F C9 RET 1017 ; 1018 ; 1019 1020 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1021 ; * EXTERNAL RUTINES FOR MONITOR * 1022 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1023 1024 1025 1026 ; HIGH NIBBLE 1027 05A0 0F HBYTE: RRC 1028 05A1 0F RRC 1029 05A2 0F RRC 1030 05A3 0F RRC 1031 05A4 E6 0F LBYTE: ANI 0FH 1032 ; PREVOD HEXADECIMALNI CIFRY NA ASCII V "C" REG 1033 1034 05A6 C6 90 HXASC: ADI 90H 1035 05A8 27 DAA 1036 05A9 CE 40 ACI 40H 1037 05AB 27 DAA 1038 05AC 4F MOV C,A 1039 05AD C9 RET 1040 1041 ; SKLADANI ADRES (VSTUP PARAMETRU) DO STACKU, POCET V C-REG 1042 1043 05AE DA 0162 EXPRO: JC ERROR ;# VERS."C" # 1044 05B1 CD 0013 EXPR: CALL EQUAL ; TISK = 1045 05B4 21 0000 LXI H,0 1046 05B7 CD 04B5 EX0: CALL ECHO 1047 05BA 47 EX1: MOV B,A 1048 05BB FE 27 CPI 27H ;' 1049 05BD CA 05F8 JZ EX4 1050 05C0 CD 0667 CALL ASHEX ; HEX CIFRA ? 1051 05C3 DA 05CF JC EX3 ; POSUV "HL" O 4 BITY VLEVO 1052 05C6 29 DAD H 1053 05C7 29 DAD H 1054 05C8 29 DAD H 1055 05C9 29 DAD H 1056 05CA B5 ORA L 1057 05CB 6F MOV L,A 1058 05CC C3 05B7 JMP EX0 ; DALSI ZNAK 1059 1060 05CF 78 EX3: MOV A,B 1061 05D0 CD 067E CALL ANAL 1062 05D3 C2 0162 JNZ ERROR ; NENI HEX CIFRA 1063 05D6 E3 XTHL 1064 05D7 E5 PUSH H 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-19 1065 05D8 0D DCR C ; CARKA, MEZERA 1066 05D9 C2 05AE JNZ EXPRO ; DALSI ADRESY 1067 05DC D0 RNC ;#VERS."F"# 1068 ; 1069 05DD 0E 0D CRLF: MVI C,CR 1070 05DF CD 05E4 CALL CO 1071 05E2 0E 0A MVI C,LF ; DO CR,LF 1072 ; 1073 05E4 E5 CO: PUSH H 1074 05E5 21 00CB LXI H,COTB 1075 05E8 3A 40ED LDA IOBYT 1076 05EB E6 03 IOCOM: ANI 3 1077 05ED C3 0558 JMP INJMP 1078 1079 1080 05F0 0E 01 EXPRM: MVI C,1 1081 05F2 21 0000 LXI H,0 1082 05F5 C3 05BA JMP EX1 1083 ; 1084 05F8 CD 067B EX4: CALL CINCR ;COMMAND 1085 05FB 47 MOV B,A ;SAVE 1086 05FC CA 05CF JZ EX3 1087 05FF 65 MOV H,L 1088 0600 6F MOV L,A 1089 0601 C3 05F8 JMP EX4 1090 1091 ; IODEF:... DEFINE USER I/O RUTINE 1092 1093 0604 C5 IODEF: PUSH B 1094 0605 E5 PUSH H 1095 0606 21 40EE LXI H,MEMTOP ;NEW FUNCTION 1096 0609 79 MOV A,C ; NUMBER 1097 060A FE 08 CPI 8 1098 060C CA 061E JZ IODEF1 1099 060F F2 0162 JP ERROR 1100 0612 81 ADD C 1101 0613 81 ADD C 1102 0614 4F MOV C,A 1103 0615 06 00 MVI B,0 ; OFFSET 1104 0617 21 40CB LXI H,CILOC ; COMPUTE ADR 1105 061A 09 DAD B 1106 061B 36 C3 MVI M,0C3H ; JMP 1107 061D 23 INX H 1108 061E 73 IODEF1: MOV M,E 1109 061F 23 INX H 1110 0620 72 MOV M,D ; ADR 1111 0621 E1 POP H ; UNSAVE 1112 0622 C1 POP B 1113 0623 C9 RET 1114 1115 1116 ; INKREMENTRUJE "HL" ,KONTROLUJE "HL"=0 NEBO 1117 ; "HL">"DE"...CARRY=1 1118 1119 0624 23 HILO: INX H 1120 0625 7C MOV A,H 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-20 1121 0626 B5 ORA L 1122 0627 37 STC 1123 0628 C8 RZ ; NAVRAT PO "HL"=0000 1124 0629 7A COMPR: MOV A,D 1125 062A BC CMP H 1126 062B C0 RNZ 1127 062C 7B MOV A,E 1128 062D BD CMP L 1129 062E C9 RET 1130 1131 ; READ ADR 1132 1133 062F 0E 01 RADR: MVI C,1 1134 0631 CD 05B1 CALL EXPR 1135 0634 E1 POP H 1136 0635 C9 RET 1137 1138 1139 ; READ NEW BYTE 1140 1141 0636 C5 RBYT: PUSH B 1142 0637 E5 PUSH H 1143 0638 CD 05F0 CALL EXPRM 1144 063B D1 POP D 1145 063C E1 POP H 1146 063D 73 MOV M,E 1147 063E 78 MOV A,B 1148 063F FE 0D CPI CR 1149 0641 C1 POP B 1150 0642 C9 RET 1151 1152 1153 ; DISPLAY NEW ADR 1154 1155 0643 CD 05DD DNADR: CALL CRLF 1156 0646 CD 064C DADR: CALL DADR0 1157 0649 C3 0697 JMP SPACE 1158 1159 1160 IF SP1A 1161 ; CHEK I/O STATUS BYTE 1162 1163 IOCHK: LDA IOBYT 1164 RET 1165 1166 1167 ; SET I/O STATUS BYTE 1168 1169 IOSET: MOV A,C 1170 STA IOBYT 1171 RET 1172 ENDIF 1173 1174 ; DISPLAY ADDRES INT0 "HL" 1175 1176 064C 7C DADR0: MOV A,H 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-21 1177 064D CD 0651 CALL DBYT 1178 0650 7D MOV A,L 1179 1180 ; DISPLAY BYTE INT0 ACC 1181 1182 0651 F5 DBYT: PUSH PSW 1183 0652 CD 05A0 CALL HBYTE 1184 0655 CD 05E4 CALL CO 1185 0658 F1 POP PSW 1186 0659 CD 05A4 CALL LBYTE 1187 065C C3 05E4 JMP CO 1188 1189 1190 ; CHEK SIZE RAM MEMORY 1191 1192 065F E5 MEMCK: PUSH H 1193 0660 2A 40EE LHLD MEMTOP 1194 0663 7D MOV A,L 1195 0664 44 MOV B,H 1196 0665 E1 POP H 1197 0666 C9 RET 1198 1199 ; PREVOD ZNAKU ASCII NA HEXADEC 1200 1201 0667 D6 30 ASHEX: SUI '0' ;#VERS."F"# 1202 0669 D8 RC ; <'0' 1203 066A FE 17 CPI 17H ; >'F' 1204 066C 3F CMC 1205 066D D8 RC 1206 066E FE 0A CPI 10 ; '0'..'9' 1207 0670 3F CMC 1208 0671 D0 RNC 1209 0672 FE 11 CPI 11H ; 0AH..10H 1210 0674 D8 RC 1211 0675 D6 07 SUI 7 ; 'A'..'F' 1212 0677 C9 RET 1213 1214 1215 0678 CD 000B CIMIN: CALL MINUS ;- 1216 ; 1217 067B CD 04B5 CINCR: CALL ECHO 1218 067E FE 2C ANAL: CPI ',' 1219 0680 C8 ANAL0: RZ 1220 0681 FE 20 CPI ' ' 1221 0683 C8 RZ 1222 0684 FE 0D CPI CR 1223 0686 37 STC 1224 0687 C8 RZ 1225 0688 B7 ORA A 1226 0689 C9 RET ; PO CR CARRY=1 1227 1228 ; VYPIS TEXTU - HL ADRESA, D DELKA 1229 1230 068A 4E TEXT: MOV C,M 1231 068B 23 INX H 1232 068C CD 05E4 CALL CO 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-22 1233 068F 15 DCR D 1234 0690 C2 068A JNZ TEXT 1235 0693 C9 RET 1236 1237 0694 CD 0651 DBYTE: CALL DBYT 1238 0697 0E 20 SPACE: MVI C,' ' ; DISPLAY MEZERY 1239 0699 C3 05E4 JMP CO 1240 ; 1241 ; 1242 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1243 ; I/O DEVICE 1244 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1245 ; 1246 ; T.V. PARAM. 1247 0028 WIDTH EQU 40 1248 0018 HEIGHT EQU 24 1249 0040 LINOF EQU 64 ;OFFSET 1250 0018 LREST EQU LINOF - WIDTH 1251 3DE7 TVEND EQU TVBEG + 5E7H 1252 001F ERS EQU 1FH ;ERASE SCREEN 1253 001E EOL EQU 1EH ;ERASE END OF LINE 1254 0011 CTRLQ EQU 11H ;^Q-RESERVE 1255 0010 CTRLP EQU 10H ;^P-LIST 1256 00A0 CURSOR EQU 0A0H ;CODE 1257 001D HOME EQU 1DH ;HOME 1258 ; 1259 ;------------------------------------------------- 1260 1261 069C 21 3800 COINIT: LXI H,TVBEG 1262 069F 22 40A5 SHLD CADR ;SET CURSOR ADR 1263 06A2 0E 1F MVI C,ERS ;CLEAR SCREEN 1264 ; 1265 ;%%%%%%%%%%%%%%%%%%%%%%%%%% 1266 ; CONSOLE OUTPUT 1267 ; <C>...WRITE ON SCREN 1268 ; 1269 06A4 D5 CRT: PUSH D 1270 06A5 E5 PUSH H 1271 06A6 21 073B LXI H,COEX ;RET-ADR 1272 06A9 E5 PUSH H ;PUT TO STACK 1273 06AA 2A 40A5 LHLD CADR ;CLEAR CURSOR 1274 06AD 3A 40A7 LDA CHAR ;ADR RESTORE 1275 06B0 77 MOV M,A ;CHART 1276 06B1 CD 075A CALL COADR ;COMPUTE ADR 1277 06B4 79 MOV A,C 1278 06B5 FE 20 CPI ' ' ;IF ' '...'Z' THEN WRITE 1279 06B7 D2 06DE JNC CRTWR ;ELSE DECODE CONTROL 1280 06BA FE 0D CPI CR ;CHARTS AND DO 1281 06BC CA 0791 JZ CR@ ;CHANGE ON SCREEN 1282 06BF FE 0A CPI LF 1283 06C1 CA 06FC JZ LF@ 1284 06C4 FE 1E CPI EOL 1285 06C6 CA 076F JZ EOL@ ;ERASE TO END LINE 1286 06C9 FE 08 CPI BACK 1287 06CB CA 077B JZ BACK@ ;LEFT SHIFT 1288 06CE FE 1D CPI HOME 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-23 1289 06D0 CA 0796 JZ HOME@ ;LEFT UP 1290 06D3 FE 1F CPI ERS 1291 06D5 CA 072A JZ ERS@ 1292 06D8 FE 07 CPI BELL 1293 06DA CA 0218 JZ BEEP 1294 06DD C9 RET 1295 ; 1296 06DE 3A 40E3 CRTWR: LDA MODE 1297 06E1 E6 C0 ANI 0C0H ;MODE 1298 06E3 57 MOV D,A ; SAVE 1299 06E4 79 MOV A,C ;6.BITS 1300 06E5 E6 3F ANI 3FH 1301 06E7 B2 ORA D ;COMPOSITE 1302 06E8 77 MOV M,A ;WRITE! 1303 06E9 D6 C0 SUI 0C0H ;DOUBLE ? 1304 06EB D4 06EE CNC CONXT ;+ 1305 06EE CD 075A CONXT: CALL COADR ;COMPUTE NEXT ADR 1306 06F1 7A MOV A,D 1307 06F2 3C INR A 1308 06F3 32 40E9 STA COLUM ;NEW POSITION 1309 06F6 D6 28 SUI WIDTH ;END LINE 1310 06F8 D8 RC ;NO 1311 06F9 32 40E9 STA COLUM ;SET POSITION AND COMPUTE 1312 ; NEXT LINE 1313 06FC 7B LF@: MOV A,E 1314 06FD 3C INR A 1315 06FE FE 18 CPI HEIGHT ;END OF SCREEN? 1316 0700 DA 079C JC LF@1 ;NO 1317 0703 2A 40EA LHLD RESL 1318 0706 26 00 MVI H,0 1319 0708 CD 075D CALL COADR+3 ;FIRST LINE 1320 070B C5 PUSH B 1321 070C 3A 40EA LDA RESL ;LINE COUNTER 1322 070F D6 18 SUI HEIGHT 1323 0711 2F CMA 1324 0712 4F MOV C,A 1325 0713 06 28 ROLL: MVI B,WIDTH 1326 0715 EB XCHG 1327 0716 21 0040 ROLL1: LXI H,LINOF ;OFFSET 1328 0719 19 DAD D 1329 071A 7E MOV A,M 1330 071B 12 STAX D ;COPY 1331 071C 13 INX D ;+ 1332 071D 05 DCR B 1333 071E C2 0716 JNZ ROLL1 ;ALL LINE 1334 0721 21 0018 LXI H,LREST ;NEW LINE 1335 0724 19 DAD D 1336 0725 0D DCR C 1337 0726 C2 0713 JNZ ROLL ;NEXT LINE 1338 0729 C1 POP B 1339 ; 1340 072A CD 076F ERS@: CALL EOL@ 1341 072D 11 0018 LXI D,LREST 1342 0730 19 DAD D 1343 0731 11 3DE6 LXI D,TVEND-1 1344 0734 CD 0629 CALL COMPR 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-24 1345 0737 D2 072A JNC ERS@ 1346 073A C9 RET 1347 ; 1348 ; 1349 ; "EXIT" AND SET CURSOR 1350 073B CD 075A COEX: CALL COADR ;WRITE CURSOR 1351 073E 3A 40E3 LDA MODE 1352 0741 0F RRC ;CY=1.. LIST 1353 0742 DC 07B9 CC LPR ;PRINT ECHO 1354 0745 7E MOV A,M 1355 0746 32 40A7 STA CHAR ;ADD SAVE CHAR 1356 0749 22 40A5 SHLD CADR 1357 074C 3A 40E3 LDA MODE ;#VERS."F"# 1358 074F E6 20 ANI 20H ;#SUPRESS CURSOR? 1359 0751 C2 0756 JNZ COEX1 ;# 1360 0754 36 A0 MVI M,CURSOR 1361 0756 E1 COEX1: POP H ;UNSAVE 1362 0757 D1 POP D 1363 0758 79 MOV A,C 1364 0759 C9 RET ;END OF CONSOLE OUTPUT 1365 1366 ; SUBROUTINES 1367 ;-------------------------------------------------- 1368 1369 075A 2A 40E8 COADR: LHLD LINE ;COMPARE ADR <HL> 1370 075D E5 PUSH H 1371 075E 26 00 MVI H,0 1372 0760 29 DAD H 1373 0761 29 DAD H 1374 0762 29 DAD H 1375 0763 29 DAD H 1376 0764 29 DAD H 1377 0765 29 DAD H ;64* 1378 0766 11 3800 LXI D,TVBEG ;TV-RAM 1379 0769 19 DAD D ;BEGIN LINE 1380 076A D1 POP D ;SET DE 1381 076B 7D MOV A,L ;D-COLUM 1382 076C B2 ORA D ;E-LINE 1383 076D 6F MOV L,A ;HL...ADR 1384 076E C9 RET 1385 1386 1387 ; ERASE FROM CURSOR TO END LINE 1388 076F 36 20 EOL@: MVI M,' ' 1389 0771 23 INX H 1390 0772 7D MOV A,L 1391 0773 E6 3F ANI 3FH 1392 0775 FE 28 CPI WIDTH 1393 0777 DA 076F JC EOL@ 1394 077A C9 RET 1395 1396 077B 7A BACK@: MOV A,D ;COLUMN:0 ? 1397 077C B7 ORA A 1398 077D C2 078F JNZ BAC@1 ;NO FINST POSITIONS 1399 0780 1C INR E ;IF LINE=0 THEN BEGIN 1400 0781 1D DCR E ;OF SCREEN 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-25 1401 0782 C8 RZ 1402 0783 3A 40EA LDA RESL ;SAVE "RESERVE" PARTIONS 1403 0786 BB CMP E 1404 0787 C8 RZ ;YES,GO OUT 1405 0788 7B MOV A,E ;NO SET NEW LINE 1406 0789 3D DCR A 1407 078A 32 40E8 STA LINE 1408 078D 3E 28 MVI A,WIDTH 1409 078F 3D BAC@1: DCR A 1410 0790 16 DB 16H ;MVI D,# 1411 0791 AF CR@: XRA A ;CARIG. RETURN 1412 0792 32 40E9 STA COLUM 1413 0795 C9 RET 1414 1415 ;SET CURSOR ON BEGIN "NORMAL" SCREEN 1416 0796 CD 0791 HOME@: CALL CR@ ;NULL 1417 0799 3A 40EA LDA RESL ;"RESERVE" LINE SET 1418 079C 32 40E8 LF@1: STA LINE 1419 079F C9 RET 1420 ; 1421 ; UNDERLINE 1422 07A0 3A 40EA UCMD: LDA RESL ;EMPTY ? 1423 07A3 B7 ORA A 1424 07A4 C8 RZ ;EMPTY 1425 07A5 3D DCR A 1426 07A6 6F MOV L,A 1427 07A7 26 00 MVI H,0 1428 07A9 CD 075D CALL COADR+3 1429 07AC 16 28 MVI D,WIDTH 1430 07AE 7E RESX: MOV A,M ;UNDER LINE 1431 07AF E6 3F ANI 3FH ;ASCII 1432 07B1 B0 ORA B ;PARAM 1433 07B2 77 MOV M,A 1434 07B3 23 INX H 1435 07B4 15 DCR D 1436 07B5 C2 07AE JNZ RESX 1437 07B8 C9 RET 1438 ;********************************************************** 1439 ; 1440 ; LINE PRINTER 1441 ; 1442 07B9 E5 LPR: PUSH H 1443 07BA 21 2C01 LXI H,2C01H 1444 07BD 71 MOV M,C 1445 07BE 25 DCR H 1446 07BF 75 MOV M,L 1447 07C0 24 INR H 1448 07C1 7E LPR1: MOV A,M 1449 07C2 87 ADD A 1450 07C3 F2 07C1 JP LPR1 1451 07C6 25 DCR H 1452 07C7 36 03 MVI M,3 1453 07C9 24 INR H 1454 07CA 7E LPR2: MOV A,M 1455 07CB 87 ADD A 1456 07CC FA 07CA JM LPR2 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-26 1457 07CF 25 DCR H 1458 07D0 75 MOV M,L 1459 07D1 E1 POP H 1460 07D2 C9 RET 1461 ; 1462 ; 1463 ; PUNCH OUTPUT 1464 ; 1465 07D3 C9 PUN: RET ; EMPTY 1466 07D4 DS 20 ; RESERVA 1467 ; 1468 ; READER INPUT 1469 ; 1470 07E8 37 RDR: STC ; CHYBA SNIMACE 1471 07E9 C9 RET 1472 ; 1473 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1474 ORG @R@ 1475 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1476 ; SYSTEM RAM SAPI-1 1477 ; 1478 4000 RST1: DS 21 ;RESTART VECTOR 1479 ;<<... USER & MONITOR STACK 1480 ; 1481 ; 1482 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1483 ORG @R@+090H 1484 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1485 ; MONITOR DATA 1486 ; 1487 4090 MSTAK: DS 2 ; SAVE REGISTERS 1488 4092 ACSAV: DS 2 1489 4094 BCSAV: DS 2 1490 4096 DESAV: DS 2 1491 4098 HLSAV: DS 2 1492 409A PCSAV: DS 2 1493 409C SPSAV: DS 2 1494 ; 1495 409E BRAD: DS 2 1496 40A0 INSTR: DS 1 1497 40A1 BRAD2: DS 2 1498 40A3 INST2: DS 1 1499 40A4 LASTC: DS 1 ;LAST CODE "REPEAT" 1500 40A5 CADR: DS 2 ; CURSOR ADR 1501 40A7 CHAR: DS 1 ; CODE 1502 40A8 FLAG: DS 1 ; FLAG MEMBR 1503 40A9 LIMIT: DS 2 ; TIME LIMIT FOR AUTO REPEAT 1504 40AB @BT: DS 1 1505 40AC @PED: DS 1 1506 40AD UADR: DS 2 ;USER ADR 1507 40AF SADR: DS 2 ; START ADR 1508 40B1 EADR: DS 2 ; END ADR 1509 40B3 SUM: DS 1 1510 1511 ;******************************* 1512 ;MONITOR PLUS DATA 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-27 1513 40B4 JOINT: DS 1 1514 40B5 FNAME: DS 11 1515 40C0 BNO: DS 1 ;BLOCK NUMSER,FILE NUMBER 1516 40C1 BTO: DS 1 1517 40C2 BNI: DS 1 ; --- " --- 1518 40C3 BTI: DS 1 1519 40C4 ADRO: DS 2 1520 40C6 ADRI: DS 2 1521 40C8 PBITM: DS 2 1522 40CA FND: DS 1 ; FIND FLAG 1523 1524 ;------------------------- 1525 ; USER I/O DEVICE 1526 ; IODEF NUMBER 1527 40CB CILOC: DS 3 ; (0) 1528 40CE COLOC: DS 3 ; (1) 1529 40D1 R1LOC: DS 3 ; (2) 1530 40D4 R2LOC: DS 3 ; (3) 1531 40D7 P1LOC: DS 3 ; (4) 1532 40DA P2LOC: DS 3 ; (5) 1533 40DD LILOC: DS 3 ; (6) 1534 40E0 CSLOC: DS 3 ; (7) 1535 ;****************************** 1536 ;<< EXTERNE OVLADANE FLAGY: >> 1537 ;****************************** 1538 40E3 MODE: DS 1 ;CRT-MODE 1539 40E4 @IF1: DS 1 ;OPEN FLAGS 1540 40E5 @IF2: DS 1 1541 40E6 @OF1: DS 1 1542 40E7 @OF2: DS 1 1543 40E8 LINE: DS 1 ;LINE 1544 40E9 COLUM: DS 1 ;COLUMN 1545 40EA RESL: DS 1 ;RESERVE 1546 40EB UBYTE: DS 1 ;USER BYTE (REALTIME..) 1547 40EC @SFLG: DS 1 ;#0..NO STOP 1548 000A EXSER EQU $-MODE ;EXTERNAL SERVICE 1549 40ED IOBYT: DS 1 ;I/O CONTROL 1550 40EE MEMTOP: DS 2 ;MEMTOP "RAM" 1551 1552 ;------------------------- 1553 ; I/O BUFFERS 1554 40F0 DS 1 ;BLOCK LABEL 1555 40F1 BOUT: DS 255 ;BLOCK LENGHT 1556 41F0 BOEND EQU $ 1557 ; 1558 41F0 DS 1 ; BLOCK LABELS 1559 41F1 BIN: DS 255 ;BLOCK LENGHT 1560 42F0 BIEND EQU $ 1561 ; 1562 42F0 WRNM: DS 11 1563 ;============================= 1564 ORG @R@ + 300H 1565 ;============================= 1566 ; "MAT" ARRAY 1567 4300 DS 0FFH 1568 ;============================= 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE 1-28 1569 ORG @R@ + 400H 1570 ;============================= 1571 ; SYSTEM OR USER PROGRAMS 1572 ;---->>>>>>>>>>> 1573 ; 1574 ; 1575 ; 1576 END 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE S Macros: Symbols: 40AB @BT 40E4 @IF1 40E5 @IF2 40E6 @OF1 40E7 @OF2 40AC @PED 4000 @R@ 40EC @SFLG 4092 ACSAV 40C6 ADRI 40C4 ADRO 0002 ALLINT 067E ANAL 0680 ANAL0 0667 ASHEX 014E ASIGN 0159 ASS0 016B ASS1 0175 ASS2 0186 ASS3 078F BAC@1 0008 BACK 077B BACK@ 0002 BATCH 4094 BCSAV 0218 BEEP 04DC BEG 0055 BEGIO 0007 BELL 42F0 BIEND 41F1 BIN 40C2 BNI 40C0 BNO 41F0 BOEND 40F1 BOUT 409E BRAD 40A1 BRAD2 40C3 BTI 40C1 BTO 40A5 CADR 003B CCPM 0001 CCRT 40A7 CHAR 005E CI 02A4 CI1 028B CICO 40CB CILOC 0678 CIMIN 067B CINCR 00D3 CITB 0228 CLCK1 022E CLCK2 0224 CLICK 00FC CMSK 05E4 CO 04B8 COA 075A COADR 073B COEX 0756 COEX1 069C COINIT 04CF COLD 030D COLO 40CE COLOC 40E9 COLUM 0629 COMPR 06EE CONXT 00CB COTB 0000 CPM 000D CR 0791 CR@ 05DD CRLF 06A4 CRT 06DE CRTWR 40E0 CSLOC 01C6 CSTS 01FB CSTS0 01C0 CSTS1 0561 CTBL 0010 CTRLP 0011 CTRLQ 0017 CTRLW 0000 CTTY 00A0 CURSOR 0003 CUSE 0646 DADR 064C DADR0 0651 DBYT 0694 DBYTE 4096 DESAV 0433 DI0 0437 DI1 044B DI2 0447 DIA 042E DISP 0643 DNADR 01FF DTTO? 40B1 EADR 04B5 ECHO 001E EOL 076F EOL@ 0800 EP2 059A EP2? 0013 EQUAL FFFF ERAM 0162 ERROR 001F ERS 072A ERS@ 0003 ETX 05B7 EX0 05BA EX1 05CF EX3 05F8 EX4 04BF EXFLG 05B1 EXPR 05F0 EXPRM 05AE EXPRO 0591 EXROM 000A EXSER 0481 FI1 047A FILL 40A8 FLAG 40B5 FNAME 40CA FND 02BC FREE 0392 GO@ 0374 GO@BR 035B GOTO 05A0 HBYTE 0018 HEIGHT 0624 HILO 4098 HLSAV 001D HOME 0796 HOME@ 0009 HT 05A6 HXASC 051E INIC 0554 INJM@ 0558 INJMP 40A3 INST2 40A0 INSTR 40ED IOBYT 0023 IOCHK 05EB IOCOM 0604 IODEF 061E IODEF1 018B IONEW 002B IOSET 00B3 IOTAB 40B4 JOINT 0265 KBR 0294 KBRD 01E0 KBRS1 01CE KBRST 0243 KEY 0233 KEYIN 40A4 LASTC 'MONITOR SAPI-1 V4.0F' MACRO-80 3.44 09-Dec-81 PAGE S-1 05A4 LBYTE 0040 LCRT 0018 LCT 000A LF 06FC LF@ 079C LF@1 40DD LILOC 40A9 LIMIT 40E8 LINE 0040 LINOF 0080 LLPT 003F LMSK 0301 LO 02B6 LONG 00DB LOTB 07B9 LPR 07C1 LPR1 07CA LPR2 0018 LREST 02B9 LSET 0000 LTTY 00C0 LUSE 000D LVER 04FA MEM1 050A MEM2 065F MEMCK 40EE MEMTOP 000B MINUS 0011 MMODE 0490 MO1 40E3 MODE 0100 MONIT 0489 MOVE 4090 MSTAK 0526 NEXT 024E NXKEY 023D NXLIN 40D7 P1LOC 40DA P2LOC 40C8 PBITM 409A PCSAV 00CF PMSK 02F5 PO 00EB POTB 0010 PPTR 02AA PRESS 0000 PTTY 07D3 PUN 0020 PUSE1 0030 PUSE2 0192 QUERY 001B QUES 40D1 R1LOC 40D4 R2LOC 062F RADR 4000 RAM 0636 RBYT 07E8 RDR 40EA RESL 0313 RESTA 07AE RESX 0419 RGNAM 02E9 RI 02F0 RICOM 00E3 RITB 00F3 RMSK 0713 ROLL 0716 ROLL1 0004 RPTR 4000 RST1 032E RST10 034A RST20 00CF RSTN 0000 RTTY 0008 RUSE1 000C RUSE2 40AF SADR 01F8 SET80 02C8 SETLST FFFF SP1 0000 SP1A 0697 SPACE 0033 SPCL 409C SPSAV 049D SU1 04AC SU2 049A SUBS 40B3 SUM 0065 TABCOD 0046 TCPM 068A TEXT 3800 TVBEG 3DE7 TVEND 40AD UADR 40EB UBYTE 07A0 UCMD 0012 UDATA 0010 UMODE 0013 URES 0011 USTAT 00F3 VERS 02AC WAIT0 02BE WAIT1 0028 WIDTH 42F0 WRNM 03A8 X 03B6 X0 03BE X1 03C3 X10 03D5 X2 0400 XDIS1 03F6 XDISP 0547 XY No Fatal error(s) @BT 1504# @IF1 1539# @IF2 1540# @OF1 1541# @OF2 1542# @PED 1505# @R@ 27# 100 104 108 112 117 122 127 900 951 953 1474 1483 1564 1569 @SFLG 1547# ACSAV 671 686 752 753 1488# ADRI 1520# ADRO 1519# ALLINT 80# ANAL 1061 1218# ANAL0 1219# ASHEX 247 1050 1201# ASIGN 262# 980 ASS0 267# 271 ASS1 268 279# ASS2 284# 293 ASS3 286 294# BAC@1 1398 1409# BACK 34# 1286 BACK@ 1287 1396# BATCH 52# BCSAV 754 755 1489# BEEP 276 413# 1293 BEG 897# 982 BEGIO 39# 903 BELL 35# 1292 BIEND 1560# BIN 1559# BNI 1517# BNO 1515# BOEND 1556# BOUT 1555# BRAD 610 655 1495# BRAD2 664 1497# BTI 1518# BTO 1516# CADR 124 1262 1273 1356 1500# CCPM 99 129# CCRT 51# CHAR 1274 1355 1501# CI 136 143# 233 847 CI1 409 527 532# CICO 139 505# CILOC 206 1104 1527# CIMIN 262 708 796 834 1215# CINCR 253 645 684 799 956 1084 1217# CITB 144 205# CLCK1 423# 424 CLCK2 426# 427 CLICK 415 421# 552 CMSK 44# CO 137 207 211 235 850 955 1070 1073# 1184 1187 1232 1239 COA 103 107 111 315 326 732 788 848# COADR 1276 1305 1319 1350 1369# 1428 COEX 1271 1350# COEX1 1359 1361# COINIT 905 1261# COLD 96 136 232 886# COLO 203 207 589# COLOC 204 1528# COLUM 1308 1311 1412 1544# COMPR 628 1124# 1344 CONXT 1304 1305# COTB 203# 1074 CPM 9# 18 90 93 223 349 515 945 CR 32# 215 652 659 724 1069 1148 1222 1280 CR@ 1281 1411# 1416 CRLF 244 669 688 949 1069# 1155 CRT 203 507 590 1269# CRTWR 1279 1296# CSLOC 341 1534# CSTS 141 238 345# 794 CSTS0 369 375 379# CSTS1 340# 348 CTBL 961 980# 1004 CTRLP 559 1255# CTRLQ 487 1254# CTRLW 38# 485 CTTY 50# CURSOR 1256# 1360 CUSE 53# DADR 248 1156# DADR0 1156 1176# DBYT 249 742 747 833 1177 1182# 1237 DBYTE 772 1237# DESAV 756 757 1490# DI0 769# 795 800 DI1 771# 777 DI2 780# 793 DIA 774 778# DISP 766# 983 DNADR 770 841 1155# DTTO? 401# 533 EADR 1508# ECHO 280 847# 1046 1217 EOL 1253# 1284 EOL@ 1285 1340 1388# 1393 EP2 25# 907 1012 1014 EP2? 906 1010 1014# EQUAL 106# 279 316 644 733 1044 ERAM 23# 911 ERROR 140 141 246 275# 291 700 964 1011 1043 1062 1099 ERS 1252# 1263 1290 ERS@ 1291 1340# 1345 ETX 37# EX0 1046# 1058 EX1 1047# 1082 EX3 1051 1060# 1086 EX4 1049 1084# 1089 EXFLG 257 868# EXPR 245 766 806 818 1044# 1134 EXPRM 648 1080# 1143 EXPRO 1043# 1066 EXROM 981 984 987 988 989 990 991 993 994 995 997 999 1000 1001 1002 1010# EXSER 870 1548# FI1 810# 812 902 FILL 805# 985 FLAG 365 525 550 929 1502# FNAME 1514# FND 1522# FREE 541# 543 GO@ 646 653 661 669# GO@BR 647 654# GOTO 644# 986 HBYTE 1027# 1183 HEIGHT 1248# 1315 1322 HILO 250 773 789 811 825 1119# HLSAV 597 604 679 758 759 1491# HOME 1257# 1288 HOME@ 1289 1416# HT 33# HXASC 256 1034# INIC 277 935# INJM@ 134 963# INJMP 965# 1077 INST2 666 1498# INSTR 657 1496# IOBYT 114 120 299 308 345 569 576 583 904 1075 1549# IOCHK 114# 139 239 IOCOM 145 572 586 1076# IODEF 242 1093# IODEF1 1098 1108# IONEW 299# IOSET 119# 140 240 IOTAB 192# 264 307 JOINT 1513# KBR 205 205 209 484# 486 503 KBRD 484 495 511# 564 KBRS1 359 365# KBRST 351# 508 KEY 457# 464 KEYIN 370 447# 532 535 542 LASTC 401 546 927 1499# LBYTE 1031# 1186 LCRT 69# LCT 962 1004# LF 36# 215 1071 1282 LF@ 1283 1313# LF@1 1316 1418# LILOC 208 1533# LIMIT 404 406 540 1503# LINE 1369 1407 1418 1543# LINOF 1249# 1250 1327 LLPT 70# LMSK 47# LO 138 203 237 581# LONG 403 539# LOTB 207# 582 LPR 207 589 1353 1442# LPR1 1448# 1450 LPR2 1454# 1456 LREST 1250# 1334 1341 LSET 411 540# LTTY 68# LUSE 71# LVER 219# 936 MEM1 909# 923 MEM2 916 924# MEMCK 241 1192# MEMTOP 925 1095 1193 1550# MINUS 102# 1215 MMODE 77# 890 MO1 822# 826 MODE 561 563 876 1296 1351 1357 1538# 1548 MONIT 14# 226 MOVE 817# 992 MSTAK 898 930 942 1487# NEXT 251 640 942# 943 960 NXKEY 459 461 463# NXLIN 452# 467 P1LOC 211 1531# P2LOC 212 1532# PBITM 1521# PCSAV 637 650 677 760 1492# PMSK 46# PO 138 236 574# POTB 211# 575 PPTR 63# PRESS 534# 536 PTTY 62# PUN 211 1465# PUSE1 64# PUSE2 65# QUERY 307# 996 QUES 110# 275 R1LOC 209 1529# R2LOC 210 1530# RADR 654 663 831 1133# RAM 17# 908 RBYT 715 837 1141# RDR 209 1470# RESL 497 1317 1321 1402 1417 1422 1545# RESTA 483 596# 952 RESX 1430# 1436 RGNAM 685 752# RI 137 205 234 567# RICOM 570# 579 RITB 209# 568 RMSK 45# ROLL 1325# 1337 ROLL1 1327# 1333 RPTR 57# RST1 1478# RST10 612# 634 RST20 621 630 632# RSTN 28# 658 667 RTTY 56# RUSE1 58# RUSE2 59# SADR 1507# SET80 366 371 377# SETLST 530 546# SP1 7# 83 SP1A 8# 854 1160 SPACE 252 313 728 779 1157 1238# SPCL 124# 243 SPSAV 601 675 761 931 1493# SU1 832# 842 SU2 836 839# SUBS 831# 998 SUM 1509# TABCOD 148# 547 TCPM 132 136# TEXT 254 937 1230# 1234 TVBEG 24# 1251 1261 1378 TVEND 1251# 1343 UADR 1506# UBYTE 1546# UCMD 494 499 1422# UDATA 75# UMODE 78# 888 URES 79# 886 USTAT 76# VERS 215# 219 935 WAIT0 535# 538 WAIT1 542# 545 WIDTH 1247# 1250 1309 1325 1392 1408 1429 WRNM 1562# X 639 684# 1003 X0 689# 692 X1 687 693# X10 696# 702 X2 693 704 706# 712 726 XDIS1 703 733# XDISP 689 706 728# XY 255 957# 136# TEXT 254 937 1230# 1234 TVBEG 24# 1251 1261 1378 TVEND 1251# 1343 UADR 1506# UBYTE 1546# UCMD
Ú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
ZPS | Technické prostředky | Programové vybavení | Dokumentace