ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000


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


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


Listing programu MONITOR+ MIKOS-1 V4.0F


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


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


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


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


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


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


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


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


  393	  09F7    F5                            PUSH    PSW
  394	  09F8    CD 0A03                       CALL    LBYTE
  395	  09FB    F1                            POP     PSW
  396	  09FC    82                            ADD     D
  397	  09FD    57                            MOV     D,A
  398	  09FE    C9                            RET
  399	                                ;
  400	  09FF    0F                    HBYTE:  RRC
  401	  0A00    0F                            RRC
  402	  0A01    0F                            RRC
  403	  0A02    0F                            RRC
  404	  0A03    E6 0F                 LBYTE:  ANI     0FH
  405	  0A05    CD 0148                       CALL    HXASC
  406	  0A08    C3 010C                       JMP     PO
  407	                                ;
  408	                                
  409	                                ; READ CHARACTER AND MASK, ERROR IF CARRY
  410	                                
  411	  0A0B    CD 0106               MREAD:  CALL    RI
  412	  0A0E    DA 012A                       JC      ERROR
  413	  0A11    E6 7F                         ANI     7FH
  414	  0A13    C9                            RET
  415	                                ;
  416	                                ;
  417	                                ;  USER COMMAND LEVEL
  418	                                ;
  419	  0A14    CD 0F32               MICOS:  CALL    STOP
  420	  0A17    0E 5F                         MVI     C,'_'
  421	  0A19    CD 0109                       CALL    CO
  422	  0A1C    CD 0CA3                       CALL    ECHOCR
  423	  0A1F    FE 42                         CPI     'B'
  424	  0A21    CA 0FA8                       JZ      BB      ;MICRO-BASIC CODE
  425	  0A24    FE 41                         CPI     'A'
  426	  0A26    CA 0A66                       JZ      APPEND
  427	  0A29    FE 44                         CPI     'D'
  428	  0A2B    CA 0A70                       JZ      DIR     ;DIRECTORY
  429	  0A2E    FE 49                         CPI     'I'
  430	  0A30    CA 0B94                       JZ      INIT    ; INIT NEW TAPE
  431	  0A33    FE 4F                         CPI     'O'
  432	  0A35    CA 0A95                       JZ      OPEN    ;OPEN OUTPUT
  433	  0A38    FE 43                         CPI     'C'
  434	  0A3A    CA 0B0D                       JZ      CLOSE   ;CLOSE OUTPUT
  435	  0A3D    FE 46                         CPI     'F'
  436	  0A3F    CA 0AF4                       JZ      FIND    ;FIND INPUT
  437	  0A42    FE 53                         CPI     'S'
  438	  0A44    CA 0E10                       JZ      SAVE    ;SAVE
  439	  0A47    FE 4C                         CPI     'L'
  440	  0A49    CA 0DA7                       JZ      LOAD    ;LOAD
  441	  0A4C    FE 4D                         CPI     'M'     ;MONITOR
  442	  0A4E    C0                            RNZ             ; NO FIND
  443	                                ;-------------------------------
  444	                                ; MOTION
  445	  0A4F    CD 0A58               MOTA:   CALL    START   ;MOTA PASKY
  446	  0A52    CD 0C9A                       CALL    DONE
  447	  0A55    C3 0F32                       JMP     STOP
  448	                                ;
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-8


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


  505	  0AC8    3A 40F0                       LDA     BOUT-1
  506	  0ACB    FE 3A                         CPI     CAN     ;VOLUME
  507	  0ACD    CA 0AD8                       JZ      OPE50   ;IMMED. OPEN
  508	  0AD0    CD 0CAC                       CALL    SEARCH
  509	  0AD3    FE 04                         CPI     EOT@
  510	  0AD5    C2 0AD0                       JNZ     $ - 5
  511	  0AD8    7A                    OPE50:  MOV     A,D
  512	  0AD9    3C                            INR     A       ;INCREM.FILE NUMBER
  513	  0ADA    67                            MOV     H,A
  514	  0ADB    2E 00                         MVI     L,0
  515	  0ADD    22 40C0                       SHLD    BNO     ;FILE&BLOCK NUMBER
  516	  0AE0    CD 0C8E                       CALL    RECOR
  517	  0AE3    CD 0C3E                       CALL    TXIMM
  518	  0AE6    0D 0A                         DB      CR,LF
  519	  0AE8    4E 45 57 A0                   DB      'NEW',' ' OR 80H
  520	  0AEC    3E 01                         MVI     A,SOH
  521	  0AEE    32 40E6                       STA     @OF1
  522	  0AF1    C3 0BB7                       JMP     WRNAM
  523	                                ;
  524	                                
  525	                                ;----------------------------------------
  526	                                ;  FIND INPUT FILE AND OPEN FOR READ
  527	  0AF4    CD 0C30               FIND:   CALL    PTR?
  528	  0AF7    AF                            XRA     A       ; FIND ONPUT FILE
  529	  0AF8    CD 0B2E                       CALL    FINO
  530	  0AFB    CD 0B45                       CALL    CMPNM
  531	  0AFE    1E 01                         MVI     E,1
  532	  0B00    EB                            XCHG
  533	  0B01    22 40C2                       SHLD    BNI     ;NUMBER FILE
  534	  0B04    EB                            XCHG
  535	  0B05    3E 01                         MVI     A,SOH
  536	  0B07    32 40E4                       STA     @IF1
  537	  0B0A    C3 0CC9                       JMP     RIB
  538	                                ;---------------------------
  539	                                ;CLOSE OUTPUT FILE
  540	  0B0D    CD 0C29               CLOSE:  CALL    PTP?
  541	  0B10    3A 40E6                       LDA     @OF1    ;NO OPEN
  542	  0B13    B7                            ORA     A
  543	  0B14    CA 012A                       JZ      ERROR
  544	  0B17    3E 04                         MVI     A,EOT@  ;CLOSE BLOK
  545	  0B19    32 40F0                       STA     BOUT-1
  546	  0B1C    CD 0D25                       CALL    WOB
  547	  0B1F    AF                            XRA     A
  548	  0B20    32 40E6                       STA     @OF1    ;CLOSE
  549	  0B23    CD 0A61                       CALL    STARW   ;GAP 2*
  550	  0B26    3E 50                         MVI     A,80    ; BOOMS
  551	  0B28    CD 0F98                       CALL    TIME
  552	  0B2B    C3 0F32                       JMP     STOP
  553	                                ;---------------------
  554	  0B2E    32 40B4               FINO:   STA     JOIN    ;I/O FLAG
  555	  0B31    CD 0C4E                       CALL    TXNAM
  556	  0B34    21 40B5                       LXI     H,FNAME
  557	  0B37    E5                            PUSH    H
  558	  0B38    06 0B                         MVI     B,NAMLE
  559	  0B3A    CD 0BE7                       CALL    RNAME   ;READ
  560	  0B3D    CD 0C80                       CALL    PLAY
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-10


  561	  0B40    E1                            POP     H
  562	  0B41    7E                            MOV     A,M
  563	  0B42    FE 2A                         CPI     '*'     ;WILDCARDS ?
  564	  0B44    C9                            RET
  565	                                
  566	  0B45    CD 0CAC               CMPNM:  CALL    SEARCH  ;COMPARE NAME
  567	  0B48    C2 0B45                       JNZ     CMPNM   ;NO HDR
  568	  0B4B    01 40B5                       LXI     B,FNAME
  569	  0B4E    1E 0B                         MVI     E,NAMLE
  570	  0B50    23                            INX     H       ;NAME
  571	  0B51    0A                    CMPN0:  LDAX    B
  572	  0B52    FE 2A                         CPI     '*'
  573	  0B54    CA 0B65                       JZ      CMPN1
  574	  0B57    CD 09C9                       CALL    TERM    ;END OF NAME
  575	  0B5A    C8                            RZ
  576	  0B5B    BE                            CMP     M
  577	  0B5C    C2 0B45                       JNZ     CMPNM
  578	  0B5F    03                            INX     B
  579	  0B60    1D                            DCR     E
  580	  0B61    C2 0B50                       JNZ     CMPN0 - 1
  581	  0B64    C9                            RET             ;O.K
  582	                                ;
  583	  0B65    D5                    CMPN1:  PUSH    D
  584	  0B66    CD 0CBD                       CALL    BUADR
  585	  0B69    E5                            PUSH    H
  586	  0B6A    CD 0C20                       CALL    PHDR
  587	  0B6D    E1                            POP     H
  588	  0B6E    D1                            POP     D
  589	  0B6F    7C                            MOV     A,H     ; CTENI NEBO ZAPIS
  590	  0B70    FE 41                         CPI     (BIN-1) SHR 8
  591	  0B72    C2 0B7B                       JNZ     CMPN2
  592	  0B75    7E                            MOV     A,M
  593	  0B76    FE 3A                         CPI     CAN     ; ':'... VOLUME BLOK
  594	  0B78    CA 0B45                       JZ      CMPNM
  595	  0B7B    CD 0B82               CMPN2:  CALL    OK?
  596	  0B7E    C2 0B45                       JNZ     CMPNM
  597	  0B81    C9                            RET
  598	                                ;
  599	  0B82    CD 0C3E               OK?:    CALL    TXIMM
  600	  0B85    07                            DB      7
  601	  0B86    2D 2D 28 59                   DB      '--(Y/N)','?' OR 80H
  602	  0B8A    2F 4E 29 BF           
  603	  0B8E    CD 0C73                       CALL    ECHO
  604	  0B91    FE 59                         CPI     'Y'
  605	  0B93    C9                            RET
  606	                                ;--------------------
  607	                                ;INIT NEW CASSETTE
  608	  0B94    CD 0A58               INIT:   CALL    START
  609	  0B97    CD 0C3E                       CALL    TXIMM
  610	  0B9A    42 4F 54                      DB      'BOT'
  611	  0B9D    A0                            DB      ' ' OR 80H
  612	  0B9E    CD 0C8E                       CALL    RECOR
  613	  0BA1    CD 0F32                       CALL    STOP
  614	  0BA4    CD 0C3E                       CALL    TXIMM
  615	  0BA7    20 56 4F 4C                   DB      ' VOLUME'
  616	  0BAB    55 4D 45              
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-11


  617	  0BAE    A0                            DB      ' ' OR 80H
  618	  0BAF    21 0000                       LXI     H,0     ;0..FILE NUMBER
  619	  0BB2    22 40C0                       SHLD    BNO
  620	  0BB5    3E 3A                         MVI     A,CAN
  621	                                
  622	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  623	                                ;  FILE NAME LEVEL
  624	  0BB7    F5                    WRNAM:  PUSH    PSW     ;HDR-LABEL
  625	  0BB8    CD 0C4E                       CALL    TXNAM
  626	  0BBB    CD 0C5A                       CALL    NULBF
  627	  0BBE    CD 0F32                       CALL    STOP
  628	  0BC1    F1                            POP     PSW
  629	  0BC2    77                            MOV     M,A
  630	  0BC3    23                            INX     H
  631	  0BC4    06 40                         MVI     B,COMLE ;NAME+COMMENT
  632	  0BC6    E5                            PUSH    H
  633	  0BC7    CD 0BE7                       CALL    RNAME
  634	  0BCA    E1                            POP     H
  635	  0BCB    06 0B                         MVI     B,NAMLE
  636	  0BCD    11 42F0                       LXI     D,WRNM  ;OUTPUT AREA
  637	  0BD0    7E                    WRN1:   MOV     A,M
  638	  0BD1    E6 3F                         ANI     3FH
  639	  0BD3    C2 0BD8                       JNZ     $+5
  640	  0BD6    3E 20                         MVI     A,' '   ;BLANK
  641	  0BD8    12                            STAX    D
  642	  0BD9    23                            INX     H
  643	  0BDA    13                            INX     D
  644	  0BDB    05                            DCR     B
  645	  0BDC    C2 0BD0                       JNZ     WRN1
  646	  0BDF    CD 0D25                       CALL    WOB
  647	  0BE2    36 41                         MVI     M,'A'   ;DATA TYP
  648	  0BE4    C3 0124                       JMP     CRLF
  649	                                ; READ NAME <HL>..ADR,<B>..DELKA
  650	                                ;-----------------------------------
  651	  0BE7    5D                    RNAME:  MOV     E,L     ;LOW-FIRST ADR
  652	  0BE8    36 20                 RNAM1:  MVI     M,' '
  653	  0BEA    CD 0103                       CALL    CI
  654	  0BED    E6 7F                         ANI     7FH
  655	  0BEF    FE 03                         CPI     ETX
  656	  0BF1    CA 0A14                       JZ      MICOS
  657	  0BF4    FE 0D                         CPI     CR
  658	  0BF6    CA 0124                       JZ      CRLF
  659	  0BF9    FE 7F                         CPI     DEL
  660	  0BFB    CA 0C03                       JZ      RNAM10
  661	  0BFE    FE 08                         CPI     08H     ;BS
  662	  0C00    C2 0C13                       JNZ     RNAM2
  663	  0C03    7B                    RNAM10: MOV     A,E
  664	  0C04    BD                            CMP     L       ;FIRST
  665	  0C05    CA 0BE8                       JZ      RNAM1
  666	  0C08    2B                            DCX     H
  667	  0C09    04                            INR     B
  668	  0C0A    CD 0C3E                       CALL    TXIMM   ;DELETE
  669	  0C0D    08 20 88                      DB      08,20H,88H
  670	  0C10    C3 0BE8                       JMP     RNAM1
  671	  0C13    77                    RNAM2:  MOV     M,A
  672	  0C14    23                            INX     H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-12


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


  729	  0C5A    21 40F0               NULBF:  LXI     H,BOUT-1
  730	  0C5D    E5                            PUSH    H
  731	  0C5E    3E FF                         MVI     A,LENGHT
  732	  0C60    23                            INX     H
  733	  0C61    36 00                         MVI     M,0
  734	  0C63    3D                            DCR     A
  735	  0C64    C2 0C60                       JNZ     $-4
  736	  0C67    E1                            POP     H       ;(BLOCK TYP) ADRM
  737	  0C68    C9                            RET
  738	                                
  739	  0C69    CD 0112               BREAK:  CALL    CSTS
  740	  0C6C    C8                            RZ
  741	  0C6D    CD 0103                       CALL    CI
  742	  0C70    C3 0C77                       JMP     ETX?
  743	                                
  744	                                ;CTI A VYPIS ZNAK
  745	  0C73    CD 013F               ECHO:   CALL    CINCR
  746	  0C76    C8                            RZ
  747	  0C77    FE 03                 ETX?:   CPI     ETX
  748	  0C79    C0                            RNZ
  749	  0C7A    CD 0DE9                       CALL    CLSTP   ;CLOSE & STOP
  750	  0C7D    C3 0139                       JMP     NEXT    ;BREAK=>C
  751	                                
  752	                                ;DISPLAY "PLAY"
  753	  0C80    CD 0C3E               PLAY:   CALL    TXIMM
  754	  0C83    50 4C 41 59                   DB      'PLAY'
  755	  0C87    A0                            DB      ' ' OR 80H
  756	  0C88    CD 0C9A               RECO:   CALL    DONE
  757	  0C8B    C3 0A58                       JMP     START
  758	                                
  759	                                ;DISPLAY "RECORD"
  760	  0C8E    CD 0C3E               RECOR:  CALL    TXIMM
  761	  0C91    0D 0A                         DB      CR,LF
  762	  0C93    52 45 43 4F                   DB      'RECORD'
  763	  0C97    52 44                 
  764	  0C99    A0                            DB      ' ' OR 80H
  765	                                ;
  766	  0C9A    CD 0C3E               DONE:   CALL    TXIMM
  767	  0C9D    20 44 4F 4E                   DB      ' DONE','?' OR 80H
  768	  0CA1    45 BF                 
  769	  0CA3    CD 0C73               ECHOCR: CALL    ECHO
  770	  0CA6    F5                            PUSH    PSW
  771	  0CA7    CD 0124                       CALL    CRLF
  772	  0CAA    F1                            POP     PSW
  773	  0CAB    C9                            RET
  774	                                
  775	                                
  776	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  777	                                ;  FILE OPERATIONS LEVEL
  778	                                ;
  779	                                ;SERACH BLOCK IN TAPE
  780	                                ;--------------------
  781	  0CAC    CD 0CBD               SEARCH: CALL    BUADR
  782	  0CAF    0E 23                 SEAR1:  MVI     C,'#'   ;ERROR
  783	  0CB1    DC 0109                       CC      CO
  784	  0CB4    CD 0E7A                       CALL    READF
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-14


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


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


  897	  0D7D    2A 40C4                       LHLD    ADRO
  898	  0D80    23                            INX     H
  899	  0D81    71                            MOV     M,C     ;SAVE
  900	  0D82    22 40C4                       SHLD    ADRO
  901	  0D85    7D                            MOV     A,L
  902	  0D86    FE EF                         CPI     (BOEND AND 0FFH) - 1
  903	  0D88    CC 0D25                       CZ      WOB     ;NEXT
  904	  0D8B    3A 40F0                       LDA     BOUT-1
  905	  0D8E    FE 42                         CPI     'B'     ;BINAR DUMP?
  906	  0D90    CA 0DA1                       JZ      PUTEX
  907	  0D93    3A 40E3                       LDA     MODE
  908	  0D96    E6 02                         ANI     2       ;BIN.FILE?
  909	  0D98    C2 0DA1                       JNZ     PUTEX
  910	  0D9B    79                            MOV     A,C     ;CLOSE CHAR.?
  911	  0D9C    FE 1A                         CPI     SUBS
  912	  0D9E    CC 0B0D                       CZ      CLOSE
  913	  0DA1    E1                    PUTEX:  POP     H
  914	  0DA2    D1                            POP     D
  915	  0DA3    C1                            POP     B
  916	  0DA4    79                            MOV     A,C
  917	  0DA5    B7                            ORA     A       ;NCY
  918	  0DA6    C9                            RET
  919	                                
  920	                                ;
  921	                                ;
  922	                                ; LOAD BINARY DATA FROM TAPE TO MEMORY
  923	                                ;
  924	  0DA7    CD 0AF4               LOAD:   CALL    FIND    ;OPEN FILE
  925	  0DAA    3E 42                         MVI     A,'B'   ;BINAR
  926	  0DAC    32 41F0                       STA     BIN-1
  927	  0DAF    CD 0A58                       CALL    START
  928	  0DB2    CD 0E05               LO1:    CALL    RICH
  929	  0DB5    B7                            ORA     A       ; BLANK?
  930	  0DB6    CA 0DB2                       JZ      LO1
  931	  0DB9    D6 3C                         SUI     '<'
  932	  0DBB    C2 0FF5                       JNZ     ERSTP   ;#NOT BINARY FORMAT
  933	  0DBE    47                            MOV     B,A     ;SUM
  934	  0DBF    CD 0DFC                       CALL    RADR@
  935	  0DC2    22 40B1                       SHLD    EADR    ;LAST
  936	  0DC5    EB                            XCHG
  937	  0DC6    CD 0DFC                       CALL    RADR@   ;LAST
  938	  0DC9    22 40AF                       SHLD    SADR    ; START ADR
  939	  0DCC    CD 0E05                       CALL    RICH
  940	  0DCF    FE 3E                         CPI     '>'
  941	  0DD1    C2 0FF5                       JNZ     ERSTP   ;#NOT BINARY
  942	  0DD4    CD 0DF3                       CALL    CHECK
  943	  0DD7    06 00                         MVI     B,0     ;CLEAR
  944	  0DD9    CD 0E05               LO2:    CALL    RICH
  945	  0DDC    77                            MOV     M,A
  946	  0DDD    CD 0136                       CALL    HILO
  947	  0DE0    D2 0DD9                       JNC     LO2
  948	  0DE3    CD 0DF3                       CALL    CHECK
  949	  0DE6    32 40B3                       STA     SUM
  950	  0DE9    AF                    CLSTP:  XRA     A
  951	  0DEA    32 40E4                       STA     @IF1    ;SLOSE
  952	  0DED    CD 0F32                       CALL    STOP
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-17


  953	  0DF0    C3 0124                       JMP     CRLF    ;OK
  954	                                
  955	                                ; CHECK SUM ?
  956	  0DF3    48                    CHECK:  MOV     C,B
  957	  0DF4    CD 0E05                       CALL    RICH
  958	  0DF7    B9                            CMP     C
  959	  0DF8    C2 0FF5                       JNZ     ERSTP
  960	  0DFB    C9                            RET
  961	                                ;
  962	  0DFC    CD 0E05               RADR@:  CALL    RICH
  963	  0DFF    6F                            MOV     L,A
  964	  0E00    CD 0E05                       CALL    RICH    ;HL
  965	  0E03    67                            MOV     H,A
  966	  0E04    C9                            RET
  967	                                ;
  968	  0E05    CD 0106               RICH:   CALL    RI      ;READ & SUM
  969	  0E08    DA 0FF5                       JC      ERSTP
  970	  0E0B    F5                            PUSH    PSW
  971	  0E0C    80                            ADD     B
  972	  0E0D    47                            MOV     B,A
  973	  0E0E    F1                            POP     PSW
  974	  0E0F    C9                            RET
  975	                                ;
  976	                                ; SAVE BINARY DATA TO TAPE
  977	                                ;
  978	  0E10    0E 02                 SAVE:   MVI     C,2
  979	  0E12    CD 0127                       CALL    EXPR    ;FROM TO
  980	  0E15    3A 40E6                       LDA     @OF1
  981	  0E18    B7                            ORA     A
  982	  0E19    CC 0A95                       CZ      OPEN
  983	  0E1C    3E 42                         MVI     A,'B'   ;BINAR
  984	  0E1E    32 40F0                       STA     BOUT-1
  985	  0E21    CD 0A61                       CALL    STARW
  986	  0E24    3E 50                         MVI     A,80    ; 800MS
  987	  0E26    CD 0F98                       CALL    TIME
  988	  0E29    0E 3C                         MVI     C,'<'   ;START BYTE
  989	  0E2B    CD 0E5F                       CALL    POCH
  990	  0E2E    06 00                         MVI     B,0     ;ADR-SUM
  991	  0E30    E1                            POP     H       ;START
  992	  0E31    D1                            POP     D       ;LAST
  993	  0E32    CD 0E5A                       CALL    PADR@
  994	  0E35    EB                            XCHG
  995	  0E36    CD 0E5A                       CALL    PADR@
  996	  0E39    0E 3E                         MVI     C,'>'
  997	  0E3B    CD 0E5F                       CALL    POCH
  998	  0E3E    48                            MOV     C,B     ;SUM OF ADR.
  999	  0E3F    CD 0E5F                       CALL    POCH
 1000	                                ;
 1001	  0E42    06 00                         MVI     B,0     ;DATA-SUM
 1002	  0E44    4E                    SAV1:   MOV     C,M
 1003	  0E45    CD 0E5F                       CALL    POCH
 1004	  0E48    CD 0136                       CALL    HILO
 1005	  0E4B    D2 0E44                       JNC     SAV1
 1006	  0E4E    48                            MOV     C,B     ;SUM
 1007	  0E4F    CD 0E5F                       CALL    POCH
 1008	  0E52    0E 1A                         MVI     C,SUBS
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-18


 1009	  0E54    CD 0E5F                       CALL    POCH    ;END MARK
 1010	  0E57    C3 0B0D                       JMP     CLOSE
 1011	                                ;
 1012	  0E5A    4D                    PADR@:  MOV     C,L
 1013	  0E5B    CD 0E5F                       CALL    POCH
 1014	  0E5E    4C                            MOV     C,H
 1015	                                ;
 1016	  0E5F    79                    POCH:   MOV     A,C     ;PUNCHER AND SUM
 1017	  0E60    80                            ADD     B
 1018	  0E61    47                            MOV     B,A
 1019	  0E62    C3 010C                       JMP     PO
 1020	                                
 1021	                                ;
 1022	                                
 1023	  0E65    DB 12                 SINC:   IN      UDATA
 1024	  0E67    3E 01                 SINC1:  MVI     A,1     ; 10 MS
 1025	  0E69    CD 0F98                       CALL    TIME
 1026	  0E6C    CD 0C69                       CALL    BREAK
 1027	  0E6F    DB 11                         IN      USTAT
 1028	  0E71    07                            RLC
 1029	  0E72    DA 0E65                       JC      SINC    ;WAIT IF READY
 1030	  0E75    0D                            DCR     C
 1031	  0E76    C2 0E67                       JNZ     SINC1
 1032	  0E79    C9                            RET
 1033	                                ;
 1034	                                ; READ BLOCK (HL-BUF.ADR)
 1035	                                ; OUT (DE-BLOCK &FILE COUNTER; CY=1 ERROR)
 1036	                                ;
 1037	  0E7A    AF                    READF:  XRA     A       ;FIND MODE SET
 1038	  0E7B    32 40CA                       STA     FND
 1039	  0E7E                          READ:
 1040	  0E7E    C5                    RBLOK:  PUSH    B
 1041	  0E7F    E5                            PUSH    H
 1042	  0E80    CD 0A58                       CALL    START   ;MOTION
 1043	  0E83    0E 01                 RBLG:   MVI     C,1     ; WAIT 10MS NOT READY
 1044	  0E85    CD 0E65                       CALL    SINC    ; START BLOCK
 1045	  0E88    0E 03                 RBL2:   MVI     C,3     ; 3*PREAMBLE
 1046	  0E8A    CD 0F7D               RBL3:   CALL    SERIN
 1047	  0E8D    FE 10                         CPI     PREAM
 1048	  0E8F    C2 0E83                       JNZ     RBLG    ; GAP
 1049	  0E92    0D                            DCR     C
 1050	  0E93    C2 0E8A                       JNZ     RBL3
 1051	  0E96    3E 3A                         MVI     A,':'
 1052	  0E98    32 3800                       STA     TVBEG
 1053	  0E9B    01 0000                       LXI     B,(LENGHT+1) AND 0FFH   ;B=0,C=LENGHT
 1054	  0E9E    CD 0F73                       CALL    SERIM   ;READ DATA
 1055	  0EA1    0E 2A                         MVI     C,'*'
 1056	  0EA3    3A 40CA                       LDA     FND     ;FIND MODE?
 1057	  0EA6    B7                            ORA     A
 1058	  0EA7    C2 0EAC                       JNZ     RBL20   ;NO-READ
 1059	  0EAA    0E 20                         MVI     C,' '
 1060	  0EAC    21 3800               RBL20:  LXI     H,TVBEG
 1061	  0EAF    71                            MOV     M,C
 1062	  0EB0    23                            INX     H
 1063	  0EB1    36 22                         MVI     M,'"'
 1064	  0EB3    23                            INX     H
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-19


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


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


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


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


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


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


Macros:

Symbols:
40AB 	@BT             0FFB 	@ENDPR          40E4 	@IF1            
40E5 	@IF2            40E6 	@OF1            40E7 	@OF2            
40AC 	@PED            4000 	@R@             40EC 	@SFLG           
4092 	ACSAV           40C6 	ADRI            40C4 	ADRO            
0A66 	APPEND          012D 	ASHEX           0151 	ASSEX           
089B 	B0              089E 	B1              08B0 	B2              
4400 	BASIC           0FA8 	BB              0FB2 	BB1             
0FC8 	BB2             0FE3 	BB3             0896 	BCMD            
4094 	BCSAV           42F0 	BIEND           41F1 	BIN             
40C2 	BNI             40C0 	BNO             41F0 	BOEND           
40F1 	BOUT            409E 	BRAD            40A1 	BRAD2           
0C69 	BREAK           40C3 	BTI             0F8D 	BTIME           
40C1 	BTO             0CBD 	BUADR           40A5 	CADR            
003A 	CAN             40A7 	CHAR            0DF3 	CHECK           
0103 	CI              40CB 	CILOC           013F 	CINCR           
0B0D 	CLOSE           0DE9 	CLSTP           0B51 	CMPN0           
0B65 	CMPN1           0B7B 	CMPN2           0B45 	CMPNM           
0109 	CO              40CE 	COLOC           40E9 	COLUM           
0040 	COMLE           0000 	CPM             000D 	CR              
0124 	CRLF            40E0 	CSLOC           0112 	CSTS            
0130 	DADR            0133 	DBYT            007F 	DEL             
4096 	DESAV           0A70 	DIR             0A77 	DIR0            
0C9A 	DONE            40B1 	EADR            0C73 	ECHO            
0CA3 	ECHOCR          08E7 	EOF             0004 	EOT@            
0800 	EPROM           0CEA 	ERRD            0D0D 	ERRD0           
0D1C 	ERRD1           012A 	ERROR           0FF5 	ERSTP           
0003 	ETX             0C77 	ETX?            085B 	EXMON           
0127 	EXPR            000A 	EXSER           0AF4 	FIND            
0B2E 	FINO            40A8 	FLAG            40B5 	FNAME           
40CA 	FND             0A5A 	GAPO            0D4D 	GET0            
0D5C 	GET1            0D6A 	GET2            0D40 	GET@            
0D6D 	GETEX           09FF 	HBYTE           0F4D 	HEXC            
0F45 	HEXM1           0F37 	HEXMEM          0136 	HILO            
4098 	HLSAV           0009 	HT              0148 	HXASC           
0839 	ICMD            083E 	ICMD1           0B94 	INIT            
0818 	INITS           40A3 	INST2           40A0 	INSTR           
40ED 	IOBYT           0115 	IOCHK           011E 	IODEF           
0118 	IOSET           08D6 	J1              40B4 	JOIN            
08C7 	JUMP            40A4 	LASTC           0A03 	LBYTE           
08FE 	LEAD            00FF 	LENGHT          000A 	LF              
40DD 	LILOC           40A9 	LIMIT           40E8 	LINE            
0DB2 	LO1             0DD9 	LO2             0DA7 	LOAD            
0400 	LSYSR           40EE 	MEMTOP          0A14 	MICOS           
40E3 	MODE            0100 	MONIT           0A4F 	MOTA            
0A0B 	MREAD           4090 	MSTAK           000B 	NAMLE           
0139 	NEXT            0D36 	NUFIL           0C5A 	NULBF           
08FE 	NULL            084A 	OCMD            084F 	OCMD1           
0B82 	OK?             0AB1 	OPE01           0AC5 	OPE1            
0AC2 	OPE20           0ABC 	OPE30           0AD8 	OPE50           
0A95 	OPEN            40D7 	P1LOC           40DA 	P2LOC           
0E5A 	PADR@           09D5 	PBEG            40C8 	PBITM           
09F2 	PBYTE           08BC 	PCMD            409A 	PCSAV           
'MONITOR PLUS, MIKOS V4.0F - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	S-1


4400 	PEDIT           0C20 	PHDR            0C80 	PLAY            
010C 	PO              0E5F 	POCH            0010 	PREAM           
0C29 	PTP?            0C30 	PTR?            0D71 	PUT@            
0DA1 	PUTEX           40D1 	R1LOC           40D4 	R2LOC           
0DFC 	RADR@           0E88 	RBL2            0EAC 	RBL20           
0E8A 	RBL3            0EB6 	RBL33           0EE2 	RBL5            
0E83 	RBLG            0E7E 	RBLOK           09B2 	RBYTE           
0E7E 	READ            0909 	READ@           0E7A 	READF           
0C88 	RECO            0C8E 	RECOR           090D 	RED1            
093C 	RED2            095C 	RED3            090F 	REDC0           
0911 	REDC1           0927 	REDC2           0953 	REDER           
40EA 	RESL            0106 	RI              0CC9 	RIB             
0CE1 	RIB1            0CE3 	RIB2            0E05 	RICH            
0BE8 	RNAM1           0C03 	RNAM10          0C13 	RNAM2           
0BE7 	RNAME           4000 	RST1            40AF 	SADR            
0E44 	SAV1            0E10 	SAVE            0CAF 	SEAR1           
0CAC 	SEARCH          0F73 	SERIM           0F7D 	SERIN           
0F69 	SERO            0F57 	SEROM           0F61 	SEROP           
0F63 	SEROUT          0E65 	SINC            0E67 	SINC1           
0001 	SOH             013C 	SPACE           409C 	SPSAV           
0A58 	START           0A61 	STARW           0F32 	STOP            
001A 	SUBS            40B3 	SUM             08B4 	TCMD            
09C9 	TERM            0142 	TEXT            0F98 	TIME            
0F99 	TIME1           0F9C 	TIME2           4C00 	TRACER          
3800 	TVBEG           0C3E 	TXIMM           0C4E 	TXNAM           
40AD 	UADR            40EB 	UBYTE           0012 	UDATA           
0010 	UMODE           0013 	USER            0011 	USTAT           
0D25 	WOB             097F 	WR1             0994 	WR2             
0997 	WR3             09A0 	WR4             0EE6 	WRBLO           
0977 	WRITE           0BD0 	WRN1            0BB7 	WRNAM           
42F0 	WRNM            



No Fatal error(s)



@BT	  168	 1291#
@ENDPR	 1257#
@IF1	  122	  536	  864	  951	 1326#
@IF2	 1327#
@OF1	  132	  487	  521	  541	  548	  892	  980	 1328#
@OF2	 1329#
@PED	  192	 1292#
@R@	   13#	 1260	 1270	 1351	 1356
@SFLG	 1334#
ACSAV	 1275#
ADRI	  867	  872	 1083	 1307#
ADRO	  897	  900	 1123	 1306#
APPEND	  426	  461#
ASHEX	   55#	  346	  353
ASSEX	   57#	  120	  130
B0	  168#	  188
B1	  169#	  193
B2	  174	  181#
BASIC	   19#	  167
BB	  424	 1221#
BB1	 1225#	 1231
BB2	 1233#	 1237
BB3	 1247#	 1250
BCMD	  157	  166#
BCSAV	 1276#
BIEND	  870	 1347#
BIN	  590	  793	  804	  830	  836	  876	  926	 1085	 1346#
BNI	  533	  801	  803	  852	  855	 1304#
BNO	  462	  515	  619	  841	  843	 1302#
BOEND	  902	 1343#
BOUT	  505	  545	  729	  791	  845	  904	  984	 1126	 1342#
BRAD	 1282#
BRAD2	 1284#
BREAK	  739#	 1026	 1171	 1186
BTI	 1305#
BTIME	 1100	 1199#
BTO	 1303#
BUADR	  584	  781	  789#
CADR	 1287#
CAN	   81#	  506	  593	  620	  812
CHAR	 1288#
CHECK	  942	  948	  956#
CI	   38#	  653	  741
CILOC	 1314#
CINCR	   42#	  745
CLOSE	   96	  434	  540#	  912	 1010
CLSTP	  749	  950#	 1255
CMPN0	  571#	  580

CMPN1	  573	  583#
CMPN2	  591	  595#
CMPNM	  503	  504	  530	  566#	  567	  577	  594	  596
CO	   40#	  281	  421	  479	  674	  711	  783	 1227	 1234
COLOC	 1315#
COLUM	 1331#
COMLE	   62#	  631	  683
CPM	    8#	   12
CR	   64#	  369	  377	  491	  518	  657	  722	  761	 1236
CRLF	   47#	  305	  475	  648	  658	  677	  681	  771	  835	  953
CSLOC	 1321#
CSTS	   37#	  739
DADR	   46#	  282
DBYT	   45#	  477	  481
DEL	   66#	  659
DESAV	 1277#
DIR	  428	  468#
DIR0	  471#	  474	  482
DONE	  446	  756	  766#
EADR	  198	  935	 1295#
ECHO	  603	  745#	  769	  822
ECHOCR	  422	  769#
EOF	  149	  220#
EOT@	   80#	  473	  499	  509	  544	  877
EPROM	   15#	   88
ERRD	  806	  808	  817#	  832
ERRD0	  830#	  834
ERRD1	  824	  835#
ERROR	   54#	  162	  171	  176	  203	  213	  412	  489	  543	 1256
ERSTP	  283	  932	  941	  959	  969	 1255#
ETX	   67#	  655	  747
ETX?	  742	  747#
EXMON	   93	  139#
EXPR	   44#	  221	  246	  304	  979	 1222
EXSER	 1335#
FIND	   94	  436	  527#	  866	  924
FINO	  495	  529	  554#
FLAG	 1289#
FNAME	  556	  568	 1301#
FND	  105	 1038	 1056	 1077	 1309#
GAPO	  450#	  457
GET0	  868#	  880
GET1	  873	  876#
GET2	  878	  881#
GET@	  124	  861#
GETEX	  875	  883#
HBYTE	  391	  400#
HEXC	 1141	 1143	 1152#
HEXM1	 1145#	 1148

HEXMEM	 1073	 1120	 1136#
HILO	   48#	  209	  946	 1004	 1249
HLSAV	 1278#
HT	   68#	  365
HXASC	   56#	  405	 1153
ICMD	  119#	  151
ICMD1	  113	  121#
INIT	  430	  608#
INITS	   92	  103#
INST2	 1285#
INSTR	 1283#
IOBYT	 1336#
IOCHK	   51#	  697
IODEF	   43#	  125	  135
IOSET	   53#	  106
J1	  206#	  210
JOIN	  461	  469	  554	  789	 1300#
JUMP	  145	  198#
LASTC	 1286#
LBYTE	  394	  404#
LEAD	  236#	  239
LENGHT	   60#	  731	 1053	 1104
LF	   65#	  379	  491	  518	  722	  761
LILOC	 1320#
LIMIT	 1290#
LINE	 1330#
LO1	  928#	  930
LO2	  944#	  947
LOAD	   97	  440	  924#
LSYSR	   16#
MEMTOP	 1337#
MICOS	   91	  161	  419#	  656
MODE	  907	 1325#	 1335
MONIT	   14#	   37	   38	   39	   40	   41	   42	   43	   44	   45	   46	   47
	   48	   49	   50	   51	   52	   53	   54	   55	   56	   57
MOTA	  445#
MREAD	  250	  345	  352	  411#
MSTAK	 1274#
NAMLE	   61#	  558	  569	  635	 1065	 1107
NEXT	   49#	  750
NUFIL	  807	  833	  852#
NULBF	  626	  729#
NULL	  147	  235#
OCMD	  129#	  153
OCMD1	  114	  131#
OK?	  501	  595	  599#
OPE01	  497#	  500
OPE1	  496	  504#
OPE20	  498	  503#

OPE30	  501#
OPE50	  464	  502	  507	  511#
OPEN	   95	  432	  486#	  895	  982
P1LOC	 1318#
P2LOC	 1319#
PADR@	  993	  995	 1012#
PBEG	  226	  330	  376#
PBITM	 1308#
PBYTE	  229	  333	  338	  384	  386	  388	  390#
PCMD	  155	  190#
PCSAV	 1279#
PEDIT	   18#	  191
PHDR	  472	  586	  681#
PLAY	  470	  560	  753#	  829	 1223
PO	   41#	  231	  237	  378	  380	  382	  406	 1019
POCH	  989	  997	  999	 1003	 1007	 1009	 1013	 1016#
PREAM	   69#	 1047	 1166
PTP?	  486	  540	  690#
PTR?	  527	  695#
PUT@	  134	  889#
PUTEX	  906	  909	  913#
R1LOC	 1316#
R2LOC	 1317#
RADR@	  934	  937	  962#
RBL2	 1045#
RBL20	 1058	 1060#
RBL3	 1046#	 1050
RBL33	 1066#
RBL5	 1088#
RBLG	 1043#	 1048
RBLOK	 1040#
RBYTE	  260	  263	  265	  269	  270	  278	  285	  287	  289	  290	  345#
READ	  805	 1039#
READ@	  143	  245#
READF	  784	  831	 1037#
RECO	  756#
RECOR	  516	  612	  760#
RED1	  247#	  279
RED2	  270#	  277
RED3	  261	  284#
REDC0	  249#	  252
REDC1	  250#	  257
REDC2	  255	  259#
REDER	  258	  274	  281#	  291
RESL	 1332#
RI	   39#	  411	  968
RIB	  537	  799#	  879
RIB1	  809#	  837
RIB2	  786	  811#

RICH	  928	  939	  944	  957	  962	  964	  968#
RNAM1	  652#	  665	  670	  676
RNAM10	  660	  663#
RNAM2	  662	  671#
RNAME	  559	  633	  651#
RST1	 1264#
SADR	  200	  938	 1294#
SAV1	 1002#	 1005
SAVE	   98	  438	  978#
SEAR1	  782#	  785
SEARCH	  471	  497	  508	  566	  781#
SERIM	 1054	 1066	 1179#	 1183
SERIN	 1046	 1071	 1074	 1079	 1179	 1186#	 1189	 1228	 1232	 1235	 1238	 1240
	 1247	 1252
SERO	 1172#	 1174
SEROM	 1105	 1108	 1159#	 1163
SEROP	 1101	 1102	 1103	 1116	 1166#
SEROUT	 1111	 1113	 1115	 1118	 1161	 1168#
SINC	 1023#	 1029	 1044	 1225
SINC1	 1024#	 1031
SOH	   79#	  520	  535	  814
SPACE	   52#
SPSAV	 1280#
START	  445	  449#	  608	  757	  927	 1042
STARW	  456#	  549	  985	 1098
STOP	  419	  447	  552	  613	  627	  817	  952	 1087	 1129#	 1254
SUBS	   70#	  230	  881	  911	 1008
SUM	  211	  949	 1296#
TCMD	  159	  186#
TERM	  251	  363#	  574
TEXT	   50#	  684
TIME	  551	  987	 1025	 1125	 1203	 1208#
TIME1	 1209#	 1215
TIME2	 1210#	 1213
TRACER	   20#	  187
TVBEG	   17#	 1052	 1060	 1119
TXIMM	  107	  490	  517	  599	  609	  614	  668	  707#	  715	  719	  753	  760
	  766	  818	  825
TXNAM	  555	  625	  719#
UADR	 1293#
UBYTE	 1333#
UDATA	   74#	 1023	 1176	 1190
UMODE	   76#	  450	 1130
USER	   73#
USTAT	   75#	  452	 1027	 1172	 1187
WOB	  546	  646	  840#	  903
WR1	  308#	  340
WR2	  319	  322#
WR3	  321	  324#

WR4	  331#	  335
WRBLO	  846	 1095#
WRITE	  141	  304#
WRN1	  637#	  645
WRNAM	  522	  624#
WRNM	  636	 1106	 1349#

ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | SP 830 | PCS 1-QR6000


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


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