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