Ú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 PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1
1 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 TITLE 'MONITOR PLUS, MIKOS V4.0F - SAPI 1'
3 ; 30.7.1985 (P+S)
4 ; V4.0H ZPETNE UPRAVENO NA V4.0F
5 ; 2.11.2014 EC1045.01
6 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7 ;
8 0000 CPM EQU 0 ;EPROM VERSION
9 ;
10 ; * ROZDELENI PAMETI *
11 ;
12 IF NOT CPM
13 4000 @R@ EQU 4000H
14 0100 MONIT EQU 100H
15 0800 EPROM EQU 800H
16 0400 LSYSR EQU 400H
17 3800 TVBEG EQU 3800H
18 4400 PEDIT EQU 4400H
19 4400 BASIC EQU 4400H
20 4C00 TRACER EQU 4C00H
21 ELSE
22 ;
23 @R@ EQU 4000H ;SYS RAM
24 MONIT EQU 200H ;MONITOR
25 EPROM EQU 800H+200H ; CPM
26 LSYSR EQU 400H ;SYS.RAM
27 TVBEG EQU 0E800H
28 PEDIT EQU 1200H ;START
29 BASIC EQU 4400H
30 TRACER EQU 2000H
31 ENDIF
32 ;
33 ;
34 ;
35 ; * MONITOR ENTRY *
36 ;
37 0112 CSTS EQU MONIT + 12H
38 0103 CI EQU MONIT + 3
39 0106 RI EQU MONIT + 6
40 0109 CO EQU MONIT + 09H
41 010C PO EQU MONIT + 0CH
42 013F CINCR EQU MONIT + 3FH
43 011E IODEF EQU MONIT + 1EH
44 0127 EXPR EQU MONIT + 27H
45 0133 DBYT EQU MONIT + 33H
46 0130 DADR EQU MONIT + 30H
47 0124 CRLF EQU MONIT + 24H
48 0136 HILO EQU MONIT + 36H
49 0139 NEXT EQU MONIT + 39H
50 0142 TEXT EQU MONIT + 42H
51 0115 IOCHK EQU MONIT + 15H
52 013C SPACE EQU MONIT + 3CH
53 0118 IOSET EQU MONIT + 18H
54 012A ERROR EQU MONIT + 2AH
55 012D ASHEX EQU MONIT + 2DH
56 0148 HXASC EQU MONIT + 48H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-1
57 0151 ASSEX EQU MONIT + 51H
58 ;
59 ;
60 00FF LENGHT EQU 255 ; BLOCK LENGHT
61 000B NAMLE EQU 11 ; NAME LENGHT
62 0040 COMLE EQU 64 ; COMNENT LENGTH
63 ;------------------------------------------
64 000D CR EQU 0DH ;KONSTANTY
65 000A LF EQU 0AH
66 007F DEL EQU 7FH ; DELETE
67 0003 ETX EQU 03H
68 0009 HT EQU 9 ;TAB
69 0010 PREAM EQU 10H ; PREAMBLE/POSTAMBLE
70 001A SUBS EQU 1AH ; END FLAG
71 ;
72 ; SER. I/O
73 0013 USER EQU 13H
74 0012 UDATA EQU 12H
75 0011 USTAT EQU 11H
76 0010 UMODE EQU 10H
77
78 ; BLOCK LABELS
79 0001 SOH EQU 01H ; START OF HEADER
80 0004 EOT@ EQU 04H ; END OF TAPE
81 003A CAN EQU ':' ; VOLUME NAME
82 ; 'A' ; DATA BLOCK
83 ; 'B' ; BINARY BLOCK
84 ;
85
86 ;=====================================
87 0000' ASEG
88 ORG EPROM ;START
89 ;=====================================
90
91 0800 C3 0A14 JMP MICOS ;BRANCH TABLE
92 0803 C3 0818 JMP INITS ;INIT SYSTEM
93 0806 C3 085B JMP EXMON ;EXPAND
94 0809 C3 0AF4 JMP FIND
95 080C C3 0A95 JMP OPEN
96 080F C3 0B0D JMP CLOSE
97 0812 C3 0DA7 JMP LOAD
98 0815 C3 0E10 JMP SAVE
99 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100 ;
101 ; INIT SYSTEM AND I/O
102 ;
103 0818 0E A9 INITS: MVI C,0A9H ;LO=L,RI-1,PO-1
104 081A 79 MOV A,C
105 081B 32 40CA STA FND ;NO FIND MODE
106 081E CD 0118 CALL IOSET ; SET P=R=1
107 0821 CD 0C3E CALL TXIMM ;OHLASENI
108 0824 4D 49 4B 4F DB 'MIKOS-1 V4.0F '
109 0828 53 2D 31 20
110 082C 56 34 2E 30
111 0830 46 20
112 0832 AB DB '+' OR 80H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-2
113 0833 CD 083E CALL ICMD1
114 0836 C3 084F JMP OCMD1
115 ;
116 ;
117 ; INPUT SET
118 ;
119 0839 3E 52 ICMD: MVI A,'R'
120 083B CD 0151 CALL ASSEX
121 083E AF ICMD1: XRA A
122 083F 32 40E4 STA @IF1 ;FIND FLAG
123 0842 0E 02 MVI C,2
124 0844 11 0D40 LXI D,GET@
125 0847 C3 011E JMP IODEF
126 ;
127 ; OUTPUT SET
128 ;
129 084A 3E 50 OCMD: MVI A,'P'
130 084C CD 0151 CALL ASSEX
131 084F AF OCMD1: XRA A
132 0850 32 40E6 STA @OF1 ;OPEN FLAG
133 0853 0E 04 MVI C,4
134 0855 11 0D71 LXI D,PUT@
135 0858 C3 011E JMP IODEF
136 ;
137 ; MONITOR EXTENSION
138 ;
139 085B 7D EXMON: MOV A,L ;COMMAND
140 085C FE 57 CPI 'W'
141 085E CA 0977 JZ WRITE
142 0861 FE 52 CPI 'R'
143 0863 CA 0909 JZ READ@
144 0866 FE 4A CPI 'J'
145 0868 CA 08C7 JZ JUMP
146 086B FE 4E CPI 'N'
147 086D CA 08FE JZ NULL
148 0870 FE 45 CPI 'E'
149 0872 CA 08E7 JZ EOF
150 0875 FE 49 CPI 'I'
151 0877 CA 0839 JZ ICMD
152 087A FE 4F CPI 'O'
153 087C CA 084A JZ OCMD
154 087F FE 50 CPI 'P'
155 0881 CA 08BC JZ PCMD
156 0884 FE 42 CPI 'B'
157 0886 CA 0896 JZ BCMD
158 0889 FE 54 CPI 'T'
159 088B CA 08B4 JZ TCMD
160 088E FE 4B CPI 'K'
161 0890 CA 0A14 JZ MICOS
162 0893 C3 012A JMP ERROR ;MONITOR
163 ;
164 ; JUMP TO SYSTEM PROGRAMS
165 ;
166 0896 06 42 BCMD: MVI B,'B' ;BASIC
167 0898 21 4400 LXI H,BASIC
168 089B 11 40AB B0: LXI D,@BT ; REENTRY FLAG
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-3
169 089E 7E B1: MOV A,M
170 089F FE C3 CPI 0C3H ;JUMP
171 08A1 C2 012A JNZ ERROR ;NO EPROM IN SYSTEM
172 08A4 1A LDAX D
173 08A5 B8 CMP B ;WARM START ?
174 08A6 CA 08B0 JZ B2 ;+2
175 08A9 B7 ORA A
176 08AA C2 012A JNZ ERROR
177 08AD 78 MOV A,B
178 08AE 12 STAX D ;SET FLAG
179 08AF E9 PCHL ;COLD START
180 ;
181 08B0 23 B2: INX H
182 08B1 23 INX H
183 08B2 23 INX H
184 08B3 E9 PCHL ;WARM START
185 ;
186 08B4 06 54 TCMD: MVI B,'T'
187 08B6 21 4C00 LXI H,TRACER
188 08B9 C3 089B JMP B0
189 ;
190 08BC 06 50 PCMD: MVI B,'P' ;PEDIT
191 08BE 21 4400 LXI H,PEDIT
192 08C1 11 40AC LXI D,@PED
193 08C4 C3 089E JMP B1
194 ;
195 ;
196 ; JUMP TO USER PROGRAM
197 ;
198 08C7 2A 40B1 JUMP: LHLD EADR
199 08CA EB XCHG
200 08CB 2A 40AF LHLD SADR
201 08CE 7D MOV A,L ;NO PRGM
202 08CF B4 ORA H
203 08D0 CA 012A JZ ERROR ;EMPTY FILE
204 08D3 E5 PUSH H ;START
205 08D4 06 00 MVI B,0 ; SUM
206 08D6 7E J1: MOV A,M
207 08D7 80 ADD B
208 08D8 47 MOV B,A
209 08D9 CD 0136 CALL HILO
210 08DC D2 08D6 JNC J1
211 08DF 3A 40B3 LDA SUM
212 08E2 B8 CMP B
213 08E3 C2 012A JNZ ERROR
214 08E6 C9 RET ; GOTO
215 ;
216 ;
217 ; END OF FILE COMMAND
218 ;
219
220 08E7 0E 01 EOF: MVI C,1
221 08E9 CD 0127 CALL EXPR
222 08EC E1 POP H ; START ADR
223 08ED 06 01 MVI B,1 ; TYP RECORDU
224 08EF AF XRA A ; PARAM.
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-4
225 08F0 5F MOV E,A ; POCET BYTE
226 08F1 CD 09D5 CALL PBEG
227 08F4 AF XRA A
228 08F5 92 SUB D ; MONTROLNI COUCET
229 08F6 CD 09F2 CALL PBYTE
230 08F9 0E 1A MVI C,SUBS ; CLOSE
231 08FB C3 010C JMP PO
232 ;
233 ; 120*BLANK
234
235 08FE NULL:
236 08FE 01 7800 LEAD: LXI B,7800H
237 0901 CD 010C CALL PO
238 0904 05 DCR B
239 0905 C2 0901 JNZ LEAD+3
240 0908 C9 RET
241
242 ;
243 ; READ HEX INTEL FORMAT
244 ;
245 0909 0D READ@: DCR C
246 090A CD 0127 CALL EXPR ;OFFSET
247 090D E1 RED1: POP H
248 090E E5 PUSH H
249 090F 16 09 REDC0: MVI D,9 ; MAX POCET ZNAKU BEZ ODDELELNI
250 0911 CD 0A0B REDC1: CALL MREAD ; CTI BYTE
251 0914 CD 09C9 CALL TERM ; ODDELOVAC ?
252 0917 CA 090F JZ REDC0 ; ANO, NASTAV CITAC
253 091A 0E 3A MVI C,':' ; ZACATEK RECORDU ?
254 091C 91 SUB C
255 091D CA 0927 JZ REDC2 ; ANO, CTI HEX DATA
256 0920 15 DCR D ; DALSI ZNAK ?
257 0921 C2 0911 JNZ REDC1 ; ANO
258 0924 C3 0953 JMP REDER ; ERROR ':' .. CHYBI ':' NA PASCE
259 0927 57 REDC2: MOV D,A ; NULOVANI KONTR. SOUCTU
260 0928 CD 09B2 CALL RBYTE ; DELKA RADKU
261 092B CA 095C JZ RED3 ; KDYZ 0, KONEC
262 092E 5F MOV E,A ; NASTAVENI CITACE
263 092F CD 09B2 CALL RBYTE ; HIGH ADR
264 0932 F5 PUSH PSW
265 0933 CD 09B2 CALL RBYTE ; LOW ADR
266 0936 C1 POP B
267 0937 4F MOV C,A
268 0938 09 DAD B ; OFFSET ADRESY
269 0939 CD 09B2 CALL RBYTE ; PRIZNAK
270 093C CD 09B2 RED2: CALL RBYTE ; STROJ. KOD
271 093F 77 MOV M,A
272 0940 BE CMP M ; TEST PAMETI
273 0941 0E 4D MVI C,'M' ; ERROR 'M' .. MEMORY
274 0943 C2 0953 JNZ REDER
275 0946 23 INX H
276 0947 1D DCR E ; CITAC BYTE STROJ. KODU
277 0948 C2 093C JNZ RED2
278 094B CD 09B2 CALL RBYTE ; KONTR. SOUCET Z PASKY
279 094E CA 090D JZ RED1 ; OK
280 0951 0E 53 MVI C,'S' ; ERROR 'S' .. CHECK SUM
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-5
281 0953 CD 0109 REDER: CALL CO ; TYP CHYBY
282 0956 CD 0130 CALL DADR
283 0959 C3 0FF5 JMP ERSTP
284 095C E5 RED3: PUSH H
285 095D CD 09B2 CALL RBYTE ; HYGH START ADR
286 0960 67 MOV H,A
287 0961 CD 09B2 CALL RBYTE ; LOW START ADR
288 0964 6F MOV L,A
289 0965 CD 09B2 CALL RBYTE ; CHECK SUN
290 0968 CD 09B2 CALL RBYTE
291 096B C2 0951 JNZ REDER-2 ; ERROR
292 096E D1 POP D
293 096F 7A MOV A,D
294 0970 B3 ORA E ; OFFSET ?
295 0971 D1 POP D ; STACK CORECTION
296 0972 C0 RNZ ; YES, NO START
297 0973 7C MOV A,H
298 0974 B5 ORA L ; START ADR
299 0975 C8 RZ ; NO
300 0976 E9 PCHL ; GOTO
301 ;
302 ; WRITE CONTENTS RAM TO TAPE HEX
303
304 0977 CD 0127 WRITE: CALL EXPR
305 097A CD 0124 CALL CRLF
306 097D D1 POP D
307 097E E1 POP H
308 097F 7D WR1: MOV A,L
309 0980 C6 10 ADI 10H
310 0982 4F MOV C,A
311 0983 7C MOV A,H
312 0984 CE 00 ACI 0
313 0986 47 MOV B,A
314 0987 7B MOV A,E
315 0988 91 SUB C
316 0989 4F MOV C,A
317 098A 7A MOV A,D
318 098B 98 SBB B
319 098C DA 0994 JC WR2
320 098F 3E 10 MVI A,10H ; >16
321 0991 C3 0997 JMP WR3
322 0994 79 WR2: MOV A,C ; <16
323 0995 C6 11 ADI 11H
324 0997 B7 WR3: ORA A
325 0998 C8 RZ ; NEXT
326 0999 D5 PUSH D ; USCHOVA HIGH ADR
327 099A 5F MOV E,A ; NASTAVENI CITACE
328 099B AF XRA A ; SET PARAM.
329 099C 47 MOV B,A ; TYP
330 099D CD 09D5 CALL PBEG
331 09A0 7E WR4: MOV A,M
332 09A1 23 INX H
333 09A2 CD 09F2 CALL PBYTE ; STROJ. KOD
334 09A5 1D DCR E
335 09A6 C2 09A0 JNZ WR4
336 09A9 AF XRA A
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-6
337 09AA 92 SUB D
338 09AB CD 09F2 CALL PBYTE ; KONTR. SOUCET
339 09AE D1 POP D
340 09AF C3 097F JMP WR1
341
342
343 ; PRECTE 2 ZNAKY, SESTAVI BYTE, TVORI KONTR. SOUCET
344
345 09B2 CD 0A0B RBYTE: CALL MREAD ; CTE ZNAK S MASKOU 7F
346 09B5 CD 012D CALL ASHEX ; PREVOD ASCII-HEX
347 09B8 07 RLC
348 09B9 07 RLC
349 09BA 07 RLC
350 09BB 07 RLC
351 09BC 4F MOV C,A
352 09BD CD 0A0B CALL MREAD
353 09C0 CD 012D CALL ASHEX
354 09C3 B1 ORA C ; SESTAVI BYTE
355 09C4 4F MOV C,A
356 09C5 82 ADD D ; KONTROLNI SOUCET
357 09C6 57 MOV D,A
358 09C7 79 MOV A,C
359 09C8 C9 RET
360
361 ; END OF EXPRESSION
362
363 09C9 FE 2C TERM: CPI ','
364 09CB C8 RZ
365 09CC FE 09 CPI HT
366 09CE C8 RZ
367 09CF FE 20 CPI ' '
368 09D1 C8 RZ
369 09D2 FE 0D CPI CR
370 09D4 C9 RET
371
372
373
374 ; PUNCH BEGIN OF RECORT
375
376 09D5 57 PBEG: MOV D,A ; NULL CHECK SUM
377 09D6 0E 0D MVI C,CR
378 09D8 CD 010C CALL PO
379 09DB 0E 0A MVI C,LF
380 09DD CD 010C CALL PO
381 09E0 0E 3A MVI C,':'
382 09E2 CD 010C CALL PO
383 09E5 7B MOV A,E ; E .. POCET BYTE
384 09E6 CD 09F2 CALL PBYTE
385 09E9 7C MOV A,H ; HL .. ADR
386 09EA CD 09F2 CALL PBYTE
387 09ED 7D MOV A,L
388 09EE CD 09F2 CALL PBYTE
389 09F1 78 MOV A,B ; TYP
390 09F2 F5 PBYTE: PUSH PSW
391 09F3 CD 09FF CALL HBYTE
392 09F6 F1 POP PSW
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-7
393 09F7 F5 PUSH PSW
394 09F8 CD 0A03 CALL LBYTE
395 09FB F1 POP PSW
396 09FC 82 ADD D
397 09FD 57 MOV D,A
398 09FE C9 RET
399 ;
400 09FF 0F HBYTE: RRC
401 0A00 0F RRC
402 0A01 0F RRC
403 0A02 0F RRC
404 0A03 E6 0F LBYTE: ANI 0FH
405 0A05 CD 0148 CALL HXASC
406 0A08 C3 010C JMP PO
407 ;
408
409 ; READ CHARACTER AND MASK, ERROR IF CARRY
410
411 0A0B CD 0106 MREAD: CALL RI
412 0A0E DA 012A JC ERROR
413 0A11 E6 7F ANI 7FH
414 0A13 C9 RET
415 ;
416 ;
417 ; USER COMMAND LEVEL
418 ;
419 0A14 CD 0F32 MICOS: CALL STOP
420 0A17 0E 5F MVI C,'_'
421 0A19 CD 0109 CALL CO
422 0A1C CD 0CA3 CALL ECHOCR
423 0A1F FE 42 CPI 'B'
424 0A21 CA 0FA8 JZ BB ;MICRO-BASIC CODE
425 0A24 FE 41 CPI 'A'
426 0A26 CA 0A66 JZ APPEND
427 0A29 FE 44 CPI 'D'
428 0A2B CA 0A70 JZ DIR ;DIRECTORY
429 0A2E FE 49 CPI 'I'
430 0A30 CA 0B94 JZ INIT ; INIT NEW TAPE
431 0A33 FE 4F CPI 'O'
432 0A35 CA 0A95 JZ OPEN ;OPEN OUTPUT
433 0A38 FE 43 CPI 'C'
434 0A3A CA 0B0D JZ CLOSE ;CLOSE OUTPUT
435 0A3D FE 46 CPI 'F'
436 0A3F CA 0AF4 JZ FIND ;FIND INPUT
437 0A42 FE 53 CPI 'S'
438 0A44 CA 0E10 JZ SAVE ;SAVE
439 0A47 FE 4C CPI 'L'
440 0A49 CA 0DA7 JZ LOAD ;LOAD
441 0A4C FE 4D CPI 'M' ;MONITOR
442 0A4E C0 RNZ ; NO FIND
443 ;-------------------------------
444 ; MOTION
445 0A4F CD 0A58 MOTA: CALL START ;MOTA PASKY
446 0A52 CD 0C9A CALL DONE
447 0A55 C3 0F32 JMP STOP
448 ;
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-8
449 0A58 3E 38 START: MVI A,38H
450 0A5A D3 10 GAPO: OUT UMODE
451 0A5C 3E 1F MVI A,1FH
452 0A5E D3 11 OUT USTAT ; CLEAR
453 0A60 C9 RET
454 ;
455 ;
456 0A61 3E 30 STARW: MVI A,30H
457 0A63 C3 0A5A JMP GAPO ; START WRITE
458 ;
459 ; APPEND NEW FILE ON TAPE
460 ;
461 0A66 32 40B4 APPEND: STA JOIN ; NO INPUT
462 0A69 2A 40C0 LHLD BNO ; SET FILE NUMBER
463 0A6C EB XCHG
464 0A6D C3 0AD8 JMP OPE50
465
466 ;---------------------------------
467 ;DIRECTORY CASSETE
468 0A70 AF DIR: XRA A ; INPUT BUFFER
469 0A71 32 40B4 STA JOIN
470 0A74 CD 0C80 CALL PLAY
471 0A77 CD 0CAC DIR0: CALL SEARCH ; HEADER
472 0A7A CC 0C20 CZ PHDR ; PRINT NAME
473 0A7D FE 04 CPI EOT@
474 0A7F C2 0A77 JNZ DIR0
475 0A82 CD 0124 CALL CRLF ; PRINT:
476 0A85 7A MOV A,D
477 0A86 CD 0133 CALL DBYT ; FILE NUMBER
478 0A89 0E 2D MVI C,'-'
479 0A8B CD 0109 CALL CO
480 0A8E 7B MOV A,E
481 0A8F CD 0133 CALL DBYT ; BLOCK NUMBER
482 0A92 C3 0A77 JMP DIR0
483
484 ;----------------------------------
485 ;OPEN OUTPUT FILE
486 0A95 CD 0C29 OPEN: CALL PTP?
487 0A98 3A 40E6 LDA @OF1 ;DOUBLE ?
488 0A9B B7 ORA A
489 0A9C C2 012A JNZ ERROR
490 0A9F CD 0C3E CALL TXIMM
491 0AA2 0D 0A DB CR,LF
492 0AA4 4C 41 53 54 DB 'LAST'
493 0AA8 A0 DB ' ' OR 80H
494 0AA9 3E FF MVI A,-1 ;FLAG
495 0AAB CD 0B2E CALL FINO
496 0AAE C2 0AC5 JNZ OPE1
497 0AB1 CD 0CAC OPE01: CALL SEARCH ;EOT ?
498 0AB4 CA 0AC2 JZ OPE20 ;SOH
499 0AB7 FE 04 CPI EOT@
500 0AB9 C2 0AB1 JNZ OPE01 ;NEXT BLOCK
501 0ABC CD 0B82 OPE30: CALL OK?
502 0ABF CA 0AD8 JZ OPE50 ;OPEN NOW
503 0AC2 CD 0B48 OPE20: CALL CMPNM + 3 ; OK ?
504 0AC5 C4 0B45 OPE1: CNZ CMPNM
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-9
505 0AC8 3A 40F0 LDA BOUT-1
506 0ACB FE 3A CPI CAN ;VOLUME
507 0ACD CA 0AD8 JZ OPE50 ;IMMED. OPEN
508 0AD0 CD 0CAC CALL SEARCH
509 0AD3 FE 04 CPI EOT@
510 0AD5 C2 0AD0 JNZ $ - 5
511 0AD8 7A OPE50: MOV A,D
512 0AD9 3C INR A ;INCREM.FILE NUMBER
513 0ADA 67 MOV H,A
514 0ADB 2E 00 MVI L,0
515 0ADD 22 40C0 SHLD BNO ;FILE&BLOCK NUMBER
516 0AE0 CD 0C8E CALL RECOR
517 0AE3 CD 0C3E CALL TXIMM
518 0AE6 0D 0A DB CR,LF
519 0AE8 4E 45 57 A0 DB 'NEW',' ' OR 80H
520 0AEC 3E 01 MVI A,SOH
521 0AEE 32 40E6 STA @OF1
522 0AF1 C3 0BB7 JMP WRNAM
523 ;
524
525 ;----------------------------------------
526 ; FIND INPUT FILE AND OPEN FOR READ
527 0AF4 CD 0C30 FIND: CALL PTR?
528 0AF7 AF XRA A ; FIND ONPUT FILE
529 0AF8 CD 0B2E CALL FINO
530 0AFB CD 0B45 CALL CMPNM
531 0AFE 1E 01 MVI E,1
532 0B00 EB XCHG
533 0B01 22 40C2 SHLD BNI ;NUMBER FILE
534 0B04 EB XCHG
535 0B05 3E 01 MVI A,SOH
536 0B07 32 40E4 STA @IF1
537 0B0A C3 0CC9 JMP RIB
538 ;---------------------------
539 ;CLOSE OUTPUT FILE
540 0B0D CD 0C29 CLOSE: CALL PTP?
541 0B10 3A 40E6 LDA @OF1 ;NO OPEN
542 0B13 B7 ORA A
543 0B14 CA 012A JZ ERROR
544 0B17 3E 04 MVI A,EOT@ ;CLOSE BLOK
545 0B19 32 40F0 STA BOUT-1
546 0B1C CD 0D25 CALL WOB
547 0B1F AF XRA A
548 0B20 32 40E6 STA @OF1 ;CLOSE
549 0B23 CD 0A61 CALL STARW ;GAP 2*
550 0B26 3E 50 MVI A,80 ; BOOMS
551 0B28 CD 0F98 CALL TIME
552 0B2B C3 0F32 JMP STOP
553 ;---------------------
554 0B2E 32 40B4 FINO: STA JOIN ;I/O FLAG
555 0B31 CD 0C4E CALL TXNAM
556 0B34 21 40B5 LXI H,FNAME
557 0B37 E5 PUSH H
558 0B38 06 0B MVI B,NAMLE
559 0B3A CD 0BE7 CALL RNAME ;READ
560 0B3D CD 0C80 CALL PLAY
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-10
561 0B40 E1 POP H
562 0B41 7E MOV A,M
563 0B42 FE 2A CPI '*' ;WILDCARDS ?
564 0B44 C9 RET
565
566 0B45 CD 0CAC CMPNM: CALL SEARCH ;COMPARE NAME
567 0B48 C2 0B45 JNZ CMPNM ;NO HDR
568 0B4B 01 40B5 LXI B,FNAME
569 0B4E 1E 0B MVI E,NAMLE
570 0B50 23 INX H ;NAME
571 0B51 0A CMPN0: LDAX B
572 0B52 FE 2A CPI '*'
573 0B54 CA 0B65 JZ CMPN1
574 0B57 CD 09C9 CALL TERM ;END OF NAME
575 0B5A C8 RZ
576 0B5B BE CMP M
577 0B5C C2 0B45 JNZ CMPNM
578 0B5F 03 INX B
579 0B60 1D DCR E
580 0B61 C2 0B50 JNZ CMPN0 - 1
581 0B64 C9 RET ;O.K
582 ;
583 0B65 D5 CMPN1: PUSH D
584 0B66 CD 0CBD CALL BUADR
585 0B69 E5 PUSH H
586 0B6A CD 0C20 CALL PHDR
587 0B6D E1 POP H
588 0B6E D1 POP D
589 0B6F 7C MOV A,H ; CTENI NEBO ZAPIS
590 0B70 FE 41 CPI (BIN-1) SHR 8
591 0B72 C2 0B7B JNZ CMPN2
592 0B75 7E MOV A,M
593 0B76 FE 3A CPI CAN ; ':'... VOLUME BLOK
594 0B78 CA 0B45 JZ CMPNM
595 0B7B CD 0B82 CMPN2: CALL OK?
596 0B7E C2 0B45 JNZ CMPNM
597 0B81 C9 RET
598 ;
599 0B82 CD 0C3E OK?: CALL TXIMM
600 0B85 07 DB 7
601 0B86 2D 2D 28 59 DB '--(Y/N)','?' OR 80H
602 0B8A 2F 4E 29 BF
603 0B8E CD 0C73 CALL ECHO
604 0B91 FE 59 CPI 'Y'
605 0B93 C9 RET
606 ;--------------------
607 ;INIT NEW CASSETTE
608 0B94 CD 0A58 INIT: CALL START
609 0B97 CD 0C3E CALL TXIMM
610 0B9A 42 4F 54 DB 'BOT'
611 0B9D A0 DB ' ' OR 80H
612 0B9E CD 0C8E CALL RECOR
613 0BA1 CD 0F32 CALL STOP
614 0BA4 CD 0C3E CALL TXIMM
615 0BA7 20 56 4F 4C DB ' VOLUME'
616 0BAB 55 4D 45
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-11
617 0BAE A0 DB ' ' OR 80H
618 0BAF 21 0000 LXI H,0 ;0..FILE NUMBER
619 0BB2 22 40C0 SHLD BNO
620 0BB5 3E 3A MVI A,CAN
621
622 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623 ; FILE NAME LEVEL
624 0BB7 F5 WRNAM: PUSH PSW ;HDR-LABEL
625 0BB8 CD 0C4E CALL TXNAM
626 0BBB CD 0C5A CALL NULBF
627 0BBE CD 0F32 CALL STOP
628 0BC1 F1 POP PSW
629 0BC2 77 MOV M,A
630 0BC3 23 INX H
631 0BC4 06 40 MVI B,COMLE ;NAME+COMMENT
632 0BC6 E5 PUSH H
633 0BC7 CD 0BE7 CALL RNAME
634 0BCA E1 POP H
635 0BCB 06 0B MVI B,NAMLE
636 0BCD 11 42F0 LXI D,WRNM ;OUTPUT AREA
637 0BD0 7E WRN1: MOV A,M
638 0BD1 E6 3F ANI 3FH
639 0BD3 C2 0BD8 JNZ $+5
640 0BD6 3E 20 MVI A,' ' ;BLANK
641 0BD8 12 STAX D
642 0BD9 23 INX H
643 0BDA 13 INX D
644 0BDB 05 DCR B
645 0BDC C2 0BD0 JNZ WRN1
646 0BDF CD 0D25 CALL WOB
647 0BE2 36 41 MVI M,'A' ;DATA TYP
648 0BE4 C3 0124 JMP CRLF
649 ; READ NAME <HL>..ADR,<B>..DELKA
650 ;-----------------------------------
651 0BE7 5D RNAME: MOV E,L ;LOW-FIRST ADR
652 0BE8 36 20 RNAM1: MVI M,' '
653 0BEA CD 0103 CALL CI
654 0BED E6 7F ANI 7FH
655 0BEF FE 03 CPI ETX
656 0BF1 CA 0A14 JZ MICOS
657 0BF4 FE 0D CPI CR
658 0BF6 CA 0124 JZ CRLF
659 0BF9 FE 7F CPI DEL
660 0BFB CA 0C03 JZ RNAM10
661 0BFE FE 08 CPI 08H ;BS
662 0C00 C2 0C13 JNZ RNAM2
663 0C03 7B RNAM10: MOV A,E
664 0C04 BD CMP L ;FIRST
665 0C05 CA 0BE8 JZ RNAM1
666 0C08 2B DCX H
667 0C09 04 INR B
668 0C0A CD 0C3E CALL TXIMM ;DELETE
669 0C0D 08 20 88 DB 08,20H,88H
670 0C10 C3 0BE8 JMP RNAM1
671 0C13 77 RNAM2: MOV M,A
672 0C14 23 INX H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-12
673 0C15 4F MOV C,A
674 0C16 CD 0109 CALL CO
675 0C19 05 DCR B
676 0C1A C2 0BE8 JNZ RNAM1
677 0C1D C3 0124 JMP CRLF
678 ;
679 ;PRINT HEADER OF FILE
680 ;--------------------
681 0C20 CD 0124 PHDR: CALL CRLF
682 0C23 23 INX H
683 0C24 16 40 MVI D,COMLE
684 0C26 C3 0142 JMP TEXT
685
686 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
687 ; POMOCNE PROGRAMY
688 ;
689 ; CT OR PUNCHER ?
690 0C29 E5 PTP?: PUSH H
691 0C2A 21 3020 LXI H,3020H
692 0C2D C3 0C34 JMP $+7
693 ;
694 ; CT OR READER ?
695 0C30 E5 PTR?: PUSH H
696 0C31 21 0C08 LXI H,0C08H
697 0C34 CD 0115 CALL IOCHK
698 0C37 A4 ANA H
699 0C38 BD CMP L
700 0C39 E1 POP H
701 0C3A C8 RZ ; YES .. CT
702 0C3B 33 INX SP
703 0C3C 33 INX SP ; NESTING
704 0C3D C9 RET ; NO FINO
705 ;TEXTY PRO OBSLUHU
706 ;-----------------
707 0C3E E3 TXIMM: XTHL
708 0C3F 7E MOV A,M
709 0C40 E6 7F ANI 7FH
710 0C42 4F MOV C,A
711 0C43 CD 0109 CALL CO
712 0C46 7E MOV A,M
713 0C47 07 RLC
714 0C48 23 INX H
715 0C49 D2 0C3F JNC TXIMM+1
716 0C4C E3 XTHL
717 0C4D C9 RET
718 ;
719 0C4E CD 0C3E TXNAM: CALL TXIMM
720 0C51 20 4E 41 4D DB ' NAME'
721 0C55 45
722 0C56 0D 0A DB CR,LF
723 0C58 BA DB ':' OR 80H
724 0C59 C9 RET
725
726 ;
727 ;NULL OUTPUT BUFFER
728 ;------------------
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-13
729 0C5A 21 40F0 NULBF: LXI H,BOUT-1
730 0C5D E5 PUSH H
731 0C5E 3E FF MVI A,LENGHT
732 0C60 23 INX H
733 0C61 36 00 MVI M,0
734 0C63 3D DCR A
735 0C64 C2 0C60 JNZ $-4
736 0C67 E1 POP H ;(BLOCK TYP) ADRM
737 0C68 C9 RET
738
739 0C69 CD 0112 BREAK: CALL CSTS
740 0C6C C8 RZ
741 0C6D CD 0103 CALL CI
742 0C70 C3 0C77 JMP ETX?
743
744 ;CTI A VYPIS ZNAK
745 0C73 CD 013F ECHO: CALL CINCR
746 0C76 C8 RZ
747 0C77 FE 03 ETX?: CPI ETX
748 0C79 C0 RNZ
749 0C7A CD 0DE9 CALL CLSTP ;CLOSE & STOP
750 0C7D C3 0139 JMP NEXT ;BREAK=>C
751
752 ;DISPLAY "PLAY"
753 0C80 CD 0C3E PLAY: CALL TXIMM
754 0C83 50 4C 41 59 DB 'PLAY'
755 0C87 A0 DB ' ' OR 80H
756 0C88 CD 0C9A RECO: CALL DONE
757 0C8B C3 0A58 JMP START
758
759 ;DISPLAY "RECORD"
760 0C8E CD 0C3E RECOR: CALL TXIMM
761 0C91 0D 0A DB CR,LF
762 0C93 52 45 43 4F DB 'RECORD'
763 0C97 52 44
764 0C99 A0 DB ' ' OR 80H
765 ;
766 0C9A CD 0C3E DONE: CALL TXIMM
767 0C9D 20 44 4F 4E DB ' DONE','?' OR 80H
768 0CA1 45 BF
769 0CA3 CD 0C73 ECHOCR: CALL ECHO
770 0CA6 F5 PUSH PSW
771 0CA7 CD 0124 CALL CRLF
772 0CAA F1 POP PSW
773 0CAB C9 RET
774
775
776 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 ; FILE OPERATIONS LEVEL
778 ;
779 ;SERACH BLOCK IN TAPE
780 ;--------------------
781 0CAC CD 0CBD SEARCH: CALL BUADR
782 0CAF 0E 23 SEAR1: MVI C,'#' ;ERROR
783 0CB1 DC 0109 CC CO
784 0CB4 CD 0E7A CALL READF
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-14
785 0CB7 DA 0CAF JC SEAR1 ; SERACH ERROR
786 0CBA C3 0CE3 JMP RIB2
787 ;
788 ; BUFFER ADR
789 0CBD 3A 40B4 BUADR: LDA JOIN ;INPUT OR OUTPUT ?
790 0CC0 B7 ORA A
791 0CC1 21 40F0 LXI H,BOUT-1
792 0CC4 C0 RNZ ;OUTPUT
793 0CC5 21 41F0 LXI H,BIN-1
794 0CC8 C9 RET
795 ;
796
797 ; READ INPUT BUFFER
798 ;--------------------
799 0CC9 D5 RIB: PUSH D
800 0CCA C5 PUSH B
801 0CCB 2A 40C2 LHLD BNI
802 0CCE 23 INX H
803 0CCF 22 40C2 SHLD BNI
804 0CD2 21 41F0 LXI H,BIN-1
805 0CD5 CD 0E7E CALL READ
806 0CD8 DA 0CEA JC ERRD ;ERROR
807 0CDB CD 0D36 CALL NUFIL ; NUMBER O.K. ?
808 0CDE C2 0CEA JNZ ERRD ; BLOCK ERROR
809 0CE1 C1 RIB1: POP B
810 0CE2 D1 POP D
811 0CE3 7E RIB2: MOV A,M ;BLOCK TYP
812 0CE4 FE 3A CPI CAN ;VOLUME NAME
813 0CE6 C8 RZ
814 0CE7 FE 01 CPI SOH ;FILE NAME
815 0CE9 C9 RET ;(HL)..BLOCK TYP
816 ;ERROR READ
817 0CEA CD 0F32 ERRD: CALL STOP ;# VERS."E"#
818 0CED CD 0C3E CALL TXIMM
819 0CF0 20 45 52 52 DB ' ERROR/N'
820 0CF4 4F 52 2F 4E
821 0CF8 BF DB '?' OR 80H
822 0CF9 CD 0C73 CALL ECHO ;CONTINUE
823 0CFC FE 4E CPI 'N'
824 0CFE CA 0D1C JZ ERRD1
825 0D01 CD 0C3E CALL TXIMM
826 0D04 20 42 41 43 DB ' BACK'
827 0D08 4B
828 0D09 A0 DB ' ' OR 80H
829 0D0A CD 0C80 CALL PLAY
830 0D0D 21 41F0 ERRD0: LXI H,BIN-1 ;INPUT BUFFER
831 0D10 CD 0E7A CALL READF
832 0D13 DA 0CEA JC ERRD ;NEXT ERROR
833 0D16 CD 0D36 CALL NUFIL
834 0D19 C2 0D0D JNZ ERRD0 ;NEXT BLOCK
835 0D1C CD 0124 ERRD1: CALL CRLF
836 0D1F 21 41F0 LXI H,BIN-1
837 0D22 C3 0CE1 JMP RIB1
838
839 ;WRITE OUTPUT BUFFER
840 0D25 D5 WOB: PUSH D
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-15
841 0D26 2A 40C0 LHLD BNO
842 0D29 23 INX H
843 0D2A 22 40C0 SHLD BNO
844 0D2D EB XCHG
845 0D2E 21 40F0 LXI H,BOUT-1
846 0D31 CD 0EE6 CALL WRBLO
847 0D34 D1 POP D
848 0D35 C9 RET
849 ;
850 ; NUMBER FILE O.K. ?
851 ;
852 0D36 3A 40C2 NUFIL: LDA BNI
853 0D39 BB CMP E
854 0D3A C0 RNZ ;NO
855 0D3B 3A 40C3 LDA BNI+1
856 0D3E BA CMP D
857 0D3F C9 RET
858 ;
859 ;GET BYTE FROM CASSETTE
860 ;----------------------
861 0D40 C5 GET@: PUSH B
862 0D41 D5 PUSH D
863 0D42 E5 PUSH H
864 0D43 3A 40E4 LDA @IF1 ;WAS OPEN ?
865 0D46 B7 ORA A
866 0D47 CC 0AF4 CZ FIND ;NO THEN FIND
867 0D4A 2A 40C6 LHLD ADRI
868 0D4D 23 GET0: INX H
869 0D4E 7D MOV A,L ;WAS EMPTY
870 0D4F FE F0 CPI BIEND AND 0FFH
871 0D51 7E MOV A,M
872 0D52 22 40C6 SHLD ADRI
873 0D55 CA 0D5C JZ GET1 ;<A>..BYTE
874 0D58 B7 ORA A ;NCY
875 0D59 C3 0D6D JMP GETEX
876 0D5C 3A 41F0 GET1: LDA BIN-1
877 0D5F FE 04 CPI EOT@ ; "CLOSE" BLOK?
878 0D61 CA 0D6A JZ GET2
879 0D64 CD 0CC9 CALL RIB
880 0D67 C2 0D4D JNZ GET0 ;END OF FILE
881 0D6A 3E 1A GET2: MVI A,SUBS
882 0D6C 37 STC
883 0D6D E1 GETEX: POP H
884 0D6E D1 POP D
885 0D6F C1 POP B
886 0D70 C9 RET
887 ;
888 ;PUT BYTE TO CASSETTE
889 0D71 C5 PUT@: PUSH B
890 0D72 D5 PUSH D
891 0D73 E5 PUSH H
892 0D74 3A 40E6 LDA @OF1 ; WAS OPEN
893 0D77 B7 ORA A
894 0D78 C5 PUSH B
895 0D79 CC 0A95 CZ OPEN ;IF NO THEN DO
896 0D7C C1 POP B
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-16
897 0D7D 2A 40C4 LHLD ADRO
898 0D80 23 INX H
899 0D81 71 MOV M,C ;SAVE
900 0D82 22 40C4 SHLD ADRO
901 0D85 7D MOV A,L
902 0D86 FE EF CPI (BOEND AND 0FFH) - 1
903 0D88 CC 0D25 CZ WOB ;NEXT
904 0D8B 3A 40F0 LDA BOUT-1
905 0D8E FE 42 CPI 'B' ;BINAR DUMP?
906 0D90 CA 0DA1 JZ PUTEX
907 0D93 3A 40E3 LDA MODE
908 0D96 E6 02 ANI 2 ;BIN.FILE?
909 0D98 C2 0DA1 JNZ PUTEX
910 0D9B 79 MOV A,C ;CLOSE CHAR.?
911 0D9C FE 1A CPI SUBS
912 0D9E CC 0B0D CZ CLOSE
913 0DA1 E1 PUTEX: POP H
914 0DA2 D1 POP D
915 0DA3 C1 POP B
916 0DA4 79 MOV A,C
917 0DA5 B7 ORA A ;NCY
918 0DA6 C9 RET
919
920 ;
921 ;
922 ; LOAD BINARY DATA FROM TAPE TO MEMORY
923 ;
924 0DA7 CD 0AF4 LOAD: CALL FIND ;OPEN FILE
925 0DAA 3E 42 MVI A,'B' ;BINAR
926 0DAC 32 41F0 STA BIN-1
927 0DAF CD 0A58 CALL START
928 0DB2 CD 0E05 LO1: CALL RICH
929 0DB5 B7 ORA A ; BLANK?
930 0DB6 CA 0DB2 JZ LO1
931 0DB9 D6 3C SUI '<'
932 0DBB C2 0FF5 JNZ ERSTP ;#NOT BINARY FORMAT
933 0DBE 47 MOV B,A ;SUM
934 0DBF CD 0DFC CALL RADR@
935 0DC2 22 40B1 SHLD EADR ;LAST
936 0DC5 EB XCHG
937 0DC6 CD 0DFC CALL RADR@ ;LAST
938 0DC9 22 40AF SHLD SADR ; START ADR
939 0DCC CD 0E05 CALL RICH
940 0DCF FE 3E CPI '>'
941 0DD1 C2 0FF5 JNZ ERSTP ;#NOT BINARY
942 0DD4 CD 0DF3 CALL CHECK
943 0DD7 06 00 MVI B,0 ;CLEAR
944 0DD9 CD 0E05 LO2: CALL RICH
945 0DDC 77 MOV M,A
946 0DDD CD 0136 CALL HILO
947 0DE0 D2 0DD9 JNC LO2
948 0DE3 CD 0DF3 CALL CHECK
949 0DE6 32 40B3 STA SUM
950 0DE9 AF CLSTP: XRA A
951 0DEA 32 40E4 STA @IF1 ;SLOSE
952 0DED CD 0F32 CALL STOP
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-17
953 0DF0 C3 0124 JMP CRLF ;OK
954
955 ; CHECK SUM ?
956 0DF3 48 CHECK: MOV C,B
957 0DF4 CD 0E05 CALL RICH
958 0DF7 B9 CMP C
959 0DF8 C2 0FF5 JNZ ERSTP
960 0DFB C9 RET
961 ;
962 0DFC CD 0E05 RADR@: CALL RICH
963 0DFF 6F MOV L,A
964 0E00 CD 0E05 CALL RICH ;HL
965 0E03 67 MOV H,A
966 0E04 C9 RET
967 ;
968 0E05 CD 0106 RICH: CALL RI ;READ & SUM
969 0E08 DA 0FF5 JC ERSTP
970 0E0B F5 PUSH PSW
971 0E0C 80 ADD B
972 0E0D 47 MOV B,A
973 0E0E F1 POP PSW
974 0E0F C9 RET
975 ;
976 ; SAVE BINARY DATA TO TAPE
977 ;
978 0E10 0E 02 SAVE: MVI C,2
979 0E12 CD 0127 CALL EXPR ;FROM TO
980 0E15 3A 40E6 LDA @OF1
981 0E18 B7 ORA A
982 0E19 CC 0A95 CZ OPEN
983 0E1C 3E 42 MVI A,'B' ;BINAR
984 0E1E 32 40F0 STA BOUT-1
985 0E21 CD 0A61 CALL STARW
986 0E24 3E 50 MVI A,80 ; 800MS
987 0E26 CD 0F98 CALL TIME
988 0E29 0E 3C MVI C,'<' ;START BYTE
989 0E2B CD 0E5F CALL POCH
990 0E2E 06 00 MVI B,0 ;ADR-SUM
991 0E30 E1 POP H ;START
992 0E31 D1 POP D ;LAST
993 0E32 CD 0E5A CALL PADR@
994 0E35 EB XCHG
995 0E36 CD 0E5A CALL PADR@
996 0E39 0E 3E MVI C,'>'
997 0E3B CD 0E5F CALL POCH
998 0E3E 48 MOV C,B ;SUM OF ADR.
999 0E3F CD 0E5F CALL POCH
1000 ;
1001 0E42 06 00 MVI B,0 ;DATA-SUM
1002 0E44 4E SAV1: MOV C,M
1003 0E45 CD 0E5F CALL POCH
1004 0E48 CD 0136 CALL HILO
1005 0E4B D2 0E44 JNC SAV1
1006 0E4E 48 MOV C,B ;SUM
1007 0E4F CD 0E5F CALL POCH
1008 0E52 0E 1A MVI C,SUBS
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-18
1009 0E54 CD 0E5F CALL POCH ;END MARK
1010 0E57 C3 0B0D JMP CLOSE
1011 ;
1012 0E5A 4D PADR@: MOV C,L
1013 0E5B CD 0E5F CALL POCH
1014 0E5E 4C MOV C,H
1015 ;
1016 0E5F 79 POCH: MOV A,C ;PUNCHER AND SUM
1017 0E60 80 ADD B
1018 0E61 47 MOV B,A
1019 0E62 C3 010C JMP PO
1020
1021 ;
1022
1023 0E65 DB 12 SINC: IN UDATA
1024 0E67 3E 01 SINC1: MVI A,1 ; 10 MS
1025 0E69 CD 0F98 CALL TIME
1026 0E6C CD 0C69 CALL BREAK
1027 0E6F DB 11 IN USTAT
1028 0E71 07 RLC
1029 0E72 DA 0E65 JC SINC ;WAIT IF READY
1030 0E75 0D DCR C
1031 0E76 C2 0E67 JNZ SINC1
1032 0E79 C9 RET
1033 ;
1034 ; READ BLOCK (HL-BUF.ADR)
1035 ; OUT (DE-BLOCK &FILE COUNTER; CY=1 ERROR)
1036 ;
1037 0E7A AF READF: XRA A ;FIND MODE SET
1038 0E7B 32 40CA STA FND
1039 0E7E READ:
1040 0E7E C5 RBLOK: PUSH B
1041 0E7F E5 PUSH H
1042 0E80 CD 0A58 CALL START ;MOTION
1043 0E83 0E 01 RBLG: MVI C,1 ; WAIT 10MS NOT READY
1044 0E85 CD 0E65 CALL SINC ; START BLOCK
1045 0E88 0E 03 RBL2: MVI C,3 ; 3*PREAMBLE
1046 0E8A CD 0F7D RBL3: CALL SERIN
1047 0E8D FE 10 CPI PREAM
1048 0E8F C2 0E83 JNZ RBLG ; GAP
1049 0E92 0D DCR C
1050 0E93 C2 0E8A JNZ RBL3
1051 0E96 3E 3A MVI A,':'
1052 0E98 32 3800 STA TVBEG
1053 0E9B 01 0000 LXI B,(LENGHT+1) AND 0FFH ;B=0,C=LENGHT
1054 0E9E CD 0F73 CALL SERIM ;READ DATA
1055 0EA1 0E 2A MVI C,'*'
1056 0EA3 3A 40CA LDA FND ;FIND MODE?
1057 0EA6 B7 ORA A
1058 0EA7 C2 0EAC JNZ RBL20 ;NO-READ
1059 0EAA 0E 20 MVI C,' '
1060 0EAC 21 3800 RBL20: LXI H,TVBEG
1061 0EAF 71 MOV M,C
1062 0EB0 23 INX H
1063 0EB1 36 22 MVI M,'"'
1064 0EB3 23 INX H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-19
1065 0EB4 0E 0B MVI C,NAMLE
1066 0EB6 CD 0F73 RBL33: CALL SERIM
1067 0EB9 36 22 MVI M,'"'
1068 0EBB 23 INX H
1069 0EBC 36 20 MVI M,20H
1070 0EBE 23 INX H
1071 0EBF CD 0F7D CALL SERIN
1072 0EC2 5F MOV E,A
1073 0EC3 CD 0F37 CALL HEXMEM ; REG 'E' -> MEM HEX
1074 0EC6 CD 0F7D CALL SERIN
1075 0EC9 57 MOV D,A
1076 0ECA 3E 20 MVI A,' '
1077 0ECC 32 40CA STA FND
1078 0ECF 48 MOV C,B ;CHECK SUM
1079 0ED0 CD 0F7D CALL SERIN
1080 0ED3 91 SUB C
1081 0ED4 E1 POP H
1082 0ED5 C1 POP B
1083 0ED6 22 40C6 SHLD ADRI ;BEG. ADR
1084 0ED9 F5 PUSH PSW ;SAVE ZERO FLG
1085 0EDA 3A 41F0 LDA BIN-1 ;#VERS "E"#
1086 0EDD FE 42 CPI 'B' ;#
1087 0EDF C4 0F32 CNZ STOP ;#
1088 0EE2 F1 RBL5: POP PSW ;IF ZERO ..O.K
1089 0EE3 C8 RZ
1090 0EE4 37 STC
1091 0EE5 C9 RET ;ELSE ...ERROR
1092 ;
1093 ;WRITE BLOCK (HL-ADR,DE-BLOCK &FILE NUMBER)
1094 ;
1095 0EE6 C5 WRBLO: PUSH B
1096 0EE7 E5 PUSH H
1097 0EE8 D5 PUSH D
1098 0EE9 CD 0A61 CALL STARW ;START WRITE
1099 0EEC 3E 50 MVI A,80 ; 800/100 MS
1100 0EEE CD 0F8D CALL BTIME
1101 0EF1 CD 0F61 CALL SEROP
1102 0EF4 CD 0F61 CALL SEROP
1103 0EF7 CD 0F61 CALL SEROP ;PREAMBLE
1104 0EFA 01 0000 LXI B,(LENGHT+1) AND 0FFH
1105 0EFD CD 0F57 CALL SEROM ;DATA
1106 0F00 21 42F0 LXI H,WRNM
1107 0F03 0E 0B MVI C,NAMLE
1108 0F05 CD 0F57 CALL SEROM ;NAME
1109 0F08 D1 POP D
1110 0F09 7B MOV A,E
1111 0F0A CD 0F63 CALL SEROUT ;BLOCK-NUMBER
1112 0F0D 7A MOV A,D
1113 0F0E CD 0F63 CALL SEROUT ;FILE-NUMBER
1114 0F11 78 MOV A,B
1115 0F12 CD 0F63 CALL SEROUT ;CHECK SUM
1116 0F15 CD 0F61 CALL SEROP
1117 0F18 AF XRA A
1118 0F19 CD 0F63 CALL SEROUT ;SENTINEL
1119 0F1C 21 3800 LXI H,TVBEG
1120 0F1F CD 0F37 CALL HEXMEM
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-20
1121 0F22 E1 POP H
1122 0F23 C1 POP B
1123 0F24 22 40C4 SHLD ADRO ;SET ADR
1124 0F27 3E 01 MVI A,1 ; 10 MS
1125 0F29 CD 0F98 CALL TIME
1126 0F2C 3A 40F0 LDA BOUT-1 ;#VERS "E"#
1127 0F2F FE 42 CPI 'B' ;#
1128 0F31 C8 RZ ;#
1129 0F32 3E 10 STOP: MVI A,10H
1130 0F34 D3 10 OUT UMODE
1131 0F36 C9 RET
1132 ;
1133 ; ROUTINES
1134 ;
1135 ; 'E' REG HEX TO MEMORY, CLEAR TO END LINE
1136 0F37 7B HEXMEM: MOV A,E
1137 0F38 0F RRC
1138 0F39 0F RRC
1139 0F3A 0F RRC
1140 0F3B 0F RRC
1141 0F3C CD 0F4D CALL HEXC
1142 0F3F 7B MOV A,E
1143 0F40 CD 0F4D CALL HEXC
1144 0F43 3E 27 MVI A,39 ; LINE LENGTH-1
1145 0F45 36 20 HEXM1: MVI M,' '
1146 0F47 23 INX H
1147 0F48 BD CMP L ; END LINE ?
1148 0F49 D2 0F45 JNC HEXM1
1149 0F4C C9 RET
1150
1151 ; DISPLAY HEX CIFF.
1152 0F4D E6 0F HEXC: ANI 0FH
1153 0F4F CD 0148 CALL HXASC
1154 0F52 E6 3F ANI 3FH
1155 0F54 77 MOV M,A
1156 0F55 23 INX H
1157 0F56 C9 RET
1158 ;
1159 0F57 7E SEROM: MOV A,M ;FROM MEMORY
1160 0F58 23 INX H
1161 0F59 CD 0F63 CALL SEROUT ;TO:CT:
1162 0F5C 0D DCR C
1163 0F5D C2 0F57 JNZ SEROM
1164 0F60 C9 RET ;ALL
1165
1166 0F61 3E 10 SEROP: MVI A,PREAM ;BLOCK-MARK
1167
1168 0F63 F5 SEROUT: PUSH PSW
1169 0F64 80 ADD B
1170 0F65 47 MOV B,A ;CHECK SUM
1171 0F66 CD 0C69 CALL BREAK
1172 0F69 DB 11 SERO: IN USTAT
1173 0F6B 87 ADD A
1174 0F6C F2 0F69 JP SERO
1175 0F6F F1 POP PSW
1176 0F70 D3 12 OUT UDATA
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-21
1177 0F72 C9 RET
1178 ;
1179 0F73 CD 0F7D SERIM: CALL SERIN ;READ TO MEMORY
1180 0F76 77 MOV M,A
1181 0F77 23 INX H
1182 0F78 0D DCR C
1183 0F79 C2 0F73 JNZ SERIM
1184 0F7C C9 RET
1185
1186 0F7D CD 0C69 SERIN: CALL BREAK
1187 0F80 DB 11 IN USTAT
1188 0F82 07 RLC
1189 0F83 D2 0F7D JNC SERIN
1190 0F86 DB 12 IN UDATA
1191 0F88 F5 PUSH PSW
1192 0F89 80 ADD B
1193 0F8A 47 MOV B,A
1194 0F8B F1 POP PSW
1195 0F8C C9 RET
1196 ;
1197 ; TIME ROUTINES
1198 ;
1199 0F8D 47 BTIME: MOV B,A ; * 10 MS
1200 0F8E 7E MOV A,M ; 'B' ?
1201 0F8F FE 42 CPI 'B'
1202 0F91 78 MOV A,B
1203 0F92 C2 0F98 JNZ TIME
1204 0F95 0F RRC
1205 0F96 0F RRC
1206 0F97 0F RRC ; /8
1207
1208 0F98 C5 TIME: PUSH B ; ACC*10MS (TCY=500NS)
1209 0F99 01 041F TIME1: LXI B,800+255
1210 0F9C 0B TIME2: DCX B ;( 5)
1211 0F9D 04 INR B ;( 5)
1212 0F9E 05 DCR B ;( 5)
1213 0F9F C2 0F9C JNZ TIME2 ;(10) 10MS LOOP @ 12.5US
1214 0FA2 3D DCR A
1215 0FA3 C2 0F99 JNZ TIME1
1216 0FA6 C1 POP B
1217 0FA7 C9 RET
1218 ;
1219 ; MICRO-BASIC FORMAT
1220 ;
1221 0FA8 0E 01 BB: MVI C,1 ;1. ADR
1222 0FAA CD 0127 CALL EXPR
1223 0FAD CD 0C80 CALL PLAY
1224 0FB0 0E 32 MVI C,50 ; 500MS GAP
1225 0FB2 CD 0E65 BB1: CALL SINC
1226 0FB5 0E 2A MVI C,'*'
1227 0FB7 CD 0109 CALL CO
1228 0FBA CD 0F7D CALL SERIN
1229 0FBD FE 42 CPI 'B' ; BASIC RECORD?
1230 0FBF 01 000A LXI B,10 ; 100MS & CLEAR SUM
1231 0FC2 C2 0FB2 JNZ BB1
1232 0FC5 CD 0F7D CALL SERIN ;NAME
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-22
1233 0FC8 4F BB2: MOV C,A
1234 0FC9 CD 0109 CALL CO
1235 0FCC CD 0F7D CALL SERIN
1236 0FCF FE 0D CPI CR
1237 0FD1 C2 0FC8 JNZ BB2
1238 0FD4 CD 0F7D CALL SERIN
1239 0FD7 5F MOV E,A
1240 0FD8 CD 0F7D CALL SERIN
1241 0FDB 57 MOV D,A
1242 0FDC 21 BF10 LXI H,-40F0H ;OFFSET
1243 0FDF 19 DAD D
1244 0FE0 D1 POP D
1245 0FE1 19 DAD D
1246 0FE2 EB XCHG ;DE-LAST ADR
1247 0FE3 CD 0F7D BB3: CALL SERIN
1248 0FE6 77 MOV M,A
1249 0FE7 CD 0136 CALL HILO
1250 0FEA D2 0FE3 JNC BB3
1251 0FED 48 MOV C,B
1252 0FEE CD 0F7D CALL SERIN
1253 0FF1 B9 CMP C
1254 0FF2 CA 0F32 JZ STOP ;#VERS."E"#
1255 0FF5 CD 0DE9 ERSTP: CALL CLSTP ;#
1256 0FF8 C3 012A JMP ERROR ;#
1257 0FFB @ENDPR EQU $
1258 ;
1259 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1260 ORG @R@
1261 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1262 ; SYSTEM RAM SAPI-1 M4
1263 ;
1264 4000 RST1: DS 21 ;RESTART VECTOR
1265 ;<<... USER & MONITOR STACK
1266 ;
1267 ;
1268 ;
1269 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1270 ORG @R@+090H
1271 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1272 ; MONITOR DATA
1273 ;
1274 4090 MSTAK: DS 2 ; SAVE REGISTERS
1275 4092 ACSAV: DS 2
1276 4094 BCSAV: DS 2
1277 4096 DESAV: DS 2
1278 4098 HLSAV: DS 2
1279 409A PCSAV: DS 2
1280 409C SPSAV: DS 2
1281 ;
1282 409E BRAD: DS 2
1283 40A0 INSTR: DS 1
1284 40A1 BRAD2: DS 2
1285 40A3 INST2: DS 1
1286 40A4 LASTC: DS 1 ;LAST CODE "REPEAT"
1287 40A5 CADR: DS 2 ; CURSOR ADR
1288 40A7 CHAR: DS 1 ; CODE
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-23
1289 40A8 FLAG: DS 1 ; FLAG MEMBR
1290 40A9 LIMIT: DS 2 ; TIME LIMIT FOR AUTO REPEAT
1291 40AB @BT: DS 1
1292 40AC @PED: DS 1
1293 40AD UADR: DS 2 ;USER ADR
1294 40AF SADR: DS 2 ; START ADR
1295 40B1 EADR: DS 2 ; END ADR
1296 40B3 SUM: DS 1
1297
1298 ;*******************************
1299 ;MONITOR PLUS DATA
1300 40B4 JOIN: DS 1
1301 40B5 FNAME: DS 11
1302 40C0 BNO: DS 1 ;BLOCK NUMSER,FILE NUMBER
1303 40C1 BTO: DS 1
1304 40C2 BNI: DS 1 ; --- " ---
1305 40C3 BTI: DS 1
1306 40C4 ADRO: DS 2
1307 40C6 ADRI: DS 2
1308 40C8 PBITM: DS 2
1309 40CA FND: DS 1 ; FIND FLAG
1310
1311 ;-------------------------
1312 ; USER I/O DEVICE
1313 ;
1314 40CB CILOC: DS 3
1315 40CE COLOC: DS 3
1316 40D1 R1LOC: DS 3
1317 40D4 R2LOC: DS 3
1318 40D7 P1LOC: DS 3
1319 40DA P2LOC: DS 3
1320 40DD LILOC: DS 3
1321 40E0 CSLOC: DS 3
1322 ;******************************
1323 ;<< EXTERNE OVLADANE FLAGY: >>
1324 ;******************************
1325 40E3 MODE: DS 1 ;CO-MODE
1326 40E4 @IF1: DS 1
1327 40E5 @IF2: DS 1
1328 40E6 @OF1: DS 1
1329 40E7 @OF2: DS 1
1330 40E8 LINE: DS 1 ;LINE
1331 40E9 COLUM: DS 1 ;COLUMN
1332 40EA RESL: DS 1 ;RESERVE
1333 40EB UBYTE: DS 1 ;USER BYTE (REALTIME..)
1334 40EC @SFLG: DS 1 ;#0..NO STOP
1335 000A EXSER EQU $-MODE ;EXTERNAL SERVICE
1336 40ED IOBYT: DS 1 ;I/O CONTROL
1337 40EE MEMTOP: DS 2 ;MEMTOP "RAM"
1338
1339 ;-------------------------
1340 ; I/O BUFFERS
1341 40F0 DS 1 ; BLOCK LABEL
1342 40F1 BOUT: DS 255 ;BLOCK LENGHT
1343 41F0 BOEND EQU $
1344 ;
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE 1-24
1345 41F0 DS 1 ; BLOCK LABELS
1346 41F1 BIN: DS 255 ;BLOCK LENGHT
1347 42F0 BIEND EQU $
1348 ;
1349 42F0 WRNM: DS 11
1350 ;=============================
1351 ORG @R@ + 300H
1352 ;=============================
1353 ; "MAT" ARRAY
1354 4300 DS 0FFH
1355 ;=============================
1356 ORG @R@ + 400H
1357 ;=============================
1358 ; SYSTEM OR USER PROGRAMS
1359 ;---->>>>>>>>>>>
1360 ;
1361 ;
1362 ;
1363 END ;[P]
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE S
Macros:
Symbols:
40AB @BT 0FFB @ENDPR 40E4 @IF1
40E5 @IF2 40E6 @OF1 40E7 @OF2
40AC @PED 4000 @R@ 40EC @SFLG
4092 ACSAV 40C6 ADRI 40C4 ADRO
0A66 APPEND 012D ASHEX 0151 ASSEX
089B B0 089E B1 08B0 B2
4400 BASIC 0FA8 BB 0FB2 BB1
0FC8 BB2 0FE3 BB3 0896 BCMD
4094 BCSAV 42F0 BIEND 41F1 BIN
40C2 BNI 40C0 BNO 41F0 BOEND
40F1 BOUT 409E BRAD 40A1 BRAD2
0C69 BREAK 40C3 BTI 0F8D BTIME
40C1 BTO 0CBD BUADR 40A5 CADR
003A CAN 40A7 CHAR 0DF3 CHECK
0103 CI 40CB CILOC 013F CINCR
0B0D CLOSE 0DE9 CLSTP 0B51 CMPN0
0B65 CMPN1 0B7B CMPN2 0B45 CMPNM
0109 CO 40CE COLOC 40E9 COLUM
0040 COMLE 0000 CPM 000D CR
0124 CRLF 40E0 CSLOC 0112 CSTS
0130 DADR 0133 DBYT 007F DEL
4096 DESAV 0A70 DIR 0A77 DIR0
0C9A DONE 40B1 EADR 0C73 ECHO
0CA3 ECHOCR 08E7 EOF 0004 EOT@
0800 EPROM 0CEA ERRD 0D0D ERRD0
0D1C ERRD1 012A ERROR 0FF5 ERSTP
0003 ETX 0C77 ETX? 085B EXMON
0127 EXPR 000A EXSER 0AF4 FIND
0B2E FINO 40A8 FLAG 40B5 FNAME
40CA FND 0A5A GAPO 0D4D GET0
0D5C GET1 0D6A GET2 0D40 GET@
0D6D GETEX 09FF HBYTE 0F4D HEXC
0F45 HEXM1 0F37 HEXMEM 0136 HILO
4098 HLSAV 0009 HT 0148 HXASC
0839 ICMD 083E ICMD1 0B94 INIT
0818 INITS 40A3 INST2 40A0 INSTR
40ED IOBYT 0115 IOCHK 011E IODEF
0118 IOSET 08D6 J1 40B4 JOIN
08C7 JUMP 40A4 LASTC 0A03 LBYTE
08FE LEAD 00FF LENGHT 000A LF
40DD LILOC 40A9 LIMIT 40E8 LINE
0DB2 LO1 0DD9 LO2 0DA7 LOAD
0400 LSYSR 40EE MEMTOP 0A14 MICOS
40E3 MODE 0100 MONIT 0A4F MOTA
0A0B MREAD 4090 MSTAK 000B NAMLE
0139 NEXT 0D36 NUFIL 0C5A NULBF
08FE NULL 084A OCMD 084F OCMD1
0B82 OK? 0AB1 OPE01 0AC5 OPE1
0AC2 OPE20 0ABC OPE30 0AD8 OPE50
0A95 OPEN 40D7 P1LOC 40DA P2LOC
0E5A PADR@ 09D5 PBEG 40C8 PBITM
09F2 PBYTE 08BC PCMD 409A PCSAV
'MONITOR PLUS, MIKOS V4.0F - SAPI 1' MACRO-80 3.44 09-Dec-81 PAGE S-1
4400 PEDIT 0C20 PHDR 0C80 PLAY
010C PO 0E5F POCH 0010 PREAM
0C29 PTP? 0C30 PTR? 0D71 PUT@
0DA1 PUTEX 40D1 R1LOC 40D4 R2LOC
0DFC RADR@ 0E88 RBL2 0EAC RBL20
0E8A RBL3 0EB6 RBL33 0EE2 RBL5
0E83 RBLG 0E7E RBLOK 09B2 RBYTE
0E7E READ 0909 READ@ 0E7A READF
0C88 RECO 0C8E RECOR 090D RED1
093C RED2 095C RED3 090F REDC0
0911 REDC1 0927 REDC2 0953 REDER
40EA RESL 0106 RI 0CC9 RIB
0CE1 RIB1 0CE3 RIB2 0E05 RICH
0BE8 RNAM1 0C03 RNAM10 0C13 RNAM2
0BE7 RNAME 4000 RST1 40AF SADR
0E44 SAV1 0E10 SAVE 0CAF SEAR1
0CAC SEARCH 0F73 SERIM 0F7D SERIN
0F69 SERO 0F57 SEROM 0F61 SEROP
0F63 SEROUT 0E65 SINC 0E67 SINC1
0001 SOH 013C SPACE 409C SPSAV
0A58 START 0A61 STARW 0F32 STOP
001A SUBS 40B3 SUM 08B4 TCMD
09C9 TERM 0142 TEXT 0F98 TIME
0F99 TIME1 0F9C TIME2 4C00 TRACER
3800 TVBEG 0C3E TXIMM 0C4E TXNAM
40AD UADR 40EB UBYTE 0012 UDATA
0010 UMODE 0013 USER 0011 USTAT
0D25 WOB 097F WR1 0994 WR2
0997 WR3 09A0 WR4 0EE6 WRBLO
0977 WRITE 0BD0 WRN1 0BB7 WRNAM
42F0 WRNM
No Fatal error(s)
@BT 168 1291#
@ENDPR 1257#
@IF1 122 536 864 951 1326#
@IF2 1327#
@OF1 132 487 521 541 548 892 980 1328#
@OF2 1329#
@PED 192 1292#
@R@ 13# 1260 1270 1351 1356
@SFLG 1334#
ACSAV 1275#
ADRI 867 872 1083 1307#
ADRO 897 900 1123 1306#
APPEND 426 461#
ASHEX 55# 346 353
ASSEX 57# 120 130
B0 168# 188
B1 169# 193
B2 174 181#
BASIC 19# 167
BB 424 1221#
BB1 1225# 1231
BB2 1233# 1237
BB3 1247# 1250
BCMD 157 166#
BCSAV 1276#
BIEND 870 1347#
BIN 590 793 804 830 836 876 926 1085 1346#
BNI 533 801 803 852 855 1304#
BNO 462 515 619 841 843 1302#
BOEND 902 1343#
BOUT 505 545 729 791 845 904 984 1126 1342#
BRAD 1282#
BRAD2 1284#
BREAK 739# 1026 1171 1186
BTI 1305#
BTIME 1100 1199#
BTO 1303#
BUADR 584 781 789#
CADR 1287#
CAN 81# 506 593 620 812
CHAR 1288#
CHECK 942 948 956#
CI 38# 653 741
CILOC 1314#
CINCR 42# 745
CLOSE 96 434 540# 912 1010
CLSTP 749 950# 1255
CMPN0 571# 580
CMPN1 573 583#
CMPN2 591 595#
CMPNM 503 504 530 566# 567 577 594 596
CO 40# 281 421 479 674 711 783 1227 1234
COLOC 1315#
COLUM 1331#
COMLE 62# 631 683
CPM 8# 12
CR 64# 369 377 491 518 657 722 761 1236
CRLF 47# 305 475 648 658 677 681 771 835 953
CSLOC 1321#
CSTS 37# 739
DADR 46# 282
DBYT 45# 477 481
DEL 66# 659
DESAV 1277#
DIR 428 468#
DIR0 471# 474 482
DONE 446 756 766#
EADR 198 935 1295#
ECHO 603 745# 769 822
ECHOCR 422 769#
EOF 149 220#
EOT@ 80# 473 499 509 544 877
EPROM 15# 88
ERRD 806 808 817# 832
ERRD0 830# 834
ERRD1 824 835#
ERROR 54# 162 171 176 203 213 412 489 543 1256
ERSTP 283 932 941 959 969 1255#
ETX 67# 655 747
ETX? 742 747#
EXMON 93 139#
EXPR 44# 221 246 304 979 1222
EXSER 1335#
FIND 94 436 527# 866 924
FINO 495 529 554#
FLAG 1289#
FNAME 556 568 1301#
FND 105 1038 1056 1077 1309#
GAPO 450# 457
GET0 868# 880
GET1 873 876#
GET2 878 881#
GET@ 124 861#
GETEX 875 883#
HBYTE 391 400#
HEXC 1141 1143 1152#
HEXM1 1145# 1148
HEXMEM 1073 1120 1136#
HILO 48# 209 946 1004 1249
HLSAV 1278#
HT 68# 365
HXASC 56# 405 1153
ICMD 119# 151
ICMD1 113 121#
INIT 430 608#
INITS 92 103#
INST2 1285#
INSTR 1283#
IOBYT 1336#
IOCHK 51# 697
IODEF 43# 125 135
IOSET 53# 106
J1 206# 210
JOIN 461 469 554 789 1300#
JUMP 145 198#
LASTC 1286#
LBYTE 394 404#
LEAD 236# 239
LENGHT 60# 731 1053 1104
LF 65# 379 491 518 722 761
LILOC 1320#
LIMIT 1290#
LINE 1330#
LO1 928# 930
LO2 944# 947
LOAD 97 440 924#
LSYSR 16#
MEMTOP 1337#
MICOS 91 161 419# 656
MODE 907 1325# 1335
MONIT 14# 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57
MOTA 445#
MREAD 250 345 352 411#
MSTAK 1274#
NAMLE 61# 558 569 635 1065 1107
NEXT 49# 750
NUFIL 807 833 852#
NULBF 626 729#
NULL 147 235#
OCMD 129# 153
OCMD1 114 131#
OK? 501 595 599#
OPE01 497# 500
OPE1 496 504#
OPE20 498 503#
OPE30 501#
OPE50 464 502 507 511#
OPEN 95 432 486# 895 982
P1LOC 1318#
P2LOC 1319#
PADR@ 993 995 1012#
PBEG 226 330 376#
PBITM 1308#
PBYTE 229 333 338 384 386 388 390#
PCMD 155 190#
PCSAV 1279#
PEDIT 18# 191
PHDR 472 586 681#
PLAY 470 560 753# 829 1223
PO 41# 231 237 378 380 382 406 1019
POCH 989 997 999 1003 1007 1009 1013 1016#
PREAM 69# 1047 1166
PTP? 486 540 690#
PTR? 527 695#
PUT@ 134 889#
PUTEX 906 909 913#
R1LOC 1316#
R2LOC 1317#
RADR@ 934 937 962#
RBL2 1045#
RBL20 1058 1060#
RBL3 1046# 1050
RBL33 1066#
RBL5 1088#
RBLG 1043# 1048
RBLOK 1040#
RBYTE 260 263 265 269 270 278 285 287 289 290 345#
READ 805 1039#
READ@ 143 245#
READF 784 831 1037#
RECO 756#
RECOR 516 612 760#
RED1 247# 279
RED2 270# 277
RED3 261 284#
REDC0 249# 252
REDC1 250# 257
REDC2 255 259#
REDER 258 274 281# 291
RESL 1332#
RI 39# 411 968
RIB 537 799# 879
RIB1 809# 837
RIB2 786 811#
RICH 928 939 944 957 962 964 968#
RNAM1 652# 665 670 676
RNAM10 660 663#
RNAM2 662 671#
RNAME 559 633 651#
RST1 1264#
SADR 200 938 1294#
SAV1 1002# 1005
SAVE 98 438 978#
SEAR1 782# 785
SEARCH 471 497 508 566 781#
SERIM 1054 1066 1179# 1183
SERIN 1046 1071 1074 1079 1179 1186# 1189 1228 1232 1235 1238 1240
1247 1252
SERO 1172# 1174
SEROM 1105 1108 1159# 1163
SEROP 1101 1102 1103 1116 1166#
SEROUT 1111 1113 1115 1118 1161 1168#
SINC 1023# 1029 1044 1225
SINC1 1024# 1031
SOH 79# 520 535 814
SPACE 52#
SPSAV 1280#
START 445 449# 608 757 927 1042
STARW 456# 549 985 1098
STOP 419 447 552 613 627 817 952 1087 1129# 1254
SUBS 70# 230 881 911 1008
SUM 211 949 1296#
TCMD 159 186#
TERM 251 363# 574
TEXT 50# 684
TIME 551 987 1025 1125 1203 1208#
TIME1 1209# 1215
TIME2 1210# 1213
TRACER 20# 187
TVBEG 17# 1052 1060 1119
TXIMM 107 490 517 599 609 614 668 707# 715 719 753 760
766 818 825
TXNAM 555 625 719#
UADR 1293#
UBYTE 1333#
UDATA 74# 1023 1176 1190
UMODE 76# 450 1130
USER 73#
USTAT 75# 452 1027 1172 1187
WOB 546 646 840# 903
WR1 308# 340
WR2 319 322#
WR3 321 324#
WR4 331# 335
WRBLO 846 1095#
WRITE 141 304#
WRN1 637# 645
WRNAM 522 624#
WRNM 636 1106 1349#
Ú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