Ú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


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Programové vybavení / V4.x / LST MONITOR+ MIKOS-1


Listing programu MONITOR+ MIKOS-1 V4.0H


'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1


    1	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2	                                TITLE 'MONITOR PLUS, MIKOS V4.0H - SAPI 1'
    3	                                ;       30.7.1985       (P+S)
    4	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5	                                ;
    6	  0000                          CPM     EQU     0       ;EPROM VERSION
    7	                                ;
    8	                                ;       * ROZDELENI PAMETI *
    9	                                ;
   10	                                        IF      NOT CPM
   11	  4000                          @R@     EQU     4000H
   12	  0100                          MONIT   EQU     100H
   13	  0800                          EPROM   EQU     800H
   14	  0400                          LSYSR   EQU     400H
   15	  3800                          TVBEG   EQU     3800H
   16	  4400                          PEDIT   EQU     4400H
   17	  4400                          BASIC   EQU     4400H
   18	  4C00                          TRACER  EQU     4C00H
   19	                                        ELSE
   20	                                ;
   21	                                @R@     EQU     4000H   ;SYS RAM
   22	                                MONIT   EQU     200H    ;MONITOR
   23	                                EPROM   EQU     800H+200H       ; CPM
   24	                                LSYSR   EQU     400H    ;SYS.RAM
   25	                                TVBEG   EQU     0E800H
   26	                                PEDIT   EQU     1200H   ;START
   27	                                BASIC   EQU     4400H
   28	                                TRACER  EQU     2000H
   29	                                        ENDIF
   30	                                ;
   31	                                ;
   32	                                ;
   33	                                ;       * MONITOR ENTRY *
   34	                                ;
   35	  0112                          CSTS    EQU     MONIT + 12H
   36	  0103                          CI      EQU     MONIT + 3
   37	  0106                          RI      EQU     MONIT + 6
   38	  0109                          CO      EQU     MONIT + 09H
   39	  010C                          PO      EQU     MONIT + 0CH
   40	  013F                          CINCR   EQU     MONIT + 3FH
   41	  011E                          IODEF   EQU     MONIT + 1EH
   42	  0127                          EXPR    EQU     MONIT + 27H
   43	  0133                          DBYT    EQU     MONIT + 33H
   44	  0130                          DADR    EQU     MONIT + 30H
   45	  0124                          CRLF    EQU     MONIT + 24H
   46	  0136                          HILO    EQU     MONIT + 36H
   47	  0139                          NEXT    EQU     MONIT + 39H
   48	  0142                          TEXT    EQU     MONIT + 42H
   49	  0115                          IOCHK   EQU     MONIT + 15H
   50	  013C                          SPACE   EQU     MONIT + 3CH
   51	  0118                          IOSET   EQU     MONIT + 18H
   52	  012A                          ERROR   EQU     MONIT + 2AH
   53	  012D                          ASHEX   EQU     MONIT + 2DH
   54	  0148                          HXASC   EQU     MONIT + 48H
   55	  0151                          ASSEX   EQU     MONIT + 51H
   56	                                ;
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-1


   57	                                ;
   58	  00FF                          LENGHT  EQU     255     ; BLOCK LENGHT
   59	  000B                          NAMLE   EQU     11      ; NAME LENGHT
   60	  0040                          COMLE   EQU     64      ; COMNENT LENGTH
   61	                                ;------------------------------------------
   62	  000D                          CR      EQU     0DH     ;KONSTANTY
   63	  000A                          LF      EQU     0AH
   64	  007F                          DEL     EQU     7FH     ; DELETE
   65	  0003                          ETX     EQU     03H
   66	  0009                          HT      EQU     9       ;TAB
   67	  0010                          PREAM   EQU     10H     ; PREAMBLE/POSTAMBLE
   68	  001A                          SUBS    EQU     1AH     ; END FLAG
   69	                                ;
   70	                                ; SER. I/O
   71	  0013                          USER    EQU     13H
   72	  0012                          UDATA   EQU     12H
   73	  0011                          USTAT   EQU     11H
   74	  0010                          UMODE   EQU     10H
   75	                                
   76	                                ; BLOCK LABELS
   77	  0001                          SOH     EQU     01H     ; START OF HEADER
   78	  0004                          EOT@    EQU     04H     ; END OF TAPE
   79	  003A                          CAN     EQU     ':'     ; VOLUME NAME
   80	                                ;               'A'     ; DATA BLOCK
   81	                                ;               'B'     ; BINARY BLOCK
   82	                                ;
   83	                                
   84	                                ;=====================================
   85	  0000'                                 ASEG
   86	                                        ORG     EPROM   ;START
   87	                                ;=====================================
   88	                                
   89	  0800    C3 0A17                       JMP     MICOS   ;BRANCH TABLE
   90	  0803    C3 0818                       JMP     INITS   ;INIT SYSTEM
   91	  0806    C3 085B                       JMP     EXMON   ;EXPAND
   92	  0809    C3 0AF7                       JMP     FIND
   93	  080C    C3 0A98                       JMP     OPEN
   94	  080F    C3 0B10                       JMP     CLOSE
   95	  0812    C3 0DAA                       JMP     LOAD
   96	  0815    C3 0E13                       JMP     SAVE
   97	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   98	                                ;
   99	                                ; INIT SYSTEM AND I/O
  100	                                ;
  101	  0818    0E A9                 INITS:  MVI     C,0A9H  ;LO=L,RI-1,PO-1
  102	  081A    79                            MOV     A,C
  103	  081B    32 40CA                       STA     FND     ;NO FIND MODE
  104	  081E    CD 0118                       CALL    IOSET   ; SET P=R=1
  105	  0821    CD 0C41                       CALL    TXIMM   ;OHLASENI
  106	  0824    4D 49 4B 4F                   DB      'MIKOS-1 V4.0H '
  107	  0828    53 2D 31 20           
  108	  082C    56 34 2E 30           
  109	  0830    48 20                 
  110	  0832    AB                            DB      '+' OR 80H
  111	  0833    CD 083E                       CALL    ICMD1
  112	  0836    C3 084F                       JMP     OCMD1
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-2


  113	                                ;
  114	                                ;
  115	                                ; INPUT SET
  116	                                ;
  117	  0839    3E 52                 ICMD:   MVI     A,'R'
  118	  083B    CD 0151                       CALL    ASSEX
  119	  083E    AF                    ICMD1:  XRA     A
  120	  083F    32 40E4                       STA     @IF1    ;FIND FLAG
  121	  0842    0E 02                         MVI     C,2
  122	  0844    11 0D43                       LXI     D,GET@
  123	  0847    C3 011E                       JMP     IODEF
  124	                                ;
  125	                                ; OUTPUT SET
  126	                                ;
  127	  084A    3E 50                 OCMD:   MVI     A,'P'
  128	  084C    CD 0151                       CALL    ASSEX
  129	  084F    AF                    OCMD1:  XRA     A
  130	  0850    32 40E6                       STA     @OF1    ;OPEN FLAG
  131	  0853    0E 04                         MVI     C,4
  132	  0855    11 0D74                       LXI     D,PUT@
  133	  0858    C3 011E                       JMP     IODEF
  134	                                ;
  135	                                ; MONITOR EXTENSION
  136	                                ;
  137	  085B    7D                    EXMON:  MOV     A,L     ;COMMAND
  138	  085C    FE 57                         CPI     'W'
  139	  085E    CA 0977                       JZ      WRITE
  140	  0861    FE 52                         CPI     'R'
  141	  0863    CA 0909                       JZ      READ@
  142	  0866    FE 4A                         CPI     'J'
  143	  0868    CA 08C7                       JZ      JUMP
  144	  086B    FE 4E                         CPI     'N'
  145	  086D    CA 08FE                       JZ      NULL
  146	  0870    FE 45                         CPI     'E'
  147	  0872    CA 08E7                       JZ      EOF
  148	  0875    FE 49                         CPI     'I'
  149	  0877    CA 0839                       JZ      ICMD
  150	  087A    FE 4F                         CPI     'O'
  151	  087C    CA 084A                       JZ      OCMD
  152	  087F    FE 50                         CPI     'P'
  153	  0881    CA 08BC                       JZ      PCMD
  154	  0884    FE 42                         CPI     'B'
  155	  0886    CA 0896                       JZ      BCMD
  156	  0889    FE 54                         CPI     'T'
  157	  088B    CA 08B4                       JZ      TCMD
  158	  088E    FE 4B                         CPI     'K'
  159	  0890    CA 0A17                       JZ      MICOS
  160	  0893    C3 012A                       JMP     ERROR   ;MONITOR
  161	                                ;
  162	                                ; JUMP TO SYSTEM PROGRAMS
  163	                                ;
  164	  0896    06 42                 BCMD:   MVI     B,'B'   ;BASIC
  165	  0898    21 4400                       LXI     H,BASIC
  166	  089B    11 40AB               B0:     LXI     D,@BT   ; REENTRY FLAG
  167	  089E    7E                    B1:     MOV     A,M
  168	  089F    FE C3                         CPI     0C3H    ;JUMP
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-3


  169	  08A1    C2 012A                       JNZ     ERROR   ;NO EPROM IN SYSTEM
  170	  08A4    1A                            LDAX    D
  171	  08A5    B8                            CMP     B       ;WARM START ?
  172	  08A6    CA 08B0                       JZ      B2      ;+2
  173	  08A9    B7                            ORA     A
  174	  08AA    C2 012A                       JNZ     ERROR
  175	  08AD    78                            MOV     A,B
  176	  08AE    12                            STAX    D       ;SET FLAG
  177	  08AF    E9                            PCHL            ;COLD START
  178	                                ;
  179	  08B0    23                    B2:     INX     H
  180	  08B1    23                            INX     H
  181	  08B2    23                            INX     H
  182	  08B3    E9                            PCHL            ;WARM START
  183	                                ;
  184	  08B4    06 54                 TCMD:   MVI     B,'T'
  185	  08B6    21 4C00                       LXI     H,TRACER
  186	  08B9    C3 089B                       JMP     B0
  187	                                ;
  188	  08BC    06 50                 PCMD:   MVI     B,'P'   ;PEDIT
  189	  08BE    21 4400                       LXI     H,PEDIT
  190	  08C1    11 40AC                       LXI     D,@PED
  191	  08C4    C3 089E                       JMP     B1
  192	                                ;
  193	                                ;
  194	                                ; JUMP TO USER PROGRAM
  195	                                ;
  196	  08C7    2A 40B1               JUMP:   LHLD    EADR
  197	  08CA    EB                            XCHG
  198	  08CB    2A 40AF                       LHLD    SADR
  199	  08CE    7D                            MOV     A,L     ;NO PRGM
  200	  08CF    B4                            ORA     H
  201	  08D0    CA 012A                       JZ      ERROR   ;EMPTY FILE
  202	  08D3    E5                            PUSH    H       ;START
  203	  08D4    06 00                         MVI     B,0     ; SUM
  204	  08D6    7E                    J1:     MOV     A,M
  205	  08D7    80                            ADD     B
  206	  08D8    47                            MOV     B,A
  207	  08D9    CD 0136                       CALL    HILO
  208	  08DC    D2 08D6                       JNC     J1
  209	  08DF    3A 40B3                       LDA     SUM
  210	  08E2    B8                            CMP     B
  211	  08E3    C2 012A                       JNZ     ERROR
  212	  08E6    C9                            RET             ; GOTO
  213	                                ;
  214	                                ;
  215	                                ; END OF FILE COMMAND
  216	                                ;
  217	                                
  218	  08E7    0E 01                 EOF:    MVI     C,1
  219	  08E9    CD 0127                       CALL    EXPR
  220	  08EC    E1                            POP     H       ; START ADR
  221	  08ED    06 01                         MVI     B,1     ; TYP RECORDU
  222	  08EF    AF                            XRA     A       ; PARAM.
  223	  08F0    5F                            MOV     E,A     ; POCET BYTE
  224	  08F1    CD 09D5                       CALL    PBEG
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-4


  225	  08F4    AF                            XRA     A
  226	  08F5    92                            SUB     D       ; MONTROLNI COUCET
  227	  08F6    CD 09F2                       CALL    PBYTE
  228	  08F9    0E 1A                         MVI     C,SUBS  ; CLOSE
  229	  08FB    C3 010C                       JMP     PO
  230	                                ;
  231	                                ;  120*BLANK
  232	                                
  233	  08FE                          NULL:
  234	  08FE    01 7800               LEAD:   LXI     B,7800H
  235	  0901    CD 010C                       CALL    PO
  236	  0904    05                            DCR     B
  237	  0905    C2 0901                       JNZ     LEAD+3
  238	  0908    C9                            RET
  239	                                
  240	                                ;
  241	                                ; READ HEX INTEL FORMAT
  242	                                ;
  243	  0909    0D                    READ@:  DCR     C
  244	  090A    CD 0127                       CALL    EXPR    ;OFFSET
  245	  090D    E1                    RED1:   POP     H
  246	  090E    E5                            PUSH    H
  247	  090F    16 09                 REDC0:  MVI     D,9     ; MAX POCET ZNAKU BEZ ODDELELNI
  248	  0911    CD 0A0B               REDC1:  CALL    MREAD   ; CTI BYTE
  249	  0914    CD 09C9                       CALL    TERM    ; ODDELOVAC ?
  250	  0917    CA 090F                       JZ      REDC0   ; ANO, NASTAV CITAC
  251	  091A    0E 3A                         MVI     C,':'   ; ZACATEK RECORDU ?
  252	  091C    91                            SUB     C
  253	  091D    CA 0927                       JZ      REDC2   ; ANO, CTI HEX DATA
  254	  0920    15                            DCR     D       ; DALSI ZNAK ?
  255	  0921    C2 0911                       JNZ     REDC1   ; ANO
  256	  0924    C3 0953                       JMP     REDER   ; ERROR ':' .. CHYBI ':' NA PASCE
  257	  0927    57                    REDC2:  MOV     D,A     ; NULOVANI KONTR. SOUCTU
  258	  0928    CD 09B2                       CALL    RBYTE   ; DELKA RADKU
  259	  092B    CA 095C                       JZ      RED3    ; KDYZ 0, KONEC
  260	  092E    5F                            MOV     E,A     ; NASTAVENI CITACE
  261	  092F    CD 09B2                       CALL    RBYTE   ; HIGH ADR
  262	  0932    F5                            PUSH    PSW
  263	  0933    CD 09B2                       CALL    RBYTE   ; LOW ADR
  264	  0936    C1                            POP     B
  265	  0937    4F                            MOV     C,A
  266	  0938    09                            DAD     B       ; OFFSET ADRESY
  267	  0939    CD 09B2                       CALL    RBYTE   ; PRIZNAK
  268	  093C    CD 09B2               RED2:   CALL    RBYTE   ; STROJ. KOD
  269	  093F    77                            MOV     M,A
  270	  0940    BE                            CMP     M       ; TEST PAMETI
  271	  0941    0E 4D                         MVI     C,'M'   ; ERROR 'M' .. MEMORY
  272	  0943    C2 0953                       JNZ     REDER
  273	  0946    23                            INX     H
  274	  0947    1D                            DCR     E       ; CITAC BYTE STROJ. KODU
  275	  0948    C2 093C                       JNZ     RED2
  276	  094B    CD 09B2                       CALL    RBYTE   ; KONTR. SOUCET Z PASKY
  277	  094E    CA 090D                       JZ      RED1    ; OK
  278	  0951    0E 53                         MVI     C,'S'   ; ERROR 'S' .. CHECK SUM
  279	  0953    CD 0109               REDER:  CALL    CO      ; TYP CHYBY
  280	  0956    CD 0130                       CALL    DADR
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-5


  281	  0959    C3 0FF8                       JMP     ERSTP
  282	  095C    E5                    RED3:   PUSH    H
  283	  095D    CD 09B2                       CALL    RBYTE   ; HYGH START ADR
  284	  0960    67                            MOV     H,A
  285	  0961    CD 09B2                       CALL    RBYTE   ; LOW START ADR
  286	  0964    6F                            MOV     L,A
  287	  0965    CD 09B2                       CALL    RBYTE   ; CHECK SUN
  288	  0968    CD 09B2                       CALL    RBYTE
  289	  096B    C2 0951                       JNZ     REDER-2 ; ERROR
  290	  096E    D1                            POP     D
  291	  096F    7A                            MOV     A,D
  292	  0970    B3                            ORA     E       ; OFFSET ?
  293	  0971    D1                            POP     D       ; STACK CORECTION
  294	  0972    C0                            RNZ             ; YES, NO START
  295	  0973    7C                            MOV     A,H
  296	  0974    B5                            ORA     L       ; START ADR
  297	  0975    C8                            RZ              ; NO
  298	  0976    E9                            PCHL            ; GOTO
  299	                                ;
  300	                                ; WRITE CONTENTS RAM TO TAPE HEX
  301	                                
  302	  0977    CD 0127               WRITE:  CALL    EXPR
  303	  097A    CD 0124                       CALL    CRLF
  304	  097D    D1                            POP     D
  305	  097E    E1                            POP     H
  306	  097F    7D                    WR1:    MOV     A,L
  307	  0980    C6 10                         ADI     10H
  308	  0982    4F                            MOV     C,A
  309	  0983    7C                            MOV     A,H
  310	  0984    CE 00                         ACI     0
  311	  0986    47                            MOV     B,A
  312	  0987    7B                            MOV     A,E
  313	  0988    91                            SUB     C
  314	  0989    4F                            MOV     C,A
  315	  098A    7A                            MOV     A,D
  316	  098B    98                            SBB     B
  317	  098C    DA 0994                       JC      WR2
  318	  098F    3E 10                         MVI     A,10H   ; >16
  319	  0991    C3 0997                       JMP     WR3
  320	  0994    79                    WR2:    MOV     A,C     ; <16
  321	  0995    C6 11                         ADI     11H
  322	  0997    B7                    WR3:    ORA     A
  323	  0998    C8                            RZ              ; NEXT
  324	  0999    D5                            PUSH    D       ; USCHOVA HIGH ADR
  325	  099A    5F                            MOV     E,A     ; NASTAVENI CITACE
  326	  099B    AF                            XRA     A       ; SET PARAM.
  327	  099C    47                            MOV     B,A     ; TYP
  328	  099D    CD 09D5                       CALL    PBEG
  329	  09A0    7E                    WR4:    MOV     A,M
  330	  09A1    23                            INX     H
  331	  09A2    CD 09F2                       CALL    PBYTE   ; STROJ. KOD
  332	  09A5    1D                            DCR     E
  333	  09A6    C2 09A0                       JNZ     WR4
  334	  09A9    AF                            XRA     A
  335	  09AA    92                            SUB     D
  336	  09AB    CD 09F2                       CALL    PBYTE   ; KONTR. SOUCET
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-6


  337	  09AE    D1                            POP     D
  338	  09AF    C3 097F                       JMP     WR1
  339	                                
  340	                                
  341	                                ; PRECTE 2 ZNAKY, SESTAVI BYTE, TVORI KONTR. SOUCET
  342	                                
  343	  09B2    CD 0A0B               RBYTE:  CALL    MREAD   ; CTE ZNAK S MASKOU 7F
  344	  09B5    CD 012D                       CALL    ASHEX   ; PREVOD ASCII-HEX
  345	  09B8    07                            RLC
  346	  09B9    07                            RLC
  347	  09BA    07                            RLC
  348	  09BB    07                            RLC
  349	  09BC    4F                            MOV     C,A
  350	  09BD    CD 0A0B                       CALL    MREAD
  351	  09C0    CD 012D                       CALL    ASHEX
  352	  09C3    B1                            ORA     C       ; SESTAVI BYTE
  353	  09C4    4F                            MOV     C,A
  354	  09C5    82                            ADD     D       ; KONTROLNI SOUCET
  355	  09C6    57                            MOV     D,A
  356	  09C7    79                            MOV     A,C
  357	  09C8    C9                            RET
  358	                                
  359	                                ; END OF EXPRESSION
  360	                                
  361	  09C9    FE 2C                 TERM:   CPI     ','
  362	  09CB    C8                            RZ
  363	  09CC    FE 09                         CPI     HT
  364	  09CE    C8                            RZ
  365	  09CF    FE 20                         CPI     ' '
  366	  09D1    C8                            RZ
  367	  09D2    FE 0D                         CPI     CR
  368	  09D4    C9                            RET
  369	                                
  370	                                
  371	                                
  372	                                ; PUNCH BEGIN OF RECORT
  373	                                
  374	  09D5    57                    PBEG:   MOV     D,A     ; NULL CHECK SUM
  375	  09D6    0E 0D                         MVI     C,CR
  376	  09D8    CD 010C                       CALL    PO
  377	  09DB    0E 0A                         MVI     C,LF
  378	  09DD    CD 010C                       CALL    PO
  379	  09E0    0E 3A                         MVI     C,':'
  380	  09E2    CD 010C                       CALL    PO
  381	  09E5    7B                            MOV     A,E     ; E .. POCET BYTE
  382	  09E6    CD 09F2                       CALL    PBYTE
  383	  09E9    7C                            MOV     A,H     ; HL .. ADR
  384	  09EA    CD 09F2                       CALL    PBYTE
  385	  09ED    7D                            MOV     A,L
  386	  09EE    CD 09F2                       CALL    PBYTE
  387	  09F1    78                            MOV     A,B     ; TYP
  388	  09F2    F5                    PBYTE:  PUSH    PSW
  389	  09F3    CD 09FF                       CALL    HBYTE
  390	  09F6    F1                            POP     PSW
  391	  09F7    F5                            PUSH    PSW
  392	  09F8    CD 0A03                       CALL    LBYTE
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-7


  393	  09FB    F1                            POP     PSW
  394	  09FC    82                            ADD     D
  395	  09FD    57                            MOV     D,A
  396	  09FE    C9                            RET
  397	                                ;
  398	  09FF    0F                    HBYTE:  RRC
  399	  0A00    0F                            RRC
  400	  0A01    0F                            RRC
  401	  0A02    0F                            RRC
  402	  0A03    E6 0F                 LBYTE:  ANI     0FH
  403	  0A05    CD 0148                       CALL    HXASC
  404	  0A08    C3 010C                       JMP     PO
  405	                                ;
  406	                                
  407	                                ; READ CHARACTER AND MASK, ERROR IF CARRY
  408	                                
  409	  0A0B    CD 0106               MREAD:  CALL    RI
  410	  0A0E    DA 0FF8                       JC      ERSTP   ; #VERS."G"#
  411	  0A11    E6 7F                         ANI     7FH     ; POTLACENI PARITNIHO BITU
  412	  0A13    CA 0A0B                       JZ      MREAD   ; #VERS."H"# BLANK?
  413	  0A16    C9                            RET
  414	                                ;
  415	                                ;
  416	                                ;  USER COMMAND LEVEL
  417	                                ;
  418	  0A17    CD 0F35               MICOS:  CALL    STOP
  419	  0A1A    0E 5F                         MVI     C,'_'
  420	  0A1C    CD 0109                       CALL    CO
  421	  0A1F    CD 0CA6                       CALL    ECHOCR
  422	  0A22    FE 42                         CPI     'B'
  423	  0A24    CA 0FAB                       JZ      BB      ;MICRO-BASIC CODE
  424	  0A27    FE 41                         CPI     'A'
  425	  0A29    CA 0A69                       JZ      APPEND
  426	  0A2C    FE 44                         CPI     'D'
  427	  0A2E    CA 0A73                       JZ      DIR     ;DIRECTORY
  428	  0A31    FE 49                         CPI     'I'
  429	  0A33    CA 0B97                       JZ      INIT    ; INIT NEW TAPE
  430	  0A36    FE 4F                         CPI     'O'
  431	  0A38    CA 0A98                       JZ      OPEN    ;OPEN OUTPUT
  432	  0A3B    FE 43                         CPI     'C'
  433	  0A3D    CA 0B10                       JZ      CLOSE   ;CLOSE OUTPUT
  434	  0A40    FE 46                         CPI     'F'
  435	  0A42    CA 0AF7                       JZ      FIND    ;FIND INPUT
  436	  0A45    FE 53                         CPI     'S'
  437	  0A47    CA 0E13                       JZ      SAVE    ;SAVE
  438	  0A4A    FE 4C                         CPI     'L'
  439	  0A4C    CA 0DAA                       JZ      LOAD    ;LOAD
  440	  0A4F    FE 4D                         CPI     'M'     ;MONITOR
  441	  0A51    C0                            RNZ             ; NO FIND
  442	                                ;-------------------------------
  443	                                ; MOTION
  444	  0A52    CD 0A5B               MOTA:   CALL    START   ;MOTA PASKY
  445	  0A55    CD 0C9D                       CALL    DONE
  446	  0A58    C3 0F35                       JMP     STOP
  447	                                ;
  448	  0A5B    3E 38                 START:  MVI     A,38H
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-8


  449	  0A5D    D3 10                 GAPO:   OUT     UMODE
  450	  0A5F    3E 1F                         MVI     A,1FH
  451	  0A61    D3 11                         OUT     USTAT   ; CLEAR
  452	  0A63    C9                            RET
  453	                                ;
  454	                                ;
  455	  0A64    3E 30                 STARW:  MVI     A,30H
  456	  0A66    C3 0A5D                       JMP     GAPO    ; START WRITE
  457	                                ;
  458	                                ;  APPEND NEW FILE ON TAPE
  459	                                ;
  460	  0A69    32 40B4               APPEND: STA     JOIN    ; NO INPUT
  461	  0A6C    2A 40C0                       LHLD    BNO     ; SET FILE NUMBER
  462	  0A6F    EB                            XCHG
  463	  0A70    C3 0ADB                       JMP     OPE50
  464	                                
  465	                                ;---------------------------------
  466	                                ;DIRECTORY CASSETE
  467	  0A73    AF                    DIR:    XRA     A       ; INPUT BUFFER
  468	  0A74    32 40B4                       STA     JOIN
  469	  0A77    CD 0C83                       CALL    PLAY
  470	  0A7A    CD 0CAF               DIR0:   CALL    SEARCH  ; HEADER
  471	  0A7D    CC 0C23                       CZ      PHDR    ; PRINT NAME
  472	  0A80    FE 04                         CPI     EOT@
  473	  0A82    C2 0A7A                       JNZ     DIR0
  474	  0A85    CD 0124                       CALL    CRLF    ; PRINT:
  475	  0A88    7A                            MOV     A,D
  476	  0A89    CD 0133                       CALL    DBYT    ; FILE NUMBER
  477	  0A8C    0E 2D                         MVI     C,'-'
  478	  0A8E    CD 0109                       CALL    CO
  479	  0A91    7B                            MOV     A,E
  480	  0A92    CD 0133                       CALL    DBYT    ; BLOCK NUMBER
  481	  0A95    C3 0A7A                       JMP     DIR0
  482	                                
  483	                                ;----------------------------------
  484	                                ;OPEN OUTPUT FILE
  485	  0A98    CD 0C2C               OPEN:   CALL    PTP?
  486	  0A9B    3A 40E6                       LDA     @OF1    ;DOUBLE ?
  487	  0A9E    B7                            ORA     A
  488	  0A9F    C2 012A                       JNZ     ERROR
  489	  0AA2    CD 0C41                       CALL    TXIMM
  490	  0AA5    0D 0A                         DB      CR,LF
  491	  0AA7    4C 41 53 54                   DB      'LAST'
  492	  0AAB    A0                            DB      ' ' OR 80H
  493	  0AAC    3E FF                         MVI     A,-1    ;FLAG
  494	  0AAE    CD 0B31                       CALL    FINO
  495	  0AB1    C2 0AC8                       JNZ     OPE1
  496	  0AB4    CD 0CAF               OPE01:  CALL    SEARCH  ;EOT ?
  497	  0AB7    CA 0AC5                       JZ      OPE20   ;SOH
  498	  0ABA    FE 04                         CPI     EOT@
  499	  0ABC    C2 0AB4                       JNZ     OPE01   ;NEXT BLOCK
  500	  0ABF    CD 0B85               OPE30:  CALL    OK?
  501	  0AC2    CA 0ADB                       JZ      OPE50   ;OPEN NOW
  502	  0AC5    CD 0B4B               OPE20:  CALL    CMPNM + 3       ; OK ?
  503	  0AC8    C4 0B48               OPE1:   CNZ     CMPNM
  504	  0ACB    3A 40F0                       LDA     BOUT-1
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-9


  505	  0ACE    FE 3A                         CPI     CAN     ;VOLUME
  506	  0AD0    CA 0ADB                       JZ      OPE50   ;IMMED. OPEN
  507	  0AD3    CD 0CAF                       CALL    SEARCH
  508	  0AD6    FE 04                         CPI     EOT@
  509	  0AD8    C2 0AD3                       JNZ     $ - 5
  510	  0ADB    7A                    OPE50:  MOV     A,D
  511	  0ADC    3C                            INR     A       ;INCREM.FILE NUMBER
  512	  0ADD    67                            MOV     H,A
  513	  0ADE    2E 00                         MVI     L,0
  514	  0AE0    22 40C0                       SHLD    BNO     ;FILE&BLOCK NUMBER
  515	  0AE3    CD 0C91                       CALL    RECOR
  516	  0AE6    CD 0C41                       CALL    TXIMM
  517	  0AE9    0D 0A                         DB      CR,LF
  518	  0AEB    4E 45 57 A0                   DB      'NEW',' ' OR 80H
  519	  0AEF    3E 01                         MVI     A,SOH
  520	  0AF1    32 40E6                       STA     @OF1
  521	  0AF4    C3 0BBA                       JMP     WRNAM
  522	                                ;
  523	                                
  524	                                ;----------------------------------------
  525	                                ;  FIND INPUT FILE AND OPEN FOR READ
  526	  0AF7    CD 0C33               FIND:   CALL    PTR?
  527	  0AFA    AF                            XRA     A       ; FIND ONPUT FILE
  528	  0AFB    CD 0B31                       CALL    FINO
  529	  0AFE    CD 0B48                       CALL    CMPNM
  530	  0B01    1E 01                         MVI     E,1
  531	  0B03    EB                            XCHG
  532	  0B04    22 40C2                       SHLD    BNI     ;NUMBER FILE
  533	  0B07    EB                            XCHG
  534	  0B08    3E 01                         MVI     A,SOH
  535	  0B0A    32 40E4                       STA     @IF1
  536	  0B0D    C3 0CCC                       JMP     RIB
  537	                                ;---------------------------
  538	                                ;CLOSE OUTPUT FILE
  539	  0B10    CD 0C2C               CLOSE:  CALL    PTP?
  540	  0B13    3A 40E6                       LDA     @OF1    ;NO OPEN
  541	  0B16    B7                            ORA     A
  542	  0B17    CA 012A                       JZ      ERROR
  543	  0B1A    3E 04                         MVI     A,EOT@  ;CLOSE BLOK
  544	  0B1C    32 40F0                       STA     BOUT-1
  545	  0B1F    CD 0D28                       CALL    WOB
  546	  0B22    AF                            XRA     A
  547	  0B23    32 40E6                       STA     @OF1    ;CLOSE
  548	  0B26    CD 0A64                       CALL    STARW   ;GAP 2*
  549	  0B29    3E 50                         MVI     A,80    ; BOOMS
  550	  0B2B    CD 0F9B                       CALL    TIME
  551	  0B2E    C3 0F35                       JMP     STOP
  552	                                ;---------------------
  553	  0B31    32 40B4               FINO:   STA     JOIN    ;I/O FLAG
  554	  0B34    CD 0C51                       CALL    TXNAM
  555	  0B37    21 40B5                       LXI     H,FNAME
  556	  0B3A    E5                            PUSH    H
  557	  0B3B    06 0B                         MVI     B,NAMLE
  558	  0B3D    CD 0BEA                       CALL    RNAME   ;READ
  559	  0B40    CD 0C83                       CALL    PLAY
  560	  0B43    E1                            POP     H
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-10


  561	  0B44    7E                            MOV     A,M
  562	  0B45    FE 2A                         CPI     '*'     ;WILDCARDS ?
  563	  0B47    C9                            RET
  564	                                
  565	  0B48    CD 0CAF               CMPNM:  CALL    SEARCH  ;COMPARE NAME
  566	  0B4B    C2 0B48                       JNZ     CMPNM   ;NO HDR
  567	  0B4E    01 40B5                       LXI     B,FNAME
  568	  0B51    1E 0B                         MVI     E,NAMLE
  569	  0B53    23                            INX     H       ;NAME
  570	  0B54    0A                    CMPN0:  LDAX    B
  571	  0B55    FE 2A                         CPI     '*'
  572	  0B57    CA 0B68                       JZ      CMPN1
  573	  0B5A    CD 09C9                       CALL    TERM    ;END OF NAME
  574	  0B5D    C8                            RZ
  575	  0B5E    BE                            CMP     M
  576	  0B5F    C2 0B48                       JNZ     CMPNM
  577	  0B62    03                            INX     B
  578	  0B63    1D                            DCR     E
  579	  0B64    C2 0B53                       JNZ     CMPN0 - 1
  580	  0B67    C9                            RET             ;O.K
  581	                                ;
  582	  0B68    D5                    CMPN1:  PUSH    D
  583	  0B69    CD 0CC0                       CALL    BUADR
  584	  0B6C    E5                            PUSH    H
  585	  0B6D    CD 0C23                       CALL    PHDR
  586	  0B70    E1                            POP     H
  587	  0B71    D1                            POP     D
  588	  0B72    7C                            MOV     A,H     ; CTENI NEBO ZAPIS
  589	  0B73    FE 41                         CPI     (BIN-1) SHR 8
  590	  0B75    C2 0B7E                       JNZ     CMPN2
  591	  0B78    7E                            MOV     A,M
  592	  0B79    FE 3A                         CPI     CAN     ; ':'... VOLUME BLOK
  593	  0B7B    CA 0B48                       JZ      CMPNM
  594	  0B7E    CD 0B85               CMPN2:  CALL    OK?
  595	  0B81    C2 0B48                       JNZ     CMPNM
  596	  0B84    C9                            RET
  597	                                ;
  598	  0B85    CD 0C41               OK?:    CALL    TXIMM
  599	  0B88    07                            DB      7
  600	  0B89    2D 2D 28 59                   DB      '--(Y/N)','?' OR 80H
  601	  0B8D    2F 4E 29 BF           
  602	  0B91    CD 0C76                       CALL    ECHO
  603	  0B94    FE 59                         CPI     'Y'
  604	  0B96    C9                            RET
  605	                                ;--------------------
  606	                                ;INIT NEW CASSETTE
  607	  0B97    CD 0A5B               INIT:   CALL    START
  608	  0B9A    CD 0C41                       CALL    TXIMM
  609	  0B9D    42 4F 54                      DB      'BOT'
  610	  0BA0    A0                            DB      ' ' OR 80H
  611	  0BA1    CD 0C91                       CALL    RECOR
  612	  0BA4    CD 0F35                       CALL    STOP
  613	  0BA7    CD 0C41                       CALL    TXIMM
  614	  0BAA    20 56 4F 4C                   DB      ' VOLUME'
  615	  0BAE    55 4D 45              
  616	  0BB1    A0                            DB      ' ' OR 80H
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-11


  617	  0BB2    21 0000                       LXI     H,0     ;0..FILE NUMBER
  618	  0BB5    22 40C0                       SHLD    BNO
  619	  0BB8    3E 3A                         MVI     A,CAN
  620	                                
  621	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  622	                                ;  FILE NAME LEVEL
  623	  0BBA    F5                    WRNAM:  PUSH    PSW     ;HDR-LABEL
  624	  0BBB    CD 0C51                       CALL    TXNAM
  625	  0BBE    CD 0C5D                       CALL    NULBF
  626	  0BC1    CD 0F35                       CALL    STOP
  627	  0BC4    F1                            POP     PSW
  628	  0BC5    77                            MOV     M,A
  629	  0BC6    23                            INX     H
  630	  0BC7    06 40                         MVI     B,COMLE ;NAME+COMMENT
  631	  0BC9    E5                            PUSH    H
  632	  0BCA    CD 0BEA                       CALL    RNAME
  633	  0BCD    E1                            POP     H
  634	  0BCE    06 0B                         MVI     B,NAMLE
  635	  0BD0    11 42F0                       LXI     D,WRNM  ;OUTPUT AREA
  636	  0BD3    7E                    WRN1:   MOV     A,M
  637	  0BD4    E6 3F                         ANI     3FH
  638	  0BD6    C2 0BDB                       JNZ     $+5
  639	  0BD9    3E 20                         MVI     A,' '   ;BLANK
  640	  0BDB    12                            STAX    D
  641	  0BDC    23                            INX     H
  642	  0BDD    13                            INX     D
  643	  0BDE    05                            DCR     B
  644	  0BDF    C2 0BD3                       JNZ     WRN1
  645	  0BE2    CD 0D28                       CALL    WOB
  646	  0BE5    36 41                         MVI     M,'A'   ;DATA TYP
  647	  0BE7    C3 0124                       JMP     CRLF
  648	                                ; READ NAME <HL>..ADR,<B>..DELKA
  649	                                ;-----------------------------------
  650	  0BEA    5D                    RNAME:  MOV     E,L     ;LOW-FIRST ADR
  651	  0BEB    36 20                 RNAM1:  MVI     M,' '
  652	  0BED    CD 0103                       CALL    CI
  653	  0BF0    E6 7F                         ANI     7FH
  654	  0BF2    FE 03                         CPI     ETX
  655	  0BF4    CA 0A17                       JZ      MICOS
  656	  0BF7    FE 0D                         CPI     CR
  657	  0BF9    CA 0124                       JZ      CRLF
  658	  0BFC    FE 7F                         CPI     DEL
  659	  0BFE    CA 0C06                       JZ      RNAM10
  660	  0C01    FE 08                         CPI     08H     ;BS
  661	  0C03    C2 0C16                       JNZ     RNAM2
  662	  0C06    7B                    RNAM10: MOV     A,E
  663	  0C07    BD                            CMP     L       ;FIRST
  664	  0C08    CA 0BEB                       JZ      RNAM1
  665	  0C0B    2B                            DCX     H
  666	  0C0C    04                            INR     B
  667	  0C0D    CD 0C41                       CALL    TXIMM   ;DELETE
  668	  0C10    08 20 88                      DB      08,20H,88H
  669	  0C13    C3 0BEB                       JMP     RNAM1
  670	  0C16    77                    RNAM2:  MOV     M,A
  671	  0C17    23                            INX     H
  672	  0C18    4F                            MOV     C,A
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-12


  673	  0C19    CD 0109                       CALL    CO
  674	  0C1C    05                            DCR     B
  675	  0C1D    C2 0BEB                       JNZ     RNAM1
  676	  0C20    C3 0124                       JMP     CRLF
  677	                                ;
  678	                                ;PRINT HEADER OF FILE
  679	                                ;--------------------
  680	  0C23    CD 0124               PHDR:   CALL    CRLF
  681	  0C26    23                            INX     H
  682	  0C27    16 40                         MVI     D,COMLE
  683	  0C29    C3 0142                       JMP     TEXT
  684	                                
  685	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  686	                                ;  POMOCNE PROGRAMY
  687	                                ;
  688	                                ; CT OR PUNCHER ?
  689	  0C2C    E5                    PTP?:   PUSH    H
  690	  0C2D    21 3020                       LXI     H,3020H
  691	  0C30    C3 0C37                       JMP     $+7
  692	                                ;
  693	                                ; CT OR READER ?
  694	  0C33    E5                    PTR?:   PUSH    H
  695	  0C34    21 0C08                       LXI     H,0C08H
  696	  0C37    CD 0115                       CALL    IOCHK
  697	  0C3A    A4                            ANA     H
  698	  0C3B    BD                            CMP     L
  699	  0C3C    E1                            POP     H
  700	  0C3D    C8                            RZ              ; YES .. CT
  701	  0C3E    33                            INX     SP
  702	  0C3F    33                            INX     SP      ; NESTING
  703	  0C40    C9                            RET             ; NO FINO
  704	                                ;TEXTY PRO OBSLUHU
  705	                                ;-----------------
  706	  0C41    E3                    TXIMM:  XTHL
  707	  0C42    7E                            MOV     A,M
  708	  0C43    E6 7F                         ANI     7FH
  709	  0C45    4F                            MOV     C,A
  710	  0C46    CD 0109                       CALL    CO
  711	  0C49    7E                            MOV     A,M
  712	  0C4A    07                            RLC
  713	  0C4B    23                            INX     H
  714	  0C4C    D2 0C42                       JNC     TXIMM+1
  715	  0C4F    E3                            XTHL
  716	  0C50    C9                            RET
  717	                                ;
  718	  0C51    CD 0C41               TXNAM:  CALL    TXIMM
  719	  0C54    20 4E 41 4D                   DB      ' NAME'
  720	  0C58    45                    
  721	  0C59    0D 0A                         DB      CR,LF
  722	  0C5B    BA                            DB      ':' OR 80H
  723	  0C5C    C9                            RET
  724	                                
  725	                                ;
  726	                                ;NULL OUTPUT BUFFER
  727	                                ;------------------
  728	  0C5D    21 40F0               NULBF:  LXI     H,BOUT-1
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-13


  729	  0C60    E5                            PUSH    H
  730	  0C61    3E FF                         MVI     A,LENGHT
  731	  0C63    23                            INX     H
  732	  0C64    36 00                         MVI     M,0
  733	  0C66    3D                            DCR     A
  734	  0C67    C2 0C63                       JNZ     $-4
  735	  0C6A    E1                            POP     H       ;(BLOCK TYP) ADRM
  736	  0C6B    C9                            RET
  737	                                
  738	  0C6C    CD 0112               BREAK:  CALL    CSTS
  739	  0C6F    C8                            RZ
  740	  0C70    CD 0103                       CALL    CI
  741	  0C73    C3 0C7A                       JMP     ETX?
  742	                                
  743	                                ;CTI A VYPIS ZNAK
  744	  0C76    CD 013F               ECHO:   CALL    CINCR
  745	  0C79    C8                            RZ
  746	  0C7A    FE 03                 ETX?:   CPI     ETX
  747	  0C7C    C0                            RNZ
  748	  0C7D    CD 0DEC                       CALL    CLSTP   ;CLOSE & STOP
  749	  0C80    C3 0139                       JMP     NEXT    ;BREAK=>C
  750	                                
  751	                                ;DISPLAY "PLAY"
  752	  0C83    CD 0C41               PLAY:   CALL    TXIMM
  753	  0C86    50 4C 41 59                   DB      'PLAY'
  754	  0C8A    A0                            DB      ' ' OR 80H
  755	  0C8B    CD 0C9D               RECO:   CALL    DONE
  756	  0C8E    C3 0A5B                       JMP     START
  757	                                
  758	                                ;DISPLAY "RECORD"
  759	  0C91    CD 0C41               RECOR:  CALL    TXIMM
  760	  0C94    0D 0A                         DB      CR,LF
  761	  0C96    52 45 43 4F                   DB      'RECORD'
  762	  0C9A    52 44                 
  763	  0C9C    A0                            DB      ' ' OR 80H
  764	                                ;
  765	  0C9D    CD 0C41               DONE:   CALL    TXIMM
  766	  0CA0    20 44 4F 4E                   DB      ' DONE','?' OR 80H
  767	  0CA4    45 BF                 
  768	  0CA6    CD 0C76               ECHOCR: CALL    ECHO
  769	  0CA9    F5                            PUSH    PSW
  770	  0CAA    CD 0124                       CALL    CRLF
  771	  0CAD    F1                            POP     PSW
  772	  0CAE    C9                            RET
  773	                                
  774	                                
  775	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  776	                                ;  FILE OPERATIONS LEVEL
  777	                                ;
  778	                                ;SERACH BLOCK IN TAPE
  779	                                ;--------------------
  780	  0CAF    CD 0CC0               SEARCH: CALL    BUADR
  781	  0CB2    0E 23                 SEAR1:  MVI     C,'#'   ;ERROR
  782	  0CB4    DC 0109                       CC      CO
  783	  0CB7    CD 0E7D                       CALL    READF
  784	  0CBA    DA 0CB2                       JC      SEAR1   ; SERACH ERROR
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-14


  785	  0CBD    C3 0CE6                       JMP     RIB2
  786	                                ;
  787	                                ; BUFFER ADR
  788	  0CC0    3A 40B4               BUADR:  LDA     JOIN    ;INPUT OR OUTPUT ?
  789	  0CC3    B7                            ORA     A
  790	  0CC4    21 40F0                       LXI     H,BOUT-1
  791	  0CC7    C0                            RNZ             ;OUTPUT
  792	  0CC8    21 41F0                       LXI     H,BIN-1
  793	  0CCB    C9                            RET
  794	                                ;
  795	                                
  796	                                ; READ INPUT BUFFER
  797	                                ;--------------------
  798	  0CCC    D5                    RIB:    PUSH    D
  799	  0CCD    C5                            PUSH    B
  800	  0CCE    2A 40C2                       LHLD    BNI
  801	  0CD1    23                            INX     H
  802	  0CD2    22 40C2                       SHLD    BNI
  803	  0CD5    21 41F0                       LXI     H,BIN-1
  804	  0CD8    CD 0E81                       CALL    READ
  805	  0CDB    DA 0CED                       JC      ERRD    ;ERROR
  806	  0CDE    CD 0D39                       CALL    NUFIL   ; NUMBER O.K. ?
  807	  0CE1    C2 0CED                       JNZ     ERRD    ; BLOCK ERROR
  808	  0CE4    C1                    RIB1:   POP     B
  809	  0CE5    D1                            POP     D
  810	  0CE6    7E                    RIB2:   MOV     A,M     ;BLOCK  TYP
  811	  0CE7    FE 3A                         CPI     CAN     ;VOLUME NAME
  812	  0CE9    C8                            RZ
  813	  0CEA    FE 01                         CPI     SOH     ;FILE NAME
  814	  0CEC    C9                            RET             ;(HL)..BLOCK TYP
  815	                                ;ERROR READ
  816	  0CED    CD 0F35               ERRD:   CALL    STOP    ;# VERS."E"#
  817	  0CF0    CD 0C41                       CALL    TXIMM
  818	  0CF3    20 45 52 52                   DB      ' ERROR/N'
  819	  0CF7    4F 52 2F 4E           
  820	  0CFB    BF                            DB      '?' OR 80H
  821	  0CFC    CD 0C76                       CALL    ECHO    ;CONTINUE
  822	  0CFF    FE 4E                         CPI     'N'
  823	  0D01    CA 0D1F                       JZ      ERRD1
  824	  0D04    CD 0C41                       CALL    TXIMM
  825	  0D07    20 42 41 43                   DB      ' BACK'
  826	  0D0B    4B                    
  827	  0D0C    A0                            DB      ' ' OR 80H
  828	  0D0D    CD 0C83                       CALL    PLAY
  829	  0D10    21 41F0               ERRD0:  LXI     H,BIN-1 ;INPUT BUFFER
  830	  0D13    CD 0E7D                       CALL    READF
  831	  0D16    DA 0CED                       JC      ERRD    ;NEXT ERROR
  832	  0D19    CD 0D39                       CALL    NUFIL
  833	  0D1C    C2 0D10                       JNZ     ERRD0   ;NEXT BLOCK
  834	  0D1F    CD 0124               ERRD1:  CALL    CRLF
  835	  0D22    21 41F0                       LXI     H,BIN-1
  836	  0D25    C3 0CE4                       JMP     RIB1
  837	                                
  838	                                ;WRITE OUTPUT BUFFER
  839	  0D28    D5                    WOB:    PUSH    D
  840	  0D29    2A 40C0                       LHLD    BNO
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-15


  841	  0D2C    23                            INX     H
  842	  0D2D    22 40C0                       SHLD    BNO
  843	  0D30    EB                            XCHG
  844	  0D31    21 40F0                       LXI     H,BOUT-1
  845	  0D34    CD 0EE9                       CALL    WRBLO
  846	  0D37    D1                            POP     D
  847	  0D38    C9                            RET
  848	                                ;
  849	                                ; NUMBER FILE O.K. ?
  850	                                ;
  851	  0D39    3A 40C2               NUFIL:  LDA     BNI
  852	  0D3C    BB                            CMP     E
  853	  0D3D    C0                            RNZ             ;NO
  854	  0D3E    3A 40C3                       LDA     BNI+1
  855	  0D41    BA                            CMP     D
  856	  0D42    C9                            RET
  857	                                ;
  858	                                ;GET BYTE FROM CASSETTE
  859	                                ;----------------------
  860	  0D43    C5                    GET@:   PUSH    B
  861	  0D44    D5                            PUSH    D
  862	  0D45    E5                            PUSH    H
  863	  0D46    3A 40E4                       LDA     @IF1    ;WAS OPEN ?
  864	  0D49    B7                            ORA     A
  865	  0D4A    CC 0AF7                       CZ      FIND    ;NO THEN FIND
  866	  0D4D    2A 40C6                       LHLD    ADRI
  867	  0D50    23                    GET0:   INX     H
  868	  0D51    7D                            MOV     A,L     ;WAS EMPTY
  869	  0D52    FE F0                         CPI     BIEND AND 0FFH
  870	  0D54    7E                            MOV     A,M
  871	  0D55    22 40C6                       SHLD    ADRI
  872	  0D58    CA 0D5F                       JZ      GET1    ;<A>..BYTE
  873	  0D5B    B7                            ORA     A       ;NCY
  874	  0D5C    C3 0D70                       JMP     GETEX
  875	  0D5F    3A 41F0               GET1:   LDA     BIN-1
  876	  0D62    FE 04                         CPI     EOT@    ; "CLOSE" BLOK?
  877	  0D64    CA 0D6D                       JZ      GET2
  878	  0D67    CD 0CCC                       CALL    RIB
  879	  0D6A    C2 0D50                       JNZ     GET0    ;END OF FILE
  880	  0D6D    3E 1A                 GET2:   MVI     A,SUBS
  881	  0D6F    37                            STC
  882	  0D70    E1                    GETEX:  POP     H
  883	  0D71    D1                            POP     D
  884	  0D72    C1                            POP     B
  885	  0D73    C9                            RET
  886	                                ;
  887	                                ;PUT BYTE TO CASSETTE
  888	  0D74    C5                    PUT@:   PUSH    B
  889	  0D75    D5                            PUSH    D
  890	  0D76    E5                            PUSH    H
  891	  0D77    3A 40E6                       LDA     @OF1    ; WAS OPEN
  892	  0D7A    B7                            ORA     A
  893	  0D7B    C5                            PUSH    B
  894	  0D7C    CC 0A98                       CZ      OPEN    ;IF NO THEN DO
  895	  0D7F    C1                            POP     B
  896	  0D80    2A 40C4                       LHLD    ADRO
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-16


  897	  0D83    23                            INX     H
  898	  0D84    71                            MOV     M,C     ;SAVE
  899	  0D85    22 40C4                       SHLD    ADRO
  900	  0D88    7D                            MOV     A,L
  901	  0D89    FE EF                         CPI     (BOEND AND 0FFH) - 1
  902	  0D8B    CC 0D28                       CZ      WOB     ;NEXT
  903	  0D8E    3A 40F0                       LDA     BOUT-1
  904	  0D91    FE 42                         CPI     'B'     ;BINAR DUMP?
  905	  0D93    CA 0DA4                       JZ      PUTEX
  906	  0D96    3A 40E3                       LDA     MODE
  907	  0D99    E6 02                         ANI     2       ;BIN.FILE?
  908	  0D9B    C2 0DA4                       JNZ     PUTEX
  909	  0D9E    79                            MOV     A,C     ;CLOSE CHAR.?
  910	  0D9F    FE 1A                         CPI     SUBS
  911	  0DA1    CC 0B10                       CZ      CLOSE
  912	  0DA4    E1                    PUTEX:  POP     H
  913	  0DA5    D1                            POP     D
  914	  0DA6    C1                            POP     B
  915	  0DA7    79                            MOV     A,C
  916	  0DA8    B7                            ORA     A       ;NCY
  917	  0DA9    C9                            RET
  918	                                
  919	                                ;
  920	                                ;
  921	                                ; LOAD BINARY DATA FROM TAPE TO MEMORY
  922	                                ;
  923	  0DAA    CD 0AF7               LOAD:   CALL    FIND    ;OPEN FILE
  924	  0DAD    3E 42                         MVI     A,'B'   ;BINAR
  925	  0DAF    32 41F0                       STA     BIN-1
  926	  0DB2    CD 0A5B                       CALL    START
  927	  0DB5    CD 0E08               LO1:    CALL    RICH
  928	  0DB8    B7                            ORA     A       ; BLANK?
  929	  0DB9    CA 0DB5                       JZ      LO1
  930	  0DBC    D6 3C                         SUI     '<'
  931	  0DBE    C2 0FF8                       JNZ     ERSTP   ;#NOT BINARY FORMAT
  932	  0DC1    47                            MOV     B,A     ;SUM
  933	  0DC2    CD 0DFF                       CALL    RADR@
  934	  0DC5    22 40B1                       SHLD    EADR    ;LAST
  935	  0DC8    EB                            XCHG
  936	  0DC9    CD 0DFF                       CALL    RADR@   ;LAST
  937	  0DCC    22 40AF                       SHLD    SADR    ; START ADR
  938	  0DCF    CD 0E08                       CALL    RICH
  939	  0DD2    FE 3E                         CPI     '>'
  940	  0DD4    C2 0FF8                       JNZ     ERSTP   ;#NOT BINARY
  941	  0DD7    CD 0DF6                       CALL    CHECK
  942	  0DDA    06 00                         MVI     B,0     ;CLEAR
  943	  0DDC    CD 0E08               LO2:    CALL    RICH
  944	  0DDF    77                            MOV     M,A
  945	  0DE0    CD 0136                       CALL    HILO
  946	  0DE3    D2 0DDC                       JNC     LO2
  947	  0DE6    CD 0DF6                       CALL    CHECK
  948	  0DE9    32 40B3                       STA     SUM
  949	  0DEC    AF                    CLSTP:  XRA     A
  950	  0DED    32 40E4                       STA     @IF1    ;SLOSE
  951	  0DF0    CD 0F35                       CALL    STOP
  952	  0DF3    C3 0124                       JMP     CRLF    ;OK
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-17


  953	                                
  954	                                ; CHECK SUM ?
  955	  0DF6    48                    CHECK:  MOV     C,B
  956	  0DF7    CD 0E08                       CALL    RICH
  957	  0DFA    B9                            CMP     C
  958	  0DFB    C2 0FF8                       JNZ     ERSTP
  959	  0DFE    C9                            RET
  960	                                ;
  961	  0DFF    CD 0E08               RADR@:  CALL    RICH
  962	  0E02    6F                            MOV     L,A
  963	  0E03    CD 0E08                       CALL    RICH    ;HL
  964	  0E06    67                            MOV     H,A
  965	  0E07    C9                            RET
  966	                                ;
  967	  0E08    CD 0106               RICH:   CALL    RI      ;READ & SUM
  968	  0E0B    DA 0FF8                       JC      ERSTP
  969	  0E0E    F5                            PUSH    PSW
  970	  0E0F    80                            ADD     B
  971	  0E10    47                            MOV     B,A
  972	  0E11    F1                            POP     PSW
  973	  0E12    C9                            RET
  974	                                ;
  975	                                ; SAVE BINARY DATA TO TAPE
  976	                                ;
  977	  0E13    0E 02                 SAVE:   MVI     C,2
  978	  0E15    CD 0127                       CALL    EXPR    ;FROM TO
  979	  0E18    3A 40E6                       LDA     @OF1
  980	  0E1B    B7                            ORA     A
  981	  0E1C    CC 0A98                       CZ      OPEN
  982	  0E1F    3E 42                         MVI     A,'B'   ;BINAR
  983	  0E21    32 40F0                       STA     BOUT-1
  984	  0E24    CD 0A64                       CALL    STARW
  985	  0E27    3E 50                         MVI     A,80    ; 800MS
  986	  0E29    CD 0F9B                       CALL    TIME
  987	  0E2C    0E 3C                         MVI     C,'<'   ;START BYTE
  988	  0E2E    CD 0E62                       CALL    POCH
  989	  0E31    06 00                         MVI     B,0     ;ADR-SUM
  990	  0E33    E1                            POP     H       ;START
  991	  0E34    D1                            POP     D       ;LAST
  992	  0E35    CD 0E5D                       CALL    PADR@
  993	  0E38    EB                            XCHG
  994	  0E39    CD 0E5D                       CALL    PADR@
  995	  0E3C    0E 3E                         MVI     C,'>'
  996	  0E3E    CD 0E62                       CALL    POCH
  997	  0E41    48                            MOV     C,B     ;SUM OF ADR.
  998	  0E42    CD 0E62                       CALL    POCH
  999	                                ;
 1000	  0E45    06 00                         MVI     B,0     ;DATA-SUM
 1001	  0E47    4E                    SAV1:   MOV     C,M
 1002	  0E48    CD 0E62                       CALL    POCH
 1003	  0E4B    CD 0136                       CALL    HILO
 1004	  0E4E    D2 0E47                       JNC     SAV1
 1005	  0E51    48                            MOV     C,B     ;SUM
 1006	  0E52    CD 0E62                       CALL    POCH
 1007	  0E55    0E 1A                         MVI     C,SUBS
 1008	  0E57    CD 0E62                       CALL    POCH    ;END MARK
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-18


 1009	  0E5A    C3 0B10                       JMP     CLOSE
 1010	                                ;
 1011	  0E5D    4D                    PADR@:  MOV     C,L
 1012	  0E5E    CD 0E62                       CALL    POCH
 1013	  0E61    4C                            MOV     C,H
 1014	                                ;
 1015	  0E62    79                    POCH:   MOV     A,C     ;PUNCHER AND SUM
 1016	  0E63    80                            ADD     B
 1017	  0E64    47                            MOV     B,A
 1018	  0E65    C3 010C                       JMP     PO
 1019	                                
 1020	                                ;
 1021	                                
 1022	  0E68    DB 12                 SINC:   IN      UDATA
 1023	  0E6A    3E 01                 SINC1:  MVI     A,1     ; 10 MS
 1024	  0E6C    CD 0F9B                       CALL    TIME
 1025	  0E6F    CD 0C6C                       CALL    BREAK
 1026	  0E72    DB 11                         IN      USTAT
 1027	  0E74    07                            RLC
 1028	  0E75    DA 0E68                       JC      SINC    ;WAIT IF READY
 1029	  0E78    0D                            DCR     C
 1030	  0E79    C2 0E6A                       JNZ     SINC1
 1031	  0E7C    C9                            RET
 1032	                                ;
 1033	                                ; READ BLOCK (HL-BUF.ADR)
 1034	                                ; OUT (DE-BLOCK &FILE COUNTER; CY=1 ERROR)
 1035	                                ;
 1036	  0E7D    AF                    READF:  XRA     A       ;FIND MODE SET
 1037	  0E7E    32 40CA                       STA     FND
 1038	  0E81                          READ:
 1039	  0E81    C5                    RBLOK:  PUSH    B
 1040	  0E82    E5                            PUSH    H
 1041	  0E83    CD 0A5B                       CALL    START   ;MOTION
 1042	  0E86    0E 01                 RBLG:   MVI     C,1     ; WAIT 10MS NOT READY
 1043	  0E88    CD 0E68                       CALL    SINC    ; START BLOCK
 1044	  0E8B    0E 03                 RBL2:   MVI     C,3     ; 3*PREAMBLE
 1045	  0E8D    CD 0F80               RBL3:   CALL    SERIN
 1046	  0E90    FE 10                         CPI     PREAM
 1047	  0E92    C2 0E86                       JNZ     RBLG    ; GAP
 1048	  0E95    0D                            DCR     C
 1049	  0E96    C2 0E8D                       JNZ     RBL3
 1050	  0E99    3E 3A                         MVI     A,':'
 1051	  0E9B    32 3800                       STA     TVBEG
 1052	  0E9E    01 0000                       LXI     B,(LENGHT+1) AND 0FFH   ;B=0,C=LENGHT
 1053	  0EA1    CD 0F76                       CALL    SERIM   ;READ DATA
 1054	  0EA4    0E 2A                         MVI     C,'*'
 1055	  0EA6    3A 40CA                       LDA     FND     ;FIND MODE?
 1056	  0EA9    B7                            ORA     A
 1057	  0EAA    C2 0EAF                       JNZ     RBL20   ;NO-READ
 1058	  0EAD    0E 20                         MVI     C,' '
 1059	  0EAF    21 3800               RBL20:  LXI     H,TVBEG
 1060	  0EB2    71                            MOV     M,C
 1061	  0EB3    23                            INX     H
 1062	  0EB4    36 22                         MVI     M,'"'
 1063	  0EB6    23                            INX     H
 1064	  0EB7    0E 0B                         MVI     C,NAMLE
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-19


 1065	  0EB9    CD 0F76               RBL33:  CALL    SERIM
 1066	  0EBC    36 22                         MVI     M,'"'
 1067	  0EBE    23                            INX     H
 1068	  0EBF    36 20                         MVI     M,20H
 1069	  0EC1    23                            INX     H
 1070	  0EC2    CD 0F80                       CALL    SERIN
 1071	  0EC5    5F                            MOV     E,A
 1072	  0EC6    CD 0F3A                       CALL    HEXMEM  ; REG 'E' -> MEM HEX
 1073	  0EC9    CD 0F80                       CALL    SERIN
 1074	  0ECC    57                            MOV     D,A
 1075	  0ECD    3E 20                         MVI     A,' '
 1076	  0ECF    32 40CA                       STA     FND
 1077	  0ED2    48                            MOV     C,B     ;CHECK SUM
 1078	  0ED3    CD 0F80                       CALL    SERIN
 1079	  0ED6    91                            SUB     C
 1080	  0ED7    E1                            POP     H
 1081	  0ED8    C1                            POP     B
 1082	  0ED9    22 40C6                       SHLD    ADRI    ;BEG. ADR
 1083	  0EDC    F5                            PUSH    PSW     ;SAVE ZERO FLG
 1084	  0EDD    3A 41F0                       LDA     BIN-1   ;#VERS "E"#
 1085	  0EE0    FE 42                         CPI     'B'     ;#
 1086	  0EE2    C4 0F35                       CNZ     STOP    ;#
 1087	  0EE5    F1                    RBL5:   POP     PSW     ;IF ZERO ..O.K
 1088	  0EE6    C8                            RZ
 1089	  0EE7    37                            STC
 1090	  0EE8    C9                            RET             ;ELSE ...ERROR
 1091	                                ;
 1092	                                ;WRITE BLOCK (HL-ADR,DE-BLOCK &FILE NUMBER)
 1093	                                ;
 1094	  0EE9    C5                    WRBLO:  PUSH    B
 1095	  0EEA    E5                            PUSH    H
 1096	  0EEB    D5                            PUSH    D
 1097	  0EEC    CD 0A64                       CALL    STARW   ;START WRITE
 1098	  0EEF    3E 50                         MVI     A,80    ; 800/100 MS
 1099	  0EF1    CD 0F90                       CALL    BTIME
 1100	  0EF4    CD 0F64                       CALL    SEROP
 1101	  0EF7    CD 0F64                       CALL    SEROP
 1102	  0EFA    CD 0F64                       CALL    SEROP   ;PREAMBLE
 1103	  0EFD    01 0000                       LXI     B,(LENGHT+1) AND 0FFH
 1104	  0F00    CD 0F5A                       CALL    SEROM   ;DATA
 1105	  0F03    21 42F0                       LXI     H,WRNM
 1106	  0F06    0E 0B                         MVI     C,NAMLE
 1107	  0F08    CD 0F5A                       CALL    SEROM   ;NAME
 1108	  0F0B    D1                            POP     D
 1109	  0F0C    7B                            MOV     A,E
 1110	  0F0D    CD 0F66                       CALL    SEROUT  ;BLOCK-NUMBER
 1111	  0F10    7A                            MOV     A,D
 1112	  0F11    CD 0F66                       CALL    SEROUT  ;FILE-NUMBER
 1113	  0F14    78                            MOV     A,B
 1114	  0F15    CD 0F66                       CALL    SEROUT  ;CHECK SUM
 1115	  0F18    CD 0F64                       CALL    SEROP
 1116	  0F1B    AF                            XRA     A
 1117	  0F1C    CD 0F66                       CALL    SEROUT  ;SENTINEL
 1118	  0F1F    21 3800                       LXI     H,TVBEG
 1119	  0F22    CD 0F3A                       CALL    HEXMEM
 1120	  0F25    E1                            POP     H
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-20


 1121	  0F26    C1                            POP     B
 1122	  0F27    22 40C4                       SHLD    ADRO    ;SET ADR
 1123	  0F2A    3E 01                         MVI     A,1     ; 10 MS
 1124	  0F2C    CD 0F9B                       CALL    TIME
 1125	  0F2F    3A 40F0                       LDA     BOUT-1  ;#VERS "E"#
 1126	  0F32    FE 42                         CPI     'B'     ;#
 1127	  0F34    C8                            RZ              ;#
 1128	  0F35    3E 10                 STOP:   MVI     A,10H
 1129	  0F37    D3 10                         OUT     UMODE
 1130	  0F39    C9                            RET
 1131	                                ;
 1132	                                ; ROUTINES
 1133	                                ;
 1134	                                ; 'E' REG HEX TO MEMORY, CLEAR TO END LINE
 1135	  0F3A    7B                    HEXMEM: MOV     A,E
 1136	  0F3B    0F                            RRC
 1137	  0F3C    0F                            RRC
 1138	  0F3D    0F                            RRC
 1139	  0F3E    0F                            RRC
 1140	  0F3F    CD 0F50                       CALL    HEXC
 1141	  0F42    7B                            MOV     A,E
 1142	  0F43    CD 0F50                       CALL    HEXC
 1143	  0F46    3E 27                         MVI     A,39    ; LINE LENGTH-1
 1144	  0F48    36 20                 HEXM1:  MVI     M,' '
 1145	  0F4A    23                            INX     H
 1146	  0F4B    BD                            CMP     L       ; END LINE ?
 1147	  0F4C    D2 0F48                       JNC     HEXM1
 1148	  0F4F    C9                            RET
 1149	                                
 1150	                                ; DISPLAY HEX CIFF.
 1151	  0F50    E6 0F                 HEXC:   ANI     0FH
 1152	  0F52    CD 0148                       CALL    HXASC
 1153	  0F55    E6 3F                         ANI     3FH
 1154	  0F57    77                            MOV     M,A
 1155	  0F58    23                            INX     H
 1156	  0F59    C9                            RET
 1157	                                ;
 1158	  0F5A    7E                    SEROM:  MOV     A,M     ;FROM MEMORY
 1159	  0F5B    23                            INX     H
 1160	  0F5C    CD 0F66                       CALL    SEROUT  ;TO:CT:
 1161	  0F5F    0D                            DCR     C
 1162	  0F60    C2 0F5A                       JNZ     SEROM
 1163	  0F63    C9                            RET             ;ALL
 1164	                                
 1165	  0F64    3E 10                 SEROP:  MVI     A,PREAM ;BLOCK-MARK
 1166	                                
 1167	  0F66    F5                    SEROUT: PUSH    PSW
 1168	  0F67    80                            ADD     B
 1169	  0F68    47                            MOV     B,A     ;CHECK SUM
 1170	  0F69    CD 0C6C                       CALL    BREAK
 1171	  0F6C    DB 11                 SERO:   IN      USTAT
 1172	  0F6E    87                            ADD     A
 1173	  0F6F    F2 0F6C                       JP      SERO
 1174	  0F72    F1                            POP     PSW
 1175	  0F73    D3 12                         OUT     UDATA
 1176	  0F75    C9                            RET
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-21


 1177	                                ;
 1178	  0F76    CD 0F80               SERIM:  CALL    SERIN   ;READ TO MEMORY
 1179	  0F79    77                            MOV     M,A
 1180	  0F7A    23                            INX     H
 1181	  0F7B    0D                            DCR     C
 1182	  0F7C    C2 0F76                       JNZ     SERIM
 1183	  0F7F    C9                            RET
 1184	                                
 1185	  0F80    CD 0C6C               SERIN:  CALL    BREAK
 1186	  0F83    DB 11                         IN      USTAT
 1187	  0F85    07                            RLC
 1188	  0F86    D2 0F80                       JNC     SERIN
 1189	  0F89    DB 12                         IN      UDATA
 1190	  0F8B    F5                            PUSH    PSW
 1191	  0F8C    80                            ADD     B
 1192	  0F8D    47                            MOV     B,A
 1193	  0F8E    F1                            POP     PSW
 1194	  0F8F    C9                            RET
 1195	                                ;
 1196	                                ; TIME ROUTINES
 1197	                                ;
 1198	  0F90    47                    BTIME:  MOV     B,A     ; * 10 MS
 1199	  0F91    7E                            MOV     A,M     ; 'B' ?
 1200	  0F92    FE 42                         CPI     'B'
 1201	  0F94    78                            MOV     A,B
 1202	  0F95    C2 0F9B                       JNZ     TIME
 1203	  0F98    0F                            RRC
 1204	  0F99    0F                            RRC
 1205	  0F9A    0F                            RRC             ; /8
 1206	                                
 1207	  0F9B    C5                    TIME:   PUSH    B       ; ACC*10MS (TCY=500NS)
 1208	  0F9C    01 041F               TIME1:  LXI     B,800+255
 1209	  0F9F    0B                    TIME2:  DCX     B       ;( 5)
 1210	  0FA0    04                            INR     B       ;( 5)
 1211	  0FA1    05                            DCR     B       ;( 5)
 1212	  0FA2    C2 0F9F                       JNZ     TIME2   ;(10) 10MS LOOP @ 12.5US
 1213	  0FA5    3D                            DCR     A
 1214	  0FA6    C2 0F9C                       JNZ     TIME1
 1215	  0FA9    C1                            POP     B
 1216	  0FAA    C9                            RET
 1217	                                ;
 1218	                                ;       MICRO-BASIC FORMAT
 1219	                                ;
 1220	  0FAB    0E 01                 BB:     MVI     C,1     ;1. ADR
 1221	  0FAD    CD 0127                       CALL    EXPR
 1222	  0FB0    CD 0C83                       CALL    PLAY
 1223	  0FB3    0E 32                         MVI     C,50    ; 500MS GAP
 1224	  0FB5    CD 0E68               BB1:    CALL    SINC
 1225	  0FB8    0E 2A                         MVI     C,'*'
 1226	  0FBA    CD 0109                       CALL    CO
 1227	  0FBD    CD 0F80                       CALL    SERIN
 1228	  0FC0    FE 42                         CPI     'B'     ; BASIC RECORD?
 1229	  0FC2    01 000A                       LXI     B,10    ; 100MS & CLEAR SUM
 1230	  0FC5    C2 0FB5                       JNZ     BB1
 1231	  0FC8    CD 0F80                       CALL    SERIN   ;NAME
 1232	  0FCB    4F                    BB2:    MOV     C,A
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-22


 1233	  0FCC    CD 0109                       CALL    CO
 1234	  0FCF    CD 0F80                       CALL    SERIN
 1235	  0FD2    FE 0D                         CPI     CR
 1236	  0FD4    C2 0FCB                       JNZ     BB2
 1237	  0FD7    CD 0F80                       CALL    SERIN
 1238	  0FDA    5F                            MOV     E,A
 1239	  0FDB    CD 0F80                       CALL    SERIN
 1240	  0FDE    57                            MOV     D,A
 1241	  0FDF    21 BF10                       LXI     H,-40F0H        ;OFFSET
 1242	  0FE2    19                            DAD     D
 1243	  0FE3    D1                            POP     D
 1244	  0FE4    19                            DAD     D
 1245	  0FE5    EB                            XCHG            ;DE-LAST ADR
 1246	  0FE6    CD 0F80               BB3:    CALL    SERIN
 1247	  0FE9    77                            MOV     M,A
 1248	  0FEA    CD 0136                       CALL    HILO
 1249	  0FED    D2 0FE6                       JNC     BB3
 1250	  0FF0    48                            MOV     C,B
 1251	  0FF1    CD 0F80                       CALL    SERIN
 1252	  0FF4    B9                            CMP     C
 1253	  0FF5    CA 0F35                       JZ      STOP    ;#VERS."E"#
 1254	  0FF8    CD 0DEC               ERSTP:  CALL    CLSTP   ;#
 1255	  0FFB    C3 012A                       JMP     ERROR   ;#
 1256	  0FFE                          @ENDPR  EQU     $
 1257	                                ;
 1258	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 1259	                                        ORG     @R@
 1260	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 1261	                                ; SYSTEM RAM SAPI-1  M4
 1262	                                ;
 1263	  4000                          RST1:   DS      21      ;RESTART VECTOR
 1264	                                ;<<... USER & MONITOR STACK
 1265	                                ;
 1266	                                ;
 1267	                                ;
 1268	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 1269	                                        ORG     @R@+090H
 1270	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 1271	                                ; MONITOR DATA
 1272	                                ;
 1273	  4090                          MSTAK:  DS      2       ; SAVE REGISTERS
 1274	  4092                          ACSAV:  DS      2
 1275	  4094                          BCSAV:  DS      2
 1276	  4096                          DESAV:  DS      2
 1277	  4098                          HLSAV:  DS      2
 1278	  409A                          PCSAV:  DS      2
 1279	  409C                          SPSAV:  DS      2
 1280	                                ;
 1281	  409E                          BRAD:   DS      2
 1282	  40A0                          INSTR:  DS      1
 1283	  40A1                          BRAD2:  DS      2
 1284	  40A3                          INST2:  DS      1
 1285	  40A4                          LASTC:  DS      1       ;LAST CODE "REPEAT"
 1286	  40A5                          CADR:   DS      2       ; CURSOR ADR
 1287	  40A7                          CHAR:   DS      1       ; CODE
 1288	  40A8                          FLAG:   DS      1       ; FLAG MEMBR
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-23


 1289	  40A9                          LIMIT:  DS      2       ; TIME LIMIT FOR AUTO REPEAT
 1290	  40AB                          @BT:    DS      1
 1291	  40AC                          @PED:   DS      1
 1292	  40AD                          UADR:   DS      2       ;USER ADR
 1293	  40AF                          SADR:   DS      2       ; START ADR
 1294	  40B1                          EADR:   DS      2       ; END ADR
 1295	  40B3                          SUM:    DS      1
 1296	                                
 1297	                                ;*******************************
 1298	                                ;MONITOR PLUS DATA
 1299	  40B4                          JOIN:   DS      1
 1300	  40B5                          FNAME:  DS      11
 1301	  40C0                          BNO:    DS      1       ;BLOCK NUMSER,FILE NUMBER
 1302	  40C1                          BTO:    DS      1
 1303	  40C2                          BNI:    DS      1       ; --- " ---
 1304	  40C3                          BTI:    DS      1
 1305	  40C4                          ADRO:   DS      2
 1306	  40C6                          ADRI:   DS      2
 1307	  40C8                          PBITM:  DS      2
 1308	  40CA                          FND:    DS      1       ; FIND FLAG
 1309	                                
 1310	                                ;-------------------------
 1311	                                ;       USER I/O DEVICE
 1312	                                ;
 1313	  40CB                          CILOC:  DS      3
 1314	  40CE                          COLOC:  DS      3
 1315	  40D1                          R1LOC:  DS      3
 1316	  40D4                          R2LOC:  DS      3
 1317	  40D7                          P1LOC:  DS      3
 1318	  40DA                          P2LOC:  DS      3
 1319	  40DD                          LILOC:  DS      3
 1320	  40E0                          CSLOC:  DS      3
 1321	                                ;******************************
 1322	                                ;<< EXTERNE OVLADANE FLAGY: >>
 1323	                                ;******************************
 1324	  40E3                          MODE:   DS      1       ;CO-MODE
 1325	  40E4                          @IF1:   DS      1
 1326	  40E5                          @IF2:   DS      1
 1327	  40E6                          @OF1:   DS      1
 1328	  40E7                          @OF2:   DS      1
 1329	  40E8                          LINE:   DS      1       ;LINE
 1330	  40E9                          COLUM:  DS      1       ;COLUMN
 1331	  40EA                          RESL:   DS      1       ;RESERVE
 1332	  40EB                          UBYTE:  DS      1       ;USER BYTE (REALTIME..)
 1333	  40EC                          @SFLG:  DS      1       ;#0..NO STOP
 1334	  000A                          EXSER   EQU     $-MODE  ;EXTERNAL SERVICE
 1335	  40ED                          IOBYT:  DS      1       ;I/O CONTROL
 1336	  40EE                          MEMTOP: DS      2       ;MEMTOP "RAM"
 1337	                                
 1338	                                ;-------------------------
 1339	                                ; I/O BUFFERS
 1340	  40F0                                  DS      1       ; BLOCK LABEL
 1341	  40F1                          BOUT:   DS      255     ;BLOCK LENGHT
 1342	  41F0                          BOEND   EQU     $
 1343	                                ;
 1344	  41F0                                  DS      1       ; BLOCK LABELS
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-24


 1345	  41F1                          BIN:    DS      255     ;BLOCK  LENGHT
 1346	  42F0                          BIEND   EQU     $
 1347	                                ;
 1348	  42F0                          WRNM:   DS      11
 1349	                                ;=============================
 1350	                                        ORG     @R@ + 300H
 1351	                                ;=============================
 1352	                                ; "MAT" ARRAY
 1353	  4300                                  DS      0FFH
 1354	                                ;=============================
 1355	                                        ORG     @R@ + 400H
 1356	                                ;=============================
 1357	                                ; SYSTEM OR USER PROGRAMS
 1358	                                ;---->>>>>>>>>>>
 1359	                                ;
 1360	                                ;
 1361	                                ;
 1362	                                        END     ;[P]
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	S


Macros:

Symbols:
40AB 	@BT             0FFE 	@ENDPR          40E4 	@IF1            
40E5 	@IF2            40E6 	@OF1            40E7 	@OF2            
40AC 	@PED            4000 	@R@             40EC 	@SFLG           
4092 	ACSAV           40C6 	ADRI            40C4 	ADRO            
0A69 	APPEND          012D 	ASHEX           0151 	ASSEX           
089B 	B0              089E 	B1              08B0 	B2              
4400 	BASIC           0FAB 	BB              0FB5 	BB1             
0FCB 	BB2             0FE6 	BB3             0896 	BCMD            
4094 	BCSAV           42F0 	BIEND           41F1 	BIN             
40C2 	BNI             40C0 	BNO             41F0 	BOEND           
40F1 	BOUT            409E 	BRAD            40A1 	BRAD2           
0C6C 	BREAK           40C3 	BTI             0F90 	BTIME           
40C1 	BTO             0CC0 	BUADR           40A5 	CADR            
003A 	CAN             40A7 	CHAR            0DF6 	CHECK           
0103 	CI              40CB 	CILOC           013F 	CINCR           
0B10 	CLOSE           0DEC 	CLSTP           0B54 	CMPN0           
0B68 	CMPN1           0B7E 	CMPN2           0B48 	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           0A73 	DIR             0A7A 	DIR0            
0C9D 	DONE            40B1 	EADR            0C76 	ECHO            
0CA6 	ECHOCR          08E7 	EOF             0004 	EOT@            
0800 	EPROM           0CED 	ERRD            0D10 	ERRD0           
0D1F 	ERRD1           012A 	ERROR           0FF8 	ERSTP           
0003 	ETX             0C7A 	ETX?            085B 	EXMON           
0127 	EXPR            000A 	EXSER           0AF7 	FIND            
0B31 	FINO            40A8 	FLAG            40B5 	FNAME           
40CA 	FND             0A5D 	GAPO            0D50 	GET0            
0D5F 	GET1            0D6D 	GET2            0D43 	GET@            
0D70 	GETEX           09FF 	HBYTE           0F50 	HEXC            
0F48 	HEXM1           0F3A 	HEXMEM          0136 	HILO            
4098 	HLSAV           0009 	HT              0148 	HXASC           
0839 	ICMD            083E 	ICMD1           0B97 	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            
0DB5 	LO1             0DDC 	LO2             0DAA 	LOAD            
0400 	LSYSR           40EE 	MEMTOP          0A17 	MICOS           
40E3 	MODE            0100 	MONIT           0A52 	MOTA            
0A0B 	MREAD           4090 	MSTAK           000B 	NAMLE           
0139 	NEXT            0D39 	NUFIL           0C5D 	NULBF           
08FE 	NULL            084A 	OCMD            084F 	OCMD1           
0B85 	OK?             0AB4 	OPE01           0AC8 	OPE1            
0AC5 	OPE20           0ABF 	OPE30           0ADB 	OPE50           
0A98 	OPEN            40D7 	P1LOC           40DA 	P2LOC           
0E5D 	PADR@           09D5 	PBEG            40C8 	PBITM           
09F2 	PBYTE           08BC 	PCMD            409A 	PCSAV           
'MONITOR PLUS, MIKOS V4.0H - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	S-1


4400 	PEDIT           0C23 	PHDR            0C83 	PLAY            
010C 	PO              0E62 	POCH            0010 	PREAM           
0C2C 	PTP?            0C33 	PTR?            0D74 	PUT@            
0DA4 	PUTEX           40D1 	R1LOC           40D4 	R2LOC           
0DFF 	RADR@           0E8B 	RBL2            0EAF 	RBL20           
0E8D 	RBL3            0EB9 	RBL33           0EE5 	RBL5            
0E86 	RBLG            0E81 	RBLOK           09B2 	RBYTE           
0E81 	READ            0909 	READ@           0E7D 	READF           
0C8B 	RECO            0C91 	RECOR           090D 	RED1            
093C 	RED2            095C 	RED3            090F 	REDC0           
0911 	REDC1           0927 	REDC2           0953 	REDER           
40EA 	RESL            0106 	RI              0CCC 	RIB             
0CE4 	RIB1            0CE6 	RIB2            0E08 	RICH            
0BEB 	RNAM1           0C06 	RNAM10          0C16 	RNAM2           
0BEA 	RNAME           4000 	RST1            40AF 	SADR            
0E47 	SAV1            0E13 	SAVE            0CB2 	SEAR1           
0CAF 	SEARCH          0F76 	SERIM           0F80 	SERIN           
0F6C 	SERO            0F5A 	SEROM           0F64 	SEROP           
0F66 	SEROUT          0E68 	SINC            0E6A 	SINC1           
0001 	SOH             013C 	SPACE           409C 	SPSAV           
0A5B 	START           0A64 	STARW           0F35 	STOP            
001A 	SUBS            40B3 	SUM             08B4 	TCMD            
09C9 	TERM            0142 	TEXT            0F9B 	TIME            
0F9C 	TIME1           0F9F 	TIME2           4C00 	TRACER          
3800 	TVBEG           0C41 	TXIMM           0C51 	TXNAM           
40AD 	UADR            40EB 	UBYTE           0012 	UDATA           
0010 	UMODE           0013 	USER            0011 	USTAT           
0D28 	WOB             097F 	WR1             0994 	WR2             
0997 	WR3             09A0 	WR4             0EE9 	WRBLO           
0977 	WRITE           0BD3 	WRN1            0BBA 	WRNAM           
42F0 	WRNM            



No Fatal error(s)



@BT	  166	 1290#
@ENDPR	 1256#
@IF1	  120	  535	  863	  950	 1325#
@IF2	 1326#
@OF1	  130	  486	  520	  540	  547	  891	  979	 1327#
@OF2	 1328#
@PED	  190	 1291#
@R@	   11#	 1259	 1269	 1350	 1355
@SFLG	 1333#
ACSAV	 1274#
ADRI	  866	  871	 1082	 1306#
ADRO	  896	  899	 1122	 1305#
APPEND	  425	  460#
ASHEX	   53#	  344	  351
ASSEX	   55#	  118	  128
B0	  166#	  186
B1	  167#	  191
B2	  172	  179#
BASIC	   17#	  165
BB	  423	 1220#
BB1	 1224#	 1230
BB2	 1232#	 1236
BB3	 1246#	 1249
BCMD	  155	  164#
BCSAV	 1275#
BIEND	  869	 1346#
BIN	  589	  792	  803	  829	  835	  875	  925	 1084	 1345#
BNI	  532	  800	  802	  851	  854	 1303#
BNO	  461	  514	  618	  840	  842	 1301#
BOEND	  901	 1342#
BOUT	  504	  544	  728	  790	  844	  903	  983	 1125	 1341#
BRAD	 1281#
BRAD2	 1283#
BREAK	  738#	 1025	 1170	 1185
BTI	 1304#
BTIME	 1099	 1198#
BTO	 1302#
BUADR	  583	  780	  788#
CADR	 1286#
CAN	   79#	  505	  592	  619	  811
CHAR	 1287#
CHECK	  941	  947	  955#
CI	   36#	  652	  740
CILOC	 1313#
CINCR	   40#	  744
CLOSE	   94	  433	  539#	  911	 1009
CLSTP	  748	  949#	 1254
CMPN0	  570#	  579

CMPN1	  572	  582#
CMPN2	  590	  594#
CMPNM	  502	  503	  529	  565#	  566	  576	  593	  595
CO	   38#	  279	  420	  478	  673	  710	  782	 1226	 1233
COLOC	 1314#
COLUM	 1330#
COMLE	   60#	  630	  682
CPM	    6#	   10
CR	   62#	  367	  375	  490	  517	  656	  721	  760	 1235
CRLF	   45#	  303	  474	  647	  657	  676	  680	  770	  834	  952
CSLOC	 1320#
CSTS	   35#	  738
DADR	   44#	  280
DBYT	   43#	  476	  480
DEL	   64#	  658
DESAV	 1276#
DIR	  427	  467#
DIR0	  470#	  473	  481
DONE	  445	  755	  765#
EADR	  196	  934	 1294#
ECHO	  602	  744#	  768	  821
ECHOCR	  421	  768#
EOF	  147	  218#
EOT@	   78#	  472	  498	  508	  543	  876
EPROM	   13#	   86
ERRD	  805	  807	  816#	  831
ERRD0	  829#	  833
ERRD1	  823	  834#
ERROR	   52#	  160	  169	  174	  201	  211	  488	  542	 1255
ERSTP	  281	  410	  931	  940	  958	  968	 1254#
ETX	   65#	  654	  746
ETX?	  741	  746#
EXMON	   91	  137#
EXPR	   42#	  219	  244	  302	  978	 1221
EXSER	 1334#
FIND	   92	  435	  526#	  865	  923
FINO	  494	  528	  553#
FLAG	 1288#
FNAME	  555	  567	 1300#
FND	  103	 1037	 1055	 1076	 1308#
GAPO	  449#	  456
GET0	  867#	  879
GET1	  872	  875#
GET2	  877	  880#
GET@	  122	  860#
GETEX	  874	  882#
HBYTE	  389	  398#
HEXC	 1140	 1142	 1151#
HEXM1	 1144#	 1147

HEXMEM	 1072	 1119	 1135#
HILO	   46#	  207	  945	 1003	 1248
HLSAV	 1277#
HT	   66#	  363
HXASC	   54#	  403	 1152
ICMD	  117#	  149
ICMD1	  111	  119#
INIT	  429	  607#
INITS	   90	  101#
INST2	 1284#
INSTR	 1282#
IOBYT	 1335#
IOCHK	   49#	  696
IODEF	   41#	  123	  133
IOSET	   51#	  104
J1	  204#	  208
JOIN	  460	  468	  553	  788	 1299#
JUMP	  143	  196#
LASTC	 1285#
LBYTE	  392	  402#
LEAD	  234#	  237
LENGHT	   58#	  730	 1052	 1103
LF	   63#	  377	  490	  517	  721	  760
LILOC	 1319#
LIMIT	 1289#
LINE	 1329#
LO1	  927#	  929
LO2	  943#	  946
LOAD	   95	  439	  923#
LSYSR	   14#
MEMTOP	 1336#
MICOS	   89	  159	  418#	  655
MODE	  906	 1324#	 1334
MONIT	   12#	   35	   36	   37	   38	   39	   40	   41	   42	   43	   44	   45
	   46	   47	   48	   49	   50	   51	   52	   53	   54	   55
MOTA	  444#
MREAD	  248	  343	  350	  409#	  412
MSTAK	 1273#
NAMLE	   59#	  557	  568	  634	 1064	 1106
NEXT	   47#	  749
NUFIL	  806	  832	  851#
NULBF	  625	  728#
NULL	  145	  233#
OCMD	  127#	  151
OCMD1	  112	  129#
OK?	  500	  594	  598#
OPE01	  496#	  499
OPE1	  495	  503#
OPE20	  497	  502#

OPE30	  500#
OPE50	  463	  501	  506	  510#
OPEN	   93	  431	  485#	  894	  981
P1LOC	 1317#
P2LOC	 1318#
PADR@	  992	  994	 1011#
PBEG	  224	  328	  374#
PBITM	 1307#
PBYTE	  227	  331	  336	  382	  384	  386	  388#
PCMD	  153	  188#
PCSAV	 1278#
PEDIT	   16#	  189
PHDR	  471	  585	  680#
PLAY	  469	  559	  752#	  828	 1222
PO	   39#	  229	  235	  376	  378	  380	  404	 1018
POCH	  988	  996	  998	 1002	 1006	 1008	 1012	 1015#
PREAM	   67#	 1046	 1165
PTP?	  485	  539	  689#
PTR?	  526	  694#
PUT@	  132	  888#
PUTEX	  905	  908	  912#
R1LOC	 1315#
R2LOC	 1316#
RADR@	  933	  936	  961#
RBL2	 1044#
RBL20	 1057	 1059#
RBL3	 1045#	 1049
RBL33	 1065#
RBL5	 1087#
RBLG	 1042#	 1047
RBLOK	 1039#
RBYTE	  258	  261	  263	  267	  268	  276	  283	  285	  287	  288	  343#
READ	  804	 1038#
READ@	  141	  243#
READF	  783	  830	 1036#
RECO	  755#
RECOR	  515	  611	  759#
RED1	  245#	  277
RED2	  268#	  275
RED3	  259	  282#
REDC0	  247#	  250
REDC1	  248#	  255
REDC2	  253	  257#
REDER	  256	  272	  279#	  289
RESL	 1331#
RI	   37#	  409	  967
RIB	  536	  798#	  878
RIB1	  808#	  836
RIB2	  785	  810#

RICH	  927	  938	  943	  956	  961	  963	  967#
RNAM1	  651#	  664	  669	  675
RNAM10	  659	  662#
RNAM2	  661	  670#
RNAME	  558	  632	  650#
RST1	 1263#
SADR	  198	  937	 1293#
SAV1	 1001#	 1004
SAVE	   96	  437	  977#
SEAR1	  781#	  784
SEARCH	  470	  496	  507	  565	  780#
SERIM	 1053	 1065	 1178#	 1182
SERIN	 1045	 1070	 1073	 1078	 1178	 1185#	 1188	 1227	 1231	 1234	 1237	 1239
	 1246	 1251
SERO	 1171#	 1173
SEROM	 1104	 1107	 1158#	 1162
SEROP	 1100	 1101	 1102	 1115	 1165#
SEROUT	 1110	 1112	 1114	 1117	 1160	 1167#
SINC	 1022#	 1028	 1043	 1224
SINC1	 1023#	 1030
SOH	   77#	  519	  534	  813
SPACE	   50#
SPSAV	 1279#
START	  444	  448#	  607	  756	  926	 1041
STARW	  455#	  548	  984	 1097
STOP	  418	  446	  551	  612	  626	  816	  951	 1086	 1128#	 1253
SUBS	   68#	  228	  880	  910	 1007
SUM	  209	  948	 1295#
TCMD	  157	  184#
TERM	  249	  361#	  573
TEXT	   48#	  683
TIME	  550	  986	 1024	 1124	 1202	 1207#
TIME1	 1208#	 1214
TIME2	 1209#	 1212
TRACER	   18#	  185
TVBEG	   15#	 1051	 1059	 1118
TXIMM	  105	  489	  516	  598	  608	  613	  667	  706#	  714	  718	  752	  759
	  765	  817	  824
TXNAM	  554	  624	  718#
UADR	 1292#
UBYTE	 1332#
UDATA	   72#	 1022	 1175	 1189
UMODE	   74#	  449	 1129
USER	   71#
USTAT	   73#	  451	 1026	 1171	 1186
WOB	  545	  645	  839#	  902
WR1	  306#	  338
WR2	  317	  320#
WR3	  319	  322#

WR4	  329#	  333
WRBLO	  845	 1094#
WRITE	  139	  302#
WRN1	  636#	  644
WRNAM	  521	  623#
WRNM	  635	 1105	 1348#

Ú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


ZPS | Technické prostředky | Programové vybavení | Dokumentace


8 bity / SAPI-1 / Programové vybavení / V4.x / LST MONITOR+ MIKOS-1



SAPI.cz - web o československých osmibitech, zejména SAPI-1. Provozuje EC1045 od roku 2011
Za korekce češtiny dekuji: MELSOFTovi, Silliconovi, Martinu Lukáškovi a NOSTALCOMPovi

Když začínám blbnout z 8bitů tak se chodím léčit mezi otaku.
Animefest.cz