Ú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.0D


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


    1	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2	                                TITLE 'MONITOR PLUS, MIKOS V4.0D - SAPI 1'
    3	                                ;       30.7.1985       (P+S)
    4	                                ; V4.0H ZPETNE UPRAVENA NA V4.0D
    5	                                ;       4.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.0D - 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 0AF5                       JMP     FIND
   95	  080C    C3 0A95                       JMP     OPEN
   96	  080F    C3 0B0E                       JMP     CLOSE
   97	  0812    C3 0D9D                       JMP     LOAD
   98	  0815    C3 0E06                       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 0C3F                       CALL    TXIMM   ;OHLASENI
  108	  0824    4D 49 4B 4F                   DB      'MIKOS-1 V4.0D '
  109	  0828    53 2D 31 20           
  110	  082C    56 34 2E 30           
  111	  0830    44 20                 
  112	  0832    AB                            DB      '+' OR 80H
'MONITOR PLUS, MIKOS V4.0D - 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 0D3E                       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 0D6F                       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.0D - 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.0D - 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.0D - 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 012A                       JMP     ERROR
  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.0D - 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.0D - 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 0F29               MICOS:  CALL    STOP
  420	  0A17    0E 5F                         MVI     C,'_'
  421	  0A19    CD 0109                       CALL    CO
  422	  0A1C    CD 0CA4                       CALL    ECHOCR
  423	  0A1F    FE 42                         CPI     'B'
  424	  0A21    CA 0F9F                       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 0B95                       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 0B0E                       JZ      CLOSE   ;CLOSE OUTPUT
  435	  0A3D    FE 46                         CPI     'F'
  436	  0A3F    CA 0AF5                       JZ      FIND    ;FIND INPUT
  437	  0A42    FE 53                         CPI     'S'
  438	  0A44    CA 0E06                       JZ      SAVE    ;SAVE
  439	  0A47    FE 4C                         CPI     'L'
  440	  0A49    CA 0D9D                       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 0C9B                       CALL    DONE
  447	  0A55    C3 0F29                       JMP     STOP
  448	                                ;
'MONITOR PLUS, MIKOS V4.0D - 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 FF                         MVI     A,0FFH
  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 0C81                       CALL    PLAY
  471	  0A77    CD 0CAD               DIR0:   CALL    SEARCH  ; HEADER
  472	  0A7A    CC 0C21                       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 0C2A               OPEN:   CALL    PTP?
  487	  0A98    3A 40E6                       LDA     @OF1    ;DOUBLE ?
  488	  0A9B    B7                            ORA     A
  489	  0A9C    C2 012A                       JNZ     ERROR
  490	  0A9F    CD 0C3F                       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 0B2F                       CALL    FINO
  496	  0AAE    C2 0AC5                       JNZ     OPE1
  497	  0AB1    CD 0CAD               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 0B83               OPE30:  CALL    OK?
  502	  0ABF    CA 0AD8                       JZ      OPE50   ;OPEN NOW
  503	  0AC2    CD 0B49               OPE20:  CALL    CMPNM + 3       ; OK ?
  504	  0AC5    C4 0B46               OPE1:   CNZ     CMPNM
'MONITOR PLUS, MIKOS V4.0D - 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 0CAD                       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    27                            DAA
  514	  0ADB    67                            MOV     H,A
  515	  0ADC    2E 00                         MVI     L,0
  516	  0ADE    22 40C0                       SHLD    BNO     ;FILE&BLOCK NUMBER
  517	  0AE1    CD 0C8F                       CALL    RECOR
  518	  0AE4    CD 0C3F                       CALL    TXIMM
  519	  0AE7    0D 0A                         DB      CR,LF
  520	  0AE9    4E 45 57 A0                   DB      'NEW',' ' OR 80H
  521	  0AED    3E 01                         MVI     A,SOH
  522	  0AEF    32 40E6                       STA     @OF1
  523	  0AF2    C3 0BB8                       JMP     WRNAM
  524	                                ;
  525	                                
  526	                                ;----------------------------------------
  527	                                ;  FIND INPUT FILE AND OPEN FOR READ
  528	  0AF5    CD 0C31               FIND:   CALL    PTR?
  529	  0AF8    AF                            XRA     A       ; FIND ONPUT FILE
  530	  0AF9    CD 0B2F                       CALL    FINO
  531	  0AFC    CD 0B46                       CALL    CMPNM
  532	  0AFF    1E 01                         MVI     E,1
  533	  0B01    EB                            XCHG
  534	  0B02    22 40C2                       SHLD    BNI     ;NUMBER FILE
  535	  0B05    EB                            XCHG
  536	  0B06    3E 01                         MVI     A,SOH
  537	  0B08    32 40E4                       STA     @IF1
  538	  0B0B    C3 0CCA                       JMP     RIB
  539	                                ;---------------------------
  540	                                ;CLOSE OUTPUT FILE
  541	  0B0E    CD 0C2A               CLOSE:  CALL    PTP?
  542	  0B11    3A 40E6                       LDA     @OF1    ;NO OPEN
  543	  0B14    B7                            ORA     A
  544	  0B15    CA 012A                       JZ      ERROR
  545	  0B18    3E 04                         MVI     A,EOT@  ;CLOSE BLOK
  546	  0B1A    32 40F0                       STA     BOUT-1
  547	  0B1D    CD 0D23                       CALL    WOB
  548	  0B20    AF                            XRA     A
  549	  0B21    32 40E6                       STA     @OF1    ;CLOSE
  550	  0B24    CD 0A61                       CALL    STARW   ;GAP 2*
  551	  0B27    3E 50                         MVI     A,80    ; BOOMS
  552	  0B29    CD 0F8F                       CALL    TIME
  553	  0B2C    C3 0F29                       JMP     STOP
  554	                                ;---------------------
  555	  0B2F    32 40B4               FINO:   STA     JOIN    ;I/O FLAG
  556	  0B32    CD 0C4F                       CALL    TXNAM
  557	  0B35    21 40B5                       LXI     H,FNAME
  558	  0B38    E5                            PUSH    H
  559	  0B39    06 0B                         MVI     B,NAMLE
  560	  0B3B    CD 0BE8                       CALL    RNAME   ;READ
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-10


  561	  0B3E    CD 0C81                       CALL    PLAY
  562	  0B41    E1                            POP     H
  563	  0B42    7E                            MOV     A,M
  564	  0B43    FE 2A                         CPI     '*'     ;WILDCARDS ?
  565	  0B45    C9                            RET
  566	                                
  567	  0B46    CD 0CAD               CMPNM:  CALL    SEARCH  ;COMPARE NAME
  568	  0B49    C2 0B46                       JNZ     CMPNM   ;NO HDR
  569	  0B4C    01 40B5                       LXI     B,FNAME
  570	  0B4F    1E 0B                         MVI     E,NAMLE
  571	  0B51    23                            INX     H       ;NAME
  572	  0B52    0A                    CMPN0:  LDAX    B
  573	  0B53    FE 2A                         CPI     '*'
  574	  0B55    CA 0B66                       JZ      CMPN1
  575	  0B58    CD 09C9                       CALL    TERM    ;END OF NAME
  576	  0B5B    C8                            RZ
  577	  0B5C    BE                            CMP     M
  578	  0B5D    C2 0B46                       JNZ     CMPNM
  579	  0B60    03                            INX     B
  580	  0B61    1D                            DCR     E
  581	  0B62    C2 0B51                       JNZ     CMPN0 - 1
  582	  0B65    C9                            RET             ;O.K
  583	                                ;
  584	  0B66    D5                    CMPN1:  PUSH    D
  585	  0B67    CD 0CBE                       CALL    BUADR
  586	  0B6A    E5                            PUSH    H
  587	  0B6B    CD 0C21                       CALL    PHDR
  588	  0B6E    E1                            POP     H
  589	  0B6F    D1                            POP     D
  590	  0B70    7C                            MOV     A,H     ; CTENI NEBO ZAPIS
  591	  0B71    FE 41                         CPI     (BIN-1) SHR 8
  592	  0B73    C2 0B7C                       JNZ     CMPN2
  593	  0B76    7E                            MOV     A,M
  594	  0B77    FE 3A                         CPI     CAN     ; ':'... VOLUME BLOK
  595	  0B79    CA 0B46                       JZ      CMPNM
  596	  0B7C    CD 0B83               CMPN2:  CALL    OK?
  597	  0B7F    C2 0B46                       JNZ     CMPNM
  598	  0B82    C9                            RET
  599	                                ;
  600	  0B83    CD 0C3F               OK?:    CALL    TXIMM
  601	  0B86    07                            DB      7
  602	  0B87    2D 2D 28 59                   DB      '--(Y/N)','?' OR 80H
  603	  0B8B    2F 4E 29 BF           
  604	  0B8F    CD 0C74                       CALL    ECHO
  605	  0B92    FE 59                         CPI     'Y'
  606	  0B94    C9                            RET
  607	                                ;--------------------
  608	                                ;INIT NEW CASSETTE
  609	  0B95    CD 0A58               INIT:   CALL    START
  610	  0B98    CD 0C3F                       CALL    TXIMM
  611	  0B9B    42 4F 54                      DB      'BOT'
  612	  0B9E    A0                            DB      ' ' OR 80H
  613	  0B9F    CD 0C8F                       CALL    RECOR
  614	  0BA2    CD 0F29                       CALL    STOP
  615	  0BA5    CD 0C3F                       CALL    TXIMM
  616	  0BA8    20 56 4F 4C                   DB      ' VOLUME'
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-11


  617	  0BAC    55 4D 45              
  618	  0BAF    A0                            DB      ' ' OR 80H
  619	  0BB0    21 0000                       LXI     H,0     ;0..FILE NUMBER
  620	  0BB3    22 40C0                       SHLD    BNO
  621	  0BB6    3E 3A                         MVI     A,CAN
  622	                                
  623	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  624	                                ;  FILE NAME LEVEL
  625	  0BB8    F5                    WRNAM:  PUSH    PSW     ;HDR-LABEL
  626	  0BB9    CD 0C4F                       CALL    TXNAM
  627	  0BBC    CD 0C5B                       CALL    NULBF
  628	  0BBF    CD 0F29                       CALL    STOP
  629	  0BC2    F1                            POP     PSW
  630	  0BC3    77                            MOV     M,A
  631	  0BC4    23                            INX     H
  632	  0BC5    06 40                         MVI     B,COMLE ;NAME+COMMENT
  633	  0BC7    E5                            PUSH    H
  634	  0BC8    CD 0BE8                       CALL    RNAME
  635	  0BCB    E1                            POP     H
  636	  0BCC    06 0B                         MVI     B,NAMLE
  637	  0BCE    11 42F0                       LXI     D,WRNM  ;OUTPUT AREA
  638	  0BD1    7E                    WRN1:   MOV     A,M
  639	  0BD2    E6 3F                         ANI     3FH
  640	  0BD4    C2 0BD9                       JNZ     $+5
  641	  0BD7    3E 20                         MVI     A,' '   ;BLANK
  642	  0BD9    12                            STAX    D
  643	  0BDA    23                            INX     H
  644	  0BDB    13                            INX     D
  645	  0BDC    05                            DCR     B
  646	  0BDD    C2 0BD1                       JNZ     WRN1
  647	  0BE0    CD 0D23                       CALL    WOB
  648	  0BE3    36 41                         MVI     M,'A'   ;DATA TYP
  649	  0BE5    C3 0124                       JMP     CRLF
  650	                                ; READ NAME <HL>..ADR,<B>..DELKA
  651	                                ;-----------------------------------
  652	  0BE8    5D                    RNAME:  MOV     E,L     ;LOW-FIRST ADR
  653	  0BE9    36 20                 RNAM1:  MVI     M,' '
  654	  0BEB    CD 0103                       CALL    CI
  655	  0BEE    E6 7F                         ANI     7FH
  656	  0BF0    FE 03                         CPI     ETX
  657	  0BF2    CA 0A14                       JZ      MICOS
  658	  0BF5    FE 0D                         CPI     CR
  659	  0BF7    CA 0124                       JZ      CRLF
  660	  0BFA    FE 7F                         CPI     DEL
  661	  0BFC    CA 0C04                       JZ      RNAM10
  662	  0BFF    BE                            CMP     M       ; ???? CPI     08H     ;BS ????
  663	  0C00    08                            DB      08H
  664	  0C01    C2 0C14                       JNZ     RNAM2
  665	  0C04    7B                    RNAM10: MOV     A,E
  666	  0C05    BD                            CMP     L       ;FIRST
  667	  0C06    CA 0BE9                       JZ      RNAM1
  668	  0C09    2B                            DCX     H
  669	  0C0A    04                            INR     B
  670	  0C0B    CD 0C3F                       CALL    TXIMM   ;DELETE
  671	  0C0E    08 20 88                      DB      08,20H,88H
  672	  0C11    C3 0BE9                       JMP     RNAM1
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-12


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


  729	                                ;NULL OUTPUT BUFFER
  730	                                ;------------------
  731	  0C5B    21 40F0               NULBF:  LXI     H,BOUT-1
  732	  0C5E    E5                            PUSH    H
  733	  0C5F    3E FF                         MVI     A,LENGHT
  734	  0C61    23                            INX     H
  735	  0C62    36 00                         MVI     M,0
  736	  0C64    3D                            DCR     A
  737	  0C65    C2 0C61                       JNZ     $-4
  738	  0C68    E1                            POP     H       ;(BLOCK TYP) ADRM
  739	  0C69    C9                            RET
  740	                                
  741	  0C6A    CD 0112               BREAK:  CALL    CSTS
  742	  0C6D    C8                            RZ
  743	  0C6E    CD 0103                       CALL    CI
  744	  0C71    C3 0C78                       JMP     ETX?
  745	                                
  746	                                ;CTI A VYPIS ZNAK
  747	  0C74    CD 013F               ECHO:   CALL    CINCR
  748	  0C77    C8                            RZ
  749	  0C78    FE 03                 ETX?:   CPI     ETX
  750	  0C7A    C0                            RNZ
  751	  0C7B    CD 0F29                       CALL    STOP
  752	  0C7E    C3 0139                       JMP     NEXT    ;BREAK=>C
  753	                                
  754	                                ;DISPLAY "PLAY"
  755	  0C81    CD 0C3F               PLAY:   CALL    TXIMM
  756	  0C84    50 4C 41 59                   DB      'PLAY'
  757	  0C88    A0                            DB      ' ' OR 80H
  758	  0C89    CD 0C9B               RECO:   CALL    DONE
  759	  0C8C    C3 0A58                       JMP     START
  760	                                
  761	                                ;DISPLAY "RECORD"
  762	  0C8F    CD 0C3F               RECOR:  CALL    TXIMM
  763	  0C92    0D 0A                         DB      CR,LF
  764	  0C94    52 45 43 4F                   DB      'RECORD'
  765	  0C98    52 44                 
  766	  0C9A    A0                            DB      ' ' OR 80H
  767	                                ;
  768	  0C9B    CD 0C3F               DONE:   CALL    TXIMM
  769	  0C9E    20 44 4F 4E                   DB      ' DONE','?' OR 80H
  770	  0CA2    45 BF                 
  771	  0CA4    CD 0C74               ECHOCR: CALL    ECHO
  772	  0CA7    F5                            PUSH    PSW
  773	  0CA8    CD 0124                       CALL    CRLF
  774	  0CAB    F1                            POP     PSW
  775	  0CAC    C9                            RET
  776	                                
  777	                                
  778	                                ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  779	                                ;  FILE OPERATIONS LEVEL
  780	                                ;
  781	                                ;SERACH BLOCK IN TAPE
  782	                                ;--------------------
  783	  0CAD    CD 0CBE               SEARCH: CALL    BUADR
  784	  0CB0    0E 23                 SEAR1:  MVI     C,'#'   ;ERROR
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-14


  785	  0CB2    DC 0109                       CC      CO
  786	  0CB5    CD 0E70                       CALL    READF
  787	  0CB8    DA 0CB0                       JC      SEAR1   ; SERACH ERROR
  788	  0CBB    C3 0CE4                       JMP     RIB2
  789	                                ;
  790	                                ; BUFFER ADR
  791	  0CBE    3A 40B4               BUADR:  LDA     JOIN    ;INPUT OR OUTPUT ?
  792	  0CC1    B7                            ORA     A
  793	  0CC2    21 40F0                       LXI     H,BOUT-1
  794	  0CC5    C0                            RNZ             ;OUTPUT
  795	  0CC6    21 41F0                       LXI     H,BIN-1
  796	  0CC9    C9                            RET
  797	                                ;
  798	                                
  799	                                ; READ INPUT BUFFER
  800	                                ;--------------------
  801	  0CCA    D5                    RIB:    PUSH    D
  802	  0CCB    C5                            PUSH    B
  803	  0CCC    2A 40C2                       LHLD    BNI
  804	  0CCF    23                            INX     H
  805	  0CD0    22 40C2                       SHLD    BNI
  806	  0CD3    21 41F0                       LXI     H,BIN-1
  807	  0CD6    CD 0E74                       CALL    READ
  808	  0CD9    DA 0CEB                       JC      ERRD    ;ERROR
  809	  0CDC    CD 0D34                       CALL    NUFIL   ; NUMBER O.K. ?
  810	  0CDF    C2 0CEB                       JNZ     ERRD    ; BLOCK ERROR
  811	  0CE2    C1                    RIB1:   POP     B
  812	  0CE3    D1                            POP     D
  813	  0CE4    7E                    RIB2:   MOV     A,M     ;BLOCK  TYP
  814	  0CE5    FE 3A                         CPI     CAN     ;VOLUME NAME
  815	  0CE7    C8                            RZ
  816	  0CE8    FE 01                         CPI     SOH     ;FILE NAME
  817	  0CEA    C9                            RET             ;(HL)..BLOCK TYP
  818	                                ;ERROR READ
  819	  0CEB    CD 0C3F               ERRD:   CALL    TXIMM
  820	  0CEE    20 45 52 52                   DB      ' ERROR/N'
  821	  0CF2    4F 52 2F 4E           
  822	  0CF6    BF                            DB      '?' OR 80H
  823	  0CF7    CD 0C74                       CALL    ECHO    ;CONTINUE
  824	  0CFA    FE 4E                         CPI     'N'
  825	  0CFC    CA 0D1A                       JZ      ERRD1
  826	  0CFF    CD 0C3F                       CALL    TXIMM
  827	  0D02    20 42 41 43                   DB      ' BACK'
  828	  0D06    4B                    
  829	  0D07    A0                            DB      ' ' OR 80H
  830	  0D08    CD 0C81                       CALL    PLAY
  831	  0D0B    21 41F0               ERRD0:  LXI     H,BIN-1 ;INPUT BUFFER
  832	  0D0E    CD 0E70                       CALL    READF
  833	  0D11    DA 0CEB                       JC      ERRD    ;NEXT ERROR
  834	  0D14    CD 0D34                       CALL    NUFIL
  835	  0D17    C2 0D0B                       JNZ     ERRD0   ;NEXT BLOCK
  836	  0D1A    CD 0124               ERRD1:  CALL    CRLF
  837	  0D1D    21 41F0                       LXI     H,BIN-1
  838	  0D20    C3 0CE2                       JMP     RIB1
  839	                                
  840	                                ;WRITE OUTPUT BUFFER
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-15


  841	  0D23    D5                    WOB:    PUSH    D
  842	  0D24    2A 40C0                       LHLD    BNO
  843	  0D27    23                            INX     H
  844	  0D28    22 40C0                       SHLD    BNO
  845	  0D2B    EB                            XCHG
  846	  0D2C    21 40F0                       LXI     H,BOUT-1
  847	  0D2F    CD 0EE3                       CALL    WRBLO
  848	  0D32    D1                            POP     D
  849	  0D33    C9                            RET
  850	                                ;
  851	                                ; NUMBER FILE O.K. ?
  852	                                ;
  853	  0D34    3A 40C2               NUFIL:  LDA     BNI
  854	  0D37    BB                            CMP     E
  855	  0D38    C0                            RNZ             ;NO
  856	  0D39    3A 40C3                       LDA     BNI+1
  857	  0D3C    BA                            CMP     D
  858	  0D3D    C9                            RET
  859	                                ;
  860	                                ;GET BYTE FROM CASSETTE
  861	                                ;----------------------
  862	  0D3E    C5                    GET@:   PUSH    B
  863	  0D3F    D5                            PUSH    D
  864	  0D40    E5                            PUSH    H
  865	  0D41    3A 40E4                       LDA     @IF1    ;WAS OPEN ?
  866	  0D44    B7                            ORA     A
  867	  0D45    CC 0AF5                       CZ      FIND    ;NO THEN FIND
  868	  0D48    2A 40C6                       LHLD    ADRI
  869	  0D4B    23                    GET0:   INX     H
  870	  0D4C    7D                            MOV     A,L     ;WAS EMPTY
  871	  0D4D    FE F0                         CPI     BIEND AND 0FFH
  872	  0D4F    7E                            MOV     A,M
  873	  0D50    22 40C6                       SHLD    ADRI
  874	  0D53    CA 0D5A                       JZ      GET1    ;<A>..BYTE
  875	  0D56    B7                            ORA     A       ;NCY
  876	  0D57    C3 0D6B                       JMP     GETEX
  877	  0D5A    3A 41F0               GET1:   LDA     BIN-1
  878	  0D5D    FE 04                         CPI     EOT@    ; "CLOSE" BLOK?
  879	  0D5F    CA 0D68                       JZ      GET2
  880	  0D62    CD 0CCA                       CALL    RIB
  881	  0D65    C2 0D4B                       JNZ     GET0    ;END OF FILE
  882	  0D68    3E 1A                 GET2:   MVI     A,SUBS
  883	  0D6A    37                            STC
  884	  0D6B    E1                    GETEX:  POP     H
  885	  0D6C    D1                            POP     D
  886	  0D6D    C1                            POP     B
  887	  0D6E    C9                            RET
  888	                                ;
  889	                                ;PUT BYTE TO CASSETTE
  890	  0D6F    C5                    PUT@:   PUSH    B
  891	  0D70    D5                            PUSH    D
  892	  0D71    E5                            PUSH    H
  893	  0D72    3A 40E6                       LDA     @OF1    ; WAS OPEN
  894	  0D75    B7                            ORA     A
  895	  0D76    C5                            PUSH    B
  896	  0D77    CC 0A95                       CZ      OPEN    ;IF NO THEN DO
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-16


  897	  0D7A    C1                            POP     B
  898	  0D7B    2A 40C4                       LHLD    ADRO
  899	  0D7E    23                            INX     H
  900	  0D7F    71                            MOV     M,C     ;SAVE
  901	  0D80    22 40C4                       SHLD    ADRO
  902	  0D83    7D                            MOV     A,L
  903	  0D84    FE EF                         CPI     (BOEND AND 0FFH) - 1
  904	  0D86    CC 0D23                       CZ      WOB     ;NEXT
  905	  0D89    3A 40F0                       LDA     BOUT-1
  906	  0D8C    FE 42                         CPI     'B'     ;BINAR DUMP?
  907	  0D8E    CA 0D97                       JZ      PUTEX
  908	  0D91    79                            MOV     A,C     ;CLOSE CHAR.?
  909	  0D92    FE 1A                         CPI     SUBS
  910	  0D94    CC 0B0E                       CZ      CLOSE
  911	  0D97    E1                    PUTEX:  POP     H
  912	  0D98    D1                            POP     D
  913	  0D99    C1                            POP     B
  914	  0D9A    79                            MOV     A,C
  915	  0D9B    B7                            ORA     A       ;NCY
  916	  0D9C    C9                            RET
  917	                                
  918	                                ;
  919	                                ;
  920	                                ; LOAD BINARY DATA FROM TAPE TO MEMORY
  921	                                ;
  922	  0D9D    CD 0AF5               LOAD:   CALL    FIND    ;OPEN FILE
  923	  0DA0    3E 42                         MVI     A,'B'   ;BINAR
  924	  0DA2    32 41F0                       STA     BIN-1
  925	  0DA5    CD 0A58                       CALL    START
  926	  0DA8    CD 0DFB               LO1:    CALL    RICH
  927	  0DAB    B7                            ORA     A       ; BLANK?
  928	  0DAC    CA 0DA8                       JZ      LO1
  929	  0DAF    D6 3C                         SUI     '<'
  930	  0DB1    C2 012A                       JNZ     ERROR
  931	  0DB4    47                            MOV     B,A     ;SUM
  932	  0DB5    CD 0DF2                       CALL    RADR@
  933	  0DB8    22 40B1                       SHLD    EADR    ;LAST
  934	  0DBB    EB                            XCHG
  935	  0DBC    CD 0DF2                       CALL    RADR@   ;LAST
  936	  0DBF    22 40AF                       SHLD    SADR    ; START ADR
  937	  0DC2    CD 0DFB                       CALL    RICH
  938	  0DC5    FE 3E                         CPI     '>'
  939	  0DC7    C2 012A                       JNZ     ERROR
  940	  0DCA    CD 0DE9                       CALL    CHECK
  941	  0DCD    06 00                         MVI     B,0     ;CLEAR
  942	  0DCF    CD 0DFB               LO2:    CALL    RICH
  943	  0DD2    77                            MOV     M,A
  944	  0DD3    CD 0136                       CALL    HILO
  945	  0DD6    D2 0DCF                       JNC     LO2
  946	  0DD9    CD 0DE9                       CALL    CHECK
  947	  0DDC    32 40B3                       STA     SUM
  948	  0DDF    AF                    CLSTP:  XRA     A
  949	  0DE0    32 40E4                       STA     @IF1    ;SLOSE
  950	  0DE3    CD 0F29                       CALL    STOP
  951	  0DE6    C3 0124                       JMP     CRLF    ;OK
  952	                                
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-17


  953	                                ; CHECK SUM ?
  954	  0DE9    48                    CHECK:  MOV     C,B
  955	  0DEA    CD 0DFB                       CALL    RICH
  956	  0DED    B9                            CMP     C
  957	  0DEE    C2 012A                       JNZ     ERROR
  958	  0DF1    C9                            RET
  959	                                ;
  960	  0DF2    CD 0DFB               RADR@:  CALL    RICH
  961	  0DF5    6F                            MOV     L,A
  962	  0DF6    CD 0DFB                       CALL    RICH    ;HL
  963	  0DF9    67                            MOV     H,A
  964	  0DFA    C9                            RET
  965	                                ;
  966	  0DFB    CD 0106               RICH:   CALL    RI      ;READ & SUM
  967	  0DFE    DA 012A                       JC      ERROR
  968	  0E01    F5                            PUSH    PSW
  969	  0E02    80                            ADD     B
  970	  0E03    47                            MOV     B,A
  971	  0E04    F1                            POP     PSW
  972	  0E05    C9                            RET
  973	                                ;
  974	                                ; SAVE BINARY DATA TO TAPE
  975	                                ;
  976	  0E06    0E 02                 SAVE:   MVI     C,2
  977	  0E08    CD 0127                       CALL    EXPR    ;FROM TO
  978	  0E0B    3A 40E6                       LDA     @OF1
  979	  0E0E    B7                            ORA     A
  980	  0E0F    CC 0A95                       CZ      OPEN
  981	  0E12    3E 42                         MVI     A,'B'   ;BINAR
  982	  0E14    32 40F0                       STA     BOUT-1
  983	  0E17    CD 0A61                       CALL    STARW
  984	  0E1A    3E 50                         MVI     A,80    ; 800MS
  985	  0E1C    CD 0F8F                       CALL    TIME
  986	  0E1F    0E 3C                         MVI     C,'<'   ;START BYTE
  987	  0E21    CD 0E55                       CALL    POCH
  988	  0E24    06 00                         MVI     B,0     ;ADR-SUM
  989	  0E26    E1                            POP     H       ;START
  990	  0E27    D1                            POP     D       ;LAST
  991	  0E28    CD 0E50                       CALL    PADR@
  992	  0E2B    EB                            XCHG
  993	  0E2C    CD 0E50                       CALL    PADR@
  994	  0E2F    0E 3E                         MVI     C,'>'
  995	  0E31    CD 0E55                       CALL    POCH
  996	  0E34    48                            MOV     C,B     ;SUM OF ADR.
  997	  0E35    CD 0E55                       CALL    POCH
  998	                                ;
  999	  0E38    06 00                         MVI     B,0     ;DATA-SUM
 1000	  0E3A    4E                    SAV1:   MOV     C,M
 1001	  0E3B    CD 0E55                       CALL    POCH
 1002	  0E3E    CD 0136                       CALL    HILO
 1003	  0E41    D2 0E3A                       JNC     SAV1
 1004	  0E44    48                            MOV     C,B     ;SUM
 1005	  0E45    CD 0E55                       CALL    POCH
 1006	  0E48    0E 1A                         MVI     C,SUBS
 1007	  0E4A    CD 0E55                       CALL    POCH    ;END MARK
 1008	  0E4D    C3 0B0E                       JMP     CLOSE
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-18


 1009	                                ;
 1010	  0E50    4D                    PADR@:  MOV     C,L
 1011	  0E51    CD 0E55                       CALL    POCH
 1012	  0E54    4C                            MOV     C,H
 1013	                                ;
 1014	  0E55    79                    POCH:   MOV     A,C     ;PUNCHER AND SUM
 1015	  0E56    80                            ADD     B
 1016	  0E57    47                            MOV     B,A
 1017	  0E58    C3 010C                       JMP     PO
 1018	                                
 1019	                                ;
 1020	                                
 1021	  0E5B    DB 12                 SINC:   IN      UDATA
 1022	  0E5D    3E 01                 SINC1:  MVI     A,1     ; 10 MS
 1023	  0E5F    CD 0F8F                       CALL    TIME
 1024	  0E62    CD 0C6A                       CALL    BREAK
 1025	  0E65    DB 11                         IN      USTAT
 1026	  0E67    07                            RLC
 1027	  0E68    DA 0E5B                       JC      SINC    ;WAIT IF READY
 1028	  0E6B    0D                            DCR     C
 1029	  0E6C    C2 0E5D                       JNZ     SINC1
 1030	  0E6F    C9                            RET
 1031	                                ;
 1032	                                ; READ BLOCK (HL-BUF.ADR)
 1033	                                ; OUT (DE-BLOCK &FILE COUNTER; CY=1 ERROR)
 1034	                                ;
 1035	  0E70    AF                    READF:  XRA     A       ;FIND MODE SET
 1036	  0E71    32 40CA                       STA     FND
 1037	  0E74                          READ:
 1038	  0E74    C5                    RBLOK:  PUSH    B
 1039	  0E75    E5                            PUSH    H
 1040	  0E76    CD 0A58                       CALL    START   ;MOTION
 1041	  0E79    0E 01                 RBLG:   MVI     C,1     ; WAIT 10MS NOT READY
 1042	  0E7B    CD 0E5B                       CALL    SINC    ; START BLOCK
 1043	  0E7E    0E 03                 RBL2:   MVI     C,3     ; 3*PREAMBLE
 1044	  0E80    CD 0F74               RBL3:   CALL    SERIN
 1045	  0E83    FE 10                         CPI     PREAM
 1046	  0E85    C2 0E79                       JNZ     RBLG    ; GAP
 1047	  0E88    0D                            DCR     C
 1048	  0E89    C2 0E80                       JNZ     RBL3
 1049	  0E8C    3E 3A                         MVI     A,':'
 1050	  0E8E    32 3800                       STA     TVBEG
 1051	  0E91    01 0000                       LXI     B,(LENGHT+1) AND 0FFH   ;B=0,C=LENGHT
 1052	  0E94    CD 0F6A                       CALL    SERIM   ;READ DATA
 1053	  0E97    0E 2A                         MVI     C,'*'
 1054	  0E99    3A 40CA                       LDA     FND     ;FIND MODE?
 1055	  0E9C    B7                            ORA     A
 1056	  0E9D    C2 0EA2                       JNZ     RBL20   ;NO-READ
 1057	  0EA0    0E 20                         MVI     C,' '
 1058	  0EA2    21 3800               RBL20:  LXI     H,TVBEG
 1059	  0EA5    71                            MOV     M,C
 1060	  0EA6    23                            INX     H
 1061	  0EA7    36 22                         MVI     M,'"'
 1062	  0EA9    23                            INX     H
 1063	  0EAA    0E 0B                         MVI     C,NAMLE
 1064	  0EAC    CD 0F6A               RBL33:  CALL    SERIM
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-19


 1065	  0EAF    36 22                         MVI     M,'"'
 1066	  0EB1    23                            INX     H
 1067	  0EB2    36 20                         MVI     M,20H
 1068	  0EB4    23                            INX     H
 1069	  0EB5    CD 0F74                       CALL    SERIN
 1070	  0EB8    5F                            MOV     E,A
 1071	  0EB9    CD 0F2E                       CALL    HEXMEM  ; REG 'E' -> MEM HEX
 1072	  0EBC    CD 0F74                       CALL    SERIN
 1073	  0EBF    57                            MOV     D,A
 1074	  0EC0    3E 20                         MVI     A,' '
 1075	  0EC2    32 40CA                       STA     FND
 1076	  0EC5    77                            MOV     M,A
 1077	  0EC6    48                            MOV     C,B     ;CHECK SUM
 1078	  0EC7    CD 0F74                       CALL    SERIN
 1079	  0ECA    91                            SUB     C
 1080	  0ECB    E1                            POP     H
 1081	  0ECC    C1                            POP     B
 1082	  0ECD    22 40C6                       SHLD    ADRI    ;BEG. ADR
 1083	  0ED0    F5                            PUSH    PSW     ;SAVE ZERO FLG
 1084	  0ED1    CD 0F74                       CALL    SERIN
 1085	  0ED4    FE 10                         CPI     10H
 1086	  0ED6    CA 0EDC                       JZ      RBLX1
 1087	  0ED9    33                            INX     SP
 1088	  0EDA    33                            INX     SP
 1089	  0EDB    F5                            PUSH    PSW
 1090	  0EDC    CD 0F29               RBLX1:  CALL    0F29H
 1091	  0EDF    F1                    RBL5:   POP     PSW     ;IF ZERO ..O.K
 1092	  0EE0    C8                            RZ
 1093	  0EE1    37                            STC
 1094	  0EE2    C9                            RET             ;ELSE ...ERROR
 1095	                                ;
 1096	                                ;WRITE BLOCK (HL-ADR,DE-BLOCK &FILE NUMBER)
 1097	                                ;
 1098	  0EE3    C5                    WRBLO:  PUSH    B
 1099	  0EE4    E5                            PUSH    H
 1100	  0EE5    D5                            PUSH    D
 1101	  0EE6    CD 0A61                       CALL    STARW   ;START WRITE
 1102	  0EE9    3E 50                         MVI     A,80    ; 800/100 MS
 1103	  0EEB    CD 0F84                       CALL    BTIME
 1104	  0EEE    CD 0F58                       CALL    SEROP
 1105	  0EF1    CD 0F58                       CALL    SEROP
 1106	  0EF4    CD 0F58                       CALL    SEROP   ;PREAMBLE
 1107	  0EF7    01 0000                       LXI     B,(LENGHT+1) AND 0FFH
 1108	  0EFA    CD 0F4E                       CALL    SEROM   ;DATA
 1109	  0EFD    21 42F0                       LXI     H,WRNM
 1110	  0F00    0E 0B                         MVI     C,NAMLE
 1111	  0F02    CD 0F4E                       CALL    SEROM   ;NAME
 1112	  0F05    D1                            POP     D
 1113	  0F06    7B                            MOV     A,E
 1114	  0F07    CD 0F5A                       CALL    SEROUT  ;BLOCK-NUMBER
 1115	  0F0A    7A                            MOV     A,D
 1116	  0F0B    CD 0F5A                       CALL    SEROUT  ;FILE-NUMBER
 1117	  0F0E    78                            MOV     A,B
 1118	  0F0F    CD 0F5A                       CALL    SEROUT  ;CHECK SUM
 1119	  0F12    CD 0F58                       CALL    SEROP
 1120	  0F15    AF                            XRA     A
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-20


 1121	  0F16    CD 0F5A                       CALL    SEROUT  ;SENTINEL
 1122	  0F19    21 3800                       LXI     H,TVBEG
 1123	  0F1C    CD 0F2E                       CALL    HEXMEM
 1124	  0F1F    E1                            POP     H
 1125	  0F20    C1                            POP     B
 1126	  0F21    22 40C4                       SHLD    ADRO    ;SET ADR
 1127	  0F24    3E 01                         MVI     A,1     ; 10 MS
 1128	  0F26    CD 0F8F                       CALL    TIME
 1129	  0F29    3E 10                 STOP:   MVI     A,10H
 1130	  0F2B    D3 10                         OUT     UMODE
 1131	  0F2D    C9                            RET
 1132	                                ;
 1133	                                ; ROUTINES
 1134	                                ;
 1135	                                ; 'E' REG HEX TO MEMORY, CLEAR TO END LINE
 1136	  0F2E    7B                    HEXMEM: MOV     A,E
 1137	  0F2F    0F                            RRC
 1138	  0F30    0F                            RRC
 1139	  0F31    0F                            RRC
 1140	  0F32    0F                            RRC
 1141	  0F33    CD 0F44                       CALL    HEXC
 1142	  0F36    7B                            MOV     A,E
 1143	  0F37    CD 0F44                       CALL    HEXC
 1144	  0F3A    3E 27                         MVI     A,39    ; LINE LENGTH-1
 1145	  0F3C    36 20                 HEXM1:  MVI     M,' '
 1146	  0F3E    23                            INX     H
 1147	  0F3F    BD                            CMP     L       ; END LINE ?
 1148	  0F40    D2 0F3C                       JNC     HEXM1
 1149	  0F43    C9                            RET
 1150	                                
 1151	                                ; DISPLAY HEX CIFF.
 1152	  0F44    E6 0F                 HEXC:   ANI     0FH
 1153	  0F46    CD 0148                       CALL    HXASC
 1154	  0F49    E6 3F                         ANI     3FH
 1155	  0F4B    77                            MOV     M,A
 1156	  0F4C    23                            INX     H
 1157	  0F4D    C9                            RET
 1158	                                ;
 1159	  0F4E    7E                    SEROM:  MOV     A,M     ;FROM MEMORY
 1160	  0F4F    23                            INX     H
 1161	  0F50    CD 0F5A                       CALL    SEROUT  ;TO:CT:
 1162	  0F53    0D                            DCR     C
 1163	  0F54    C2 0F4E                       JNZ     SEROM
 1164	  0F57    C9                            RET             ;ALL
 1165	                                
 1166	  0F58    3E 10                 SEROP:  MVI     A,PREAM ;BLOCK-MARK
 1167	                                
 1168	  0F5A    F5                    SEROUT: PUSH    PSW
 1169	  0F5B    80                            ADD     B
 1170	  0F5C    47                            MOV     B,A     ;CHECK SUM
 1171	  0F5D    CD 0C6A                       CALL    BREAK
 1172	  0F60    DB 11                 SERO:   IN      USTAT
 1173	  0F62    87                            ADD     A
 1174	  0F63    F2 0F60                       JP      SERO
 1175	  0F66    F1                            POP     PSW
 1176	  0F67    D3 12                         OUT     UDATA
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-21


 1177	  0F69    C9                            RET
 1178	                                ;
 1179	  0F6A    CD 0F74               SERIM:  CALL    SERIN   ;READ TO MEMORY
 1180	  0F6D    77                            MOV     M,A
 1181	  0F6E    23                            INX     H
 1182	  0F6F    0D                            DCR     C
 1183	  0F70    C2 0F6A                       JNZ     SERIM
 1184	  0F73    C9                            RET
 1185	                                
 1186	  0F74    CD 0C6A               SERIN:  CALL    BREAK
 1187	  0F77    DB 11                         IN      USTAT
 1188	  0F79    07                            RLC
 1189	  0F7A    D2 0F74                       JNC     SERIN
 1190	  0F7D    DB 12                         IN      UDATA
 1191	  0F7F    F5                            PUSH    PSW
 1192	  0F80    80                            ADD     B
 1193	  0F81    47                            MOV     B,A
 1194	  0F82    F1                            POP     PSW
 1195	  0F83    C9                            RET
 1196	                                ;
 1197	                                ; TIME ROUTINES
 1198	                                ;
 1199	  0F84    47                    BTIME:  MOV     B,A     ; * 10 MS
 1200	  0F85    7E                            MOV     A,M     ; 'B' ?
 1201	  0F86    FE 42                         CPI     'B'
 1202	  0F88    78                            MOV     A,B
 1203	  0F89    C2 0F8F                       JNZ     TIME
 1204	  0F8C    0F                            RRC
 1205	  0F8D    0F                            RRC
 1206	  0F8E    0F                            RRC             ; /8
 1207	                                
 1208	  0F8F    C5                    TIME:   PUSH    B       ; ACC*10MS (TCY=500NS)
 1209	  0F90    01 041F               TIME1:  LXI     B,800+255
 1210	  0F93    0B                    TIME2:  DCX     B       ;( 5)
 1211	  0F94    04                            INR     B       ;( 5)
 1212	  0F95    05                            DCR     B       ;( 5)
 1213	  0F96    C2 0F93                       JNZ     TIME2   ;(10) 10MS LOOP @ 12.5US
 1214	  0F99    3D                            DCR     A
 1215	  0F9A    C2 0F90                       JNZ     TIME1
 1216	  0F9D    C1                            POP     B
 1217	  0F9E    C9                            RET
 1218	                                ;
 1219	                                ;       MICRO-BASIC FORMAT
 1220	                                ;
 1221	  0F9F    0E 01                 BB:     MVI     C,1     ;1. ADR
 1222	  0FA1    CD 0127                       CALL    EXPR
 1223	  0FA4    CD 0C81                       CALL    PLAY
 1224	  0FA7    0E 32                         MVI     C,50    ; 500MS GAP
 1225	  0FA9    CD 0E5B               BB1:    CALL    SINC
 1226	  0FAC    0E 2A                         MVI     C,'*'
 1227	  0FAE    CD 0109                       CALL    CO
 1228	  0FB1    CD 0F74                       CALL    SERIN
 1229	  0FB4    FE 42                         CPI     'B'     ; BASIC RECORD?
 1230	  0FB6    01 000A                       LXI     B,10    ; 100MS & CLEAR SUM
 1231	  0FB9    C2 0FA9                       JNZ     BB1
 1232	  0FBC    CD 0F74                       CALL    SERIN   ;NAME
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	1-22


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


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


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


Macros:

Symbols:
40AB 	@BT             0FEF 	@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           0F9F 	BB              0FA9 	BB1             
0FBF 	BB2             0FDA 	BB3             0896 	BCMD            
4094 	BCSAV           42F0 	BIEND           41F1 	BIN             
40C2 	BNI             40C0 	BNO             41F0 	BOEND           
40F1 	BOUT            409E 	BRAD            40A1 	BRAD2           
0C6A 	BREAK           40C3 	BTI             0F84 	BTIME           
40C1 	BTO             0CBE 	BUADR           40A5 	CADR            
003A 	CAN             40A7 	CHAR            0DE9 	CHECK           
0103 	CI              40CB 	CILOC           013F 	CINCR           
0B0E 	CLOSE           0DDF 	CLSTP           0B52 	CMPN0           
0B66 	CMPN1           0B7C 	CMPN2           0B46 	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            
0C9B 	DONE            40B1 	EADR            0C74 	ECHO            
0CA4 	ECHOCR          08E7 	EOF             0004 	EOT@            
0800 	EPROM           0CEB 	ERRD            0D0B 	ERRD0           
0D1A 	ERRD1           012A 	ERROR           0FEC 	ERSTP           
0003 	ETX             0C78 	ETX?            085B 	EXMON           
0127 	EXPR            000A 	EXSER           0AF5 	FIND            
0B2F 	FINO            40A8 	FLAG            40B5 	FNAME           
40CA 	FND             0A5A 	GAPO            0D4B 	GET0            
0D5A 	GET1            0D68 	GET2            0D3E 	GET@            
0D6B 	GETEX           09FF 	HBYTE           0F44 	HEXC            
0F3C 	HEXM1           0F2E 	HEXMEM          0136 	HILO            
4098 	HLSAV           0009 	HT              0148 	HXASC           
0839 	ICMD            083E 	ICMD1           0B95 	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            
0DA8 	LO1             0DCF 	LO2             0D9D 	LOAD            
0400 	LSYSR           40EE 	MEMTOP          0A14 	MICOS           
40E3 	MODE            0100 	MONIT           0A4F 	MOTA            
0A0B 	MREAD           4090 	MSTAK           000B 	NAMLE           
0139 	NEXT            0D34 	NUFIL           0C5B 	NULBF           
08FE 	NULL            084A 	OCMD            084F 	OCMD1           
0B83 	OK?             0AB1 	OPE01           0AC5 	OPE1            
0AC2 	OPE20           0ABC 	OPE30           0AD8 	OPE50           
0A95 	OPEN            40D7 	P1LOC           40DA 	P2LOC           
0E50 	PADR@           09D5 	PBEG            40C8 	PBITM           
09F2 	PBYTE           08BC 	PCMD            409A 	PCSAV           
'MONITOR PLUS, MIKOS V4.0D - SAPI 1'	MACRO-80 3.44	09-Dec-81	PAGE	S-1


4400 	PEDIT           0C21 	PHDR            0C81 	PLAY            
010C 	PO              0E55 	POCH            0010 	PREAM           
0C2A 	PTP?            0C31 	PTR?            0D6F 	PUT@            
0D97 	PUTEX           40D1 	R1LOC           40D4 	R2LOC           
0DF2 	RADR@           0E7E 	RBL2            0EA2 	RBL20           
0E80 	RBL3            0EAC 	RBL33           0EDF 	RBL5            
0E79 	RBLG            0E74 	RBLOK           0EDC 	RBLX1           
09B2 	RBYTE           0E74 	READ            0909 	READ@           
0E70 	READF           0C89 	RECO            0C8F 	RECOR           
090D 	RED1            093C 	RED2            095C 	RED3            
090F 	REDC0           0911 	REDC1           0927 	REDC2           
0953 	REDER           40EA 	RESL            0106 	RI              
0CCA 	RIB             0CE2 	RIB1            0CE4 	RIB2            
0DFB 	RICH            0BE9 	RNAM1           0C04 	RNAM10          
0C14 	RNAM2           0BE8 	RNAME           4000 	RST1            
40AF 	SADR            0E3A 	SAV1            0E06 	SAVE            
0CB0 	SEAR1           0CAD 	SEARCH          0F6A 	SERIM           
0F74 	SERIN           0F60 	SERO            0F4E 	SEROM           
0F58 	SEROP           0F5A 	SEROUT          0E5B 	SINC            
0E5D 	SINC1           0001 	SOH             013C 	SPACE           
409C 	SPSAV           0A58 	START           0A61 	STARW           
0F29 	STOP            001A 	SUBS            40B3 	SUM             
08B4 	TCMD            09C9 	TERM            0142 	TEXT            
0F8F 	TIME            0F90 	TIME1           0F93 	TIME2           
4C00 	TRACER          3800 	TVBEG           0C3F 	TXIMM           
0C4F 	TXNAM           40AD 	UADR            40EB 	UBYTE           
0012 	UDATA           0010 	UMODE           0013 	USER            
0011 	USTAT           0D23 	WOB             097F 	WR1             
0994 	WR2             0997 	WR3             09A0 	WR4             
0EE3 	WRBLO           0977 	WRITE           0BD1 	WRN1            
0BB8 	WRNAM           42F0 	WRNM            



No Fatal error(s)



@BT	  168	 1290#
@ENDPR	 1256#
@IF1	  122	  537	  865	  949	 1325#
@IF2	 1326#
@OF1	  132	  487	  522	  542	  549	  893	  978	 1327#
@OF2	 1328#
@PED	  192	 1291#
@R@	   13#	 1259	 1269	 1350	 1355
@SFLG	 1333#
ACSAV	 1274#
ADRI	  868	  873	 1082	 1306#
ADRO	  898	  901	 1126	 1305#
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	 1275#
BIEND	  871	 1346#
BIN	  591	  795	  806	  831	  837	  877	  924	 1345#
BNI	  534	  803	  805	  853	  856	 1303#
BNO	  462	  516	  620	  842	  844	 1301#
BOEND	  903	 1342#
BOUT	  505	  546	  731	  793	  846	  905	  982	 1341#
BRAD	 1281#
BRAD2	 1283#
BREAK	  741#	 1024	 1171	 1186
BTI	 1304#
BTIME	 1103	 1199#
BTO	 1302#
BUADR	  585	  783	  791#
CADR	 1286#
CAN	   81#	  506	  594	  621	  814
CHAR	 1287#
CHECK	  940	  946	  954#
CI	   38#	  654	  743
CILOC	 1313#
CINCR	   42#	  747
CLOSE	   96	  434	  541#	  910	 1008
CLSTP	  948#
CMPN0	  572#	  581

CMPN1	  574	  584#
CMPN2	  592	  596#
CMPNM	  503	  504	  531	  567#	  568	  578	  595	  597
CO	   40#	  281	  421	  479	  676	  713	  785	 1227	 1234
COLOC	 1314#
COLUM	 1330#
COMLE	   62#	  632	  685
CPM	    8#	   12
CR	   64#	  369	  377	  491	  519	  658	  724	  763	 1236
CRLF	   47#	  305	  475	  649	  659	  679	  683	  773	  836	  951
CSLOC	 1320#
CSTS	   37#	  741
DADR	   46#	  282
DBYT	   45#	  477	  481
DEL	   66#	  660
DESAV	 1276#
DIR	  428	  468#
DIR0	  471#	  474	  482
DONE	  446	  758	  768#
EADR	  198	  933	 1294#
ECHO	  604	  747#	  771	  823
ECHOCR	  422	  771#
EOF	  149	  220#
EOT@	   80#	  473	  499	  509	  545	  878
EPROM	   15#	   88
ERRD	  808	  810	  819#	  833
ERRD0	  831#	  835
ERRD1	  825	  836#
ERROR	   54#	  162	  171	  176	  203	  213	  283	  412	  489	  544	  930	  939
	  957	  967	 1254
ERSTP	 1255#
ETX	   67#	  656	  749
ETX?	  744	  749#
EXMON	   93	  139#
EXPR	   44#	  221	  246	  304	  977	 1222
EXSER	 1334#
FIND	   94	  436	  528#	  867	  922
FINO	  495	  530	  555#
FLAG	 1288#
FNAME	  557	  569	 1300#
FND	  105	 1036	 1054	 1075	 1308#
GAPO	  450#	  457
GET0	  869#	  881
GET1	  874	  877#
GET2	  879	  882#
GET@	  124	  862#
GETEX	  876	  884#
HBYTE	  391	  400#
HEXC	 1141	 1143	 1152#

HEXM1	 1145#	 1148
HEXMEM	 1071	 1123	 1136#
HILO	   48#	  209	  944	 1002	 1249
HLSAV	 1277#
HT	   68#	  365
HXASC	   56#	  405	 1153
ICMD	  119#	  151
ICMD1	  113	  121#
INIT	  430	  609#
INITS	   92	  103#
INST2	 1284#
INSTR	 1282#
IOBYT	 1335#
IOCHK	   51#	  699
IODEF	   43#	  125	  135
IOSET	   53#	  106
J1	  206#	  210
JOIN	  461	  469	  555	  791	 1299#
JUMP	  145	  198#
LASTC	 1285#
LBYTE	  394	  404#
LEAD	  236#	  239
LENGHT	   60#	  733	 1051	 1107
LF	   65#	  379	  491	  519	  724	  763
LILOC	 1319#
LIMIT	 1289#
LINE	 1329#
LO1	  926#	  928
LO2	  942#	  945
LOAD	   97	  440	  922#
LSYSR	   16#
MEMTOP	 1336#
MICOS	   91	  161	  419#	  657
MODE	 1324#	 1334
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	 1273#
NAMLE	   61#	  559	  570	  636	 1063	 1110
NEXT	   49#	  752
NUFIL	  809	  834	  853#
NULBF	  627	  731#
NULL	  147	  235#
OCMD	  129#	  153
OCMD1	  114	  131#
OK?	  501	  596	  600#
OPE01	  497#	  500
OPE1	  496	  504#

OPE20	  498	  503#
OPE30	  501#
OPE50	  464	  502	  507	  511#
OPEN	   95	  432	  486#	  896	  980
P1LOC	 1317#
P2LOC	 1318#
PADR@	  991	  993	 1010#
PBEG	  226	  330	  376#
PBITM	 1307#
PBYTE	  229	  333	  338	  384	  386	  388	  390#
PCMD	  155	  190#
PCSAV	 1278#
PEDIT	   18#	  191
PHDR	  472	  587	  683#
PLAY	  470	  561	  755#	  830	 1223
PO	   41#	  231	  237	  378	  380	  382	  406	 1017
POCH	  987	  995	  997	 1001	 1005	 1007	 1011	 1014#
PREAM	   69#	 1045	 1166
PTP?	  486	  541	  692#
PTR?	  528	  697#
PUT@	  134	  890#
PUTEX	  907	  911#
R1LOC	 1315#
R2LOC	 1316#
RADR@	  932	  935	  960#
RBL2	 1043#
RBL20	 1056	 1058#
RBL3	 1044#	 1048
RBL33	 1064#
RBL5	 1091#
RBLG	 1041#	 1046
RBLOK	 1038#
RBLX1	 1086	 1090#
RBYTE	  260	  263	  265	  269	  270	  278	  285	  287	  289	  290	  345#
READ	  807	 1037#
READ@	  143	  245#
READF	  786	  832	 1035#
RECO	  758#
RECOR	  517	  613	  762#
RED1	  247#	  279
RED2	  270#	  277
RED3	  261	  284#
REDC0	  249#	  252
REDC1	  250#	  257
REDC2	  255	  259#
REDER	  258	  274	  281#	  291
RESL	 1331#
RI	   39#	  411	  966
RIB	  538	  801#	  880

RIB1	  811#	  838
RIB2	  788	  813#
RICH	  926	  937	  942	  955	  960	  962	  966#
RNAM1	  653#	  667	  672	  678
RNAM10	  661	  665#
RNAM2	  664	  673#
RNAME	  560	  634	  652#
RST1	 1263#
SADR	  200	  936	 1293#
SAV1	 1000#	 1003
SAVE	   98	  438	  976#
SEAR1	  784#	  787
SEARCH	  471	  497	  508	  567	  783#
SERIM	 1052	 1064	 1179#	 1183
SERIN	 1044	 1069	 1072	 1078	 1084	 1179	 1186#	 1189	 1228	 1232	 1235	 1238
	 1240	 1247	 1252
SERO	 1172#	 1174
SEROM	 1108	 1111	 1159#	 1163
SEROP	 1104	 1105	 1106	 1119	 1166#
SEROUT	 1114	 1116	 1118	 1121	 1161	 1168#
SINC	 1021#	 1027	 1042	 1225
SINC1	 1022#	 1029
SOH	   79#	  521	  536	  816
SPACE	   52#
SPSAV	 1279#
START	  445	  449#	  609	  759	  925	 1040
STARW	  456#	  550	  983	 1101
STOP	  419	  447	  553	  614	  628	  751	  950	 1129#	 1255
SUBS	   70#	  230	  882	  909	 1006
SUM	  211	  947	 1295#
TCMD	  159	  186#
TERM	  251	  363#	  575
TEXT	   50#	  686
TIME	  552	  985	 1023	 1128	 1203	 1208#
TIME1	 1209#	 1215
TIME2	 1210#	 1213
TRACER	   20#	  187
TVBEG	   17#	 1050	 1058	 1122
TXIMM	  107	  490	  518	  600	  610	  615	  670	  709#	  717	  721	  755	  762
	  768	  819	  826
TXNAM	  556	  626	  721#
UADR	 1292#
UBYTE	 1332#
UDATA	   74#	 1021	 1176	 1190
UMODE	   76#	  450	 1130
USER	   73#
USTAT	   75#	  452	 1025	 1172	 1187
WOB	  547	  647	  841#	  904
WR1	  308#	  340

WR2	  319	  322#
WR3	  321	  324#
WR4	  331#	  335
WRBLO	  847	 1098#
WRITE	  141	  304#
WRN1	  638#	  646
WRNAM	  523	  625#
WRNM	  637	 1109	 1348#

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


SAPI-1 | ONDRA | PMI-80 | PMD-85 | klony PMD-85 | klony SM50/40 | PETR | PLAN-80A | IQ151 | TNS | FK-1 | HVĚZDA | 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