Ú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
1 .LIST
2 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 TITLE FIRMWARE SAPI-1 MONITOR V5.0/F
4 ; 18.5.1988 (P.P.)
5 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6 ;
7 ; VOLBA SYSTEMU PODLE CPU-KARTY
8 0000 TV64 EQU 00 ; TV NA 64 ZNAKU (HDG)
9 0000 ANDZ EQU 00 ; AND-1Z OD 3800H
10 0000 CPM EQU 00 ; IF CPM=0 THEN SYSTEM
11 ; ZPS-2 ELSE SYSTEM ZPS-3
12 ;
13 ;==========================================
14 ; MONITOR + MIKOS V5.0 TVORI FIRMWARE SYSTEMU SAPI-1.
15 ; V5.0 JE KOMPATIBILNI S VERZI V4.0 A JE ULOZENA
16 ; V 5K EPROM.
17 ; DALSI SKUPINA PROGRAMU JE NA KAZETE:
18 ; 1) BASIC EXP V5.0
19 ; 2) TEDIT 1
20 ; 3) TOOL ASM-80
21 ;..........................................
22 ; ROZDELENI PAMETI U ZPS-2:
23 ; 0000H-13FFH FIRMWARE EPROM 5K
24 ; 2400H-33FFH PORTY
25 ; 3800H-3FFFH VIDEO RAM
26 ; 4000H-42FFH 1K SYSTEMOVE RAM
27 ; 4400H-0FFFFH RAM---glt; SYSTEMOVE PROGRAMY
28 ; \--glt; UZIVATELSKE PROGRAMY
29 ;=========================================
30 0000' ASEG
31 ;
32 ; *** DEFINOVANI PAMETOVEHO PROSTORU *
33 ;
34 4000 @R@ EQU 4000H ; ZACATEK SYSTEMOVE RAM (1K)
35 00CF RSTN EQU 0CFH
36 ;
37 ;
38 4400 BASIC EQU 4400H ; START
39 4C00 TRACER EQU 4C00H ; START
40 4400 PEDIT EQU 4400H ; START
41 ;
42 ;-----------------------------------------------
43 IF CPM
44 MONIT EQU 100H ; START
45 EP2 EQU 0C00H+100H ; O.S. EPROM
46 ERAM EQU 9FFFH ; TOP RAM
47 IF TV64
48 TVBEG EQU 0F800H
49 ELSE
50 TVBEG EQU 0E800H ; TV-RAM
51 ENDIF
52 ELSE
53 0000 MONIT EQU 0 ; ROM VERZE - ZPS2
54 0C00 EP2 EQU 0C00H
55 0000 ERAM EQU 0000
56 1400 TVROM EQU 1400H ; AND1 NEBO GRAFIKA
57 IF TV64 AND (NOT ANDZ)
58 TVBEG EQU 0F800H
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-1
59 ELSE
60 3800 TVBEG EQU 03800H ; TV-RAM
61 ENDIF
62 ENDIF
63 ;
64 ; KONSTANTY ASCII...
65 ;
66 000D CR EQU 0DH ; CARRIAGE RETURN
67 0009 HT EQU 9 ; TAB
68 0008 BACK EQU 8 ; BACK SPACE
69 0018 RIGHT EQU 18H ; FORWARDS
70 001A UP EQU 1AH ; UP
71 001B ESC EQU 1BH ; ESCAPE
72 0007 BELL EQU 7 ; BELL
73 000A LF EQU 0AH ; LINE FEED
74 0003 ETX EQU 03H ; BREAK CHAR.( CONTROL C)
75 0004 EOT EQU 4 ; END OF FILE
76 000B VT EQU 0BH
77 001A SUB@ EQU 1AH ; CTRL Z
78 0017 PRNT EQU 17H ; BREAK CTRL W
79 007F DEL EQU 7FH ; DELETE
80 001C WNDCD EQU 1CH ; ZMENA OKNA
81 0055 BEGIO EQU 55H ; POCATECNI HODNOTA PRO I/O BYTE
82 ;
83 ; T.V. PARAMETRY
84 ;
85 IF TV64
86 WIDTH EQU 64
87 IF ANDZ
88 HEIGHT EQU 20
89 CURSOR EQU 127
90 CURCH EQU 0B0H
91 ELSE
92 HEIGHT EQU 28
93 CURSOR EQU 0FFH
94 CURCH EQU 127
95 ENDIF
96 LINOF EQU 64 ; OFFSET
97 LREST EQU LINOF - WIDTH
98 TVEND EQU TVBEG + (WIDTH * HEIGHT)
99 ELSE
100 0028 WIDTH EQU 40
101 0018 HEIGHT EQU 24
102 0040 LINOF EQU 64 ; OFFSET
103 0018 LREST EQU LINOF - WIDTH
104 3DE7 TVEND EQU TVBEG + 5E7H
105 00A0 CURSOR EQU 0A0H
106 0067 CURCH EQU 67H
107 ENDIF
108 001F ERS EQU 1FH ; ERASE SCREEN
109 001E EOL EQU 1EH ; ERASE END OF LINE
110 0011 CTRLQ EQU 11H ; ^Q-REZERVUJ
111 0010 CTRLP EQU 10H ; ^P-LIST
112 001D HOME EQU 1DH ; HOME
113 ;.XLIST
114
115 ;-------------------------------------------------
116 ; RIDICI I/O
117 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-2
118 IF NOT CPM ; ZPS-2
119 ;KLAVESNICE
120 2400 PORTK EQU 2400H ; 2400H-27FFH
121 ;TISKARNA
122 2B00 PORTLC EQU 2B00H ; 2800H-2BFFH
123 2C00 PORTLD EQU 2C00H ; 2C00H-2FFFH
124 ;PRERUSENI 3214
125 3000 PORTI EQU 3000H ; 3000H-33FFH
126 ;
127 ELSE
128 P0 EQU 1 ; KLAVESNICE
129 P1 EQU 2 ; KLAVESNICE + TISKARNA
130 P2 EQU 3 ; TISKARNA
131 ;
132 ENDIF
133 ;
134 ; DESKA PARALERNICH PORTU
135 ;
136 001B CWR1 EQU 1BH ; RIDICI SLOVO 8255A/1
137 0018 PA1 EQU 18H
138 0019 PB1 EQU 19H
139 001A PC1 EQU 1AH
140 001F CWR2 EQU 1FH ; RIDICI SLOVO 8255A/2
141 001C PA2 EQU 1CH
142 001D PB2 EQU 1DH
143 001E PC2 EQU 1EH
144 ;
145 ; UART - MAGNETOFON + SERIOVY PRENOS
146 ;
147 0012 UDATA EQU 12H ; UART-DATA
148 0011 USTAT EQU 11H ; STATUS
149 0011 MMODE EQU 11H ; MODEM
150 0010 UMODE EQU 10H ; UART
151 0013 URES EQU 13H ; RESET
152 ;
153 0001 ALLINT EQU 01H ; POUZE RST0
154
155 ;===============================================
156 ; ZACATEK PROGRAMU
157 ;===============================================
158 ;
159 ORG MONIT ; ROM/RAM DEFINICE
160 0000 C3 018B JMP COLD ; INICIALIZACE SYSTEMU
161 ;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
162 ;
163 ; TABULKA "ZAKLADNICH SLUZEB SYSTEMU SAPI-1
164
165 IF CPM
166 ;
167 JMP CI ; CONZOLE INPUT <Aglt;
168 JMP RI ; READER INPUT <Aglt;, CY=1 ERROR
169 JMP CO ; CONZOLE OUTPUT <Cglt;
170 JMP PO ; PUNCH OUTPUT <Cglt;
171 JMP LO ; LIST OUTPUT <Cglt;
172 JMP CSTS ; CONZOLE INPUT STATUS
173 JMP IOCHK ; I/O BYT CHEK <Aglt;
174 JMP IOSET ; I/O BYT SET <Cglt;
175 JMP MEMCK ; MEMTOP
176 JMP IODEF ; DEFINICE UZIVATELSKYCH PERIFERII
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-3
177 JMP SPCL ; I/O CONTROL SPECIAL
178 JMP CRLF ; NOVY RADEK
179 JMP EXPR ; SKLADANI ADRES (N=POCET <Cglt;, SP)
180 JMP ERROR ; OSETRENI CHYBY
181 JMP ASHEX ; PREVOD ASCII -glt; HEX
182 JMP DADR ; ZOBRAZENI ADRESY <HLglt;
183 JMP DBYT ; ZOBRAZENI ZNAKU <Aglt;
184 JMP HILO ; HL+1, SROVNANI S DE
185 JMP NEXT ; OVLADANI MONITORU
186 JMP SPACE ; MEZERA NA CRT
187 JMP CINCR ; ECHO+ANALYZA
188 JMP TEXT ; VYPIS TEXTU <HL=ADRglt;,<D=DELKAglt;
189 JMP XY ; "DO" PRIKAZ <Aglt;
190 JMP HXASC ; PREVOD HEX -glt; ASCII
191 JMP EXFLG ; EXTERNI RIZENI FLAGU
192 JMP ASSIGN ; PRIRAZENI I/O PERIF.
193 ; -- ROZSIRENI SLUZEB --
194 JMP TX ; ZOBRAZENI NASLEDUJICIHO TEXTU
195 JMP WND@ ; NASTAVENI OKNA
196 JMP KOS@ ; CALL O.S. <Cglt;-SLUZBA,<HLglt;-DATA
197 JMP RNAME ; <HLglt;.. EXT. A VYST. ADR
198 JMP INTER ; NASTAVENI PRERUSENI + EI
199 JMP KODWM ; <HLglt;.. NOVE KODY, CS
200 JMP KODASC ; <HLglt;..ZMENY KODU Z KLAVESNICE
201 JMP GRAF ; <HLglt;..DATA, <Dglt;..KOD, <Eglt; SLUZBA
202 JMP RESER ;
203 ;
204 ;***************************************************
205 ;
206 ; TABULKY PRO INSTALACI SYSTEMOVYCH HANDLERU
207 ;
208 SYSTAB: JMP CI@@ ; VSTUP ZNAKU :CI:
209 JMP CO@@ ; VYSTUP ZNAKU :CO:
210 JMP CSTS@@ ; STATUS :CI:
211 JMP DUMMY ; :LO:
212 JMP ERROR ; INIT O.S.
213 SMTAB: ; -- ; TABULKA PRO SM 7202
214 JMP SERIN ; SERIOVY VSTUP
215 JMP SEROUT ; SERIOVY VYSTUP
216 JMP SMST ; STATUS SER. VSTUPU
217 JMP DUMMY
218 JMP DUMMY
219 SYSEND EQU $
220 DB BEGIO ; 55-glt; IOBYTE
221 ;
222 ENDIF
223 ;****************************************************
224 ; POMOCNE PROGRAMY
225 ;****************************************************
226 0003 55 DB 55H ; INTEL IOBYT
227 0004 50 DB 50H ; V 5.0
228 IF CPM
229 JMP 0B006H ; ZPS2+CPM
230 ELSE
231 0005 C3 F006 JMP 0F006H ; POSLEDNI 4K PRO BDOS
232 ENDIF
233 0008 C3 4000 JMP @R@
234 ;
235 000B 3E 2D MINUS: MVI A,'-'
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-4
236 000D C3 0568 JMP COA
237 0010 C3 4003 JMP @R@+3
238 ;
239 0013 3E 3D EQUAL: MVI A,'='
240 0015 C3 0568 JMP COA
241 0018 C3 4006 JMP @R@+6
242 ;
243 001B 3E 3F QUES: MVI A,'?'
244 001D C3 0568 JMP COA
245 0020 C3 4009 JMP @R@+9
246 ;
247 ; CTI IOBYTE <Aglt;
248 ;
249 0023 3A 40E2 IOCHK: LDA IOBYT
250 0026 C9 RET
251 0027 50 DB 'P' ; MONOGRAM
252 0028 C3 400C JMP @R@+12
253 ;
254 ; NASTAV IOBYTE <Cglt;
255 ;
256 002B 79 IOSET: MOV A,C
257 002C 32 40E2 STA IOBYT
258 002F C9 RET
259 0030 C3 400F JMP @R@+15
260 ;
261 ; SPECIAL:<Aglt;..ZNAK,<Bglt;..MODE,<DEglt;..LOG.ADR
262 ; <HLglt;..FYZ.ADR
263 ;
264 0033 2A 40E8 SPCL: LHLD LINE ; LOG. ADR KORZORU
265 0036 EB XCHG
266 0037 21 DB 21H
267 0038 C3 4012 JMP @R@+18
268 003B 2A 4081 LHLD CADR ; FYZ. ADR ZNAKU
269 003E 3A 40F0 LDA KEY ; KEY -glt;B
270 0041 47 MOV B,A
271 0042 7E MOV A,M ; CTI ZNAK Z T.V.
272 0043 C9 RET
273
274 IF NOT CPM
275 ;
276 ; KOPIRUJ RI -glt; PO
277 ;
278 0044 CD 05AA COPY: CALL RI
279 0047 DA 04D4 JC CRLF
280 004A 4F MOV C,A
281 004B CD 05D3 CALL LO ; "H" VYBERE PERIF.
282 004E C3 0044 JMP COPY
283 ;
284 ; READ DALSI BYTE
285 ;
286 0051 3E 30 RBYT0: MVI A,'0'
287 0053 C5 RBYT: PUSH B
288 0054 E5 PUSH H
289 0055 CD 04E1 CALL EXPRM
290 0058 D1 POP D
291 0059 E1 POP H
292 005A 73 MOV M,E
293 005B 78 MOV A,B
294 005C FE 0D CPI CR
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-5
295 005E C1 POP B
296 005F C9 RET
297
298 ;**************************************
299 ; OBECNA CAST O.S.
300 ;**************************************
301 ;
302 ; VOLANI O.S Z MONITORU
303 ;
304 0060 0E FF KOS: MVI C,-1
305 0062 C3 40D0 JMP KOS@
306 ;
307 ;INIT O.S
308 ;
309 0065 0E 00 KOSI: MVI C,0
310 0067 C3 40D0 JMP KOS@
311 ;
312 ; SLUZBY KOMPATIBILNI Z MONITOREM V4.0
313 ;
314 006A 0E 01 FIND: MVI C,1
315 006C C3 40D0 JMP KOS@
316 006F 0E 02 OPEN: MVI C,2
317 0071 C3 40D0 JMP KOS@
318 0074 0E 04 LOADCD: MVI C,4
319 0076 C3 40D0 JMP KOS@
320 0079 0E 05 SAVECD: MVI C,5
321 007B C3 40D0 JMP KOS@
322 007E 0E 06 BINAR: MVI C,6
323 0080 C3 40D0 JMP KOS@
324
325 ;****************************************************
326 ;
327 0083 22 0D JMENO: DB '"',CR ; PRAZDNE
328 ;
329 ; INSTALUJ HANDLER PRO TISKARNU
330 ;
331 0085 CD 0500 HNDIN: CALL RADR
332 0088 87 ADD A ; *2
333 0089 FE 10 CPI HNDMX
334 008B D0 RNC ; VETSI...
335 008C 26 00 MVI H,0
336 008E 6F MOV L,A
337 008F 11 009D LXI D,TABHND
338 0092 19 DAD D ; ADR. ADRESY HNDLR
339 0093 7E MOV A,M
340 0094 32 40CE STA LO@ + 1 ; PREPIS
341 0097 23 INX H
342 0098 7E MOV A,M
343 0099 32 40CF STA LO@ + 2
344 009C C9 DUMMY: RET
345 ;------------------------
346 ; TABULKA HANDLERU
347 ;
348 009D 009C TABHND: DW DUMMY ; 0.. PRAZDNY HANDLER
349 009F 00B0 DW LO@@ ; 1.. C 211
350 00A1 00E2 DW CENTRO ; 2.. CENTRONICS
351 00A3 00C9 DW D100S ; 3.. D 100 S
352 00A5 00AD DW D180 ; 4.. D 180
353 00A7 05C1 DW PO ; 5.. PUNCH DEVICE
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-6
354 00A9 40C7 DW CO@ ; 6.. CONSOLE OUTPUT
355 00AB 05FF DW SEROUT ; 7.. SERIOVY VYSTUP
356 0010 HNDMX EQU $-TABHND
357 ;
358 ;****************************************************
359 ; LIST OUTPUT <Cglt;... ZNAK
360 ;****************************************************
361 ;
362 00AD 79 D180: MOV A,C
363 00AE 2F CMA
364 00AF 4F MOV C,A
365
366 ; CONSUL 211
367 00B0 LO@@:
368 00B0 E5 PUSH H
369 00B1 21 2B01 LXI H,2B01H ; POC. PARAMETY
370 00B4 75 MOV M,L
371 00B5 24 INR H
372 00B6 71 MOV M,C
373 00B7 7E LO@1: MOV A,M
374 00B8 87 ADD A
375 00B9 F2 00B7 JP LO@1
376 00BC 25 DCR H
377 00BD 36 03 MVI M,3
378 00BF 24 INR H
379 00C0 7E LO@2: MOV A,M
380 00C1 87 ADD A
381 00C2 FA 00C0 JM LO@2
382 00C5 25 DCR H
383 00C6 75 MOV M,L
384 00C7 E1 POP H
385 00C8 C9 RET
386 ;
387 ; SERIOVY INTERFACE PRO :LP:
388 ;
389 00C9 3E 0E D100S: MVI A,0EH ; SERIOVE PRIPOJENI D100
390 00CB D3 11 OUT MMODE ; PREPOJ
391 00CD DB 11 D101: IN USTAT
392 00CF 87 ADD A
393 00D0 F2 00CD JP D101
394 00D3 79 MOV A,C
395 00D4 D3 12 OUT UDATA
396 00D6 3E 02 MVI A,2
397 00D8 D3 10 OUT UMODE
398 00DA DB 11 D102: IN USTAT
399 00DC 87 ADD A
400 00DD FA 00DA JM D102
401 00E0 79 MOV A,C
402 00E1 C9 RET
403 ;
404 ; INTERFACE CENTRONICS
405 ;
406 00E2 CENTRO:
407 00E2 E5 PUSH H
408 00E3 26 2C MVI H,2CH
409 00E5 71 MOV M,C
410 00E6 7E CENTR1: MOV A,M
411 00E7 E6 60 ANI 60H
412 00E9 FE 20 CPI 20H
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-7
413 00EB C2 00E6 JNZ CENTR1 ; CEKEJ NA BUSY
414 00EE 25 DCR H
415 00EF 36 00 MVI M,0
416 00F1 E3 XTHL
417 00F2 E3 XTHL
418 00F3 79 MOV A,C
419 00F4 36 02 MVI M,2
420 00F6 E1 POP H
421 00F7 C9 RET
422
423 ;****************************************************
424
425 ORG 100H ; TABULKA SLUZEB !!!
426 ;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
427 ;
428 ; TABULKA "ZAKLADNICH SLUZEB SYSTEMU SAPI-1
429 ;
430 0100 C3 018B JMP COLD ; STUDENY START
431 0103 C3 0596 JMP CI ; CONZOLE INPUT <Aglt;
432 0106 C3 05AA JMP RI ; READER INPUT <Aglt;, CY=1 ERROR
433 0109 C3 05F4 JMP CO ; CONZOLE OUTPUT <Cglt;
434 010C C3 05C1 JMP PO ; PUNCH OUTPUT <Cglt;
435 010F C3 05D3 JMP LO ; LIST OUTPUT <Cglt;
436 0112 C3 058B JMP CSTS ; CONZOLE INPUT STATUS
437 0115 C3 0023 JMP IOCHK ; I/O BYT CHEK <Aglt;
438 0118 C3 002B JMP IOSET ; I/O BYT SET <Cglt;
439 011B C3 051B JMP MEMCK ; MEMTOP
440 011E C3 056F JMP IODEF ; DEFINICE UZIVATELSKYCH PERIFERII
441 0121 C3 0033 JMP SPCL ; I/O CONTROL SPECIAL
442 0124 C3 04D4 JMP CRLF ; NOVY RADEK
443 0127 C3 04A8 JMP EXPR ; SKLADANI ADRES (N=POCET <Cglt;, SP)
444 012A C3 0A38 JMP ERROR ; OSETRENI CHYBY
445 012D C3 0523 JMP ASHEX ; PREVOD ASCII -glt; HEX
446 0130 C3 050B JMP DADR ; ZOBRAZENI ADRESY <HLglt;
447 0133 C3 05E8 JMP DBYT ; ZOBRAZENI ZNAKU <Aglt;
448 0136 C3 04F5 JMP HILO ; HL+1, SROVNANI S DE
449 0139 C3 0203 JMP NEXT ; OVLADANI MONITORU
450 013C C3 09CC JMP SPACE ; MEZERA NA CRT
451 013F C3 053A JMP CINCR ; ECHO+ANALYZA
452 0142 C3 0558 JMP TEXT ; VYPIS TEXTU <HL=ADRglt;,<D=DELKAglt;
453 0145 C3 0222 JMP XY ; "DO" PRIKAZ <Aglt;
454 0148 C3 0513 JMP HXASC ; PREVOD HEX -glt; ASCII
455 014B C3 06A1 JMP EXFLG ; EXTERNI RIZENI FLAGU
456 014E C3 0270 JMP ASSIGN ; PRIRAZENI I/O PERIF.
457 ; -- ROZSIRENI SLUZEB --
458 0151 C3 0549 JMP TX ; ZOBRAZENI NASLEDUJICIHO TEXTU
459 0154 C3 0708 JMP WND@ ; NASTAVENI OKNA
460 0157 C3 40D0 JMP KOS@ ; CALL O.S. <Cglt;-SLUZBA,<HLglt;-DATA
461 015A C3 0B5F JMP RNAME ; <HLglt;.. EXT. A VYST. ADR
462 015D C3 0348 JMP INTER ; NASTAVENI PRERUSENI + EI
463 0160 C3 08B5 JMP KODWM ; <HLglt;.. NOVE KODY, CS
464 0163 C3 08BD JMP KODASC ; <HLglt;..ZMENY KODU Z KLAVESNICE
465 0166 C3 40DC JMP GRAF ; <HLglt;..DATA, <Dglt;..KOD, <Eglt; SLUZBA
466 0169 C3 40DF JMP RESER ;
467 ;***************************************************
468 ;
469 ; TABULKY PRO INSTALACI SYSTEMOVYCH HANDLERU
470 ;
471 016C C3 0992 SYSTAB: JMP CI@@ ; VSTUP ZNAKU :CI:
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-8
472 016F C3 0617 JMP CO@@ ; VYSTUP ZNAKU :CO:
473 0172 C3 097F JMP CSTS@@ ; STATUS :CI:
474 0175 C3 009C JMP DUMMY ; :LO:
475 0178 C3 0A38 JMP ERROR ; INIT O.S.
476 017B SMTAB: ; -- ; TABULKA PRO SM 7202
477 017B C3 0988 JMP SERIN ; SERIOVY VSTUP
478 017E C3 05FF JMP SEROUT ; SERIOVY VYSTUP
479 0181 C3 0978 JMP SMST ; STATUS SER. VSTUPU
480 0184 C3 009C JMP DUMMY
481 0187 C3 009C JMP DUMMY
482 018A SYSEND EQU $
483 018A 55 DB BEGIO ; 55-glt; IOBYTE
484 ENDIF
485
486
487 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488 ; **** S T A R T M O N I T O R U ****
489 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490 ;
491 018B COLD:
492 018B F3 BEG: DI ; PRIKAZ "B"
493 018C 21 406D LXI HL,MSTAK ; NASTAV STACK POINTER
494 018F F9 SPHL
495 0190 AF XRA A
496 0191 77 BEG0: MOV M,A
497 0192 2C INR L
498 0193 C2 0191 JNZ BEG0 ; NULUJ M-RAM
499 ;
500 0196 3C INR A
501 0197 D3 13 OUT URES ; RESET UART
502 0199 D3 10 OUT UMODE ; MODEM
503 019B 3C INR A
504 IF CPM
505 OUT P1 ; INIT LP
506 OUT P0 ; INIT KLAVESNICE
507 ELSE
508 019C 26 28 MVI H,(HIGH PORTK)+4
509 019E 77 MOV M,A
510 019F 25 DCR H
511 01A0 77 MOV M,A
512 ENDIF
513 01A1 3E 0D MVI A,0DH ; SERIOVY PRENOS
514 01A3 D3 11 OUT USTAT ; STATUS UART
515 ;
516 01A5 21 016C LXI H,SYSTAB ; NASTAV
517 01A8 11 018A LXI D,SYSEND ; SYSTEMOVE PERIFERIE
518 01AB 01 40C4 LXI B,CI@0
519 01AE CD 0480 CALL MO1
520 ;
521 01B1 21 4000 LXI H,@R@ ; NAJDI KONEC RAM
522 01B4 36 C3 MVI M,0C3H
523 01B6 24 MEM1: INR H ; DALSI STRANKA
524 IF CPM
525 MOV A,H
526 CPI HIGH ERAM+1
527 ENDIF
528 01B7 CA 01C3 JZ MEM2
529 01BA 7E MOV A,M
530 01BB 2F CMA
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-9
531 01BC 77 MOV M,A ; ZAPIS DOPLNEK
532 01BD BE CMP M ; ZAPIS O.K. ?
533 01BE 2F CMA
534 01BF 77 MOV M,A ; OBNOVA PAMETI
535 01C0 CA 01B6 JZ MEM1
536 01C3 2B MEM2: DCX H ; POSLEDNI BYTE
537 01C4 22 40BF SHLD MEMTOP ; ULOZ MEMTOP
538 ;
539 01C7 3E 67 MVI A,CURCH ; NASTAV KURZOR CS
540 01C9 32 40EF STA CUR@
541 ;
542 01CC CD 08A7 CALL CINIT ; KLAVESNICE
543 ;
544 01CF 21 3800 LXI H,TVBEG ; NASTAV T.V.
545 01D2 22 4081 SHLD CADR
546 01D5 3E C3 MVI A,0C3H
547 01D7 32 40C1 STA ERRSW
548 IF CPM
549 STA 8
550 ELSE
551 01DA 77 MOV M,A
552 01DB BE CMP M
553 01DC C4 1400 CNZ TVROM ; NENI AND-1
554 ENDIF
555 01DF CD 0549 CALL TX
556 01E2 1D 9F DB HOME,ERS OR 80H
557 ;
558 01E4 3A 0C00 LDA EP2 ; JE O.S V EPROM ?
559 01E7 FE C3 CPI 0C3H
560 01E9 CC 0C03 CZ EP2+3 ; INICIALIZUJ O.S.
561 ;
562 ; ZOTAVENI PO CHYBE "INIC-6" !!
563 01EC 21 404D LXI H,MSTAK-20H
564 01EF 22 4079 SHLD SPSAV
565 ;
566 ; OHLASENI MONITORU
567 ;
568 01F2 CD 0549 INIC: CALL TX
569 01F5 0D 0A DB CR,LF
570 01F7 4D 4F 4E 49 DC 'MONITOR V5.0'
571 01FB 54 4F 52 20
572 01FF 56 35 2E B0
573 ;
574 ;------------------------------------
575 ; * VYHODNOCENI POVELU OPERATORA *
576 ;------------------------------------
577
578 0203 31 406D NEXT: LXI SP,MSTAK ; NASTAV STACK PRO MONITOR
579 0206 21 0203 LXI H,NEXT
580 0209 E5 PUSH H ; ADRESA NAVRATU
581 020A 21 0353 LXI H,RESTA
582 IF CPM
583 SHLD 9
584 ENDIF
585 020D 22 4001 SHLD @R@+1
586 0210 21 01EC LXI H,INIC-6 ; ZPRACOVANI CHYBY
587 0213 22 40C2 SHLD ERRSW+1
588 0216 CD 0348 CALL INTER ; NASTAV PRERUSENI
589 0219 CD 0549 CALL TX
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-10
590 021C 0D 0A AE DB CR,LF,'.' OR 80H
591 021F CD 053A CALL CINCR ; POVEL !!!!!
592 ;
593 0222 6F XY: MOV L,A ; L-PRIKAZ
594 0223 E5 PUSH H ; SAVE
595 0224 D6 41 SUI 'A'
596 0226 FA 0203 JM NEXT ; ASCII < "A"
597 0229 21 023C LXI H,CTBL ; ZACATEK TABULKY PRIKAZU
598 022C 01 1A02 LXI B,(LCT SHL 8) OR 2
599 022F B8 INJM@: CMP B
600 0230 D2 0A38 JNC ERROR ; PRETECENI
601 0233 87 INJMP: ADD A ; 2*
602 0234 85 ADD L
603 0235 6F MOV L,A
604 0236 7E MOV A,M
605 0237 23 INX H
606 0238 66 MOV H,M
607 0239 6F MOV L,A
608 023A E3 XTHL ; NASTAV HL
609 023B C9 RET ; START
610 ;
611 ;----------------------------------
612 ; * TABULKA POVELU MONITORU *
613 ;----------------------------------
614
615 ;
616 023C 0270 CTBL: DW ASSIGN ; NASTAV I/O
617 023E 09F1 DW BCMD ; BASIC
618 0240 018B DW BEG ; CLEAR
619 0242 041F DW DISP ; ZOBRAZ PAMET
620 0244 0A57 DW EOF ; KONEC HEX
621 0246 046A DW FILL ; NAPLN PAMET
622 0248 02FA DW GOTO ; GOTO & BREAK
623 024A 0085 DW HNDIN ; INSTALUJ HANDLER
624 024C 0065 DW KOSI ; INIT O.S
625 024E 0A26 DW JUMP ; J
626 0250 0060 DW KOS ; K
627 0252 09D1 DW LOADB ; L
628 0254 0479 DW MOVE ; PRESUN PAMET
629 0256 0044 DW COPY ; N
630 0258 09AB DW CHMODE ; ZMENA MODE
631 025A 0A1B DW PCMD ; PEDIT
632 025C 02C6 DW QUERY ; NASTAVENI I/O
633 025E 0A6B DW READ@ ; R
634 0260 048A DW SUBS ; ZMENA OBSAHU
635 0262 0A13 DW TCMD ; TOOL
636 0264 0A4A DW UKAZ ; U ADR
637 0266 09C0 DW VERIFY ; V
638 0268 0ACF DW WRITE ; W
639 026A 039B DW X ; OBSAHY REGISTRU
640 026C 09B2 DW Y ; NASTAV PRERUSENI
641 026E 09B9 DW Z ; CASOVANI MGF
642 001A LCT EQU ($-CTBL)/2
643 IF HIGH ($-CTBL)
644 .PRINTX "CHYBA VE STRANCE S POVELY"
645 CHY EQU $
646 ENDIF
647 ;
648 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-11
649 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
650 ; REALIZACE POVELU MONITORU
651 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
652 ;
653 ; NASTAV I/O MODUL
654 ;
655 0270 CD 0537 ASSIGN: CALL CIMIN ; JMENO
656 ; <Aglt;..NAME (EXTERN CALLS)
657 0273 21 02AE LXI H,IOTAB ; TABULKA
658 0276 0E 04 MVI C,4 ; POCITADLO
659 0278 11 0006 LXI D,6 ; OFFSET
660 027B BE ASS0: CMP M
661 027C CA 0287 JZ ASS1 ; +
662 027F 19 DAD D ; ADRESA
663 0280 0D DCR C ; VSE?
664 0281 C2 027B JNZ ASS0 ; -
665 0284 C3 0A38 JMP ERROR
666 0287 CD 0013 ASS1: CALL EQUAL
667 028A CD 0562 CALL ECHO
668 028D 23 INX H
669 028E 46 MOV B,M
670 028F 0E 00 MVI C,0 ;IOBYT
671 0291 23 ASS2: INX H
672 0292 BE CMP M
673 0293 CA 02A2 JZ ASS3 ; +
674 0296 F5 PUSH PSW
675 0297 3E 55 MVI A,55H ; OFFSET
676 0299 81 ADD C
677 029A 4F MOV C,A
678 029B DA 0A38 JC ERROR ; NE #
679 029E F1 POP PSW
680 029F C3 0291 JMP ASS2 ; DALSI
681 02A2 79 ASS3: MOV A,C ; SPOCTU IOBYT
682 02A3 A0 ANA B
683 02A4 4F MOV C,A ; ULOZ
684 02A5 78 MOV A,B
685 02A6 2F CMA ; NEGUJ
686 02A7 21 40E2 IONEW: LXI H,IOBYT
687 02AA A6 ANA M
688 02AB B1 ORA C
689 02AC 77 MOV M,A
690 02AD C9 RET
691 ;
692 ; I/O TABULKA
693 ;
694 02AE 43 03 IOTAB: DB 'C',03H ; CONSOLE
695 02B0 54 43 42 31 DB 'TCB1'
696 02B4 52 0C DB 'R',0CH ; READER
697 02B6 54 50 31 32 DB 'TP12'
698 02BA 50 30 DB 'P',30H ; PUNCHER
699 02BC 54 50 31 32 DB 'TP12'
700 02C0 4C C0 DB 'L',0C0H ; LIST
701 02C2 54 43 4C 31 DB 'TCL1'
702 ;
703 ; VYPIS NASTAVENI I/O
704 ;
705 02C6 2A 40BF QUERY: LHLD MEMTOP
706 02C9 CD 0508 CALL DNADR
707 02CC 21 02AE LXI H,IOTAB ; TABULKA
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-12
708 02CF 3A 40E2 LDA IOBYT ; CTI
709 02D2 47 MOV B,A ; ULOZ
710 02D3 CD 02D6 CALL $+3
711 02D6 CD 02D9 CALL $+3
712 ; ZOBRAZ NASTAVENI I/O
713 02D9 CD 09CC CALL SPACE
714 02DC 7E MOV A,M ; CTI LOGICKE JMENO
715 02DD CD 0568 CALL COA
716 02E0 CD 0013 CALL EQUAL
717 02E3 E5 PUSH H ; ULOZ ADR.
718 02E4 23 INX H
719 02E5 23 INX H ; ADR.
720 02E6 78 MOV A,B
721 02E7 E6 03 ANI 3
722 02E9 5F MOV E,A
723 02EA 16 00 MVI D,0
724 02EC 19 DAD D ; FYZICKA ADR.
725 02ED 7E MOV A,M
726 02EE CD 0568 CALL COA
727 02F1 78 MOV A,B
728 02F2 0F RRC
729 02F3 0F RRC ; ROTUJ IOBYT
730 02F4 47 MOV B,A
731 02F5 E1 POP H
732 02F6 1E 06 MVI E,6 ; OFFSET
733 02F8 19 DAD D
734 02F9 C9 RET ; HL=DALSI ADR.
735 ;
736 ; GOTO + VYHODNOCENI PRERUSENI + PROHLIZENI REG.
737 ;***********************************************
738 ;
739 ;
740 ; "GO TO" PRIKAZ
741 ;
742 02FA CD 0013 GOTO: CALL EQUAL
743 02FD CD 053A CALL CINCR ; PRIKAZ
744 0300 DA 0331 JC GO@ ; IF CR THEN GOTO
745 0303 CA 0313 JZ GO@BR
746 0306 CD 04E1 CALL EXPRM ; START ADR
747 0309 E1 POP H
748 030A 22 4077 SHLD PCSAV
749 030D 78 MOV A,B ; JEN START ADR ?
750 030E FE 0D CPI CR
751 0310 CA 0331 JZ GO@
752 0313 CD 0500 GO@BR: CALL RADR ; CTI BREAK ADR
753 0316 22 407B SHLD BRAD
754 0319 7E MOV A,M ; ULOZ INSTR. KOD
755 031A 32 407D STA INSTR
756 031D 36 CF MVI M,RSTN
757 031F 3E 0D MVI A,CR
758 0321 B8 CMP B ; JEN 1-BREAK ?
759 0322 CA 0331 JZ GO@
760 ; O.S. BREAK
761 0325 CD 0500 CALL RADR
762 0328 22 407E SHLD BRAD2
763 032B 7E MOV A,M
764 032C 32 4080 STA INST2
765 032F 36 CF MVI M,RSTN
766 ; START
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-13
767 0331 CD 04D4 GO@: CALL CRLF
768 0334 F3 DI
769 0335 31 406F LXI SP,ACSAV
770 0338 F1 POP PSW
771 0339 C1 POP B
772 033A D1 POP D
773 033B 2A 4079 LHLD SPSAV ; ZASOBNIK
774 033E 2B DCX H ; -2
775 033F 2B DCX H
776 0340 F9 SPHL
777 0341 2A 4077 LHLD PCSAV ; PC
778 0344 E3 XTHL
779 0345 2A 4075 LHLD HLSAV
780 ;
781 ; POVOLENI A NASTAVENI PRERUSENI
782 ;
783 0348 F5 INTER: PUSH PSW
784 0349 F3 DI ; ZAKAZ PRI MODIFIKACI
785 034A 3A 40EE LDA PRER ; RIDICI SLOVO
786 IF NOT CPM
787 034D 32 3000 STA 3000H ; NASTAV
788 ENDIF
789 0350 F1 POP PSW
790 0351 FB EI ; A TAKY POVOL
791 0352 C9 RET ; POKRACUJ
792 ;
793 ;*********************************************;
794 ; RUN & BREAK MODUL:
795 ;
796 0353 F3 RESTA: DI
797 0354 22 4075 SHLD HLSAV
798 0357 F5 PUSH PSW
799 0358 21 0004 LXI H,4 ; OFFSET
800 035B 39 DAD SP
801 035C 22 4079 SHLD SPSAV
802 035F F1 POP PSW
803 0360 E1 POP H ; PC
804 0361 31 4075 LXI SP,HLSAV
805 0364 D5 PUSH D
806 0365 C5 PUSH B
807 0366 F5 PUSH PSW ; BYL BREAK ?
808 0367 EB XCHG
809 0368 1B DCX D ; PC-1
810 0369 21 407B LXI H,BRAD ; BREAK ?
811 036C 0E 02 MVI C,2 ; DVA BREAKY
812 036E C5 RST10: PUSH B
813 036F 4E MOV C,M
814 0370 36 00 MVI M,0
815 0372 23 INX H
816 0373 46 MOV B,M
817 0374 36 00 MVI M,0
818 0376 23 INX H
819 0377 79 MOV A,C
820 0378 B0 ORA B ; 0 ?
821 0379 CA 038A JZ RST20 ; NEBYL BREAK
822 037C 7E MOV A,M ; OBNOV INSTR.
823 037D 02 STAX B
824 037E 23 INX H
825 037F E5 PUSH H
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-14
826 0380 60 MOV H,B
827 0381 69 MOV L,C ; BYL BREAK ?
828 0382 CD 04FA CALL COMPR
829 0385 E1 POP H
830 0386 C2 038A JNZ RST20
831 0389 1B DCX D ; PC-1
832 038A C1 RST20: POP B
833 038B 0D DCR C
834 038C C2 036E JNZ RST10
835 038F EB XCHG
836 0390 23 INX H ; OBNOV PC
837 0391 22 4077 SHLD PCSAV
838 0394 37 STC
839 0395 CD 039E CALL X+3 ; ZOBRAZ VSECHNY REG.
840 0398 C3 0203 JMP NEXT
841 ;
842 ;*************************************
843 ;
844 ; ZOBRAZ & ZMEN OBSAHY REGISTRU
845 ;
846 039B CD 053A X: CALL CINCR ; PRIKAZ
847 039E 21 040A LXI H,RGNAM ; TABULKA JMEN
848 03A1 16 40 MVI D,HIGH ACSAV ;DATA
849 03A3 D2 03B1 JNC X1 ; ZMENA
850 03A6 CD 04D4 CALL CRLF
851 03A9 CD 03E7 X0: CALL XDISP
852 03AC C8 RZ ;END
853 03AD 23 INX H
854 03AE C3 03A9 JMP X0
855 03B1 CA 03C6 X1: JZ X2 ; ZADNA ZMENA
856 03B4 5F MOV E,A ; ULOZ JMENO
857 03B5 01 DB 1 ; LXI B,##
858 03B6 23 X10: INX H
859 03B7 23 INX H
860 03B8 7E MOV A,M ; CTI JMENO REG.
861 03B9 CA 0A38 JZ ERROR
862 03BC BB CMP E
863 03BD C2 03B6 JNZ X10 ; DALSI
864 03C0 CD 03F1 CALL XDIS1
865 03C3 C3 03C9 JMP X2+3
866 ;
867 03C6 CD 03EA X2: CALL XDISP+3
868 03C9 C8 RZ
869 03CA CD 0537 CALL CIMIN ; - PRIKAZ
870 03CD D8 RC ; CR - END
871 03CE 5E MOV E,M ; DOLNI ADR.
872 03CF 23 INX H
873 03D0 CA 03C6 JZ X2
874 03D3 EB XCHG
875 03D4 D5 PUSH D
876 03D5 CD 0053 CALL RBYT ; CTI NOVY BYTE A ZMEN
877 03D8 05 DCR B
878 03D9 CA 03DF JZ $+6
879 03DC 72 MOV M,D ; DOLNI BYTE
880 03DD 2B DCX H
881 03DE 73 MOV M,E
882 03DF D1 POP D
883 03E0 EB XCHG
884 03E1 FE 0D CPI CR ; POSLEDNI?
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-15
885 03E3 C8 RZ ; +
886 03E4 C3 03C6 JMP X2 ; DALSI
887 ;
888 03E7 CD 09CC XDISP: CALL SPACE
889 03EA 7E MOV A,M
890 03EB E6 7F ANI 7FH
891 03ED C8 RZ
892 03EE CD 0568 CALL COA
893 03F1 CD 0013 XDIS1: CALL EQUAL ; JMENO=
894 03F4 7E MOV A,M
895 03F5 07 RLC
896 03F6 3E 01 MVI A,1
897 03F8 CE 00 ACI 0 ; SPOCTI DELKU
898 03FA 47 MOV B,A ; ULOZ
899 03FB 23 INX H
900 03FC 5E MOV E,M ; SPODNI ADR.
901 03FD 1A LDAX D ; HORNI BYTE
902 03FE CD 05E8 CALL DBYT
903 0401 78 MOV A,B
904 0402 3D DCR A
905 0403 1B DCX D
906 0404 1A LDAX D ; CTI DRUHY BYTE
907 0405 C4 05E8 CNZ DBYT ; PRO 2.BYTE REG. ZOBRAZ
908 0408 B3 ORA E
909 0409 C9 RET
910 ;
911 ; X: TABULKA PRIKAZU
912 040A 41 70 RGNAM: DB 'A',LOW ACSAV+1
913 040C 46 6F DB 'F',LOW ACSAV
914 040E 42 72 DB 'B',LOW BCSAV+1
915 0410 43 71 DB 'C',LOW BCSAV
916 0412 44 74 DB 'D',LOW DESAV+1
917 0414 45 73 DB 'E',LOW DESAV
918 0416 48 76 DB 'H',LOW HLSAV+1
919 0418 4C 75 DB 'L',LOW HLSAV
920 041A D0 78 DB 'P' OR 80H,LOW PCSAV+1
921 041C D3 7A DB 'S' OR 80H,LOW SPSAV+1
922 041E 00 DB 0
923 ;
924 ; PRACE S PAMETI: PROHLIZENI, PLNENI, PRESUV A ZAMENA
925 ;****************************************************
926 ;
927 ; ZOBRAZENI OBSAHU PAMETI
928 ;
929 041F CD 04A8 DISP: CALL EXPR ; OD - DO
930 0422 D1 POP D
931 0423 E1 POP H
932 0424 E5 DI0: PUSH H ; PRVNI ADR.
933 0425 CD 0508 CALL DNADR ; NOVA ADR.
934 0428 7E DI1: MOV A,M
935 0429 CD 09C9 CALL DBYTE
936 042C CD 04F5 CALL HILO
937 042F DA 0438 JC DIA ; ZOBRAZ ASCII
938 0432 7D MOV A,L
939 0433 E6 07 ANI 7
940 0435 C2 0428 JNZ DI1 ; DALSI BYTE
941 0438 E1 DIA: POP H
942 0439 CD 09CC CALL SPACE
943 043C 7E DI2: MOV A,M
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-16
944 043D CD 089C CALL BIG
945 0440 FE 20 CPI ' '
946 0442 DA 044A JC DI4
947 0445 FE 7B CPI 7BH
948 0447 DA 044C JC DI5
949 044A 3E 2E DI4: MVI A,'.'
950 044C CD 0568 DI5: CALL COA
951 044F CD 04F5 CALL HILO
952 0452 D8 RC
953 0453 7D MOV A,L
954 0454 E6 07 ANI 7
955 0456 C2 043C JNZ DI2 ; DALSI ASCII
956 0459 CD 058B CALL CSTS
957 045C CA 0424 JZ DI0 ; DALSI RADEK
958 045F CD 0537 CALL CIMIN ; ' '..PRERUSENI
959 0462 D8 RC ; CR
960 0463 CD 053A DI3: CALL CINCR
961 0466 D8 RC ; CR
962 0467 C3 0424 JMP DI0
963 ;*************************************
964 ;
965 ; NAPLNENI PAMETI KONSTANTOU
966 ;
967 046A 0C FILL: INR C
968 046B CD 04A8 CALL EXPR ; OD-DO-CIM
969 046E C1 POP B
970 046F D1 POP D
971 0470 E1 POP H
972 0471 71 FI1: MOV M,C
973 0472 CD 04F5 CALL HILO
974 0475 D2 0471 JNC FI1
975 0478 C9 RET
976 ;*************************************
977 ;
978 ; PRESUN BLOKU PAMETI
979 ;
980 0479 0C MOVE: INR C
981 047A CD 04A8 CALL EXPR
982 047D C1 POP B
983 047E D1 POP D
984 047F E1 POP H
985 0480 7E MO1: MOV A,M
986 0481 02 STAX B
987 0482 03 INX B
988 0483 CD 04F5 CALL HILO
989 0486 D2 0480 JNC MO1
990 0489 C9 RET
991 ;*************************************
992 ;
993 ; ZMENA OBSAHU PAMETI
994 ;
995 048A CD 0500 SUBS: CALL RADR ; ADR.
996 048D 7E SU1: MOV A,M
997
998
999 048E CD 05E8 CALL DBYT
1000 0491 CD 0537 CALL CIMIN ; - & CINCR
1001 0494 D8 RC ; CR
1002 0495 CA 049C JZ SU2
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-17
1003 0498 CD 0053 CALL RBYT ; ZMENA
1004 049B C8 RZ ; KONEC
1005 049C 23 SU2: INX H ; DALSI BYTE
1006 049D FE 2C CPI ',' ; PRO "," ZOBRAZ ADR.
1007 049F CC 0508 CZ DNADR
1008 04A2 C3 048D JMP SU1
1009 ;
1010 ;********************************************
1011 ; PODPROGRAMY MONITORU A SLUZBY
1012 ;********************************************
1013 ;
1014 ; SKLADANI ADRES (VSTUP PARAMETRU) DO ZASOBNIKU,
1015 ; POCET V C-REG.
1016 ;
1017 04A5 DA 0A38 EXPR0: JC ERROR
1018 04A8 CD 0013 EXPR: CALL EQUAL ; TISK =
1019 04AB 21 0000 LXI H,0
1020 04AE CD 0562 EX0: CALL ECHO
1021 04B1 47 EX1: MOV B,A
1022 04B2 FE 27 CPI 27H ; "'"
1023 04B4 CA 04E9 JZ EX4
1024 04B7 CD 0523 CALL ASHEX
1025 04BA DA 04C6 EX2: JC EX3 ; HEX CIFRA ?
1026 04BD 29 DAD H ; POSUV "HL" O 4 BITY VLEVO
1027 04BE 29 DAD H
1028 04BF 29 DAD H
1029 04C0 29 DAD H
1030 04C1 B5 ORA L
1031 04C2 6F MOV L,A
1032 04C3 C3 04AE JMP EX0 ; DALSI ZNAK
1033 04C6 78 EX3: MOV A,B
1034 04C7 CD 053D CALL ANAL
1035 04CA C2 04DA JNZ EX5 ; NENI HEX CIFRA
1036 04CD E3 XTHL
1037 04CE E5 PUSH H
1038 04CF 0D DCR C ; CARKA, MEZERA
1039 04D0 C2 04A5 JNZ EXPR0 ; DALSI ADRESY
1040 04D3 D0 RNC
1041 ;
1042 04D4 CD 0549 CRLF: CALL TX
1043 04D7 0D 8A DB CR,LF OR 80H
1044 04D9 C9 RET
1045 ;
1046 04DA CD 0549 EX5: CALL TX
1047 04DD 88 DB 88H ; BACK SPACE
1048 04DE C3 04AE JMP EX0 ; ZRUS CHYBU
1049 ;
1050 04E1 0E 01 EXPRM: MVI C,1
1051 04E3 21 0000 LXI H,0
1052 04E6 C3 04B1 JMP EX1
1053 ;
1054 04E9 CD 053A EX4: CALL CINCR ; PRIKAZ
1055 04EC 47 MOV B,A ; ULOZ
1056 04ED CA 04C6 JZ EX3
1057 04F0 65 MOV H,L
1058 04F1 6F MOV L,A
1059 04F2 C3 04E9 JMP EX4
1060 ;**************************************
1061
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-18
1062
1063 ; INKREMENTUJE "HL" ,KONTROLUJE "HL"=0 NEBO
1064 ; "HL"glt;"DE"...CARRY=1
1065
1066 04F5 23 HILO: INX H
1067 04F6 7C MOV A,H
1068 04F7 B5 ORA L
1069 04F8 37 STC
1070 04F9 C8 RZ ; NAVRAT PO "HL"=0000
1071 04FA 7A COMPR: MOV A,D
1072 04FB BC CMP H
1073 04FC C0 RNZ
1074 04FD 7B MOV A,E
1075 04FE BD CMP L
1076 04FF C9 RET
1077
1078 ; CTI ADRESU
1079
1080 0500 0E 01 RADR: MVI C,1
1081 0502 CD 04A8 CALL EXPR
1082 0505 E1 POP H
1083 0506 7D MOV A,L
1084 0507 C9 RET
1085
1086 ; ZOBRAZ NOVOU ADRESU
1087
1088 0508 CD 04D4 DNADR: CALL CRLF
1089 050B CD 05E3 DADR: CALL DADR0
1090 050E C3 09CC JMP SPACE
1091 ;
1092 ; PREVOD HEXADECIMALNI CIFRY NA ASCII V "C" REG
1093
1094 0511 E6 0F HXANIB: ANI 0FH
1095 ;
1096 0513 C6 90 HXASC: ADI 90H
1097 0515 27 DAA
1098 0516 CE 40 ACI 40H
1099 0518 27 DAA
1100 0519 4F MOV C,A
1101 051A C9 RET
1102
1103 ; ZJISTI KONEC RAM <Aglt;,<Bglt;..HIGH
1104
1105 051B E5 MEMCK: PUSH H
1106 051C 2A 40BF LHLD MEMTOP
1107 051F 7D MOV A,L
1108 0520 44 MOV B,H
1109 0521 E1 POP H
1110 0522 C9 RET
1111
1112
1113 ; PREVOD ZNAKU ASCII NA HEXADEC.
1114
1115 0523 CD 089C ASHEX: CALL BIG ; VELKA PISMENA
1116 0526 D6 30 SUI '0'
1117 0528 D8 RC ; FILTR < (00-2F)
1118 0529 FE 17 CPI 17H ; '0'..'F'..HEX
1119 052B 3F CMC
1120 052C D8 RC ; CY=1..CHYBA
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-19
1121 052D FE 0A CPI 10
1122 052F 3F CMC
1123 0530 D0 RNC ; 0-9 .. KOD
1124 0531 FE 11 CPI 11H
1125 0533 D8 RC ; CHYBA
1126 0534 D6 07 SUI 7
1127 0536 C9 RET ; A-F .. KOD
1128
1129 0537 CD 000B CIMIN: CALL MINUS ; -
1130 ;
1131 053A CD 0562 CINCR: CALL ECHO
1132 053D FE 2C ANAL: CPI ','
1133 053F C8 ANAL0: RZ
1134 0540 FE 20 CPI ' '
1135 0542 C8 ANAL2: RZ
1136 0543 FE 0D CPI CR
1137 0545 37 STC
1138 0546 C8 RZ
1139 0547 B7 ORA A
1140 0548 C9 RET ; PO CR CARRY=1
1141 ;
1142 ; TEXT PRIMO ZA VOLANIM
1143 ;
1144 0549 E3 TX: XTHL
1145 054A 7E MOV A,M
1146 054B E6 7F ANI 7FH
1147 054D CD 0568 CALL COA
1148 0550 7E MOV A,M
1149 0551 07 RLC ; PARITA..KONEC
1150 0552 23 INX H ; DALSI ZNAK
1151 0553 D2 054A JNC TX+1 ; ZOBRAZ
1152 0556 E3 XTHL ; OBNOV PC
1153 0557 C9 RET
1154
1155 ; VYPIS TEXTU - HL ADRESA, D DELKA
1156
1157 0558 7E TEXT: MOV A,M
1158 0559 23 INX H
1159 055A CD 0568 CALL COA
1160 055D 15 DCR D
1161 055E C2 0558 JNZ TEXT
1162 0561 C9 RET
1163 ;
1164 ; ECHO
1165 ;
1166 0562 CD 0596 ECHO: CALL CI
1167 0565 CD 089C CALL BIG
1168 0568 C5 COA: PUSH B
1169 0569 4F MOV C,A
1170 056A CD 05F4 CALL CO
1171 056D C1 POP B
1172 056E C9 RET
1173
1174 ; IODEF:... DEFINICE UZIVATELSKYCH I/0 RUTIN
1175
1176 056F 79 IODEF: MOV A,C ; CISLO
1177 0570 FE 15 CPI IONUM
1178 0572 F0 RP
1179 0573 C5 PUSH B
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-20
1180 0574 E5 PUSH H
1181 0575 81 ADD C
1182 0576 81 ADD C
1183 0577 4F MOV C,A
1184 0578 06 00 MVI B,0 ; OFFSET
1185 057A 21 40A6 LXI H,CILOC ; SPOCTI ADR.
1186 057D 09 DAD B
1187 057E 36 C3 MVI M,0C3H ; JMP
1188 0580 23 INX H
1189 0581 4E MOV C,M
1190 0582 73 MOV M,E
1191 0583 23 INX H
1192 0584 46 MOV B,M
1193 0585 72 MOV M,D ; ADR.
1194 0586 50 MOV D,B ; DE..PUVODNI OBSAH
1195 0587 59 MOV E,C
1196 0588 E1 POP H
1197 0589 C1 POP B
1198 058A C9 RET
1199 ;
1200 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1201 ; I/O PERIFERIE
1202 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1203 ;
1204 ; VOLBA PERIFERII PODLE IOBYTE
1205 ;
1206 058B 3A 40E2 CSTS: LDA IOBYT ; USER1, USER2
1207 058E 1F RAR
1208 058F 1F RAR
1209 0590 DA 40BB JC CSLOC ; USER CSTS
1210 0593 C3 40CA JMP CSTS@ ; SYSTEM.CSTS
1211 ;
1212 0596 CD 05A1 CI: CALL DEV
1213 0599 0841 0841 CITB: DW CI@,CI@,RI,CILOC
1214 059D 05AA 40A6
1215
1216 IF HIGH ($-CITB)
1217 .PRINTX "CHYBA V DEFINICI I/O TABULKY"
1218 ERRIO EQU $
1219 ENDIF
1220 ;
1221 05A1 3A 40E2 DEV: LDA IOBYT
1222 05A4 E6 03 DEV0: ANI 3
1223 05A6 E3 XTHL
1224 05A7 C3 0233 JMP INJMP
1225 ;
1226 05AA 3A 40E2 RI: LDA IOBYT
1227 05AD 0F RRC
1228 05AE 0F RRC
1229 05AF CD 05A4 CALL DEV0
1230 ;
1231 05B2 0841 40D3 RITB: DW CI@,RI@,R1LOC,R2LOC
1232 05B6 40AC 40AF
1233 ;
1234 IF HIGH ($-RITB)
1235 .PRINTX "CHYBA V DEFINICI I/O TABULKY"
1236 ERRIO EQU $
1237 ENDIF
1238 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-21
1239 05BA 0F HBT: RRC
1240 05BB 0F RRC
1241 05BC 0F RRC
1242 05BD 0F RRC
1243 05BE CD 0511 LBT: CALL HXANIB
1244 ;
1245 05C1 3A 40E2 PO: LDA IOBYT
1246 05C4 0F RRC
1247 05C5 0F RRC
1248 05C6 0F RRC
1249 05C7 0F RRC
1250 05C8 CD 05A4 CALL DEV0
1251 ;
1252 05CB 05F4 40D6 POTB: DW CO,PO@,P1LOC,P2LOC
1253 05CF 40B2 40B5
1254 ;
1255 IF HIGH ($-POTB)
1256 .PRINTX "CHYBA V DEFINICI I/O TABULKY"
1257 ERRIO EQU $
1258 ENDIF
1259 ;
1260 05D3 3A 40E2 LO: LDA IOBYT
1261 05D6 07 RLC
1262 05D7 07 RLC
1263 05D8 CD 05A4 CALL DEV0
1264 ;
1265 05DB 060A 05F4 LOTB: DW COLO,CO,LO@,LILOC
1266 05DF 40CD 40B8
1267
1268 IF HIGH ($-LOTB)
1269 .PRINTX "CHYBA V DEFINICI I/O TABULKY"
1270 ERRIO EQU $
1271 ENDIF
1272 ;
1273 ; ZOBRAZ ADRESU Z "HL"
1274
1275 05E3 7C DADR0: MOV A,H
1276 05E4 CD 05E8 CALL DBYT
1277 05E7 7D MOV A,L
1278
1279 ; ZOBRAZ BYTE <Aglt;
1280
1281 05E8 F5 DBYT: PUSH PSW
1282 05E9 0F RRC
1283 05EA 0F RRC
1284 05EB 0F RRC
1285 05EC 0F RRC
1286 05ED CD 05F1 CALL LBYTE
1287 05F0 F1 POP PSW
1288 05F1 DNIBL:
1289 05F1 CD 0511 LBYTE: CALL HXANIB
1290 ;
1291 05F4 CD 05A1 CO: CALL DEV
1292 ;
1293 05F7 060A 060D COTB: DW COLO,COOUT,LO,COLOC
1294 05FB 05D3 40A9
1295 ;
1296 IF HIGH ($-COTB)
1297 .PRINTX "CHYBA V DEFINICI I/O TABULKY"
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-22
1298 ERRIO EQU $
1299 ENDIF
1300 ;****************************************************
1301 ; OBSLUHA T.V. A NEBO TERMINALU
1302 ;****************************************************
1303 ;
1304 ; CONSOLE OUTPUT
1305 ; <Cglt;...ZAPISE NA OBRAZOVKU
1306 ;
1307 ; SM 7202 .. SERIOVY VYSTUP
1308 ;
1309 05FF DB 11 SEROUT: IN USTAT
1310 0601 E6 40 ANI 40H
1311 0603 CA 05FF JZ SEROUT
1312 0606 79 MOV A,C
1313 0607 D3 12 OUT UDATA
1314 0609 C9 RET
1315 ;
1316 ; ZOBRAZ A TISKNI
1317 ;
1318 060A CD 05D3 COLO: CALL LO
1319 ;
1320 ;********************************************
1321 ; OBSLUHA T.V. A SIMULACE DISPLEJE <Cglt;..ZNAK
1322 ;********************************************
1323 ;
1324 060D 3A 40E3 COOUT: LDA MODE
1325 0610 0F RRC
1326 0611 DC 40CD CC LO@ ; TISK
1327 0614 C3 40C7 JMP CO@ ; TERMINAL
1328 ;
1329 ;--------------------------------
1330 ;
1331 0617 79 CO@@: MOV A,C
1332 0618 FE 7F CPI 7FH ; DEL
1333 061A C8 RZ
1334 061B FE 09 CPI HT
1335 061D CA 082F JZ TAB@
1336 0620 D5 PUSH D
1337 0621 E5 PUSH H
1338 0622 C5 PUSH B
1339 0623 2A 4081 LHLD CADR ; VYMAZ KURSOR
1340 0626 FE 20 CPI ' ' ; PRO ' '...'Z' PIS
1341 0628 DA 065A JC CONTROL ; RIZENI T.V.
1342 ;
1343 ; ZAPIS ZNAKU DO VIDEO RAM
1344 ;
1345 062B 3A 40F9 CO@WR: LDA XFLG ; ADRESACE KURSORU?
1346 062E B7 ORA A
1347 062F C2 06E1 JNZ ADRCUR ; +
1348 IF TV64
1349 MOV M,C
1350 ELSE
1351 0632 79 MOV A,C ; VYTVOR KOD PRO AND-1
1352 0633 CD 089C CALL BIG
1353 0636 E6 3F ANI 3FH
1354 0638 77 MOV M,A ; ZAPIS ZNAK !
1355 0639 3A 40E3 LDA MODE
1356 063C E6 C0 ANI 0C0H
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-23
1357 063E C4 071B CNZ ATTR
1358 ENDIF
1359 ;
1360 0641 CD 0720 COEXAT: CALL CONXT ; VYPOCTI DALSI ADRESU
1361 ; ZAPIS NOVY KURZOR
1362 0644 C1 COEXX: POP B
1363 0645 7E COEX0: MOV A,M
1364 0646 32 40F8 STA CHAR
1365 0649 22 4081 SHLD CADR
1366 064C 3A 40E3 LDA MODE ; KURSOR (Y/N)
1367 064F E6 20 ANI 20H
1368 0651 C2 0656 JNZ COEX1
1369 0654 36 A0 MVI M,CURSOR
1370 0656 E1 COEX1: POP H
1371 0657 D1 POP D
1372 0658 79 MOV A,C
1373 0659 C9 RET ; KONEC CONSOLE OUTPUT
1374
1375 ;***********************************************
1376 ;
1377 ; ZPRACOVANI RIDICICH ZNAKU ( SIMULACE SM7202 )
1378 ;
1379 065A CONTROL:
1380 065A 21 069B LXI H,COEX ; ADRESA NAVRATU
1381 065D E5 PUSH H ; OBNOVENI ZNAKU MISTO
1382 065E CD 06C5 CALL OBNOV ; KURZORU
1383 0661 79 MOV A,C
1384 0662 FE 0D CPI CR
1385 0664 CA 07BC JZ CR@
1386 0667 FE 0A CPI LF
1387 0669 CA 0730 JZ LF@
1388 066C FE 1E CPI EOL
1389 066E CA 0793 JZ EOL@
1390 0671 FE 08 CPI BACK
1391 0673 CA 07A3 JZ BACK@
1392 0676 FE 18 CPI RIGHT
1393 0678 CA 0720 JZ CONXT
1394 067B FE 1D CPI HOME
1395 067D CA 07B6 JZ HOME@
1396 0680 FE 1F CPI ERS
1397 0682 CA 075E JZ ERS@
1398 0685 FE 1A CPI UP
1399 0687 CA 07C3 JZ UP@
1400 068A FE 0B CPI VT
1401 068C CA 0782 JZ VT@
1402 068F FE 1C CPI WNDCD
1403 0691 CA 0705 JZ WNDCH
1404 0694 FE 1B CPI ESC
1405 0696 C0 RNZ
1406 0697 32 40F9 ESC@: STA XFLG
1407 069A C9 RET
1408 ;
1409 ; VYPOCTI NOVOU POZICI
1410 ;
1411 069B CD 06CC COEX: CALL COADR
1412 069E C3 0644 JMP COEXX ; ZAPIS KURZOR
1413 ;
1414 ;-------------------------------------------------
1415 ; PODPROGRAMY
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-24
1416 ;--------------------------------------------------
1417 ;
1418 ; NASTAV MODE A I/O FLAGY
1419 ;
1420 06A1 47 EXFLG: MOV B,A
1421 06A2 0C INR C ; SPEC. FUNKCE
1422 06A3 CA 007E JZ BINAR
1423 06A6 0D DCR C
1424 06A7 79 MOV A,C
1425 06A8 FE 15 CPI EXSER ; PRETECENI?
1426 06AA 78 MOV A,B
1427 06AB D0 RNC
1428 06AC E5 PUSH H ; <Aglt; .. PRIKAZ
1429 ; <Cglt; .. 0-N SLUZBA
1430 06AD 06 00 MVI B,0 ; 0-MODE, 1-@IF1..4-@OF2
1431 06AF 21 40E3 LXI H,MODE ; C=O
1432 06B2 09 DAD B
1433 06B3 46 MOV B,M ; <Bglt;..PUVODNI NASTAVENI
1434 06B4 77 MOV M,A
1435 06B5 E1 POP H
1436 06B6 79 MOV A,C
1437 06B7 FE 05 CPI 5
1438 06B9 D8 RC ; C=5,6 .. OBNOV KORZOR
1439 06BA FE 07 CPI 7
1440 06BC D0 RNC
1441 06BD D5 EXFLG1: PUSH D
1442 06BE E5 PUSH H
1443 06BF CD 06C5 CALL OBNOV
1444 06C2 C3 0645 JMP COEX0 ; OBNOV KURZOR
1445 ;
1446 ; OBNOVA KURSORU
1447 ;
1448 06C5 2A 4081 OBNOV: LHLD CADR
1449 06C8 3A 40F8 LDA CHAR
1450 06CB 77 MOV M,A
1451 ;
1452 ; VYPOCTI NOVOU ADRESU
1453 ;
1454 06CC 2A 40E8 COADR: LHLD LINE ; SPOCTI ADR.<HLglt;
1455 06CF E5 PUSH H
1456 06D0 26 00 MVI H,0
1457 06D2 29 DAD H
1458 06D3 29 DAD H
1459 06D4 29 DAD H
1460 06D5 29 DAD H
1461 06D6 29 DAD H
1462 06D7 29 DAD H ; 64*
1463 06D8 11 3800 LXI D,TVBEG ; TV-RAM
1464 06DB 19 DAD D ; ZACATEK RADKU
1465 06DC D1 POP D ; NSTAV DE
1466 06DD 7D MOV A,L ; D-SLOUPEC
1467 06DE B2 ORA D ; E-RADEK
1468 06DF 6F MOV L,A ; HL...ADR
1469 06E0 C9 RET
1470 ;
1471 ; ADRESACE KURZORU: ESC, Y, X
1472 ;
1473 06E1 3D ADRCUR: DCR A
1474 06E2 79 MOV A,C ; ZNAK
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-25
1475 06E3 CA 06F3 JZ ADRCX ; "X"
1476 06E6 D6 20 SUI ' ' ; "Y"
1477 06E8 FE 18 CPI HEIGHT
1478 06EA D0 RNC
1479 06EB 32 40E8 STA LINE
1480 06EE 3E 01 MVI A,1
1481 06F0 C3 06FC JMP ESC@0
1482 06F3 D6 20 ADRCX: SUI ' '
1483 06F5 FE 28 CPI WIDTH
1484 06F7 D0 RNC
1485 06F8 32 40E9 STA COLUM
1486 06FB AF XRA A ; ZRUS PRIZNAK
1487 06FC 32 40F9 ESC@0: STA XFLG
1488 06FF CD 06C5 CALL OBNOV
1489 0702 C3 0644 JMP COEXX
1490 ;
1491 ; ZMENA OKNA
1492 ;
1493 0705 21 40F2 WNDCH: LXI H,WNDP ; ADRESA NOVYCH PARAMETRU
1494 0708 11 40E8 WND@: LXI D,LINE ; PUVODNI NASTAVENI
1495 070B 06 06 MVI B,6 ; DELKA
1496 070D 1A WND@0: LDAX D
1497 070E 4E MOV C,M ; ZAMENA
1498 070F 77 MOV M,A
1499 0710 79 MOV A,C
1500 0711 12 STAX D
1501 0712 13 INX D
1502 0713 23 INX H
1503 0714 05 DCR B
1504 0715 C2 070D JNZ WND@0
1505 0718 C3 06BD JMP EXFLG1 ; OBNOV KURZOR
1506
1507 IF NOT TV64
1508 ;
1509 ; ZPRACUJ ATTRIBUT
1510 ;
1511 071B B6 ATTR: ORA M
1512 071C 77 MOV M,A
1513 071D D6 C0 SUI 0C0H
1514 071F D8 RC
1515 ENDIF
1516 ;
1517 ; VYPOCTI DALSI ADRESU
1518 ;
1519 0720 23 CONXT: INX H ; JE TO
1520 0721 CD 081F CALL CMAX ; POSLEDNI ZNAK
1521 0724 47 MOV B,A
1522 0725 7D MOV A,L ; KONEC RADKU ?
1523 0726 E6 3F ANI 3FH
1524 IF TV64
1525 JZ CONX1
1526 ENDIF
1527 0728 32 40E9 STA COLUM
1528 072B B8 CMP B ; KONEC RADKU
1529 072C D8 RC ; NE
1530 072D CD 07BC CONX1: CALL CR@ ; NASTAV SLOUPEC
1531 ;
1532 ; NOVY RADEK
1533 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-26
1534 0730 CD 0782 LF@: CALL VT@
1535 0733 D0 RNC
1536 ;
1537 ; ROLUJ OBRAZOVKU
1538 ;
1539 0734 2A 40EA ROLL@: LHLD RESL
1540 0737 79 MOV A,C
1541 0738 95 SUB L
1542 0739 3D DCR A
1543 073A 4F MOV C,A ; POCET RADKU
1544 073B CD 081F CALL CMAX
1545 073E 94 SUB H
1546 073F 47 MOV B,A ; POCET ZNAKU
1547 0740 CD 06CF CALL COADR+3 ; PRVNI RADEK
1548 0743 EB ROLL: XCHG
1549 0744 21 0040 LXI H,LINOF ; OFFSET
1550 0747 19 DAD D
1551 0748 C5 PUSH B
1552 0749 E5 PUSH H ; PRO DALSI RADEK
1553 074A 7E ROLL1: MOV A,M
1554 074B 12 STAX D
1555 074C 13 INX D ; +
1556 074D 23 INX H
1557 074E 05 DCR B
1558 074F C2 074A JNZ ROLL1 ; VSECHNY RADKY
1559 0752 E1 POP H
1560 0753 C1 POP B
1561 0754 0D DCR C ; KONEC ?
1562 0755 C2 0743 JNZ ROLL
1563 0758 CD 0793 ROLL2: CALL EOL@
1564 075B C3 06CC JMP COADR
1565 ;
1566 ; VYMAZ ZBYTEK OBRAZOVKY
1567 ;
1568 075E CD 0793 ERS@: CALL EOL@
1569 0761 2A 40E8 LHLD LINE
1570 0764 3A 40EB LDA RESC
1571 0767 67 MOV H,A ; 1.ZNAK NA RADKU
1572 0768 CD 0827 CALL LMAX ; POCET RADKU
1573 076B 95 SUB L
1574 076C 3D DCR A
1575 076D 4F MOV C,A ; CITAC
1576 076E CA 06CC JZ COADR ; KONEC
1577 0771 CD 06CF CALL COADR+3
1578 0774 11 0040 ERS@1: LXI D,LINOF
1579 0777 19 DAD D
1580 0778 E5 PUSH H
1581 0779 CD 0793 CALL EOL@
1582 077C E1 POP H
1583 077D 0D DCR C
1584 077E C2 0774 JNZ ERS@1
1585 0781 C9 RET
1586 ;
1587 ; VERTIKALNI TAB.
1588 ;
1589 0782 CD 0827 VT@: CALL LMAX ; POSLEDNI RADEK ?
1590 0785 4F MOV C,A
1591 0786 3A 40E8 LDA LINE ; CISLO RADKU
1592 0789 3C INR A
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-27
1593 078A B9 CMP C ; KONEC?
1594 078B 3F CMC
1595 078C D8 RC
1596 078D 32 40E8 STA LINE
1597 0790 C3 06CC JMP COADR
1598
1599 IF NOT CPM
1600
1601 ; VYMAZ ZBYTEK RADKU
1602 ;
1603 0793 7D EOL@: MOV A,L
1604 0794 E6 3F ANI 3FH ; CISLO ZNAKU
1605 0796 47 MOV B,A
1606 0797 CD 081F CALL CMAX ; MAX. POCET ZNAKU
1607 079A 90 SUB B ; POCET ZNAKU PRO VYMAZ
1608 079B 36 20 EOL@1: MVI M,' ' ; CISTI
1609 079D 23 INX H
1610 079E 3D DCR A
1611 079F C2 079B JNZ EOL@1
1612 07A2 C9 RET
1613 ;
1614 ; VRAT KURZOR ZPET
1615 ;
1616 07A3 3A 40EB BACK@: LDA RESC ; JE TO 1. ZNAK
1617 07A6 BA CMP D
1618 07A7 7A MOV A,D
1619 07A8 C2 07B2 JNZ BAC@1
1620 07AB CD 07C3 CALL UP@
1621 07AE D0 RNC ; HORNI OKRAJ
1622 07AF CD 081F CALL CMAX
1623 07B2 3D BAC@1: DCR A
1624 07B3 C3 07BF JMP CR@+3
1625 ;
1626 ; NASTAV ZACATEK OBRAZOVKY
1627 ;
1628 07B6 3A 40EA HOME@: LDA RESL
1629 07B9 32 40E8 STA LINE
1630 ;
1631 ; NOVY RADEK
1632 ;
1633 07BC 3A 40EB CR@: LDA RESC
1634 07BF 32 40E9 STA COLUM
1635 07C2 C9 RET
1636 ;
1637 ; KURZOR NAHORU
1638 ;
1639 07C3 3A 40EA UP@: LDA RESL
1640 07C6 BB CMP E
1641 07C7 C8 RZ ; REZERVA
1642 07C8 7B MOV A,E
1643 07C9 B7 ORA A
1644 07CA C8 RZ ; VRCHOL
1645 07CB 3D DCR A
1646 07CC 32 40E8 STA LINE
1647 07CF 37 STC
1648 07D0 C9 RET
1649 ENDIF
1650 ;****************************************************
1651 ; PREKODOVANI ZNAKU PRO :CI:
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-28
1652 ;----------------------------
1653 ; PREVOD PRO 262.3 PL-CS
1654 ;
1655 07D1 D2 80 8D 1D TABZN: DB 0D2H,80H,8DH,1DH ; CS-LOCK, HOME
1656 07D5 82 81 83 81 DB 82H,81H,83H,81H ; CS-COPY
1657 07D9 C1 1A C2 0B DB 0C1H,1AH,0C2H,0BH ; KURZOR
1658 07DD C3 18 C4 08 DB 0C3H,18H,0C4H,08H
1659 07E1 D0 DC D1 E0 DB 0D0H,0DCH,0D1H,0E0H ; '^
1660 07E5 00 DB 0 ; KONEC
1661 ;
1662 ; TABULKA ZNAKU:
1663 ;
1664 07E6 CSKOD: ; CISLA NA CS-KODY
1665 07E6 D7 2B C5 D3 DB 0D7H,02BH,0C5H,0D3H,0C3H
1666 07EA C3
1667 07EB D2 DA D9 C1 DB 0D2H,0DAH,0D9H,0C1H,0C9H
1668 07EF C9
1669 ;
1670 ; PREVOD WM-KODU A CISEL
1671 ;
1672 07F0 2C 2D 2E TBWM: DB ',-.' ; ,-.
1673 07F3 81 DB 81H ; CS 0
1674 07F4 30 31 32 33 DB '0123456789'
1675 07F8 34 35 36 37
1676 07FC 38 39
1677 07FE RRAM EQU $
1678 ;*****************************************************
1679 IF RRAM GT 809H
1680 .PRINTX 'SPATNA TABULKA O.S'
1681 QQQQQQ
1682 ENDIF
1683
1684 ORG 809H ; SLUZBY MIKOSU
1685 0809 C3 006A JMP FIND
1686 080C C3 006F JMP OPEN
1687 080F C3 0A66 JMP CLOSE
1688 0812 C3 0074 JMP LOADCD
1689 0815 C3 0079 JMP SAVECD
1690 0818 50 45 52 49 DB 'PERINA '
1691 081C 4E 41 20
1692 ;****************************************************
1693 IF CPM
1694 ;
1695 ; VYMAZ ZBYTEK RADKU
1696 ;
1697 EOL@: MOV A,L
1698 ANI 3FH ; CISLO ZNAKU
1699 MOV B,A
1700 CALL CMAX ; MAX. POCET ZNAKU
1701 SUB B ; POCET ZNAKU PRO VYMAZ
1702 EOL@1: MVI M,' ' ; CISTI
1703 INX H
1704 DCR A
1705 JNZ EOL@1
1706 RET
1707 ;
1708 ; VRAT KURZOR ZPET
1709 ;
1710 BACK@: LDA RESC ; JE TO 1. ZNAK
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-29
1711 CMP D
1712 MOV A,D
1713 JNZ BAC@1
1714 CALL UP@
1715 RNC ; HORNI OKRAJ
1716 CALL CMAX
1717 BAC@1: DCR A
1718 JMP CR@+3
1719 ;
1720 ; NASTAV ZACATEK OBRAZOVKY
1721 ;
1722 HOME@: LDA RESL
1723 STA LINE
1724 ;
1725 ; NOVY RADEK
1726 ;
1727 CR@: LDA RESC
1728 STA COLUM
1729 RET
1730 ;
1731 ; KURZOR NAHORU
1732 ;
1733 UP@: LDA RESL
1734 CMP E
1735 RZ ; REZERVA
1736 MOV A,E
1737 ORA A
1738 RZ ; VRCHOL
1739 DCR A
1740 STA LINE
1741 STC
1742 RET
1743
1744 ENDIF
1745 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1746 ; PRACE S OKNY
1747 ;
1748 081F 3A 40ED CMAX: LDA RESC1 ; MAX POCET ZNAKU
1749 0822 B7 ORA A
1750 0823 C0 RNZ ; JE ZADAN
1751 0824 3E 28 CMAX0: MVI A,WIDTH
1752 0826 C9 RET
1753 ;
1754 0827 3A 40EC LMAX: LDA RESL1 ; MAX POCET RADKU
1755 082A B7 ORA A
1756 082B C0 RNZ
1757 082C 3E 18 LMAX0: MVI A,HEIGHT
1758 082E C9 RET
1759
1760
1761 082F C5 TAB@: PUSH B
1762 0830 CD 09CC CALL SPACE
1763 0833 3A 4081 LDA CADR ; MODULO 8
1764 0836 E6 07 ANI 7
1765 0838 C2 0830 JNZ TAB@+1
1766 083B C1 POP B
1767 083C 79 MOV A,C
1768 083D C9 RET
1769 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-30
1770 ;****************************************************
1771 ; OBSLUHA KLAVSNICE NEBO TERMINALU <Aglt;..ZNAK
1772 ;****************************************************
1773 ;
1774 083E CD 01EC CALL INIC-6 ; ^W
1775 0841 3A 40E3 CI@: LDA MODE ; ZAKAZ CURSORU
1776 0844 E6 20 ANI 20H
1777 0846 C2 0860 JNZ CI@CU ; ANO
1778 0849 3A 40F0 LDA KEY ; NASTAV TYP KURZORU
1779 084C B7 ORA A
1780 084D 3E A0 MVI A,CURSOR ; NORMALNI ZNAK
1781 084F CA 085A JZ SETCUR
1782 0852 3E 5E MVI A,5EH ; ' ^
1783 0854 F2 085A JP SETCUR
1784 0857 3A 40EF LDA CUR@ ; CS-LOCK
1785 085A E5 SETCUR: PUSH H
1786 085B 2A 4081 LHLD CADR
1787 085E 77 MOV M,A ; ZAPIS
1788 085F E1 POP H
1789 0860 CD 40C4 CI@CU: CALL CI@0 ; HANDLER
1790 0863 C5 CI@1: PUSH B
1791 0864 47 MOV B,A
1792 0865 CD 0944 CALL DEKOD ; DEKODUJ KLAVESY
1793 0868 3A 4086 LDA CSKOD@ ; KOD CS
1794 086B 4F MOV C,A
1795 ;NORMALNI MOD NEBO CS
1796 086C 3A 40E3 LDA MODE
1797 086F E6 04 ANI 4
1798 0871 C2 08CA JNZ CICS ; CESKA ABECEDA
1799 ; POCITACOVE ZNAKY ...
1800 0874 78 MOV A,B
1801 0875 C1 POP B
1802 0876 CD 089C CALL BIG
1803 0879 FE 17 CPI PRNT
1804 087B CA 083E JZ CI@-3 ; ^W
1805 087E FE 10 CPI CTRLP
1806 0880 CA 0891 JZ CHANGE ; ^P
1807 0883 FE 11 CPI CTRLQ ; ^Q
1808 0885 C0 RNZ
1809 0886 CD 0841 CALL CI@
1810 0889 E6 0F ANI 0FH ; MAX 0-15
1811 088B 32 40EA STA RESL
1812 088E C3 0841 JMP CI@ ; NOVY ZNAK
1813 ;
1814 0891 3A 40E3 CHANGE: LDA MODE
1815 0894 EE 01 XRI 1
1816 0896 32 40E3 STA MODE
1817 0899 C3 0841 JMP CI@
1818 ; PREVOD NA VELKA PISMENA
1819 089C E6 7F BIG: ANI 7FH
1820 089E FE 7B CPI 7BH
1821 08A0 D0 RNC
1822 08A1 FE 61 CPI 61H
1823 08A3 D8 RC
1824 08A4 D6 20 SUI 20H
1825 08A6 C9 RET
1826 ;
1827 ; INICIALIZACE
1828 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-31
1829 08A7 3E 01 CINIT: MVI A,ALLINT ; POVOL A NASTAV RST 0
1830 08A9 32 40EE STA PRER ; NASTAV UROVEN
1831 08AC 21 07D1 LXI H,TABZN ; DEKODOVANI 263 CS-PL
1832 08AF CD 08BD CALL KODASC
1833 08B2 21 07F0 LXI H,TBWM
1834 ;
1835 ; SLUZBA PRO NASTAVENI WM. KODU A CS. KODU
1836 ;
1837 08B5 01 4083 KODWM: LXI B,WMKOD
1838 08B8 1E 0D MVI E,14-1 ; DELKA
1839 08BA C3 08C2 JMP FIL@
1840 ;
1841 ; SLUZBA PRO NASTAVENI PREVODU ZNAKU
1842 ;
1843 08BD 01 4091 KODASC: LXI B,PREV
1844 08C0 1E 14 MVI E,21-1
1845 ; POMOCNY
1846 08C2 16 00 FIL@: MVI D,0 ; DELKA
1847 08C4 EB XCHG
1848 08C5 19 DAD D ; KONCOVA ADR.
1849 08C6 EB XCHG
1850 08C7 C3 0480 JMP MO1
1851 ; CTENI ZNAKU Z KLAVESNICE S CESKYMI KODY
1852 ;========================================
1853 08CA 79 CICS: MOV A,C
1854 08CB B8 CMP B ;CS
1855 08CC 3E 81 MVI A,81H ; CS-KOD
1856 08CE CA 0905 JZ ZMECS
1857 08D1 78 MOV A,B
1858 08D2 FE DC CPI 0DCH ; HACEK
1859 08D4 CA 0905 JZ ZMECS
1860 08D7 FE E0 CPI 0E0H ; CARKA
1861 08D9 CA 0905 JZ ZMECS
1862 08DC FE 80 CPI 80H ; CS-LOCK
1863 08DE CA 0900 JZ ZMENA
1864 08E1 3A 40F0 LDA KEY
1865 08E4 B7 ORA A
1866 08E5 FA 092A JM CESKY ; 1 ZNAK CS
1867 08E8 C2 090C JNZ CTICS ; CS LOCK
1868 08EB 78 MOV A,B
1869 08EC C1 POP B
1870 ;
1871 ; VYPOCTI WM-KOD MISTO CISEL
1872 ;
1873 08ED FE AC WMDO: CPI 0ACH ;","
1874 08EF D8 RC ; NENI CS-KOD
1875 08F0 FE BA CPI 0BAH ; JE glt; '9' OR 80H
1876 08F2 D0 RNC
1877 08F3 E5 PUSH H
1878 08F4 21 0744 LXI H,TBWM - 0ACH
1879 08F7 C5 KODU@: PUSH B
1880 08F8 06 00 MVI B,0
1881 08FA 4F MOV C,A
1882 08FB 09 DAD B
1883 08FC 7E MOV A,M
1884 08FD C1 POP B
1885 08FE E1 POP H
1886 08FF C9 RET
1887 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-32
1888 ; ZMEN KEY TLACITKO SET
1889 0900 3A 40F0 ZMENA: LDA KEY
1890 0903 EE 01 XRI 1
1891 0905 32 40F0 ZMECS: STA KEY
1892 0908 C1 POP B
1893 0909 C3 0841 JMP CI@
1894 ; CTI CS.KOD
1895 090C CTICS:
1896 090C 78 MOV A,B
1897 090D C1 POP B
1898 090E FE C0 CPI 0C0H ; CS U
1899 0910 D0 RNC
1900 0911 B7 ORA A
1901 0912 F2 0918 JP CTIC1
1902 0915 E6 7F ANI 7FH ; UDELEJ CISLA
1903 0917 C9 RET
1904 0918 CD 0923 CTIC1: CALL CISLO
1905 091B D8 RC ; NENI
1906 091C E5 CTIC2: PUSH H ; MISTO CISLA CS
1907 091D 21 07B6 LXI H,CSKOD-'0'
1908 0920 C3 08F7 JMP KODU@
1909 ; JE CISLO ? CY=0 ANO
1910 0923 FE 30 CISLO: CPI '0' ; MISTO CISEL CS. KOD
1911 0925 D8 RC
1912 0926 FE 3A CPI '9'+1
1913 0928 3F CMC
1914 0929 C9 RET
1915 ; CESKY - 1 ZNAK
1916 092A CESKY:
1917 092A FE E0 CPI 0E0H
1918 092C CC 0958 CZ ZCARKA
1919 092F FE DC CPI 0DCH
1920 0931 CC 095F CZ ZHACEK
1921 0934 3E 01 MVI A,1
1922 0936 32 40F0 STA KEY ; NASTAV SET NA CS
1923 0939 78 MOV A,B
1924 093A C1 POP B
1925 093B CD 0923 CALL CISLO
1926 093E D2 091C JNC CTIC2
1927 0941 EE A0 XRI 0A0H
1928 0943 C9 RET
1929 ;
1930 ; ZMEN HACEK
1931 0944 E5 DEKOD: PUSH H
1932 0945 21 4090 LXI H,PREV-1
1933 0948 F5 ZHA0: PUSH PSW
1934 0949 23 ZHA1: INX H
1935 094A 7E MOV A,M
1936 094B B7 ORA A
1937 094C CA 0955 JZ ZHA2 ; KONEC
1938 094F 23 INX H
1939 0950 B8 CMP B ; ZNAK
1940 0951 C2 0949 JNZ ZHA1
1941 0954 46 MOV B,M ; ZMENA
1942 0955 F1 ZHA2: POP PSW
1943 0956 E1 POP H
1944 0957 C9 RET
1945 ; ZMEN CARKU
1946 0958 E5 ZCARKA: PUSH H
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-33
1947 0959 21 096A LXI H,TCARKA-1
1948 095C C3 0948 JMP ZHA0
1949 ; ZMEN KODY KLAVES
1950 095F E5 ZHACEK: PUSH H
1951 0960 21 0965 LXI H,THACEK-1
1952 0963 C3 0948 JMP ZHA0
1953 ;-----------------------------
1954 0966 75 6A 55 4A THACEK: DB 'ujUJ',0 ; ZMENY PRO HACEK
1955 096A 00
1956 096B 72 66 52 46 TCARKA: DB 'rfRFewEWlkLK',0 ; CARKU
1957 096F 65 77 45 57
1958 0973 6C 6B 4C 4B
1959 0977 00
1960 ;
1961 ;****************************************************
1962 ; ZJISTI STATUS ZY=1..NENI ZNAK, #0 JE ZNAK
1963 ;****************************************************
1964 ;
1965 ; STATUS SM 7202 ZY=1 .. NENI ZNAK
1966 ;
1967 0978 DB 11 SMST: IN USTAT
1968 097A 17 RAL
1969 097B 3E 00 MVI A,0
1970 097D 9F SBB A
1971 097E C9 RET
1972 ;
1973 ; STATUS KLAVESNICE ZY=0 JE ZNAK
1974 ;
1975 097F CSTS@@: IF CPM
1976 IN P0
1977 ELSE
1978 097F 3A 2400 LDA PORTK
1979 ENDIF
1980 0982 0F RRC
1981 0983 3E FF MVI A,-1
1982 0985 CE 00 ACI 0
1983 0987 C9 RET
1984 ;
1985 ;****************************************************
1986 ; HANDLER PRO KLAVESNICI
1987 ;****************************************************
1988 ;
1989 ; CTENI ZNAKU ZE SERIOVE LINKY
1990 ;
1991 0988 DB 11 SERIN: IN USTAT
1992 098A 17 RAL
1993 098B D2 0988 JNC SERIN ; SERIOVY VSTUP
1994 098E DB 12 IN UDATA
1995 0990 B7 ORA A
1996 0991 C9 RET
1997 ;
1998 ; VSTUP ZNAKU Z KLAVESNICE
1999 ;
2000 0992 CD 097F CI@@: CALL CSTS@@
2001 0995 DA 0992 JC CI@@
2002 0998 E5 PUSH H
2003 IF CPM
2004 IN P1
2005 CMA
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-34
2006 MOV L,A
2007 MVI A,3
2008 OUT P0
2009 CI1: IN P0
2010 RRC
2011 JNC CI1
2012 MVI A,2
2013 OUT P0
2014 ELSE
2015 0999 26 28 MVI H,(HIGH PORTK) + 4
2016 099B 7E MOV A,M
2017 099C 2F CMA
2018 099D 6F MOV L,A ; DATA
2019 099E 25 DCR H
2020 099F 36 03 MVI M,3
2021 09A1 7E CI2: MOV A,M
2022 09A2 0F RRC
2023 09A3 D2 09A1 JNC CI2
2024 09A6 36 02 MVI M,2
2025 ENDIF
2026 09A8 7D MOV A,L
2027 09A9 E1 POP H
2028 09AA C9 RET
2029 ;
2030 ; NASTAV MODE
2031 ;
2032 09AB CD 0500 CHMODE: CALL RADR
2033 09AE 32 40E3 STA MODE
2034 09B1 C9 RET
2035 ;
2036 ; NASTAV UROVEN PRERUSENI
2037 ;
2038 09B2 CD 0500 Y: CALL RADR ; CTI
2039 09B5 32 40EE STA PRER
2040 09B8 C9 RET ; ZAPIS
2041 ;
2042 ; NASTAV CASOVANI MGF
2043 ;
2044 09B9 CD 0500 Z: CALL RADR
2045 09BC 32 40F1 STA CASK
2046 09BF C9 RET
2047 ;
2048 ; VERIFY: KONTOLNI SOUCET
2049 ;
2050 09C0 CD 04A8 VERIFY: CALL EXPR ; OD-DO
2051 09C3 D1 POP D
2052 09C4 E1 POP H
2053 09C5 CD 0A3E CALL VYPSUM
2054 09C8 78 MOV A,B
2055 09C9 CD 05E8 DBYTE: CALL DBYT
2056 09CC 0E 20 SPACE: MVI C,' ' ; DISPLAY MEZERY
2057 09CE C3 05F4 JMP CO
2058
2059 IF CPM
2060 ;
2061 ; KOPIRUJ RI -glt; PO
2062 ;
2063 COPY: CALL RI
2064 JC CRLF
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-35
2065 MOV C,A
2066 CALL LO ; "H" VYBERE PERIF.
2067 JMP COPY
2068 ;
2069 ; READ DALSI BYTE
2070 ;
2071 RBYT0: MVI A,'0'
2072 RBYT: PUSH B
2073 PUSH H
2074 CALL EXPRM
2075 POP D
2076 POP H
2077 MOV M,E
2078 MOV A,B
2079 CPI CR
2080 POP B
2081 RET
2082
2083 ;**************************************
2084 ; OBECNA CAST O.S.
2085 ;**************************************
2086 ;
2087 ; VOLANI O.S Z MONITORU
2088 ;
2089 KOS: MVI C,-1
2090 JMP KOS@
2091 ;
2092 ;INIT O.S
2093 ;
2094 KOSI: MVI C,0
2095 JMP KOS@
2096 ;
2097 ; SLUZBY KOMPATIBILNI Z MONITOREM V4.0
2098 ;
2099 FIND: MVI C,1
2100 JMP KOS@
2101 OPEN: MVI C,2
2102 JMP KOS@
2103 LOADCD: MVI C,4
2104 JMP KOS@
2105 SAVECD: MVI C,5
2106 JMP KOS@
2107 BINAR: MVI C,6
2108 JMP KOS@
2109
2110 ;****************************************************
2111 ;
2112 JMENO: DB '"',CR ; PRAZDNE
2113 ;
2114 ; INSTALUJ HANDLER PRO TISKARNU
2115 ;
2116 HNDIN: CALL RADR
2117 ADD A ; *2
2118 CPI HNDMX
2119 RNC ; VETSI...
2120 MVI H,0
2121 MOV L,A
2122 LXI D,TABHND
2123 DAD D ; ADR. ADRESY HNDLR
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-36
2124 MOV A,M
2125 STA LO@ + 1 ; PREPIS
2126 INX H
2127 MOV A,M
2128 STA LO@ + 2
2129 DUMMY: RET
2130 ;------------------------
2131 ; TABULKA HANDLERU
2132 ;
2133 TABHND: DW DUMMY ; 0.. PRAZDNY HANDLER
2134 DW LO@@ ; 1.. C 211
2135 DW CENTRO ; 2.. CENTRONICS
2136 DW D100S ; 3.. D 100 S
2137 DW D180 ; 4.. D 180
2138 DW PO ; 5.. PUNCH DEVICE
2139 DW CO@ ; 6.. CONSOLE OUTPUT
2140 DW SEROUT ; 7.. SERIOVY VYSTUP
2141 HNDMX EQU $-TABHND
2142 ;
2143 ;****************************************************
2144 ; LIST OUTPUT <Cglt;... ZNAK
2145 ;****************************************************
2146 ;
2147 D180: MOV A,C
2148 CMA
2149 MOV C,A
2150
2151 LO@@: CALL LO@3
2152 MOV A,C
2153 OUT P2
2154 LO@1: IN P2
2155 ADD A
2156 JP LO@1
2157 MVI A,3
2158 OUT P1
2159 LO@2: IN P2
2160 ADD A
2161 JM LO@2
2162 LO@3: MVI A,1
2163 OUT P1
2164 MOV A,C
2165 RET
2166 ;
2167 ; SERIOVY INTERFACE PRO :LP:
2168 ;
2169 D100S: MVI A,0EH ; SERIOVE PRIPOJENI D100
2170 OUT MMODE ; PREPOJ
2171 D101: IN USTAT
2172 ADD A
2173 JNZ D101
2174 MOV A,C
2175 OUT UDATA
2176 MVI A,2
2177 OUT UMODE
2178 D102: IN USTAT
2179 ADD A
2180 JZ D102
2181 MOV A,C
2182 RET
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-37
2183
2184 ;
2185 ; INTERFACE CENTRONICS
2186 ;
2187 CENTRO:
2188 MOV A,C
2189 OUT P2
2190 CENTR1: IN P2
2191 ANI 60H
2192 CPI 20H
2193 JNZ CENTR1 ; BUSY ?
2194 XRA A
2195 OUT P1
2196 XTHL
2197 XTHL
2198 MVI A,2
2199 OUT P1 ; PULS
2200 MOV A,C
2201 RET
2202
2203 ENDIF
2204
2205 ;------------------------------------------------
2206 ;
2207 ; ZAVED 1. PROGRAM NA PASCE
2208 ;
2209 09D1 21 0083 LOADB: LXI H,JMENO
2210 09D4 CD 0074 CALL LOADCD
2211 09D7 2A 40FC LHLD SADR ; 1.ADR
2212 09DA 7E MOV A,M
2213 09DB FE C3 CPI 0C3H ; POVINNY START SYST. PRGM
2214 09DD C2 0A4A JNZ UKAZ ; JENOM UKAZ
2215 09E0 11 4401 LXI D,BASIC+1
2216 09E3 CD 04F5 CALL HILO
2217 09E6 C2 0A26 JNZ JUMP ; START (NENI SYS.)
2218 09E9 13 INX D
2219 09EA 13 INX D
2220 09EB 1A LDAX D ; BASIC/TOOL..
2221 09EC FE C3 CPI 0C3H
2222 09EE CA 0A1B JZ PCMD ; NENI BASIC
2223 ;
2224 ; SKOK NA SYSTEMOVE PROGRAMY
2225 ;
2226 09F1 06 42 BCMD: MVI B,'B' ; BASIC
2227 09F3 21 4400 LXI H,BASIC
2228 09F6 11 40FA B0: LXI D,@BT
2229 09F9 7E B1: MOV A,M
2230 09FA FE C3 CPI 0C3H ; SKOK
2231 09FC C2 0A38 JNZ ERROR ; NENI EPROM SYSTEM
2232 09FF 1A LDAX D
2233 0A00 B8 CMP B ; TEPLY START ?
2234 0A01 CA 0A0C JZ B2 ; +
2235 0A04 B7 ORA A
2236 0A05 C2 0A38 JNZ ERROR
2237 0A08 78 MOV A,B
2238 0A09 12 STAX D ; NASTAV FLAGY
2239 0A0A 2B DCX H
2240 0A0B 11 DB 11H
2241 ;
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-38
2242 0A0C 23 B2: INX H
2243 0A0D 23 INX H
2244 0A0E 23 INX H
2245 0A0F E5 PUSH H ; TEPLY START
2246 0A10 C3 0348 JMP INTER
2247 ;
2248 0A13 06 54 TCMD: MVI B,'T'
2249 0A15 21 4C00 LXI H,TRACER
2250 0A18 C3 09F6 JMP B0
2251 ;
2252 0A1B 06 50 PCMD: MVI B,'P' ; PEDIT
2253 0A1D 21 4400 LXI H,PEDIT
2254 0A20 11 40FB LXI D,@PED
2255 0A23 C3 09F9 JMP B1
2256 ;
2257 ; SKOK DO UZIVATELSKEHO PROGRAMU
2258 ;
2259 0A26 CD 0A4A JUMP: CALL UKAZ
2260 0A29 EB XCHG
2261 0A2A 7D MOV A,L ; ZADNY PROGRAM
2262 0A2B B4 ORA H
2263 0A2C CA 0A38 JZ ERROR ; PRAZDNY
2264 0A2F E5 PUSH H ; START
2265 0A30 CD 0A3E CALL VYPSUM
2266 0A33 3A 4100 LDA SUM
2267 0A36 B8 CMP B
2268 0A37 C8 RZ
2269 ;
2270 ; OSETRENI CHYBY
2271 ;
2272 0A38 CD 001B ERROR: CALL QUES
2273 0A3B C3 40C1 JMP ERRSW ; PREDEJ RIZENI PO CHYBE
2274 ;
2275 0A3E 06 00 VYPSUM: MVI B,0 ; SUMA
2276 0A40 7E J1: MOV A,M
2277 0A41 80 ADD B
2278 0A42 47 MOV B,A
2279 0A43 CD 04F5 CALL HILO
2280 0A46 D2 0A40 JNC J1
2281 0A49 C9 RET
2282 ;
2283 ; UKAZ ADRESY PROGRAMU OD-DO
2284 ;
2285 0A4A 2A 40FC UKAZ: LHLD SADR
2286 0A4D CD 0508 CALL DNADR
2287 0A50 EB XCHG
2288 0A51 2A 40FE LHLD EADR
2289 0A54 C3 050B JMP DADR
2290 ;
2291 ; "END OF FILE" PRIKAZ
2292 ;
2293
2294 0A57 CD 0500 EOF: CALL RADR ; START.ADR
2295 0A5A 06 01 MVI B,1 ; TYP ZAZNAMU
2296 0A5C AF XRA A ; PARAM.
2297 0A5D 5F MOV E,A ; POCET BYTE
2298 0A5E CD 0B29 CALL PBEG
2299 0A61 AF XRA A
2300 0A62 92 SUB D ; KONTROLNI SOUCET
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-39
2301 0A63 CD 0B46 CALL PBYTE
2302 0A66 0E 03 CLOSE: MVI C,3 ; CLOSE
2303 0A68 C3 40D0 JMP KOS@
2304 ;
2305 ; CTI HEX INTEL FORMAT
2306 ;
2307 0A6B CD 006A READ@: CALL FIND
2308 0A6E CD 04D4 CALL CRLF
2309 0A71 CD 0500 CALL RADR ; OFFSET
2310 0A74 3E DB 3EH ; MVI A,#
2311 0A75 E1 RED1: POP H
2312 0A76 E5 PUSH H
2313 0A77 CD 0B53 REDC1: CALL MREAD ; CTI BYTE
2314 0A7A D6 3A SUI ':' ; ZACATEK ZAZNAMU ?
2315 0A7C C2 0A77 JNZ REDC1 ; ANO
2316 0A7F 57 REDC2: MOV D,A ; NULOVANI KONTR. SOUCTU
2317 0A80 CD 0B0C CALL RBYTE ; DELKA RADKU
2318 0A83 CA 0AB4 JZ RED3 ; KDYZ 0, KONEC
2319 0A86 5F MOV E,A ; NASTAVENI CITACE
2320 0A87 CD 0B0C CALL RBYTE ; HORNI ADR.
2321 0A8A F5 PUSH PSW
2322 0A8B CD 0B0C CALL RBYTE ; SPODNI ADR.
2323 0A8E C1 POP B
2324 0A8F 4F MOV C,A
2325 0A90 09 DAD B ; OFFSET ADRESY
2326 0A91 CD 0B0C CALL RBYTE ; PRIZNAK
2327 0A94 CD 0B0C RED2: CALL RBYTE ; STROJ. KOD
2328 0A97 77 MOV M,A
2329 0A98 BE CMP M ; TEST PAMETI
2330 0A99 0E 4D MVI C,'M' ; ERROR 'M'
2331 0A9B C2 0AAB JNZ REDER
2332 0A9E 23 INX H
2333 0A9F 1D DCR E ; CITAC BYTE STROJ. KODU
2334 0AA0 C2 0A94 JNZ RED2
2335 0AA3 CD 0B0C CALL RBYTE ; KONTR. SOUCET Z PASKY
2336 0AA6 CA 0A75 JZ RED1 ; OK
2337 0AA9 0E 53 MVI C,'S' ; ERROR 'S' - KONTROLNI SUMA
2338 0AAB CD 05F4 REDER: CALL CO ; TYP CHYBY
2339 0AAE CD 050B CALL DADR
2340 0AB1 C3 0A38 JMP ERROR
2341 0AB4 E5 RED3: PUSH H
2342 0AB5 CD 0B0C CALL RBYTE ; HORNI START.ADR
2343 0AB8 67 MOV H,A
2344 0AB9 CD 0B0C CALL RBYTE ; SPODNI START.ADR
2345 0ABC 6F MOV L,A
2346 0ABD CD 0B0C CALL RBYTE ; KONTROLNI SUMA
2347 0AC0 CD 0B0C CALL RBYTE
2348 0AC3 C2 0AA9 JNZ REDER-2 ; CHYBA
2349 0AC6 D1 POP D
2350 0AC7 7A MOV A,D
2351 0AC8 B3 ORA E ; OFFSET ?
2352 0AC9 D1 POP D ; UPRAVA ZASOBNIKU
2353 0ACA C0 RNZ ; ANO, NE START
2354 0ACB 7C MOV A,H
2355 0ACC B5 ORA L ; START.ADR
2356 0ACD C8 RZ ; NE
2357 0ACE E9 PCHL
2358 ;
2359 ; ZAPIS HEX FORMAT
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-40
2360
2361 0ACF 0E 02 WRITE: MVI C,2
2362 0AD1 CD 04A8 CALL EXPR
2363 0AD4 CD 04D4 CALL CRLF
2364 0AD7 D1 POP D
2365 0AD8 E1 POP H
2366 0AD9 7D WR1: MOV A,L
2367 0ADA C6 10 ADI 10H
2368 0ADC 4F MOV C,A
2369 0ADD 7C MOV A,H
2370 0ADE CE 00 ACI 0
2371 0AE0 47 MOV B,A
2372 0AE1 7B MOV A,E
2373 0AE2 91 SUB C
2374 0AE3 4F MOV C,A
2375 0AE4 7A MOV A,D
2376 0AE5 98 SBB B
2377 0AE6 DA 0AEE JC WR2
2378 0AE9 3E 10 MVI A,10H ; glt;16
2379 0AEB C3 0AF1 JMP WR3
2380 0AEE 79 WR2: MOV A,C ; <16
2381 0AEF C6 11 ADI 11H
2382 0AF1 B7 WR3: ORA A
2383 0AF2 C8 RZ ; DALSI
2384 0AF3 D5 PUSH D ; USCHOVA HORNI ADR.
2385 0AF4 5F MOV E,A ; NASTAVENI CITACE
2386 0AF5 AF XRA A
2387 0AF6 47 MOV B,A ; TYP
2388 0AF7 CD 0B29 CALL PBEG
2389 0AFA 7E WR4: MOV A,M
2390 0AFB 23 INX H
2391 0AFC CD 0B46 CALL PBYTE ; STROJ. KOD
2392 0AFF 1D DCR E
2393 0B00 C2 0AFA JNZ WR4
2394 0B03 AF XRA A
2395 0B04 92 SUB D
2396 0B05 CD 0B46 CALL PBYTE ; KONTR. SOUCET
2397 0B08 D1 POP D
2398 0B09 C3 0AD9 JMP WR1
2399
2400
2401 ; PRECTE 2 ZNAKY, SESTAVI BYTE, TVORI KONTR. SOUCET
2402
2403 0B0C CD 0B53 RBYTE: CALL MREAD ; CTE ZNAK S MASKOU 7F
2404 0B0F CD 0523 CALL ASHEX ; PREVOD ASCII-HEX
2405 0B12 07 RLC
2406 0B13 07 RLC
2407 0B14 07 RLC
2408 0B15 07 RLC
2409 0B16 4F MOV C,A
2410 0B17 CD 0B53 CALL MREAD
2411 0B1A CD 0523 CALL ASHEX
2412 0B1D B1 ORA C ; SESTAVI BYTE
2413 0B1E 4F MOV C,A
2414 0B1F 82 ADD D ; KONTROLNI SOUCET
2415 0B20 57 MOV D,A
2416 0B21 79 MOV A,C
2417 0B22 C9 RET
2418
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-41
2419 ; KONEC VYRAZU
2420
2421 0B23 FE 09 TERM: CPI HT
2422 0B25 C8 RZ
2423 0B26 C3 053D JMP ANAL
2424
2425
2426
2427 ; PIS ZACATEK ZAZNAMU
2428
2429 0B29 57 PBEG: MOV D,A ; NULUJ KONTROLNI SUMU
2430 0B2A 0E 0D MVI C,CR
2431 0B2C CD 05C1 CALL PO
2432 0B2F 0E 0A MVI C,LF
2433 0B31 CD 05C1 CALL PO
2434 0B34 0E 3A MVI C,':'
2435 0B36 CD 05C1 CALL PO
2436 0B39 7B MOV A,E ; E .. POCET BYTE
2437 0B3A CD 0B46 CALL PBYTE
2438 0B3D 7C MOV A,H ; HL .. ADR
2439 0B3E CD 0B46 CALL PBYTE
2440 0B41 7D MOV A,L
2441 0B42 CD 0B46 CALL PBYTE
2442 0B45 78 MOV A,B ; TYP
2443 0B46 F5 PBYTE: PUSH PSW
2444 0B47 CD 05BA CALL HBT
2445 0B4A F1 POP PSW
2446 0B4B F5 PUSH PSW
2447 0B4C CD 05BE CALL LBT
2448 0B4F F1 POP PSW
2449 0B50 82 ADD D
2450 0B51 57 MOV D,A
2451 0B52 C9 RET
2452 ;
2453 ; CTE ZNAK S MASKOU, PRO CHYBU NASTAVI CARRY
2454
2455 0B53 CD 05AA MREAD: CALL RI
2456 0B56 DA 0A38 JC ERROR
2457 0B59 E6 7F ANI 7FH ; POTLACENI PARITNIHO BITU
2458 0B5B CA 0B53 JZ MREAD
2459 0B5E C9 RET
2460 ;
2461 ;
2462 ; CTI JMENO Z KLAVESNICE NEBO PROGRAMU
2463 ;
2464 0B5F EB RNAME: XCHG
2465 0B60 7E MOV A,M ; HL UKAZUJE NA EXTERNI TEXT
2466 0B61 32 4101 STA EXTEXT ; ".. JE JMENO
2467 0B64 FE 22 CPI '"'
2468 0B66 23 INX H
2469 0B67 06 3E MVI B,62 ; MAX. DELKA
2470 0B69 11 4103 LXI D,NAMBUF
2471 0B6C D5 PUSH D ; ADR PRO ZAPIS
2472 0B6D C2 0BB3 JNZ RNAMC ; CTI Z CI
2473 0B70 3E 20 RNAM1: MVI A,' '
2474 0B72 12 STAX D
2475 0B73 7E MOV A,M
2476 0B74 CD 089C CALL BIG
2477 0B77 CD 0BAE CALL ANAL1
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-42
2478 0B7A CA 0B84 JZ RNAM2-1
2479 0B7D 12 STAX D
2480 0B7E 23 INX H
2481 0B7F 13 INX D
2482 0B80 05 DCR B
2483 0B81 C2 0B70 JNZ RNAM1 ; JE JESTE MISTO
2484 0B84 EB XCHG
2485 0B85 23 RNAM2: INX H
2486 0B86 36 20 MVI M,' ' ; KONEC
2487 0B88 3E 44 MVI A,LOW @RAM ; VYCISTI BUFFER
2488 0B8A 23 INX H
2489 0B8B 36 00 MVI M,0
2490 0B8D BD CMP L
2491 0B8E C2 0B8A JNZ $-4
2492 0B91 E1 POP H ; ANALYZA POVELU
2493 0B92 7E MOV A,M
2494 0B93 FE 40 CPI '@' ; APPEND ?
2495 0B95 23 INX H
2496 0B96 CA 0BAA JZ RNAM3
2497 0B99 FE 2E CPI '.' ; REWIND
2498 0B9B CA 0BAA JZ RNAM3
2499 0B9E 7E MOV A,M ; VOLBA IOBYTE
2500 0B9F FE 3A CPI ':' ; DEF. USER 1/2
2501 0BA1 2B DCX H
2502 0BA2 3E 00 MVI A,0 ; NENI
2503 0BA4 C2 0BAA JNZ RNAM3
2504 0BA7 7E MOV A,M ; ZAPIS KOD
2505 0BA8 23 INX H
2506 0BA9 23 INX H
2507 0BAA 32 4102 RNAM3: STA OPT ; <Aglt;.. OPTION
2508 0BAD C9 RET ; <HLglt;.. 1. ADRESA JMENA
2509 ;
2510 ; ANALYZA ODDELOVACE
2511 ;
2512 0BAE FE 22 ANAL1: CPI '"'
2513 0BB0 C3 0542 JMP ANAL2
2514 ;-----------------------------------
2515 0BB3 D5 RNAMC: PUSH D
2516 0BB4 CD 0549 CALL TX
2517 0BB7 0D 0A DB CR,LF
2518 IF TV64
2519 DC ' Nazev:'
2520 ELSE
2521 0BB9 20 4E 41 5A DC ' NAZEV:'
2522 0BBD 45 56 BA
2523 ENDIF
2524 0BC0 E1 POP H
2525 0BC1 5D MOV E,L
2526 0BC2 36 20 RNAM6: MVI M,' '
2527 0BC4 CD 0596 CALL CI
2528 0BC7 CD 089C CALL BIG
2529 0BCA FE 03 CPI ETX
2530 0BCC CA 0203 JZ NEXT
2531 0BCF FE 0D CPI CR
2532 0BD1 CA 0BF7 JZ RNAM9
2533 0BD4 FE 7F CPI DEL
2534 0BD6 CA 0BDE JZ RNAM7
2535 0BD9 FE 08 CPI 8
2536 0BDB C2 0BEE JNZ RNAM8
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-43
2537 0BDE 7B RNAM7: MOV A,E
2538 0BDF BD CMP L ; PRVNI
2539 0BE0 CA 0BC2 JZ RNAM6
2540 0BE3 2B DCX H
2541 0BE4 04 INR B
2542 0BE5 CD 0549 CALL TX ; DELETE
2543 0BE8 08 20 88 DB 08,20H,88H
2544 0BEB C3 0BC2 JMP RNAM6
2545 0BEE 77 RNAM8: MOV M,A
2546 0BEF 23 INX H
2547 0BF0 CD 0568 CALL COA
2548 0BF3 05 DCR B
2549 0BF4 C2 0BC2 JNZ RNAM6
2550 0BF7 CD 04D4 RNAM9: CALL CRLF
2551 0BFA C3 0B85 JMP RNAM2
2552 ;********** KONEC MONITORU ***************
2553 0BFD FF DB 255
2554 ;
2555 0BFE @@@MON EQU $
2556 ;
2557 ;*********************************************
2558 ; ROZDELENI S Y S T E M O V E R A M
2559 ;*********************************************
2560 ;
2561 4000 RST1 EQU @R@ ; RST VEKTORY
2562 ;........glt;glt;glt;
2563 ;......
2564 ;<<... UZIVATELSKY & MONITOR. ZASOBNIK
2565 ;
2566 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2567 .PHASE @R@+6DH
2568 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2569 ; DATA MONITORU
2570 ;
2571 406D MSTAK: DS 2 ; USCHOVA REGISTRU
2572 406F ACSAV: DS 2
2573 4071 BCSAV: DS 2
2574 4073 DESAV: DS 2
2575 4075 HLSAV: DS 2
2576 4077 PCSAV: DS 2
2577 4079 SPSAV: DS 2
2578 ;
2579 407B BRAD: DS 2
2580 407D INSTR: DS 1
2581 407E BRAD2: DS 2
2582 4080 INST2: DS 1
2583 4081 CADR: DS 2 ; ADRESA KURSORU
2584 ;-------------------------
2585 4083 WMKOD: DS 14 ; KOD PRO KURZORY
2586 4091 PREV: DS 21 ; PREVODNI KODY..0
2587 4086 CSKOD@ EQU WMKOD+3
2588 ;-------------------------
2589 ; USER I/O DEVICE
2590 ;
2591 40A6 CILOC: DS 3 ; 0
2592 40A9 COLOC: DS 3 ; 1
2593 40AC R1LOC: DS 3 ; 2
2594 40AF R2LOC: DS 3 ; 3
2595 40B2 P1LOC: DS 3 ; 4
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-44
2596 40B5 P2LOC: DS 3 ; 5
2597 40B8 LILOC: DS 3 ; 6
2598 40BB CSLOC: DS 3 ; 7
2599 40BE DS 1
2600 40BF MEMTOP: DS 2 ; 8
2601 40C1 ERRSW: DS 3 ; 9
2602 40C4 CI@0: DS 3 ; 10
2603 40C7 CO@: DS 3 ; 11
2604 40CA CSTS@: DS 3 ; 12
2605 40CD LO@: DS 3 ; 13
2606 40D0 KOS@: DS 3 ; 14
2607 40D3 RI@: DS 3 ; 15
2608 40D6 PO@: DS 3 ; 16
2609 40D9 CCPM: DS 3 ; 17
2610 40DC GRAF: DS 3 ; 18
2611 40DF RESER: DS 3 ; 19
2612 ;--------------------------
2613 ;
2614 0015 IONUM EQU ($-CILOC)/3+1
2615 ;
2616 40E2 IOBYT: DS 1 ; RIZENI I/O ZARIZENI
2617 ;
2618 ;******************************
2619 ;<< EXTERNE OVLADANE FLAGY: glt;glt;
2620 ;******************************
2621 40E3 MODE: DS 1 ; CO-MODE
2622 40E4 @IF1: DS 1
2623 40E5 @IF2: DS 1
2624 40E6 @OF1: DS 1
2625 40E7 @OF2: DS 1
2626 40E8 LINE: DS 1 ; RADEK
2627 40E9 COLUM: DS 1 ; SLOUPEC
2628 40EA RESL: DS 1 ; REZERVACE
2629 40EB RESC: DS 1 ; SLOUPEC
2630 40EC RESL1: DS 1 ; POSLEDNI RADEK
2631 40ED RESC1: DS 1 ; POSLEDNI SLOUPEC
2632 40EE PRER: DS 1 ; UROVEN PRERUSENI
2633 ;
2634 ; PROMENE PRO OPERACNI SYSTEM
2635 ;
2636 40EF CUR@: DS 1
2637 40F0 KEY: DS 1
2638 40F1 CASK: DS 1
2639 40F2 WNDP: DS 6 ; PARAMETRY PRO 2.OKNO
2640 0015 EXSER EQU $-MODE
2641 ;
2642 40F8 CHAR: DS 1
2643 40F9 XFLG: DS 1
2644 ;
2645 ;****************************************************
2646 ; DATA SPOLECNA PRO MONITOR A O.S.
2647 ;****************************************************
2648 ;
2649 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2650 40FA @BT: DS 1
2651 40FB @PED: DS 1
2652 40FC SADR: DS 2 ; START.ADR
2653 40FE EADR: DS 2 ; KONC.ADR
2654 4100 SUM: DS 1
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE 1-45
2655 4101 EXTEXT: DS 1
2656 4102 OPT: DS 1
2657 4103 NAMBUF: DS 65
2658 4144 @RAM EQU $
2659 ;*******************************
2660 .DEPHASE
2661 ;
2662 END ; [P]
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE S
Macros:
Symbols:
0BFE @@@MON 40FA @BT 40E4 @IF1
40E5 @IF2 40E6 @OF1 40E7 @OF2
40FB @PED 4000 @R@ 4144 @RAM
406F ACSAV 06E1 ADRCUR 06F3 ADRCX
0001 ALLINT 053D ANAL 053F ANAL0
0BAE ANAL1 0542 ANAL2 0000 ANDZ
0523 ASHEX 027B ASS0 0287 ASS1
0291 ASS2 02A2 ASS3 0270 ASSIGN
071B ATTR 09F6 B0 09F9 B1
0A0C B2 07B2 BAC@1 0008 BACK
07A3 BACK@ 4400 BASIC 09F1 BCMD
4071 BCSAV 018B BEG 0191 BEG0
0055 BEGIO 0007 BELL 089C BIG
007E BINAR 407B BRAD 407E BRAD2
4081 CADR 40F1 CASK 40D9 CCPM
00E6 CENTR1 00E2 CENTRO 092A CESKY
0891 CHANGE 40F8 CHAR 09AB CHMODE
0596 CI 09A1 CI2 0841 CI@
40C4 CI@0 0863 CI@1 0992 CI@@
0860 CI@CU 08CA CICS 40A6 CILOC
0537 CIMIN 053A CINCR 08A7 CINIT
0923 CISLO 0599 CITB 0A66 CLOSE
081F CMAX 0824 CMAX0 05F4 CO
40C7 CO@ 0617 CO@@ 062B CO@WR
0568 COA 06CC COADR 069B COEX
0645 COEX0 0656 COEX1 0641 COEXAT
0644 COEXX 018B COLD 060A COLO
40A9 COLOC 40E9 COLUM 04FA COMPR
065A CONTROL 072D CONX1 0720 CONXT
060D COOUT 0044 COPY 05F7 COTB
0000 CPM 000D CR 07BC CR@
04D4 CRLF 07E6 CSKOD 4086 CSKOD@
40BB CSLOC 058B CSTS 40CA CSTS@
097F CSTS@@ 023C CTBL 0918 CTIC1
091C CTIC2 090C CTICS 0010 CTRLP
0011 CTRLQ 40EF CUR@ 0067 CURCH
00A0 CURSOR 001B CWR1 001F CWR2
00C9 D100S 00CD D101 00DA D102
00AD D180 050B DADR 05E3 DADR0
05E8 DBYT 09C9 DBYTE 0944 DEKOD
007F DEL 4073 DESAV 05A1 DEV
05A4 DEV0 0424 DI0 0428 DI1
043C DI2 0463 DI3 044A DI4
044C DI5 0438 DIA 041F DISP
0508 DNADR 05F1 DNIBL 009C DUMMY
40FE EADR 0562 ECHO 0A57 EOF
001E EOL 0793 EOL@ 079B EOL@1
0004 EOT 0C00 EP2 0013 EQUAL
0000 ERAM 0A38 ERROR 40C1 ERRSW
001F ERS 075E ERS@ 0774 ERS@1
001B ESC 0697 ESC@ 06FC ESC@0
0003 ETX 04AE EX0 04B1 EX1
04BA EX2 04C6 EX3 04E9 EX4
04DA EX5 06A1 EXFLG 06BD EXFLG1
04A8 EXPR 04A5 EXPR0 04E1 EXPRM
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE S-1
0015 EXSER 4101 EXTEXT 0471 FI1
08C2 FIL@ 046A FILL 006A FIND
0331 GO@ 0313 GO@BR 02FA GOTO
40DC GRAF 05BA HBT 0018 HEIGHT
04F5 HILO 4075 HLSAV 0085 HNDIN
0010 HNDMX 001D HOME 07B6 HOME@
0009 HT 0511 HXANIB 0513 HXASC
01F2 INIC 022F INJM@ 0233 INJMP
4080 INST2 407D INSTR 0348 INTER
40E2 IOBYT 0023 IOCHK 056F IODEF
02A7 IONEW 0015 IONUM 002B IOSET
02AE IOTAB 0A40 J1 0083 JMENO
0A26 JUMP 40F0 KEY 08BD KODASC
08F7 KODU@ 08B5 KODWM 0060 KOS
40D0 KOS@ 0065 KOSI 05BE LBT
05F1 LBYTE 001A LCT 000A LF
0730 LF@ 40B8 LILOC 40E8 LINE
0040 LINOF 0827 LMAX 082C LMAX0
05D3 LO 40CD LO@ 00B7 LO@1
00C0 LO@2 00B0 LO@@ 09D1 LOADB
0074 LOADCD 05DB LOTB 0018 LREST
01B6 MEM1 01C3 MEM2 051B MEMCK
40BF MEMTOP 000B MINUS 0011 MMODE
0480 MO1 40E3 MODE 0000 MONIT
0479 MOVE 0B53 MREAD 406D MSTAK
4103 NAMBUF 0203 NEXT 06C5 OBNOV
006F OPEN 4102 OPT 40B2 P1LOC
40B5 P2LOC 0018 PA1 001C PA2
0019 PB1 001D PB2 0B29 PBEG
0B46 PBYTE 001A PC1 001E PC2
0A1B PCMD 4077 PCSAV 4400 PEDIT
05C1 PO 40D6 PO@ 3000 PORTI
2400 PORTK 2B00 PORTLC 2C00 PORTLD
05CB POTB 40EE PRER 4091 PREV
0017 PRNT 02C6 QUERY 001B QUES
40AC R1LOC 40AF R2LOC 0500 RADR
0053 RBYT 0051 RBYT0 0B0C RBYTE
0A6B READ@ 0A75 RED1 0A94 RED2
0AB4 RED3 0A77 REDC1 0A7F REDC2
0AAB REDER 40EB RESC 40ED RESC1
40DF RESER 40EA RESL 40EC RESL1
0353 RESTA 040A RGNAM 05AA RI
40D3 RI@ 0018 RIGHT 05B2 RITB
0B70 RNAM1 0B85 RNAM2 0BAA RNAM3
0BC2 RNAM6 0BDE RNAM7 0BEE RNAM8
0BF7 RNAM9 0BB3 RNAMC 0B5F RNAME
0743 ROLL 074A ROLL1 0758 ROLL2
0734 ROLL@ 07FE RRAM 4000 RST1
036E RST10 038A RST20 00CF RSTN
40FC SADR 0079 SAVECD 0988 SERIN
05FF SEROUT 085A SETCUR 0978 SMST
017B SMTAB 09CC SPACE 0033 SPCL
4079 SPSAV 048D SU1 049C SU2
001A SUB@ 048A SUBS 4100 SUM
018A SYSEND 016C SYSTAB 082F TAB@
009D TABHND 07D1 TABZN 07F0 TBWM
096B TCARKA 0A13 TCMD 0B23 TERM
0558 TEXT 0966 THACEK 4C00 TRACER
0000 TV64 3800 TVBEG 3DE7 TVEND
FIRMWARE SAPI-1 MONITOR V5.0/F MACRO-80 3.44 09-Dec-81 PAGE S-2
1400 TVROM 0549 TX 0012 UDATA
0A4A UKAZ 0010 UMODE 001A UP
07C3 UP@ 0013 URES 0011 USTAT
09C0 VERIFY 000B VT 0782 VT@
0A3E VYPSUM 0028 WIDTH 08ED WMDO
4083 WMKOD 0708 WND@ 070D WND@0
001C WNDCD 0705 WNDCH 40F2 WNDP
0AD9 WR1 0AEE WR2 0AF1 WR3
0AFA WR4 0ACF WRITE 039B X
03A9 X0 03B1 X1 03B6 X10
03C6 X2 03F1 XDIS1 03E7 XDISP
40F9 XFLG 0222 XY 09B2 Y
09B9 Z 0958 ZCARKA 0948 ZHA0
0949 ZHA1 0955 ZHA2 095F ZHACEK
0905 ZMECS 0900 ZMENA
No Fatal error(s)
@@@MON 2555#
@BT 2228 2650#
@IF1 2622#
@IF2 2623#
@OF1 2624#
@OF2 2625#
@PED 2254 2651#
@R@ 34# 233 237 241 245 252 259 267 521 585 2561 2567
@RAM 2487 2658#
ACSAV 769 848 912 913 2572#
ADRCUR 1347 1473#
ADRCX 1475 1482#
ALLINT 153# 1829
ANAL 1034 1132# 2423
ANAL0 1133#
ANAL1 2477 2512#
ANAL2 1135# 2513
ANDZ 9# 57
ASHEX 445 1024 1115# 2404 2411
ASS0 660# 664
ASS1 661 666#
ASS2 671# 680
ASS3 673 681#
ASSIGN 456 616 655#
ATTR 1357 1511#
B0 2228# 2250
B1 2229# 2255
B2 2234 2242#
BAC@1 1619 1623#
BACK 68# 1390
BACK@ 1391 1616#
BASIC 38# 2215 2227
BCMD 617 2226#
BCSAV 914 915 2573#
BEG 492# 618
BEG0 496# 498
BEGIO 81# 483
BELL 72#
BIG 944 1115 1167 1352 1802 1819# 2476 2528
BINAR 322# 1422
BRAD 753 810 2579#
BRAD2 762 2581#
CADR 268 545 1339 1365 1448 1763 1786 2583#
CASK 2045 2638#
CCPM 2609#
CENTR1 410# 413
CENTRO 350 406#
CESKY 1866 1916#
CHANGE 1806 1814#
CHAR 1364 1449 2642#
CHMODE 630 2032#
CI 431 1166 1212# 2527
CI2 2021# 2023
CI@ 1213 1213 1231 1775# 1804 1809 1812 1817 1893
CI@0 518 1789 2602#
CI@1 1790#
CI@@ 471 2000# 2001
CI@CU 1777 1789#
CICS 1798 1853#
CILOC 1185 1214 2591# 2614
CIMIN 655 869 958 1000 1129#
CINCR 451 591 743 846 960 1054 1131#
CINIT 542 1829#
CISLO 1904 1910# 1925
CITB 1213# 1216
CLOSE 1687 2302#
CMAX 1520 1544 1606 1622 1748#
CMAX0 1751#
CO 433 1170 1252 1265 1291# 2057 2338
CO@ 354 1327 2603#
CO@@ 472 1331#
CO@WR 1345#
COA 236 240 244 715 726 892 950 1147 1159 1168# 2547
COADR 1411 1454# 1547 1564 1576 1577 1597
COEX 1380 1411#
COEX0 1363# 1444
COEX1 1368 1370#
COEXAT 1360#
COEXX 1362# 1412 1489
COLD 160 430 491#
COLO 1265 1293 1318#
COLOC 1294 2592#
COLUM 1485 1527 1634 2627#
COMPR 828 1071#
CONTROL 1341 1379#
CONX1 1530#
CONXT 1360 1393 1519#
COOUT 1293 1324#
COPY 278# 282 629
COTB 1293# 1296
CPM 10# 43 118 165 228 274 504 524 548 582 786 1599
1693 1975 2003 2059
CR 66# 294 327 569 590 750 757 884 1043 1136 1384 2430
2517 2531
CR@ 1385 1530 1624 1633#
CRLF 279 442 767 850 1042# 1088 2308 2363 2550
CSKOD 1664# 1907
CSKOD@ 1793 2587#
CSLOC 1209 2598#
CSTS 436 956 1206#
CSTS@ 1210 2604#
CSTS@@ 473 1975# 2000
CTBL 597 616# 642 643
CTIC1 1901 1904#
CTIC2 1906# 1926
CTICS 1867 1895#
CTRLP 111# 1805
CTRLQ 110# 1807
CUR@ 540 1784 2636#
CURCH 106# 539
CURSOR 105# 1369 1780
CWR1 136#
CWR2 140#
D100S 351 389#
D101 391# 393
D102 398# 400
D180 352 362#
DADR 446 1089# 2289 2339
DADR0 1089 1275#
DBYT 447 902 907 999 1276 1281# 2055
DBYTE 935 2055#
DEKOD 1792 1931#
DEL 79# 2533
DESAV 916 917 2574#
DEV 1212 1221# 1291
DEV0 1222# 1229 1250 1263
DI0 932# 957 962
DI1 934# 940
DI2 943# 955
DI3 960#
DI4 946 949#
DI5 948 950#
DIA 937 941#
DISP 619 929#
DNADR 706 933 1007 1088# 2286
DNIBL 1288#
DUMMY 344# 348 474 480 481
EADR 2288 2653#
ECHO 667 1020 1131 1166#
EOF 620 2294#
EOL 109# 1388
EOL@ 1389 1563 1568 1581 1603#
EOL@1 1608# 1611
EOT 75#
EP2 54# 558 560
EQUAL 239# 666 716 742 893 1018
ERAM 55#
ERROR 444 475 600 665 678 861 1017 2231 2236 2263 2272# 2340
2456
ERRSW 547 587 2273 2601#
ERS 108# 556 1396
ERS@ 1397 1568#
ERS@1 1578# 1584
ESC 71# 1404
ESC@ 1406#
ESC@0 1481 1487#
ETX 74# 2529
EX0 1020# 1032 1048
EX1 1021# 1052
EX2 1025#
EX3 1025 1033# 1056
EX4 1023 1054# 1059
EX5 1035 1046#
EXFLG 455 1420#
EXFLG1 1441# 1505
EXPR 443 929 968 981 1018# 1081 2050 2362
EXPR0 1017# 1039
EXPRM 289 746 1050#
EXSER 1425 2640#
EXTEXT 2466 2655#
FI1 972# 974
FIL@ 1839 1846#
FILL 621 967#
FIND 314# 1685 2307
GO@ 744 751 759 767#
GO@BR 745 752#
GOTO 622 742#
GRAF 465 2610#
HBT 1239# 2444
HEIGHT 101# 1477 1757
HILO 448 936 951 973 988 1066# 2216 2279
HLSAV 779 797 804 918 919 2575#
HNDIN 331# 623
HNDMX 333 356#
HOME 112# 556 1394
HOME@ 1395 1628#
HT 67# 1334 2421
HXANIB 1094# 1243 1289
HXASC 454 1096#
INIC 568# 586 1774
INJM@ 599#
INJMP 601# 1224
INST2 764 2582#
INSTR 755 2580#
INTER 462 588 783# 2246
IOBYT 249 257 686 708 1206 1221 1226 1245 1260 2616#
IOCHK 249# 437
IODEF 440 1176#
IONEW 686#
IONUM 1177 2614#
IOSET 256# 438
IOTAB 657 694# 707
J1 2276# 2280
JMENO 327# 2209
JUMP 625 2217 2259#
KEY 269 1778 1864 1889 1891 1922 2637#
KODASC 464 1832 1843#
KODU@ 1879# 1908
KODWM 463 1837#
KOS 304# 626
KOS@ 305 310 315 317 319 321 323 460 2303 2606#
KOSI 309# 624
LBT 1243# 2447
LBYTE 1286 1289#
LCT 598 642#
LF 73# 569 590 1043 1386 2432 2517
LF@ 1387 1534#
LILOC 1266 2597#
LINE 264 1454 1479 1494 1569 1591 1596 1629 1646 2626#
LINOF 102# 103 1549 1578
LMAX 1572 1589 1754#
LMAX0 1757#
LO 281 435 1260# 1293 1318
LO@ 340 343 1265 1326 2605#
LO@1 373# 375
LO@2 379# 381
LO@@ 349 367#
LOADB 627 2209#
LOADCD 318# 1688 2210
LOTB 1265# 1268
LREST 103#
MEM1 523# 535
MEM2 528 536#
MEMCK 439 1105#
MEMTOP 537 705 1106 2600#
MINUS 235# 1129
MMODE 149# 390
MO1 519 985# 989 1850
MODE 1324 1355 1366 1431 1775 1796 1814 1816 2033 2621# 2640
MONIT 53# 159
MOVE 628 980#
MREAD 2313 2403 2410 2455# 2458
MSTAK 493 563 578 2571#
NAMBUF 2470 2657#
NEXT 449 578# 579 596 840 2530
OBNOV 1382 1443 1448# 1488
OPEN 316# 1686
OPT 2507 2656#
P1LOC 1252 2595#
P2LOC 1253 2596#
PA1 137#
PA2 141#
PB1 138#
PB2 142#
PBEG 2298 2388 2429#
PBYTE 2301 2391 2396 2437 2439 2441 2443#
PC1 139#
PC2 143#
PCMD 631 2222 2252#
PCSAV 748 777 837 920 2576#
PEDIT 40# 2253
PO 353 434 1245# 2431 2433 2435
PO@ 1252 2608#
PORTI 125#
PORTK 120# 508 1978 2015
PORTLC 122#
PORTLD 123#
POTB 1252# 1255
PRER 785 1830 2039 2632#
PREV 1843 1932 2586#
PRNT 78# 1803
QUERY 632 705#
QUES 243# 2272
R1LOC 1231 2593#
R2LOC 1232 2594#
RADR 331 752 761 995 1080# 2032 2038 2044 2294 2309
RBYT 287# 876 1003
RBYT0 286#
RBYTE 2317 2320 2322 2326 2327 2335 2342 2344 2346 2347 2403#
READ@ 633 2307#
RED1 2311# 2336
RED2 2327# 2334
RED3 2318 2341#
REDC1 2313# 2315
REDC2 2316#
REDER 2331 2338# 2348
RESC 1570 1616 1633 2629#
RESC1 1748 2631#
RESER 466 2611#
RESL 1539 1628 1639 1811 2628#
RESL1 1754 2630#
RESTA 581 796#
RGNAM 847 912#
RI 278 432 1213 1226# 2455
RI@ 1231 2607#
RIGHT 69# 1392
RITB 1231# 1234
RNAM1 2473# 2483
RNAM2 2478 2485# 2551
RNAM3 2496 2498 2503 2507#
RNAM6 2526# 2539 2544 2549
RNAM7 2534 2537#
RNAM8 2536 2545#
RNAM9 2532 2550#
RNAMC 2472 2515#
RNAME 461 2464#
ROLL 1548# 1562
ROLL1 1553# 1558
ROLL2 1563#
ROLL@ 1539#
RRAM 1677# 1679
RST1 2561#
RST10 812# 834
RST20 821 830 832#
RSTN 35# 756 765
SADR 2211 2285 2652#
SAVECD 320# 1689
SERIN 477 1991# 1993
SEROUT 355 478 1309# 1311
SETCUR 1781 1783 1785#
SMST 479 1967#
SMTAB 476#
SPACE 450 713 888 942 1090 1762 2056#
SPCL 264# 441
SPSAV 564 773 801 921 2577#
SU1 996# 1008
SU2 1002 1005#
SUB@ 77#
SUBS 634 995#
SUM 2266 2654#
SYSEND 482# 517
SYSTAB 471# 516
TAB@ 1335 1761# 1765
TABHND 337 348# 356
TABZN 1655# 1831
TBWM 1672# 1833 1878
TCARKA 1947 1956#
TCMD 635 2248#
TERM 2421#
TEXT 452 1157# 1161
THACEK 1951 1954#
TRACER 39# 2249
TV64 8# 57 85 1348 1507 1524 2518
TVBEG 60# 104 544 1463
TVEND 104#
TVROM 56# 553
TX 458 555 568 589 1042 1046 1144# 1151 2516 2542
UDATA 147# 395 1313 1994
UKAZ 636 2214 2259 2285#
UMODE 150# 397 502
UP 70# 1398
UP@ 1399 1620 1639#
URES 151# 501
USTAT 148# 391 398 514 1309 1967 1991
VERIFY 637 2050#
VT 76# 1400
VT@ 1401 1534 1589#
VYPSUM 2053 2265 2275#
WIDTH 100# 103 1483 1751
WMDO 1873#
WMKOD 1837 2585# 2587
WND@ 459 1494#
WND@0 1496# 1504
WNDCD 80# 1402
WNDCH 1403 1493#
WNDP 1493 2639#
WR1 2366# 2398
WR2 2377 2380#
WR3 2379 2382#
WR4 2389# 2393
WRITE 638 2361#
X 639 839 846#
X0 851# 854
X1 849 855#
X10 858# 863
X2 855 865 867# 873 886
XDIS1 864 893#
XDISP 851 867 888#
XFLG 1345 1406 1487 2643#
XY 453 593#
Y 640 2038#
Z 641 2044#
ZCARKA 1918 1946#
ZHA0 1933# 1948 1952
ZHA1 1934# 1940
ZHA2 1937 1942#
ZHACEK 1920 1950#
ZMECS 1856 1859 1861 1891#
ZMENA 1863 1889#
93#
WNDP 1493 2639#
WR1 2366# 2398
WR2 2377 2380#
WR3 2379
Ú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