Ú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 ; DOPLNEN HANDLER SNIMACE FS1503 PRO DPP-1
9 ;
10 ; VOLBA SYSTEMU
11 FFFF SP1 EQU -1 ; -1 YES
12 0000 SP1A EQU 0 ;FOR CP/M SYSTEM MONITOR
13 0000 CPM EQU 00 ;JPR-1 EPROM VERSION
14 ;
15 ;
16 ; *** DEFINOVANI PAMETOVEHO PROSTORU *
17 ;
18 0100 MONIT EQU 100H ; START MONITORU
19 ; NASTAVENI PAMETI R A M
20
21 4000 RAM EQU 4000H ;START RAM
22 IF CPM
23 ERAM EQU 9FFFH ;TOP RAM
24 TVBEG EQU 0E800H ;TV-RAM
25 EP2 EQU 800H+200H ; SECOND EPROM
26 ELSE
27 FFFF ERAM EQU 0FFFFH ;RAM-1 48K
28 3800 TVBEG EQU 3800H ;TV-RAM
29 0800 EP2 EQU 800H ; SECOND EPROM
30 ENDIF
31 4000 @R@ EQU 4000H ;RESTART VECTOR
32 00CF RSTN EQU 0CFH ; RST 1
33
34 ; GLOBAL CONSTANTS
35
36 000D CR EQU 0DH ; CARRIAGE RETURN
37 0009 HT EQU 9 ; TAB
38 0008 BACK EQU 8 ; BACK SPACE
39 0007 BELL EQU 7 ; BELL
40 000A LF EQU 0AH ; LINE FEED
41 0003 ETX EQU 03H ; BREAK CHAR.(CONTROL C)
42 0017 CTRLW EQU 17H ; BREAK USER
43 0055 BEGIO EQU 55H ; START VALUE FOR I/O BYTE
44
45
46 ; I/O STATUS BYTE MASKS AND VALUES
47
48 00FC CMSK EQU 11111100B ; MASK FOR CONZOLE
49 00F3 RMSK EQU 11110011B ; MASK FOR READER
50 00CF PMSK EQU 11001111B ; MASK FOR PUNCH
51 003F LMSK EQU 00111111B ; MASK FOR LIST
52
53
54 0000 CTTY EQU 00000000B ; CONZOLE=TTY
55 0001 CCRT EQU 00000001B ; CONZOLE=CRT
56 0002 BATCH EQU 00000010B ; INPUT=READER,OUTPUT=LIST
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-1
57 0003 CUSE EQU 00000011B ; USER REFINED CONZOLE
58
59
60 0000 RTTY EQU 00000000B ; READER=TTY
61 0004 RPTR EQU 00000100B ; READER=PTR
62 0008 RUSE1 EQU 00001000B ; USER DEFINED READER 1
63 000C RUSE2 EQU 00001100B ; USER DEFINED READER 2
64
65
66 0000 PTTY EQU 00000000B ; PUNCH=TTY
67 0010 PPTR EQU 00010000B ; PUNCH=PTR
68 0020 PUSE1 EQU 00100000B ; USER DEFINED PUNCH 1
69 0030 PUSE2 EQU 00110000B ; USER DEFINED PUNCH 2
70
71
72 0000 LTTY EQU 00000000B ; LIST=TTY
73 0040 LCRT EQU 01000000B ; LIST=CRT
74 0080 LLPT EQU 10000000B ; LIST=LPT
75 00C0 LUSE EQU 11000000B ; USER DEFINED LIST
76 ;
77 ; SEPI CONTROL I/O
78 ;
79 0012 UDATA EQU 12H
80 0011 USTAT EQU 11H
81 0011 MMODE EQU 11H
82 0010 UMODE EQU 10H
83 0013 URES EQU 13H
84 0002 ALLINT EQU 02H
85
86 0000' ASEG
87 IF SP1
88 ;
89 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
90 ; RESTARTS & CP/M ENTRY
91 ;
92 ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
93
94 IF CPM
95 ORG 100H
96 ENDIF
97 IF NOT CPM
98 ORG 0 ; BEGIN MEMORY
99 ENDIF
100 0000 C3 04CF JMP COLD ; COLD START
101 0003 55 DB 55H ;INTEL IOBYT
102 0004 40 DB 40H ;V 4.0
103 0005 C3 003B JMP CCPM
104 0008 C3 4000 JMP @R@
105 ;
106 000B 3E 2D MINUS: MVI A,'-'
107 000D C3 04B8 JMP COA
108 0010 C3 4003 JMP @R@+3
109 ;
110 0013 3E 3D EQUAL: MVI A,'='
111 0015 C3 04B8 JMP COA
112 0018 C3 4006 JMP @R@+6
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-2
113 ;
114 001B 3E 3F QUES: MVI A,'?'
115 001D C3 04B8 JMP COA
116 0020 C3 4009 JMP @R@+9
117 ;
118 0023 3A 40ED IOCHK: LDA IOBYT
119 0026 C9 RET
120 0027 50 DB 'P'
121 0028 C3 400C JMP @R@+12
122 ;
123 002B 79 IOSET: MOV A,C
124 002C 32 40ED STA IOBYT
125 002F C9 RET
126 0030 C3 400F JMP @R@+15
127 ;
128 0033 2A 40A5 SPCL: LHLD CADR
129 0036 7E MOV A,M
130 0037 C9 RET ; FOR PEDIT
131 0038 C3 4012 JMP @R@+18
132 ;
133 003B 79 CCPM: MOV A,C ;CONTINUE ENTRY TO CPM
134 003C 4B MOV C,E ; INTEL
135 003D D5 PUSH D ;DE->HL
136 003E 21 0046 LXI H,TCPM
137 0041 06 0B MVI B,11 ; MAX CPM ENTRY
138 0043 C3 0554 JMP INJM@
139 ;-------------------------------
140 0046 04CF 005E TCPM: DW COLD,CI
141 004A 05E4 02E9 DW CO,RI
142 004E 02F5 0301 DW PO,LO
143 0052 028B 0023 DW CICO,IOCHK
144 0056 002B 0162 DW IOSET,ERROR
145 005A 0162 01C6 DW ERROR,CSTS
146
147 005E E5 CI: PUSH H
148 005F 21 00D3 LXI H,CITB
149 0062 C3 05E8 JMP IOCOM-3
150 ;
151
152 0065 41 51 31 TABCOD: DB 'AQ1'
153 0068 1B 0D DB 1BH,0DH ; ESC, CR
154 006A 50 30 DB 'P0'
155
156 006C 5A 53 57 32 DB 'ZSW2 LO9'
157 0070 20 4C 4F 39
158
159 0074 58 44 45 33 DB 'XDE3MKI8'
160 0078 4D 4B 49 38
161
162 007C 43 46 52 34 DB 'CFR4NJU7'
163 0080 4E 4A 55 37
164
165 0084 56 47 54 35 DB 'VGT5BHY6'
166 0088 42 48 59 36
167
168 ; POKRACOVANI TABULKY - SHIFT
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-3
169 008C 10 11 DB 10H,11H ; ^A ^Q
170 008E 21 DB '!'
171 008F 0A 0D DB 0AH,0DH
172 0091 7F DB 7FH
173 0092 29 DB ')'
174
175 0093 5A DB 'Z'
176 0094 13 17 DB 13H,17H ; ^S, ^W
177 0096 3F DB '?'
178 0097 09 DB 9 ; TABELATOR/SHIFT SPC
179 0098 3D 23 28 DB '=#('
180
181 009B 03 DB 3 ; EXT/SHIFT X
182 009C 26 45 22 2E DB '&E".*@>'
183 00A0 2A 40 3E
184
185 00A3 5B 5C 25 24 DB '[\%$,-:<'
186 00A7 2C 2D 3A 3C
187
188 00AB 5D 5F DB ']_'
189 00AD 08 DB 8 ; BACKSPACE
190 00AE 5E DB '^'
191 00AF 3B 2B 2F DB ';+/'
192 00B2 27 DB 27H ; ' UVOZOVKA
193
194 ; I/O DEVICE TABLE
195 ;
196 00B3 43 03 IOTAB: DB 'C',03H ;CONSOLE (LOCAL, MASK)
197 00B5 54 43 42 31 DB 'TCB1' ;PHYSICAL
198 00B9 52 0C DB 'R',0CH ;READER
199 00BB 54 50 31 32 DB 'TP12'
200 00BF 50 30 DB 'P',30H ;PUNCHER
201 00C1 54 50 31 32 DB 'TP12'
202 00C5 4C C0 DB 'L',0C0H ;LIST
203 00C7 54 43 4C 31 DB 'TCL1'
204
205 ; ASSING TABLE FOR LOG. DEVICE
206 ;
207 00CB 030D 06A4 COTB: DW COLO,CRT,LO,COLOC
208 00CF 0301 40CE
209 00D3 0265 0265 CITB: DW KBR,KBR,RI,CILOC
210 00D7 02E9 40CB
211 00DB 030D 05E4 LOTB: DW COLO,CO,LPR,LILOC
212 00DF 07B9 40DD
213 00E3 0265 07E8 RITB: DW KBR,RDR,R1LOC,R2LOC
214 00E7 40D1 40D4
215 00EB 05E4 07D3 POTB: DW CO,PUN,P1LOC,P2LOC
216 00EF 40D7 40DA
217 ;
218 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
219 00F3 0D 0A VERS: DB CR,LF
220 00F5 53 41 50 49 DB 'SAPI-1 V4.1'
221 00F9 2D 31 20 56
222 00FD 34 2E 31
223 000D LVER EQU $-VERS ; DELKA OHLASENI
224 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-4
225
226 ;***************************************************
227 IF CPM
228 ORG MONIT+100H
229 ELSE
230 ORG MONIT ; *** ZACATEK MONITORU ***
231 ENDIF
232 ;***************************************************
233
234 ; TABLE OF EXTERNALLY REFERENCED ROUTINES
235
236 0100 C3 04CF JMP COLD ; START MONITORU
237 0103 C3 005E JMP CI ; CONZOLE INPUT <A>
238 0106 C3 02E9 JMP RI ; READER INPUT <A>, CY=1 ERROR
239 0109 C3 05E4 JMP CO ; CONZOLE OUTPUT <C>
240 010C C3 02F5 JMP PO ; PUNCH OUTPUT <C>
241 010F C3 0301 JMP LO ; LIST OUTPUT <C>
242 0112 C3 01C6 JMP CSTS ; CONZOLE INPUT STATUS
243 0115 C3 0023 JMP IOCHK ; I/O BYTE CHEK <A>
244 0118 C3 002B JMP IOSET ; I/O BYTE SET <C>
245 011B C3 065F JMP MEMCK ; SIZE MEMORY CHECK
246 011E C3 0604 JMP IODEF ; DEFINE USER I/O ENTRY POINTS
247 0121 C3 0033 JMP SPCL ; I/O CONTROL SPECIAL
248 0124 C3 05DD JMP CRLF ; NOVY RADEK
249 0127 C3 05B1 JMP EXPR ; SKLADANI ADRES (N=POCET <C>, SP)
250 012A C3 0162 JMP ERROR ; HLASENI CHYBY
251 012D C3 0667 JMP ASHEX ; PREVOD ASCII->HEX,CHYBA-CARRY
252 0130 C3 0646 JMP DADR ; ZOBRAZENI ADRESY <HL>
253 0133 C3 0651 JMP DBYT ; ZOBRAZENI ZNAKU <A> NA 'CO'
254 0136 C3 0624 JMP HILO ; HL+1,SROVNANI S DE,(HL=0)
255 0139 C3 0526 JMP NEXT ; PREDANI MONITORU
256 013C C3 0697 JMP SPACE ; MEZERA NA 'CO'
257 013F C3 067B JMP CINCR ; ECHO+ANALIZA
258 0142 C3 068A JMP TEXT ; VYPIS TEXTU <HL=ADRESA>,<D=DELKA>
259 0145 C3 0547 JMP XY ; PROVEDENI POVELU DLE <A>
260 0148 C3 05A6 JMP HXASC ; PREVOD HEX->ASCII DO <A>,<C>
261 014B C3 04BF JMP EXFLG ; EXTERNAL CONTROL FLAGS
262 ;
263 ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
264 ; ASSIGN I/O DEVICE MODUL
265 ;
266 014E CD 0678 ASIGN: CALL CIMIN ;NAME
267 ; <A>..NAME (EXTERN CALLS)
268 0151 21 00B3 LXI H,IOTAB ;TABLE
269 0154 0E 04 MVI C,4 ;COUNTER
270 0156 11 0006 LXI D,6 ;OFFSET
271 0159 BE ASS0: CMP M ;IS IT?
272 015A CA 016B JZ ASS1 ;+
273 015D 19 DAD D ;ADR
274 015E 0D DCR C ;ALL ?
275 015F C2 0159 JNZ ASS0 ;-
276 ;
277 ; ERROR MESSAGE
278 ;
279 0162 CD 001B ERROR: CALL QUES
280 0165 CD 0218 CALL BEEP
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-5
281 0168 C3 051E JMP INIC ;START
282 ;
283 016B CD 0013 ASS1: CALL EQUAL
284 016E CD 04B5 CALL ECHO ;PHIS.D
285 0171 23 INX H
286 0172 46 MOV B,M ;MASK
287 0173 0E 00 MVI C,0 ;IOBYT
288 0175 23 ASS2: INX H
289 0176 BE CMP M ;IS IT?
290 0177 CA 0186 JZ ASS3 ;+
291 017A F5 PUSH PSW
292 017B 3E 55 MVI A,55H ;OFFSET
293 017D 81 ADD C
294 017E 4F MOV C,A
295 017F DA 0162 JC ERROR ;NO #
296 0182 F1 POP PSW
297 0183 C3 0175 JMP ASS2 ;NEXT
298 0186 79 ASS3: MOV A,C ;COMPUTE IOBYT
299 0187 A0 ANA B ;MASK
300 0188 4F MOV C,A ;SAVE
301 0189 78 MOV A,B
302 018A 2F CMA ;NEG
303 018B 21 40ED IONEW: LXI H,IOBYT
304 018E A6 ANA M
305 018F B1 ORA C
306 0190 77 MOV M,A
307 0191 C9 RET
308 ;
309 ; QUERY DEVICE
310 ;
311 0192 21 00B3 QUERY: LXI H,IOTAB ;TABLE
312 0195 3A 40ED LDA IOBYT ; READ
313 0198 47 MOV B,A ;SAVE
314 0199 CD 019C CALL $+3
315 019C CD 019F CALL $+3 ;DO IT
316 ; DISPLAY ASSIGN I/O
317 019F CD 0697 CALL SPACE
318 01A2 7E MOV A,M ; READ LOGICAL NAME
319 01A3 CD 04B8 CALL COA
320 01A6 CD 0013 CALL EQUAL
321 01A9 E5 PUSH H ;SAVE ADR
322 01AA 23 INX H
323 01AB 23 INX H ;ADR
324 01AC 78 MOV A,B
325 01AD E6 03 ANI 3
326 01AF 5F MOV E,A
327 01B0 16 00 MVI D,0
328 01B2 19 DAD D ;PHYSICAL DEVICE ADR
329 01B3 7E MOV A,M
330 01B4 CD 04B8 CALL COA
331 01B7 78 MOV A,B
332 01B8 0F RRC
333 01B9 0F RRC ;ROTATE IOBYT
334 01BA 47 MOV B,A
335 01BB E1 POP H
336 01BC 1E 06 MVI E,6 ;OFFSET
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-6
337 01BE 19 DAD D
338 01BF C9 RET ;HL=NEXT ADR
339 ;
340 ;%%%%%%%%%%%%%%%%%%%%%%%%%
341 ; I/O DEVICE CONTROL
342 ;%%%%%%%%%%%%%%%%%%%%%%%%%
343
344 01C0 B7 CSTS1: ORA A
345 01C1 FA 40E0 JM CSLOC ;USER CSTS
346 01C4 AF XRA A
347 01C5 C9 RET ;BATCH-NOT READY
348 ;
349 01C6 3A 40ED CSTS: LDA IOBYT
350 01C9 1F RAR
351 01CA 1F RAR
352 01CB DA 01C0 JC CSTS1
353 IF NOT CPM
354
355 ; STATUS KLAVESNICE
356
357 01CE 3A 2400 KBSTS: LDA 2400H ; STATUS SC/
358 01D1 0F RRC
359 01D2 3E FF MVI A,0FFH
360 01D4 CE 00 ACI 0
361 01D6 C9 RET
362 01D7 FFFF FFFF DW -1,-1,-1,-1,-1,-1,-1,-1,-1,-1
363 01DB FFFF FFFF
364 01DF FFFF FFFF
365 01E3 FFFF FFFF
366 01E7 FFFF FFFF
367 01EB FFFF FFFF DW -1,-1,-1,-1,-1,-1,-1,-1,-1,-1
368 01EF FFFF FFFF
369 01F3 FFFF FFFF
370 01F7 FFFF FFFF
371 01FB FFFF FFFF
372 01FF FFFF FFFF DW -1,-1,-1,-1,-1,-1,-1,-1,-1,-1
373 0203 FFFF FFFF
374 0207 FFFF FFFF
375 020B FFFF FFFF
376 020F FFFF FFFF
377 0213 FF FF FF FF DB -1,-1,-1,-1,-1
378 0217 FF
379 ;
380 ELSE
381 PUSH B
382 PUSH D
383 PUSH H
384 MVI C,6
385 MVI E,0FFH
386 CALL 5
387 CPI CTRLW
388 CZ RESTA ; BREAK
389 ORA A
390 POP H
391 POP D
392 POP B
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-7
393 RET
394 ;
395 ENDIF
396
397 0218 C5 BEEP: PUSH B
398 0219 0E 28 MVI C,40
399 021B CD 0224 CALL CLICK
400 021E 0D DCR C
401 021F C2 021B JNZ $-4
402 0222 C1 POP B
403 0223 C9 RET
404
405 0224 26 24 CLICK: MVI H,24H ; PORT0
406 0226 36 00 MVI M,0 ; REPRO ON
407 0228 05 CLCK1: DCR B
408 0229 C2 0228 JNZ CLCK1
409 022C 36 02 MVI M,2 ; REPRO OFF
410 022E 05 CLCK2: DCR B
411 022F C2 022E JNZ CLCK2
412 0232 C9 RET
413
414
415 ; PROHLEDAVANI KLAVESNICE ANK-1
416 ;===============================
417 ; KONSTANTNI DOBA PROHLEDAVANI 0.816 MS/488NS.
418 ; PLATNA POSLEDNI NALEZENA KLAVESA.
419 ; B...CITAC DO 8, C... LINEARNI KOD
420 ; D...SHIFT FLAG, SOUCASNE MASKA LED.
421 ; E...CITAC LINEARNIHO KODU KLAVES:
422 ; A-Q-1-LF-CR-P-0 Z-S-W-SP-L-O-9..
423 ; H...UKAZATEL NA PORT0 JPR-1
424 ; L...VYBER MATICE VODOROVNE
425
426 ; PO PROVEDENI KOD V 'A', 'C' REGISTRU.
427 ; PRIZNAK 'SHIFT' V 'D' REGISTRU.
428 ; FLAG 'SIGN' SIGNALIZUJE STISKNUTI-
429 ; PLUS...ANO, MINUS...NE
430
431 0233 E5 KEYIN: PUSH H ; V2.2 20.1.85
432 0234 11 1FFF LXI D,1FFFH ; MASKA&CITAC
433 0237 0E 00 MVI C,0
434 0239 26 24 MVI H,24H ; PORT0
435 023B 3E EF MVI A,11101111B
436 023D 6F NXLIN: MOV L,A
437 023E A2 ANA D
438 023F 77 MOV M,A
439 0240 06 08 MVI B,8 ; CITAC BITU
440 0242 7E MOV A,M
441 0243 0F KEY: RRC
442 0244 1C INR E ; NACTI KOD
443 0245 DA 024E JC NXKEY ; SKOC, KDYZ NIC
444 0248 4B MOV C,E ; KOD KLAVESY
445 0249 C2 024E JNZ NXKEY ; SHIFT ?
446 024C 16 3F MVI D,3FH ; ANO NASTAV MASKU
447 024E 05 NXKEY: DCR B
448 024F C2 0243 JNZ KEY
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-8
449 0252 7D MOV A,L
450 0253 0F RRC
451 0254 DA 023D JC NXLIN
452 0257 0D DCR C ; NASTAV 'SIGN'
453 0258 E1 POP H
454 0259 F8 RM ; STISKNUTA?
455 025A 7A MOV A,D ; SHIFT?
456 025B E6 20 ANI 20H
457 025D 79 MOV A,C
458 025E C8 RZ ; NE,NAVRAT
459 025F 83 ADD E ; ANO, +39
460 0260 4F MOV C,A
461 0261 C9 RET
462
463 ENDIF
464 ;
465 ;
466 ;
467 0262 CD 0313 CALL RESTA ;^W
468 0265 CD 0294 KBR: CALL KBRD
469 0268 FE 17 CPI CTRLW
470 026A CA 0262 JZ KBR-3 ; SIMUL. INTERRUPT
471 026D FE 11 CPI CTRLQ
472 026F C0 RNZ
473
474 0270 C5 PUSH B ;WINDOW
475 0271 D5 PUSH D
476 0272 E5 PUSH H
477 0273 06 00 MVI B,0
478 0275 CD 07A0 CALL UCMD ;CLEAR
479 0278 CD 0294 CALL KBRD ;NUMBER OF RESEVED LINES
480 027B E6 0F ANI 0FH ;MAX 15
481 027D 32 40EA STA RESL
482 0280 06 80 MVI B,80H ;SET NEW LINE
483 0282 CD 07A0 CALL UCMD
484 0285 E1 POP H
485 0286 D1 POP D
486 0287 C1 POP B
487 0288 C3 0265 JMP KBR ;NEW CHAR.
488 ;
489 028B 79 CICO: MOV A,C ; DIRECT CRT/KBRD
490 028C 3C INR A
491 028D C2 06A4 JNZ CRT ; ONLY OUTPUT
492 0290 CD 01CE CALL KBSTS
493 0293 C8 RZ
494
495 0294 E5 KBRD: PUSH H
496 ;
497 IF CPM
498 KBR1 MVI E,0FFH
499 MVI C,6
500 CALL 5
501 ANI 7FH
502 JNZ KBR1 ;WAIT
503 ELSE
504 0295 26 27 MVI H,27H
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-9
505 0297 36 02 MVI M,2 ; AC/=0 ZVUK/=1
506 0299 7E KBRD1: MOV A,M ; SC/ = 00
507 029A 0F RRC
508 029B DA 0299 JC KBRD1
509 029E 24 INR H
510 029F 7E MOV A,M ; KOD ZNAKU
511 02A0 2F CMA
512 02A1 E6 7F ANI 7FH
513 02A3 6F MOV L,A
514 02A4 25 DCR H
515 02A5 36 03 MVI M,3 ; AC/=1
516 02A7 7E KBRD2: MOV A,M
517 02A8 0F RRC
518 02A9 D2 02A7 JNC KBRD2
519 02AC 36 02 MVI M,2 ; AC/=0
520 02AE 3A 40E3 LDA MODE
521 02B1 E6 04 ANI 4 ; LOWER OPTION?
522 02B3 7D MOV A,L
523 02B4 E1 POP H
524 02B5 C2 02DB JNZ CNTRP ; IF LOWER
525 02B8 FE 61 CPI 61H ; <'a'
526 02BA DA 02DB JC CNTRP
527 02BD FE 7B CPI 7BH ; >'z'
528 02BF D2 02DB JNC CNTRP
529 02C2 D6 20 SUI 20H ; LOWER=>UPPER
530 02C4 C3 02DB JMP CNTRP
531 02C7 FFFF FFFF DW -1,-1,-1,-1,-1,-1,-1,-1,-1,-1
532 02CB FFFF FFFF
533 02CF FFFF FFFF
534 02D3 FFFF FFFF
535 02D7 FFFF FFFF
536
537 ENDIF
538 ;
539 02DB FE 10 CNTRP: CPI CTRLP ;^P
540 02DD C0 RNZ
541 02DE 3A 40E3 LDA MODE
542 02E1 EE 01 XRI 1
543 02E3 32 40E3 STA MODE ; LPR ON/OFF
544 02E6 C3 0294 JMP KBRD
545 ;
546 ;
547 02E9 E5 RI: PUSH H
548 02EA 21 00E3 LXI H,RITB
549 02ED 3A 40ED LDA IOBYT
550 02F0 0F RICOM: RRC
551 02F1 0F RRC
552 02F2 C3 05EB JMP IOCOM
553 ;
554 02F5 E5 PO: PUSH H
555 02F6 21 00EB LXI H,POTB
556 02F9 3A 40ED LDA IOBYT
557 02FC 0F RRC
558 02FD 0F RRC
559 02FE C3 02F0 JMP RICOM
560 ;
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-10
561 0301 E5 LO: PUSH H
562 0302 21 00DB LXI H,LOTB
563 0305 3A 40ED LDA IOBYT
564 0308 07 RLC
565 0309 07 RLC
566 030A C3 05EB JMP IOCOM
567 ;----------------------------
568 ;
569 030D CD 07B9 COLO: CALL LPR
570 0310 C3 06A4 JMP CRT
571 ;----------------------------
572 ;
573 ;
574 ; RUN AND BREAK MODUL:
575 ;
576 0313 F3 RESTA: DI ;SAVE ALL
577 0314 22 4098 SHLD HLSAV
578 0317 F5 PUSH PSW
579 0318 21 0002 LXI H,2 ;OFSSET
580 031B 39 DAD SP
581 031C 22 409C SHLD SPSAV
582 031F F1 POP PSW
583 0320 E1 POP H ;PC
584 0321 31 4098 LXI SP,HLSAV
585 0324 D5 PUSH D
586 0325 C5 PUSH B
587 0326 F5 PUSH PSW
588 0327 EB XCHG
589 0328 1B DCX D ; PC-1
590 0329 21 409E LXI H,BRAD ;BREAK ?
591 032C 0E 02 MVI C,2 ; TWO BREAKS
592 032E C5 RST10: PUSH B ;COUNTER
593 032F 4E MOV C,M
594 0330 36 00 MVI M,0
595 0332 23 INX H
596 0333 46 MOV B,M
597 0334 36 00 MVI M,0
598 0336 23 INX H
599 0337 79 MOV A,C
600 0338 B0 ORA B ;0 ?
601 0339 CA 034A JZ RST20 ;NO BREAK
602 033C 7E MOV A,M ;RESTORE INSTR
603 033D 02 STAX B
604 033E 23 INX H
605 033F E5 PUSH H
606 0340 60 MOV H,B
607 0341 69 MOV L,C ;BREAK/INTR ?
608 0342 CD 0629 CALL COMPR
609 0345 E1 POP H
610 0346 C2 034A JNZ RST20
611 0349 1B DCX D ;PC-1
612 034A C1 RST20: POP B
613 034B 0D DCR C
614 034C C2 032E JNZ RST10
615 034F EB XCHG
616 0350 23 INX H ;RESTORE PC
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-11
617 0351 22 409A SHLD PCSAV
618 0354 37 STC
619 0355 CD 03AB CALL X+3 ;DISPLAY ALL REGISTERS
620 0358 C3 0526 JMP NEXT ;WAIT FOR COMMAND
621 ;
622 ; GO TO COMMAND
623 ;
624 035B CD 0013 GOTO: CALL EQUAL
625 035E CD 067B CALL CINCR ;COMMAND
626 0361 DA 0392 JC GO@ ;IF CR THEN GOTO FROM OLD PC
627 0364 CA 0374 JZ GO@BR ; OLD PC AND BREAK
628 0367 CD 05F0 CALL EXPRM ;START ADR
629 036A E1 POP H
630 036B 22 409A SHLD PCSAV ;SET NEW
631 036E 78 MOV A,B ;ONLY START ADR ?
632 036F FE 0D CPI CR
633 0371 CA 0392 JZ GO@
634 0374 CD 062F GO@BR: CALL RADR ;READ BREAK ADR
635 0377 22 409E SHLD BRAD
636 037A 7E MOV A,M ;SAVE INSTR. CODE
637 037B 32 40A0 STA INSTR
638 037E 36 CF MVI M,RSTN ;SET RST
639 0380 3E 0D MVI A,CR
640 0382 B8 CMP B ;ONLY 1-BREAK ?
641 0383 CA 0392 JZ GO@
642 ; SECOND BREAK
643 0386 CD 062F CALL RADR
644 0389 22 40A1 SHLD BRAD2
645 038C 7E MOV A,M
646 038D 32 40A3 STA INST2
647 0390 36 CF MVI M,RSTN
648 ; START PROGRAM
649 0392 CD 05DD GO@: CALL CRLF
650 0395 F3 DI
651 0396 31 4092 LXI SP,ACSAV ;REASTORE REGISTERS
652 0399 F1 POP PSW
653 039A C1 POP B
654 039B D1 POP D
655 039C 2A 409C LHLD SPSAV ;STACK
656 039F F9 SPHL
657 03A0 2A 409A LHLD PCSAV ; PC
658 03A3 E3 XTHL
659 03A4 2A 4098 LHLD HLSAV
660 03A7 C9 RET ;CONTINUE...
661 ;
662 ; EXAMINE REGISTRS
663 ;
664 03A8 CD 067B X: CALL CINCR ;COMMAND
665 03AB 21 0419 LXI H,RGNAM ;NAME TABLE
666 03AE 16 40 MVI D,HIGH ACSAV ;DATA
667 03B0 D2 03BE JNC X1 ;CHANGE
668 03B3 CD 05DD CALL CRLF
669 03B6 CD 03F6 X0: CALL XDISP
670 03B9 C8 RZ ;END
671 03BA 23 INX H
672 03BB C3 03B6 JMP X0
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-12
673 03BE CA 03D5 X1: JZ X2 ;NO CHANGE
674 03C1 5F MOV E,A ;SAVE NAME
675 03C2 01 DB 1 ; LXI B,##
676 03C3 23 X10: INX H
677 03C4 23 INX H
678 03C5 7E MOV A,M ; READ NAME REG.
679 03C6 E6 7F ANI 7FH
680 03C8 CA 0162 JZ ERROR ; NO FIND
681 03CB BB CMP E
682 03CC C2 03C3 JNZ X10 ; NEXT
683 03CF CD 0400 CALL XDIS1 ; DISPLAY IT
684 03D2 C3 03D8 JMP X2+3
685 ;
686 03D5 CD 03F9 X2: CALL XDISP+3
687 03D8 C8 RZ
688 03D9 CD 0678 CALL CIMIN ;- COMMAND
689 03DC D8 RC ;CR - END
690 03DD 5E MOV E,M ;LOW ADR
691 03DE 23 INX H
692 03DF CA 03D5 JZ X2 ;SP - NEXT
693 03E2 EB XCHG
694 03E3 D5 PUSH D
695 03E4 CD 0636 CALL RBYT ; READ NEW BYTE AND CHANGE
696 03E7 05 DCR B
697 03E8 CA 03EE JZ $+6
698 03EB 72 MOV M,D ; HIGH BYTE
699
700 03EC 2B DCX H
701 03ED 73 MOV M,E ;LOW
702 03EE D1 POP D
703 03EF EB XCHG
704 03F0 FE 0D CPI CR ;LAST?
705 03F2 C8 RZ ;+
706 03F3 C3 03D5 JMP X2 ;NEXT
707 ;
708 03F6 CD 0697 XDISP: CALL SPACE
709 03F9 7E MOV A,M
710 03FA E6 7F ANI 7FH
711 03FC C8 RZ
712 03FD CD 04B8 CALL COA
713 0400 CD 0013 XDIS1: CALL EQUAL ;NAME=
714 0403 7E MOV A,M
715 0404 07 RLC
716 0405 3E 01 MVI A,1
717 0407 CE 00 ACI 0 ; COMPUTE LENGHT
718 0409 47 MOV B,A ; SAVE
719 040A 23 INX H
720 040B 5E MOV E,M ; LOW ADR
721 040C 1A LDAX D ;HIG BYTE
722 040D CD 0651 CALL DBYT
723 0410 78 MOV A,B ;SINGLE REG. ?
724 0411 3D DCR A
725 0412 1B DCX D
726 0413 1A LDAX D ;READ SECOND BYTE
727 0414 C4 0651 CNZ DBYT ;IF 2.BYTE REG. THEN DISP.
728 0417 B3 ORA E ;NZY (IN PAGE)
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-13
729 0418 C9 RET
730 ;
731 ; X: COMMAND TABLE
732 0419 41 93 RGNAM: DB 'A',LOW ACSAV+1
733 041B 46 92 DB 'F',LOW ACSAV
734 041D 42 95 DB 'B',LOW BCSAV+1
735 041F 43 94 DB 'C',LOW BCSAV
736 0421 44 97 DB 'D',LOW DESAV+1
737 0423 45 96 DB 'E',LOW DESAV
738 0425 48 99 DB 'H',LOW HLSAV+1
739 0427 4C 98 DB 'L',LOW HLSAV
740 0429 D0 9B DB 'P' OR 80H,LOW PCSAV+1
741 042B D3 9D DB 'S' OR 80H,LOW SPSAV+1
742 042D 00 DB 0
743 ;
744 ; DISPLAY CONTENS OF MEMORY
745 ;
746 042E CD 05B1 DISP: CALL EXPR ; FROM -TO
747 0431 D1 POP D
748 0432 E1 POP H
749 0433 E5 DI0: PUSH H ;FIRST ADR
750 0434 CD 0643 CALL DNADR ;NEW ADR
751 0437 7E DI1: MOV A,M
752 0438 CD 0694 CALL DBYTE
753 043B CD 0624 CALL HILO
754 043E DA 0447 JC DIA ;DISPLAY ASCII
755 0441 7D MOV A,L
756 0442 E6 07 ANI 7
757 0444 C2 0437 JNZ DI1 ;NEXT BYTE
758 0447 E1 DIA: POP H
759 0448 CD 0697 CALL SPACE
760 044B 7E DI2: MOV A,M
761 044C 0E 2E MVI C,'.' ;NO ASCII
762 044E FE 20 CPI ' '
763 0450 D2 0454 JNC $+4
764 0453 79 MOV A,C
765 0454 FE 60 CPI 60H
766 0456 DA 045B JC $+5
767 0459 D6 20 SUI ' '
768 045B CD 04B8 CALL COA
769 045E CD 0624 CALL HILO
770 0461 D8 RC
771 0462 7D MOV A,L
772 0463 E6 07 ANI 7
773 0465 C2 044B JNZ DI2 ;NEXT ASCII
774 0468 CD 01C6 CALL CSTS
775 046B CA 0433 JZ DI0 ;NEXT LINE
776 046E CD 0678 CALL CIMIN ;#VERS."F" -
777 0471 D8 RC ;#IF SPC WAIT
778 0472 C0 RNZ ;#ELSE BREAK.
779 0473 CD 067B CALL CINCR ;#CR?
780 0476 D2 0433 JNC DI0 ;#BREAK,IF CR
781 0479 C9 RET
782 ;
783 ; FILL MEMORY BLOCK WITH BYTE
784 ;
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-14
785 047A 0C FILL: INR C
786 047B CD 05B1 CALL EXPR ;FROM-TO-WITH
787 047E C1 POP B
788 047F D1 POP D
789 0480 E1 POP H
790 0481 71 FI1: MOV M,C
791 0482 CD 0624 CALL HILO
792 0485 D2 0481 JNC FI1
793 0488 C9 RET
794 ;
795 ; MOVE BLOCK MEMORY
796 ;
797 0489 0C MOVE: INR C
798 048A CD 05B1 CALL EXPR
799 048D C1 POP B
800 048E D1 POP D
801 048F E1 POP H
802 0490 7E MO1: MOV A,M
803 0491 02 STAX B
804 0492 03 INX B
805 0493 CD 0624 CALL HILO
806 0496 D2 0490 JNC MO1
807 0499 C9 RET
808 ;
809 ; SUBSTITUTE MEMORY
810 ;
811 049A CD 062F SUBS: CALL RADR ;ADR
812 049D 7E SU1: MOV A,M
813 049E CD 0651 CALL DBYT
814 04A1 CD 0678 CALL CIMIN ;- & CINCR
815 04A4 D8 RC ;CR
816 04A5 CA 04AC JZ SU2
817 04A8 CD 0636 CALL RBYT ;CHANGE
818 04AB C8 RZ ;END
819 04AC 23 SU2: INX H ;NEXT BYTE
820 04AD FE 2C CPI ',' ;IF , THEN DISPLAY ADR
821 04AF CC 0643 CZ DNADR
822 04B2 C3 049D JMP SU1
823 ;
824 ; CONSOLE MODUL
825 ;
826 ;
827 04B5 CD 005E ECHO: CALL CI
828 04B8 C5 COA: PUSH B
829 04B9 4F MOV C,A
830 04BA CD 05E4 CALL CO
831 04BD C1 POP B
832 04BE C9 RET
833 ;
834 IF SP1A
835 MINUS: MVI A,'-'
836 JMP COA
837 ;
838 EQUAL: MVI A,'='
839 JMP COA
840 ;
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-15
841 QUES: MVI A,'?'
842 JMP COA
843 ;
844 ENDIF
845 ;
846 ;SET MODE. I/O FLAGS
847 ;
848 04BF 47 EXFLG: MOV B,A
849 04C0 79 MOV A,C
850 04C1 FE 0A CPI EXSER ; OVERFLOW ?
851 04C3 78 MOV A,B
852 04C4 D0 RNC
853 04C5 E5 PUSH H ; <A> .. COMMAND
854 ; <C> .. 0-N SLUZBA
855 04C6 06 00 MVI B,0 ; 0-MODE, 1-@IF1..4@OF2
856 04C8 21 40E3 LXI H,MODE ; 0=0
857 04CB 09 DAD B ; 5- RESERVE_LINE, 6-S@FLG
858 04CC 77 MOV M,A
859 04CD E1 POP H
860 04CE C9 RET
861
862 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
863 ; **** S T A R T M O N I T O R U ****
864 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
865 ;
866 04CF D3 13 COLD: OUT URES ; RESET
867 04D1 AF XRA A ;MONITORU
868 04D2 D3 10 OUT UMODE
869 04D4 3E 0D MVI A,0DH
870 04D6 D3 11 OUT MMODE
871 04D8 3E BC MVI A,0BCH ; A-IN,B-OUT,MOD1
872 04DA D3 33 OUT CNTR1 ; DPP-1
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 0030 PA1 EQU 30H
1449 0032 PC1 EQU 32H
1450 0033 CNTR1 EQU 33H
1451 ;
1452 07E8 DB 32 RDR: IN PC1
1453 07EA 07 RLC
1454 07EB 07 RLC
1455 07EC D8 RC ;PRETRZENA PASKA
1456 07ED B7 ORA A
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-26
1457 07EE F2 07E8 JP RDR
1458 07F1 DB 30 IN PA1
1459 07F3 C9 RET
1460 ;
1461 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1462 ORG @R@
1463 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1464 ; SYSTEM RAM SAPI-1
1465 ;
1466 4000 RST1: DS 21 ;RESTART VECTOR
1467 ;<<... USER & MONITOR STACK
1468 ;
1469 ;
1470 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1471 ORG @R@+090H
1472 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1473 ; MONITOR DATA
1474 ;
1475 4090 MSTAK: DS 2 ; SAVE REGISTERS
1476 4092 ACSAV: DS 2
1477 4094 BCSAV: DS 2
1478 4096 DESAV: DS 2
1479 4098 HLSAV: DS 2
1480 409A PCSAV: DS 2
1481 409C SPSAV: DS 2
1482 ;
1483 409E BRAD: DS 2
1484 40A0 INSTR: DS 1
1485 40A1 BRAD2: DS 2
1486 40A3 INST2: DS 1
1487 40A4 LASTC: DS 1 ;LAST CODE "REPEAT"
1488 40A5 CADR: DS 2 ; CURSOR ADR
1489 40A7 CHAR: DS 1 ; CODE
1490 40A8 FLAG: DS 1 ; FLAG MEMBR
1491 40A9 LIMIT: DS 2 ; TIME LIMIT FOR AUTO REPEAT
1492 40AB @BT: DS 1
1493 40AC @PED: DS 1
1494 40AD UADR: DS 2 ;USER ADR
1495 40AF SADR: DS 2 ; START ADR
1496 40B1 EADR: DS 2 ; END ADR
1497 40B3 SUM: DS 1
1498
1499 ;*******************************
1500 ;MONITOR PLUS DATA
1501 40B4 JOINT: DS 1
1502 40B5 FNAME: DS 11
1503 40C0 BNO: DS 1 ;BLOCK NUMSER,FILE NUMBER
1504 40C1 BTO: DS 1
1505 40C2 BNI: DS 1 ; --- " ---
1506 40C3 BTI: DS 1
1507 40C4 ADRO: DS 2
1508 40C6 ADRI: DS 2
1509 40C8 PBITM: DS 2
1510 40CA FND: DS 1 ; FIND FLAG
1511
1512 ;-------------------------
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE 1-27
1513 ; USER I/O DEVICE
1514 ; IODEF NUMBER
1515 40CB CILOC: DS 3 ; (0)
1516 40CE COLOC: DS 3 ; (1)
1517 40D1 R1LOC: DS 3 ; (2)
1518 40D4 R2LOC: DS 3 ; (3)
1519 40D7 P1LOC: DS 3 ; (4)
1520 40DA P2LOC: DS 3 ; (5)
1521 40DD LILOC: DS 3 ; (6)
1522 40E0 CSLOC: DS 3 ; (7)
1523 ;******************************
1524 ;<< EXTERNE OVLADANE FLAGY: >>
1525 ;******************************
1526 40E3 MODE: DS 1 ;CRT-MODE
1527 40E4 @IF1: DS 1 ;OPEN FLAGS
1528 40E5 @IF2: DS 1
1529 40E6 @OF1: DS 1
1530 40E7 @OF2: DS 1
1531 40E8 LINE: DS 1 ;LINE
1532 40E9 COLUM: DS 1 ;COLUMN
1533 40EA RESL: DS 1 ;RESERVE
1534 40EB UBYTE: DS 1 ;USER BYTE (REALTIME..)
1535 40EC @SFLG: DS 1 ;#0..NO STOP
1536 000A EXSER EQU $-MODE ;EXTERNAL SERVICE
1537 40ED IOBYT: DS 1 ;I/O CONTROL
1538 40EE MEMTOP: DS 2 ;MEMTOP "RAM"
1539
1540 ;-------------------------
1541 ; I/O BUFFERS
1542 40F0 DS 1 ;BLOCK LABEL
1543 40F1 BOUT: DS 255 ;BLOCK LENGHT
1544 41F0 BOEND EQU $
1545 ;
1546 41F0 DS 1 ; BLOCK LABELS
1547 41F1 BIN: DS 255 ;BLOCK LENGHT
1548 42F0 BIEND EQU $
1549 ;
1550 42F0 WRNM: DS 11
1551 ;=============================
1552 ORG @R@ + 300H
1553 ;=============================
1554 ; "MAT" ARRAY
1555 4300 DS 0FFH
1556 ;=============================
1557 ORG @R@ + 400H
1558 ;=============================
1559 ; SYSTEM OR USER PROGRAMS
1560 ;---->>>>>>>>>>>
1561 ;
1562 ;
1563 ;
1564 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 0033 CNTR1
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
'MONITOR SAPI-1 V4.1F' MACRO-80 3.44 09-Dec-81 PAGE S-1
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
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
0030 PA1 40C8 PBITM 0032 PC1
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 1492#
@IF1 1527#
@IF2 1528#
@OF1 1529#
@OF2 1530#
@PED 1493#
@R@ 31# 104 108 112 116 121 126 131 878 929 931 1462
1471 1552 1557
@SFLG 1535#
ACSAV 651 666 732 733 1476#
ADRI 1508#
ADRO 1507#
ALLINT 84#
ANAL 1039 1196#
ANAL0 1197#
ASHEX 251 1028 1179#
ASIGN 266# 958
ASS0 271# 275
ASS1 272 283#
ASS2 288# 297
ASS3 290 298#
BAC@1 1376 1387#
BACK 38# 1264
BACK@ 1265 1374#
BATCH 56#
BCSAV 734 735 1477#
BEEP 280 397# 1271
BEG 875# 960
BEGIO 43# 881
BELL 39# 1270
BIEND 1548#
BIN 1547#
BNI 1505#
BNO 1503#
BOEND 1544#
BOUT 1543#
BRAD 590 635 1483#
BRAD2 644 1485#
BTI 1506#
BTO 1504#
CADR 128 1240 1251 1334 1488#
CCPM 103 133#
CCRT 55#
CHAR 1252 1333 1489#
CI 140 147# 237 827
CICO 143 489#
CILOC 210 1082 1515#
CIMIN 266 688 776 814 1193#
CINCR 257 625 664 779 934 1062 1195#
CITB 148 209#
CLCK1 407# 408
CLCK2 410# 411
CLICK 399 405#
CMSK 48#
CNTR1 872 1450#
CNTRP 524 526 528 530 539#
CO 141 211 215 239 830 933 1048 1051# 1162 1165 1210 1217
COA 107 111 115 319 330 712 768 828#
COADR 1254 1283 1297 1328 1347# 1406
COEX 1249 1328#
COEX1 1337 1339#
COINIT 883 1239#
COLD 100 140 236 866#
COLO 207 211 569#
COLOC 208 1516#
COLUM 1286 1289 1390 1532#
COMPR 608 1102# 1322
CONXT 1282 1283#
COTB 207# 1052
CPM 13# 22 94 97 227 353 497 923
CR 36# 219 632 639 704 1047 1126 1200 1258
CR@ 1259 1389# 1394
CRLF 248 649 668 927 1047# 1133
CRT 207 491 570 1247#
CRTWR 1257 1274#
CSLOC 345 1522#
CSTS 145 242 349# 774
CSTS1 344# 352
CTBL 939 958# 982
CTRLP 539 1233#
CTRLQ 471 1232#
CTRLW 42# 469
CTTY 54#
CURSOR 1234# 1338
CUSE 57#
DADR 252 1134#
DADR0 1134 1154#
DBYT 253 722 727 813 1155 1160# 1215
DBYTE 752 1215#
DESAV 736 737 1478#
DI0 749# 775 780
DI1 751# 757
DI2 760# 773
DIA 754 758#
DISP 746# 961
DNADR 750 821 1133#
EADR 1496#
ECHO 284 827# 1024 1195
EOL 1231# 1262
EOL@ 1263 1318 1366# 1371
EP2 29# 885 990 992
EP2? 884 988 992#
EQUAL 110# 283 320 624 713 1022
ERAM 27# 889
ERROR 144 145 250 279# 295 680 942 989 1021 1040 1077
ERS 1230# 1241 1268
ERS@ 1269 1318# 1323
ETX 41#
EX0 1024# 1036
EX1 1025# 1060
EX3 1029 1038# 1064
EX4 1027 1062# 1067
EXFLG 261 848#
EXPR 249 746 786 798 1022# 1112
EXPRM 628 1058# 1121
EXPRO 1021# 1044
EXROM 959 962 965 966 967 968 969 971 972 973 975 977
978 979 980 988#
EXSER 850 1536#
FI1 790# 792 880
FILL 785# 963
FLAG 907 1490#
FNAME 1502#
FND 1510#
GO@ 626 633 641 649#
GO@BR 627 634#
GOTO 624# 964
HBYTE 1005# 1161
HEIGHT 1226# 1293 1300
HILO 254 753 769 791 805 1097#
HLSAV 577 584 659 738 739 1479#
HOME 1235# 1266
HOME@ 1267 1394#
HT 37#
HXASC 260 1012#
INIC 281 913#
INJM@ 138 941#
INJMP 943# 1055
INST2 646 1486#
INSTR 637 1484#
IOBYT 118 124 303 312 349 549 556 563 882 1053 1537#
IOCHK 118# 143 243
IOCOM 149 552 566 1054#
IODEF 246 1071#
IODEF1 1076 1086#
IONEW 303#
IOSET 123# 144 244
IOTAB 196# 268 311
JOINT 1501#
KBR 209 209 213 468# 470 487
KBRD 468 479 495# 544
KBRD1 506# 508
KBRD2 516# 518
KBSTS 357# 492
KEY 441# 448
KEYIN 431#
LASTC 905 1487#
LBYTE 1009# 1164
LCRT 73#
LCT 940 982#
LF 40# 219 1049 1260
LF@ 1261 1291#
LF@1 1294 1396#
LILOC 212 1521#
LIMIT 1491#
LINE 1347 1385 1396 1531#
LINOF 1227# 1228 1305
LLPT 74#
LMSK 51#
LO 142 207 241 561#
LOTB 211# 562
LPR 211 569 1331 1420#
LPR1 1426# 1428
LPR2 1432# 1434
LREST 1228# 1312 1319
LTTY 72#
LUSE 75#
LVER 223# 914
MEM1 887# 901
MEM2 894 902#
MEMCK 245 1170#
MEMTOP 903 1073 1171 1538#
MINUS 106# 1193
MMODE 81# 870
MO1 802# 806
MODE 520 541 543 856 1274 1329 1335 1526# 1536
MONIT 18# 230
MOVE 797# 970
MSTAK 876 908 920 1475#
NEXT 255 620 920# 921 938
NXKEY 443 445 447#
NXLIN 436# 451
P1LOC 215 1519#
P2LOC 216 1520#
PA1 1448# 1458
PBITM 1509#
PC1 1449# 1452
PCSAV 617 630 657 740 1480#
PMSK 50#
PO 142 240 554#
POTB 215# 555
PPTR 67#
PTTY 66#
PUN 215 1443#
PUSE1 68#
PUSE2 69#
QUERY 311# 974
QUES 114# 279
R1LOC 213 1517#
R2LOC 214 1518#
RADR 634 643 811 1111#
RAM 21# 886
RBYT 695 817 1119#
RDR 213 1452# 1457
RESL 481 1295 1299 1380 1395 1400 1533#
RESTA 467 576# 930
RESX 1408# 1414
RGNAM 665 732#
RI 141 209 238 547#
RICOM 550# 559
RITB 213# 548
RMSK 49#
ROLL 1303# 1315
ROLL1 1305# 1311
RPTR 61#
RST1 1466#
RST10 592# 614
RST20 601 610 612#
RSTN 32# 638 647
RTTY 60#
RUSE1 62#
RUSE2 63#
SADR 1495#
SP1 11# 87
SP1A 12# 834 1138
SPACE 256 317 708 759 1135 1216#
SPCL 128# 247
SPSAV 581 655 741 909 1481#
SU1 812# 822
SU2 816 819#
SUBS 811# 976
SUM 1497#
TABCOD 152#
TCPM 136 140#
TEXT 258 915 1208# 1212
TVBEG 28# 1229 1239 1356
TVEND 1229# 1321
UADR 1494#
UBYTE 1534#
UCMD 478 483 1400#
UDATA 79#
UMODE 82# 868
URES 83# 866
USTAT 80#
VERS 219# 223 913
WIDTH 1225# 1228 1287 1303 1370 1386 1407
WRNM 1550#
X 619 664# 981
X0 669# 672
X1 667 673#
X10 676# 682
X2 673 684 686# 692 706
XDIS1 683 713#
XDISP 669 686 708#
XY 259 935#
1497#
TABCOD 152#
TCPM
Ú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