Top secrets sources NedoPC pentevo

Rev

Rev 1026 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


; LAST UPDATE: 09.11.2022 savelij

PAGE
                TITLE "evo-dos.a80"

                include ../../macros.a80
                include ../../define.a80
                include ../../global_vars.a80
                include ../../bas_trd_vars.a80
                include ../../basic_tokens.a80
                include ../../evodos_vars.a80
                include ../../version.a80
                include macros.a80

ZASTV_X         EQU 7                                   ;ŠŽŽ„ˆ€’€ X …—€’ˆ €„ˆ‘ˆ BETA128
ZASTV_Y         EQU 7                                   ;ŠŽŽ„ˆ€’€ Y …—€’ˆ €„ˆ‘ˆ BETA128
ZASTV_PIX       EQU ZASTV_Y*0X20+0X4000+ZASTV_X+9       ;€„…‘ ‚›‚Ž„€ ‘ŠŽ˜…›• “ƒŽ‹ŠŽ‚
ZASTV_ATR       EQU ZASTV_Y*0X20+0X5800+ZASTV_X         ;€„…‘ ‚›‚Ž„€ –‚…’€ „‹Ÿ ‘ŠŽ˜…›• “ƒŽ‹ŠŽ‚

                ORG 0
                di
                ld      de,0xffff

;„‹Ÿ …‡ˆ„…’€ HONEY COMANDER
;               ld      a,7
;               jr      loc_9
                JP LOC_3C50

                DB 1

                nop
loc_9           out     (0xfe),a
                ld      a,0x3f
                jr      loc_24

                DUPL 0X0010-$,0
                jp      PRINT_A_                        ;RST 10 …—€’œ ‘ˆŒ‚Ž‹€

                DUPL ADR_SEL_ROM-$,0XFF
LOC_14          OUT (C),A
                NOP
                RET

                DUPL 0X0018-$,0XFF
                jp      PRINT_MSG                       ;RST 18 …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ

                DUPL 0X0020-$,0XFF
                jp      CALL2BASIC                      ;RST 20 ‚›‡Ž‚ Ž„Žƒ€ŒŒ ˆ‡ €‘ˆŠ€ 48

loc_24          LD HL,0XFFFF
                jr      loc_2B

                jp      ADR_OPEN_CHAN                   ;RST 28

loc_2B          LD I,A
                XOR A
                JR LOC_33

        IF EMU
                JP RST30_WORK                           ;RST 30
        ELSE
                DUPL 0X33-$,0XFF
        ENDIF

LOC_33          LD SP,HL
                LD B,A
                LD C,A
                JR loc_3A

                ei                                      ;RST 38
                ret

loc_3A          REPT 8
                PUSH BC
                ENDM
                LD HL,0XA500
                ADD HL,SP
                JR C,loc_3A
                ld      (P_RAMT),hl
                ld      de,0x3eaf
                ld      bc,0xa8
                ld      a,e
                ex      de,hl
                ld      sp,0x6000
                ld      (TRD_5F00),hl
                ld      hl,loc_79
                push    hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,0xb8ed                       ;ŠŽŒ€„€ LDDR
                jr      EXECUTECOM2HL

                jp      MAGIC

EXECUTECOM2HL   ld      (TRD_5F10),hl
                push    af
                ld      a,0xc9
                ld      (TRD_5F12),a
                pop     af
                ld      hl,(TRD_5F00)
                jp      TRD_5F10

loc_79          ex      de,hl
                inc     hl
                ld      (UDG),hl
                dec     hl
                ld      bc,0x40                         ;€„Ž…‹ ’Ž’ ˆ‘Š Ž ‘Ž‘“
                ld      (RASP),bc
                ld      (RAMTOP),hl
                ld      hl,0x3C00
                ld      (CHARS),hl
                ld      hl,(RAMTOP)
                ld      (hl),0x3e
                dec     hl
                ld      sp,hl
                dec     hl
                dec     hl
                ld      (ERR_SP),hl
                ld      de,0x1303
                push    de
                im      1
                ld      iy,ERR_NR
                ld      hl,TRD_5CB6                     ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                ld      (CHANS),hl
                ld      de,0x15af
                ld      bc,0x15
                ex      de,hl
                call    COPY_BAS2VARS
                ex      de,hl
                dec     hl
                ld      (DATADD),hl
                inc     hl
                ld      (PROG),hl
                ld      (VARS),hl
                ld      (hl),0x80
                inc     hl
                ld      (E_LINE),hl                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      (hl),0x0d
                inc     hl
                ld      (hl),0x80
                inc     hl
                ld      (WORKSP),hl
                ld      (STKBOT),hl
                ld      (STKEND),hl
                ld      a,0x38
                ld      (ATTR_P),a
                ld      (ATTR_T),a
                ld      (BORDCR),a
                ld      hl,0x0523
                ld      (REPDEL),hl
                dec     (iy-0x3a)
                dec     (iy-0x36)
                ld      hl,0x15c6
                ld      de,STRMS
                ld      bc,0x0e
                call    COPY_BAS2VARS
                set     1,(iy+1)
                ld      hl,TRD_5CC2                     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                ld      (hl),0xc9
                rst     0x20
                dw      0x0edf                          ; ®ç¨á⪠ ¡ãä¥à  ¯à¨­â¥à 
                ld      hl,DF_SZ                        ;ŠŽ‹ˆ—…‘’‚Ž ‘’ŽŠ ‚ ‘‹“†…ŽŒ Š€…
                ld      (hl),2
                ld      hl,0x128b
                push    hl
                ld      a,0xaa
                ld      (NOT_USED),a
                ei
                jp      IN_DOS_15616

COPY_BAS2VARS   ld      (TRD_5F00),hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,0xb0ed                       ;ŠŽŒ€„€ LDIR
                ld      (TRD_5F10),hl
                ld      hl,(TRD_5F00)
                jp      TRD_5F10

;Ž€Ž’Š€ ŽŒ…€ ‘’ŽŠˆ €‚’Ž‘’€’€ Žƒ€ŒŒ› € …‰‘ˆŠ…
WORK4AUTORUN    call    DELETE_BUF                      ;“„€‹…ˆ… “”…€, …‘‹ˆ Š€€‹ … Ž’Š›’
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,(E_LINE)                     ;€„…‘ Ž’Š“„€ ‚‡Ÿ’œ ŽŒ… ‘’ŽŠˆ €‚’Ž‘’€’€
                inc     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)                          ;Ž‹“—ˆ‹ˆ ŽŒ… ‘’ŽŠˆ €‚’Ž‘’€’€
                ld      a,d
                or      e
                ex      de,hl
                jr      z,loc_140                       ;…‘‹ˆ ŽŒ… ‘’ŽŠˆ =0, ’Ž …‡ €‚’Ž‡€“‘Š€
                xor     a
                ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
loc_140         push    hl
                call    RESTORE_SP                      ; ‚Ž‘‘’€Ž‚‹…ˆ… ……•‚€’—ˆŠ€ Ž˜ˆŽŠ
                pop     hl
                ld      (NEWPPC),hl
                xor     a
                ld      (NSPPS),a
                rst     0x20
                dw      0x16b0                          ; “‘’€Ž‚Š€ Ž‹€‘’ˆ …„€Š’ˆŽ‚€ˆŸ „Ž ŒˆˆŒ“Œ€
                ld      hl,(PROG)
                dec     hl
                ld      (DATADD),hl
                ld      sp,(ERR_SP)
                ld      a,(TRD_5D10)                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                or      a
                ld      hl,0x1b76
                jr      z,loc_166
                rst     0x20
                dw      0x1bb0                          ; ‘ŽŽ™…ˆ… "OK"
loc_166         push    hl
                ld      hl,TRD_5CC2
                push    hl
                ret

CONTINUE_15619  DUPL 3,0
                call    CREATE_BUF                      ; ‘Ž‡„€ˆ… “”…€
                ld      a,0xff
                ld      (TRD_5D15),a                    ; …‘‹ˆ 0, …—€’€’œ ˜€Š“ TR-DOS. ˆ€—… … …—€’€’œ
                xor     a
                ld      (TRD_5CF7),a
                ld      a,0xaa
                ld      (TRD_5D17),a                    ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ, …‘‹ˆ #AA
                ld      hl,CP_ERROR
                ld      (TRD_5D1A),hl                   ; ‚“’…ˆ‰ €„…‘ ‡€‚…˜…ˆŸ ˆ’……’€’Ž€ ŠŽŒ€„
                ld      hl,0
                add     hl,sp
                ld      (TRD_5D1C),hl                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      sp,hl
                call    MARK_SP                         ; “‘’€Ž‚Š€ ‘’…Š€ „‹Ÿ ……•‚€’€ Ž˜ˆŽŠ
                ld      hl,(RAMTOP)
                ld      de,(CH_ADD)
                sbc     hl,de
                ex      de,hl
                jr      nc,loc_1A5
                or      a
                ld      de,0x101
                sbc     hl,de
loc_1A5         ld      (CH_ADD),hl
loc_1A8         call    CP_0D_OR_80
loc_1AB         jp      z,END_COMAND
                cp      __REM
                inc     hl
                jr      nz,loc_1A8
                call    CP_0D_OR_80
                jr      z,loc_1AB
                cp      ":"
                jp      nz,END_COMAND
                inc     hl
                call    SAE2_HL_
                ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                jp      loc_30A

CP_0D_OR_80
        IF EMU
                CALL READ_BYTE_HL                       ;DCU
        ELSE
                ld      a,(hl)
                cp      0x0d
        ENDIF
                ret     z
                cp      0x80
                ret     z
                or      a
                ret

                call    REWRITE_9SEC
;Ž„Žƒ€ŒŒ€ ‡€‚…˜…ˆ… ŠŽŒ€„ŽƒŽ Ž–…‘‘Ž€
END_COMAND      ld      hl,0
                ld      (TRD_5CF8),hl                   ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    DELETE_BUF
                call    CLEAR_WORKSPACE
                ld      hl,TRD_5D17                     ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ, …‘‹ˆ #AA
                ld      (hl),0xaa
                ld      hl,TRD_5D1F
                ld      a,(hl)
                or      a
                ld      (hl),0
                jr      nz,loc_1F3
                call    DEL_5BYTES
                call    FIND_ENDSTR                     ; Žˆ‘Š ŠŽ–€ ‘’ŽŠˆ
loc_1F3         ld      sp,(TRD_5D1C)                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                ld      hl,(TRD_5D1A)                   ; ‚“’…ˆ‰ €„…‘ ‡€‚…˜…ˆŸ ˆ’……’€’Ž€ ŠŽŒ€„
                ld      bc,(TRD_5D0F)                   ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      b,0
                jp      (hl)

;DCU (‚›‡›‚€…’ ‘ €„…‘€ 0X0207)
CP_ERROR        call    RESTORE_SP                      ; Ž‚…Š€ € Ž˜ˆŠ“
                bit     7,(iy+0)
                ret     nz
                ld      de,TRD_5CC2
                ld      sp,(ERR_SP)
                push    de
                ret

; Žˆ‘Š ŠŽ–€ ‘’ŽŠˆ
FIND_ENDSTR     call    GET_SYMSTR
                cp      0x0d
                ret     z
                call    GET_NEXT_SYM
                jr      FIND_ENDSTR                     ; Žˆ‘Š ŠŽ–€ ‘’ŽŠˆ

; “‘’€Ž‚Š€ ‘’…Š€ „‹Ÿ ……•‚€’€ Ž˜ˆŽŠ
MARK_SP         ld      hl,(ERR_SP)
                ld      (TRD_5D13),hl                   ; ŠŽˆŸ ERR_SP
                ld      hl,(TRD_5D1C)                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      (ERR_SP),hl
                ld      de,loc_3D16
                ld      (hl),e
                inc     hl
                ld      (hl),d
                ret

; ‚Ž‘‘’€Ž‚‹…ˆ… ……•‚€’—ˆŠ€ Ž˜ˆŽŠ
RESTORE_SP      ld      hl,(TRD_5D13)                   ; ŠŽˆŸ ERR_SP
loc_0235        ld      (ERR_SP),hl
                ret

IN_COMMAND_CPU  ld      hl,0                            ; ‚•Ž†„…ˆ… ‚ ŠŽŒ€„›‰ Ž–…‘‘Ž „Ž‘€
                ld      (TRD_5CF7),hl
                add     hl,sp
                ld      (TRD_5D1C),hl                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      sp,hl
                call    MARK_SP                         ; “‘’€Ž‚Š€ ‘’…Š€ „‹Ÿ ……•‚€’€ Ž˜ˆŽŠ
;2 ‚›‡Ž‚€ ………‘…› „‹Ÿ “‘’€…ˆŸ Ž€„€ˆŸ Š“‘Ž€
;ˆ Ž‚’ŽŽŒ ‚•Ž„… ‚ TR-DOS ˆ‡ Œ…ž BASIC 128
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                call    OPEN_CHAN_2                     ; Ž’Š›’ˆ… Š€€‹€ 2
                ld      hl,TRD_5D17                     ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ, …‘‹ˆ #AA
                ld      a,(hl)
                cp      0xaa
                ld      a,0
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                jp      z,COMMAND_CPU
                ld      (hl),0xaa
                ld      hl,ZASTAVKA                     ; ’…Š‘’ ‡€‘’€‚Šˆ „Ž‘€
                rst     0x18
                call    OUT_COLOR_LINE                  ; ˆ‘Ž‚€ˆ… –‚…’›• ‹ˆˆ‰ ‡€‘’€‚Šˆ „Ž‘€
        IF EMU
                CALL ADD_TXT_VERS
        ENDIF

                DUPL 0X0271-$,0
loc_271         ld      a,(NOT_USED)                    ; Ž‚…Š€ € #AA
                cp      0xaa
                jr      nz,COMMAND_CPU                  ; …‘‹ˆ … #AA,’Ž ‚•Ž„ ‚ ŠŽŒ€„›‰ Ž–…‘‘Ž

                DUPL 0X027B-$,0
loc_27B         ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      a,0xfe
                ld      (TRD_5D0E),a                    ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                ld      (hl),0xf7
                inc     hl
                ld      (hl),0x22
                inc     hl
                ld      (hl),"b"
                inc     hl
                ld      (hl),"o"
                inc     hl
                ld      (hl),"o"
                inc     hl
                ld      (hl),"t"
                inc     hl
                ld      (hl),0x22
                inc     hl
                ld      (K_CUR),hl
                ld      (hl),0x0d
                inc     hl
                ld      (hl),0x80
                inc     hl
                ld      (WORKSP),hl
                ld      (STKBOT),hl
                ld      (STKEND),hl
                set     3,(iy+1)
                jr      GO2RUNBOOT

; ……Ž‘ 3 €‰’
LDI3_HL2DE      ld      b,3
loc_2B2         ld      a,(hl)
                ld      (de),a
                inc     hl
                inc     de
                djnz    loc_2B2
                ret

;Ž‘’€Ž‚Š€ ŒŽ’Ž€ „ˆ‘ŠŽ‚Ž„€
STOP_MOTOR      ld      b,0x20
loc_2BB         push    bc
                xor     8
                out     (0xff),a
                push    af
                ld      a,5
                call    PAUSE_C_A
                pop     af
                pop     bc
                djnz    loc_2BB
                ret

;ŠŽŒ€„›‰ Ž–…‘‘Ž DOS
COMMAND_CPU     ld      hl,(TRD_5D1C)                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      sp,hl
                call    OPEN_CHAN_0                     ; Ž’Š›’ˆ… Š€€‹€ 0
                ld      a,(0X5D16)
                or      3
                call    STOP_MOTOR
                ld      a,(TRD_5D16)
                call    STOP_MOTOR
                xor     a
                ld      (TRD_5D15),a                    ; …‘‹ˆ 0,…—€’€’œ ˜€Š“ TR-DOS.ˆ€—… … …—€’€’œ
                call    GET_COMMAND                     ; ˆŸ’ˆ… ˆ Ž€Ž’Š€ ŠŽŒ€„
                call    SAE2E_LINE
GO2RUNBOOT      call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                ld      hl,COMMAND_CPU
                ld      (TRD_5D1A),hl                   ; ‚“’…ˆ‰ €„…‘ ‡€‚…˜…ˆŸ ˆ’……’€’Ž€ ŠŽŒ€„
                xor     a
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      (TRD_5CEF),a
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                push    hl
                ld      de,TRD_5D20                     ; „‹Ÿ ‘Ž•€…ˆŸ 3 ‘ˆŒ‚Ž‹Ž‚ ‚‚…„…Ž‰ ‘’ŽŠˆ
                call    LDI3_HL2DE                      ; ……Ž‘ 3 €‰’
                pop     hl
                ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
loc_30A         ld      a,(hl)
                ld      b,a
                and     0x80
                ld      a,b
                jr      z,loc_31A
                cp      __RETURN
                jr      z,loc_31A
                push    af
                call    ACTIV_DEF_DSK                   ; ‚›Ž „ˆ‘ŠŽ‚Ž„€ Ž “ŒŽ‹—€ˆž
                pop     af
loc_31A         ld      hl,CODE_BYTE_COM                ; ’€‹ˆ–€ …‰‘ˆŠ ŠŽŒ€„ „‹Ÿ TR-DOS
                dec     hl
                ld      c,0
loc_320         inc     c
                ld      d,a
                ld      a,LOW (ECODE_BYTE_COM-CODE_BYTE_COM)
                cp      c
                JP C,ENDCOMAND
                ld      a,d
                inc     hl
                cp      (hl)
                jr      nz,loc_320
LOC_32D         cp      __RETURN
                call    nz,CREATE_BUF                   ; ‘Ž‡„€ˆ… “”…€
                ld      a,9
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                xor     a
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                ld      hl,FLAGS
                res     7,(hl)
                ld      b,0
                ld      hl,SPIS_ADR_COM                 ; ’€‹ˆ–€ €„…‘Ž‚ ˆ‘Ž‹…ˆŸ ŠŽŒ€„
                dec     c
                sla     c
                add     hl,bc
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ex      de,hl
LOC_353         push    hl
                ld      de,END_COM
                push    de
                jp      (hl)

END_COM         ld      hl,FLAGS
                set     7,(hl)
                pop     hl
                jp      (hl)

;’…Š‘’ ‡€‘’€‚Šˆ „Ž‘€
ZASTAVKA        DB 0X16,0X01,0X06
ZASTAVKA_VER    EQU $+9
                DB " EVO-DOS Ver ",VERS_DOS,"  "
                DB 0X0D,0X0D,0X7F
                ;  12345678901234567890123456789012
                DB " 2010 Created for PentEvo 4MB "
                DB 0X16,0X05,0X0C
                DB "NedoPC"
                DB 0X16,ZASTV_Y,ZASTV_X
        IF EMU
ROM_VER         IF EMU3D2F=1
                DC "EMUL 3D2F"
                ELSE
                DC "EMUL 3D13"
                ENDIF
        ELSE
                DC "Nedo Emul"
        ENDIF

END_OUT_DIR     call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                call    PRINT_0D
                call    PRINT_0D
loc_3B5         ld      bc,(TRD_5E0A)
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                ld      hl,TXT_FREE_
                rst     0x18
GOTO_END        jp      END_COMAND

; …—€’œ ‘ŽŽ™…ˆŸ Ž Ž˜ˆŠ…
PRINT_ERROR     push    af
                ld      a,(TRD_5D0E)                    ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                cp      __RETURN
                jr      nz,CP4PRINT_HEAD
                pop     af
                ret

CP4PRINT_HEAD   pop     af
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      a,(TRD_5D15)                    ; …‘‹ˆ 0,…—€’€’œ ˜€Š“ TR-DOS.ˆ€—… … …—€’€’œ
                or      a
                call    z,PRINT_MSG                     ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
                ret

ERR_NOFILES     ld      hl,TXT_NOFILES_
                ld      a,1
                jp      PRINT_TXTERR

ERR_OK          ld      hl,TXT_OK_                      ; "O.K."
                xor     a
                jp      PRINT_TXTERR

; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
RD_0SEC2BUF     xor     a
                ld      (TRD_5CCC),a                    ; ’…Š“™ˆ‰ ŽŒ… ‘…Š’Ž€ ˆ —’…ˆˆ Š€’€‹Žƒ€
; —’…ˆ… ‘…Š’Ž€ Š€’€‹Žƒ€ Ž ŽŒ…“
READ_NUM_SEC    ld      de,(TRD_5CCC)                   ; ’…Š“™ˆ‰ ŽŒ… ‘…Š’Ž€ ˆ —’…ˆˆ Š€’€‹Žƒ€
                ld      d,0
READ_SEC4NEM    call    CREATE_BUF                      ; ‘Ž‡„€ˆ… “”…€
                ld      hl,TRD_5D25
                ld      b,1
                jp      COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚

; —’…ˆ… 9 ‘…Š’Ž€
READ_9SEC       call    CREATE_BUF                      ; ‘Ž‡„€ˆ… “”…€
                ld      de,8
                jr      READ_SEC4NEM

;€‘’Ž‰Š€ € „ˆ‘Š…’“
COM_18          call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E0C)
                cp      0x10
                jr      z,CP_TYPE_DSK
                ld      hl,TXT_DISCERROR_
                rst     0x18
                jr      GOTO_END

CP_TYPE_DSK     call    GET_TYPE_DISK
                res     0,(hl)
                res     1,(hl)
                ld      a,(TRD_5E08)
                bit     0,a
                jr      nz,loc_425
                set     0,(hl)
loc_425         bit     3,a
                ret     nz
                set     1,(hl)
                ret

CP_SECOND_SYM   ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                inc     hl
                ld      a,(hl)
                cp      0x0d
                ret

CAT             call    CP_SECOND_SYM                   ; ‚›Ž‹…ˆ… ŠŽŒ€„› CAT
                ld      bc,2
                ld      (TRD_5CDB),bc
                jr      z,loc_46A
                cp      "#"
                jr      nz,CODES
                ld      (CH_ADD),hl
                call    SET_NUM_CHAN
                call    GET_SYMSTR
                cp      0x0d
                jr      z,loc_46A
                cp      ","
                jp      nz,SINTAX_ERROR
                call    GET_NEXT_SYM
                call    PUT_NUMDSK_STK
                jr      loc_460

CODES           call    SET_AND_PUT
loc_460         call    EXIT_IF_SINTAX
                call    GET_STKBOT_
                ex      de,hl
                call    SETUP_DSK
loc_46A         call    EXIT_IF_SINTAX
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF9),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5CDB)
loc_479         cp      2
                push    af
                call    z,CLEAR_SCREEN                  ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     af
                cp      0x11
                jp      nc,SINTAX_ERROR
                call    OPENSTREAM
                ld      a,0xff
                ld      (TRD_5CF8),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      hl,TXT_TITLE_                   ; "TITLE:"
                rst     0x18
                ld      hl,TRD_5E1A
                rst     0x18
                call    PRINT_0D
                ld      a,(TRD_5E09)
                ld      hl,TRD_5E19
                sub     (hl)
                push    hl
                call    PRINT_CHISLO_A_
                ld      hl,TXT_NOFILES+2
                rst     0x18
                pop     hl
                ld      c,(hl)
                call    CONV2_2BYTES
                ld      hl,TXT_DELFILE_                 ; " DEL. FILE"
                rst     0x18
                call    RD_0SEC2BUF                     ; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
                ld      hl,TRD_5D25
loc_4B6         call    CP_END_DIR                      ; Ž‚…Š€ ŽŠŽ—€ˆŸ „ˆ…Š’Žˆˆ
                call    PRINT_0D
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                add     a,"A"
                rst     0x10
                ld      b,2
loc_4C4         call    CP_END_DIR                      ; Ž‚…Š€ ŽŠŽ—€ˆŸ „ˆ…Š’Žˆˆ
                push    bc
                ld      a,":"
                rst     0x10
                push    hl
                call    PRINT_FILENAME                  ; …—€’œ ˆŒ…ˆ ”€‰‹€
                ld      bc,0x0d
                pop     hl
                push    hl
                add     hl,bc
                ld      c,(hl)
                push    bc
                ld      a,c
                ld      b,2
                cp      0x0a
                jr      c,loc_4DF
                dec     b
loc_4DF         cp      0x64
                jr      nc,loc_4E8
loc_4E3         ld      a," "
                rst     0x10
                djnz    loc_4E3
loc_4E8         pop     bc
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                pop     hl
                pop     bc
                ld      de,0x10
                add     hl,de
                djnz    loc_4C4
                jr      loc_4B6

; Ž‚…Š€ ŽŠŽ—€ˆŸ „ˆ…Š’Žˆˆ
CP_END_DIR      push    hl
                push    bc
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      hl,TRD_5CF6                     ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                cp      (hl)
                call    nz,COM_01                       ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     bc
                pop     hl
                jp      CP_END_CAT

ADD_10          ld      de,0x10
                add     hl,de
                ret

CP_END_BUF      push    hl
                push    bc
                ld      bc,0xa1db
                add     hl,bc
                jr      c,READ_SEC2BUF
                pop     bc
                pop     hl
                ret

READ_SEC2BUF    ld      hl,TRD_5CCC                     ; ’…Š“™ˆ‰ ŽŒ… ‘…Š’Ž€ ˆ —’…ˆˆ Š€’€‹Žƒ€
                inc     (hl)
                call    READ_NUM_SEC                    ; —’…ˆ… ‘…Š’Ž€ Š€’€‹Žƒ€ Ž ŽŒ…“
                pop     bc
                pop     hl
                ld      hl,TRD_5D25
                ret

NUMDSK2BYTE     and     0xdf
                sbc     a,"A"
                jp      c,SINTAX_ERROR
                cp      4
                jp      nc,SINTAX_ERROR
                ret

CP_ON_STKBOT    call    GET_STKBOT_
                ld      a,c
                or      b
                jp      z,SINTAX_ERROR
                ret

NEW             call    INP_2STR2STKBOT                 ; ‚›Ž‹…ˆ… ŠŽŒ€„› NEW
                call    EXIT_IF_SINTAX
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                call    SET_CP_FILENAME
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF8),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                jp      nz,ERR_NOFILES
                push    bc
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                call    SET_CP_FILENAME
                push    af
                ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      hl,TRD_5CF6                     ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                cp      (hl)
                jp      nz,SINTAX_ERROR
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                pop     af
                jp      z,FILE_EXISTS
                pop     bc
loc_569         call    SETHEADFILENAME
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                jp      ERR_OK

CP_HIGH_ERR     ld      a,(TRD_5D10)                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                or      a
                ret

CP_ERASED_FILES ld      a,(TRD_5D07)                    ; ‘—…’—ˆŠ “„€‹…›• ”€‰‹Ž‚
                or      a
                jp      z,ERR_NOFILES
                jp      ERR_OK

; ‡€Ž‘ € “„€‹…ˆ… ”€‰‹€
GET_OVERWRITE_  push    bc
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                add     a,"A"
                call    PRINT_A_
                ld      a,":"
                call    PRINT_A_
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                call    PRINT_FILENAME                  ; …—€’œ ˆŒ…ˆ ”€‰‹€
                ld      hl,TXT_FILEEXIST                ; "FILE EXISTS"
                call    PRINT_MSG                       ; ¯¥ç âì ⥪á⮢®£® á®®¡é¥­¨ï
                call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                push    af
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     af
                pop     bc
                ret     nz
                push    bc
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     bc
                call    ERASE_FILE                      ; “„€‹…ˆ… ”€‰‹€
                xor     a
                ret

CP_EXT_SHARP    ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "#"
                jr      z,FINDFILENAME_0A
                xor     a
                ret

FINDFILENAME_0A ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                ld      a,9
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                ret

COPY_STAR_STAR  ld      a,(TRD_5CDD)                    ; ‚›Ž‹…ˆ… ŠŽŒ€„› COPY *,*
                cp      "*"
                jp      nz,ERR_NOFILES
                call    GET_STKBOT_
                ex      de,hl
                call    SETUP_DSK
                ld      a,(hl)
                cp      "*"
                jp      nz,SINTAX_ERROR
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF9),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,0xff
                ld      (TRD_5D0D),a
loc_5F4         ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5D0D)
                inc     a
                ld      (TRD_5D0D),a
                ld      c,a
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      a,(TRD_5CDD)                    ; ˆŒŸ ”€‰‹€
                cp      0
                jp      z,ERR_OK
                cp      1
                jr      z,loc_5F4
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      de,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      bc,7
                ldir
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jr      nz,loc_634
                call    CP_EXT_SHARP
                jr      nz,loc_634
                call    GET_OVERWRITE_                  ; ‡€Ž‘ € “„€‹…ˆ… ”€‰‹€
                jr      nz,loc_5F4
loc_634         call    COPY_FILE2DSK                   ; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                jr      loc_5F4

; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
COPY_FILE2DSK   call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E09)
                cp      0x80
                jp      z,ERR_DIRFULL                   ;‚ „ˆ…Š’Žˆˆ Œ…‘’€ …’“
                ld      hl,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      de,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      bc,7
                ldir
                ld      de,(TRD_5CEA)                   ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      d,0
                or      a
                ld      hl,(TRD_5E0A)
                sbc     hl,de
                jp      c,loc_1C45
                ld      (TRD_5E0A),hl
                ld      hl,(TRD_5E06)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                push    hl
                call    COPY_FILE                       ; ŠŽˆŽ‚€ˆ… ”€‰‹€ € 2 „ˆ‘ŠŽ‚Ž„€•
                pop     hl
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      hl,(TRD_5CF4)
                ld      (TRD_5E06),hl
                ld      hl,TRD_5E09
                inc     (hl)
                ld      c,(hl)
                dec     c
                ld      b,0
                push    bc
                ld      de,9
                ld      (TRD_5CF4),de
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                pop     bc
                call    SETHEADFILENAME
                ret

COPY            ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                inc     hl
                ld      a,(hl)
                and     0xdf
                cp      "S"
                jp      z,COPY_S
                cp      "B"
                jp      z,COPY_B
                call    INP_2STR2STKBOT
                call    EXIT_IF_SINTAX
                call    RESERVED_RAM
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                call    SET_CP_FILENAME
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF8),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                jp      nz,COPY_STAR_STAR               ; ‚›Ž‹…ˆ… ŠŽŒ€„› COPY *,*
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      de,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      bc,7
                ldir
                call    SET_CP_FILENAME
                push    af
                push    bc
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF9),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                pop     bc
                pop     af
                jr      nz,loc_6F3
                call    CP_EXT_SHARP
                jr      nz,loc_6F3
                call    GET_OVERWRITE_                  ; ‡€Ž‘ € “„€‹…ˆ… ”€‰‹€
                jp      nz,ERR_OK
loc_6F3         call    COPY_FILE2DSK                   ; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "#"
                jp      nz,ERR_OK
                ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                inc     (hl)
                ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    CP_EXT_SHARP
                jp      nz,ERR_OK
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      de,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      bc,7
                ldir
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                  ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                call    COM_18                  ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                jr      loc_6F3

; ŠŽˆŽ‚€ˆ… ”€‰‹€ € 2 „ˆ‘ŠŽ‚Ž„€•
COPY_FILE       ld      a,(TRD_5CF1)
                or      a
                ret     z
                push    hl
                ld      hl,TRD_5D23
                sub     (hl)
                pop     hl
                jr      nc,loc_775
                ld      a,(TRD_5CF1)
                ld      b,a
                xor     a
                ld      (TRD_5CF1),a
loc_744         push    bc
                ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     bc
                push    bc
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                push    hl
                ld      de,(TRD_5CF2)
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CF2),hl
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     hl
                pop     bc
                ld      de,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                call    COM_06                          ; ‡€ˆ‘œ ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                jr      COPY_FILE                       ; ŠŽˆŽ‚€ˆ… ”€‰‹€ € 2 „ˆ‘ŠŽ‚Ž„€•

loc_775         ld      (TRD_5CF1),a
                push    hl
                ld      hl,TRD_5D23
                ld      b,(hl)
                pop     hl
                xor     a
                jr      loc_744

;“„€‹…ˆ… ”€‰‹€
ERASE_FILE      xor     a
                ld      (TRD_5D07),a                    ; ‘—…’—ˆŠ “„€‹…›• ”€‰‹Ž‚
                jr      ERASE_FILES

ERASE           call    SET_AND_PUT                     ; ‚›Ž‹…ˆ… ŠŽŒ€„› ERASE
                call    EXIT_IF_SINTAX
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                xor     a
                ld      (TRD_5D07),a                    ; ‘—…’—ˆŠ “„€‹…›• ”€‰‹Ž‚
                call    FIND_FILE                       ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
                call    ERASE_FILES
                jp      nz,CP_ERASED_FILES
                jp      ERR_OK

ERASE_FILES     ld      a,(TRD_5CDD)                    ; ˆŒŸ ”€‰‹€
                ld      (TRD_5D08),a                    ; …‚›‰ ‘ˆŒ‚Ž‹ ˆŒ…ˆ ”€‰‹€
                ret     nz
                ld      hl,TRD_5D07                     ; ‘—…’—ˆŠ “„€‹…›• ”€‰‹Ž‚
                inc     (hl)
                push    bc
                call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E09)
                pop     bc
                inc     c
                cp      c
                jr      nz,loc_7BC
                dec     a
                ld      (TRD_5E09),a
                xor     a
loc_7BC         push    af
                jr      z,loc_7C3
                ld      hl,TRD_5E19
                inc     (hl)
loc_7C3         push    bc
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                pop     bc
                dec     c
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                pop     af
                jp      z,loc_7D2
                ld      a,1
loc_7D2         ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                push    af
                call    WRHEAD_FILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      a,(TRD_5D08)                    ; …‚›‰ ‘ˆŒ‚Ž‹ ˆŒ…ˆ ”€‰‹€
                ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                pop     af
                jr      z,WR_NEW_FREE_SEC
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jr      ERASE_FILES

WR_NEW_FREE_SEC call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      hl,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      (TRD_5E06),hl
                ld      de,(TRD_5CEA)                   ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      hl,(TRD_5E0A)
                ld      d,0
                add     hl,de
                ld      (TRD_5E0A),hl
                jp      REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€

;===============FREE SPACE 1============
        IF EMU
                include virtual.a80
        ENDIF
;=======END OF FREE SPACE 1=============

                TITLE "evo-dos.a80"

                DUPL 0X1018-$,0XFF
COM_STAR        call    SET_AND_PUT
                call    EXIT_IF_SINTAX
                call    CP_ON_STKBOT
                ld      a,(de)
                call    NUMDSK2BYTE
                ld      (TRD_5D19),a                    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
;               call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                JP SET_CURRDRV
                jp      ERR_OK

; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
INP_EXTFILENAME ld      b,"C"
                ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                or      a
                jr      nz,loc_104D
                call    GET_SYMSTR
                cp      __CODE
                ld      b,"C"
                jr      z,loc_104D
                cp      __DATA
                ld      b,"D"
                jr      z,loc_104D
                cp      "#"
                ld      b,"#"
                jr      z,loc_104D
                ld      b,"B"
loc_104D        ld      hl,TRD_5CE5                     ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      (hl),b
                ret

; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
GET_KEYS        di
                push    hl
                push    bc
                push    de
loc_1056        rst     0x20
                dw      0x028e                  ; ‘Š€ˆŽ‚€ˆ… Š‹€‚ˆ€’“›
                ld      c,0
                jr      nz,loc_1056
                rst     0x20
                dw      0x031e                  ; Ž‚…Š€ ‡€—…ˆŸ €†€’Ž‰ Š‹€‚ˆ˜ˆ
                jr      nc,loc_1056
                dec     d
                ld      e,a
                rst     0x20
                dw      0x0333                  ; „…ŠŽ„ˆŽ‚€ˆ… Š‹€‚ˆ€’“›
                pop     de
                pop     bc
                pop     hl
                and     0xdf
                ei
                ret

; ˆ‘Ž‚€ˆ… –‚…’›• ‹ˆˆ‰ ‡€‘’€‚Šˆ „Ž‘€
OUT_COLOR_LINE  ld      hl,ZASTV_ATR
                ld      b,0x0a
loc_1073        ld      (hl),7
                inc     hl
                djnz    loc_1073
                ld      (hl),2
                inc     hl
                ld      (hl),0x16
                inc     hl
                ld      (hl),0x34
                inc     hl
                ld      (hl),0x25
                inc     hl
                ld      (hl),0x28
                inc     hl
                ld      (hl),7
                ld      hl,ZASTV_PIX
                ld      b,8
                xor     a
loc_108F        push    bc
                scf
                rla
                push    hl
                push    af
                ld      b,5
loc_1096        inc     hl
                ld      (hl),a
                djnz    loc_1096
                pop     af
                pop     hl
                pop     bc
                ld      de,0x100
                add     hl,de
                djnz    loc_108F
                ret

                ret

TXT_DELFILES    db " Del."
TXT_FILE_S_     DZ " File(s)"
TXT_TITLE       DC "Title: "
TXT_DISKDRIVE   DB 0X17,0X11," Disk Drive: ",0
TXT_1SPACE      DB 0X17,0X10," ",0
TXT_40TRK_SS    DB 0X17,0X10," 40 Track S. Side",0
TXT_80TRK_SS    DB 0X17,0X10," 80 Track S. Side",0
TXT_40TRK_DS    DB 0X17,0X10," 40 Track D. Side",0
TXT_80TRK_DS    DB 0X17,0X10," 80 Track D. Side",0
TXT_FREESECS    DB 0X17,0X10," Free Sector ",0
TXT_FILENAME    DB 0X0D,0X0D,"  File Name    Start Length Line",0

CREATE_222BYTES ld      hl,(WORKSP)
                ld      (TRD_5CCF),hl                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x222
                jp      CREATE_FREERAM

;…—€’œ —ˆ‘‹€ ˆ‡ …ƒˆ‘’€ HL ‚ „…‘Ÿ’ˆ—ŽŒ ‚ˆ„…
PRINT_HL_CHISLO xor     a
                ld      de,10000
loc_1161        sbc     hl,de
                jr      c,loc_1168
                inc     a
                jr      loc_1161

loc_1168        add     a,"0"
                call    PRINT_A_CHISLO
                add     hl,de
                xor     a
                ld      de,1000
loc_1172        sbc     hl,de
                jr      c,loc_1179
                inc     a
                jr      loc_1172

loc_1179        add     a,"0"
                call    PRINT_A_CHISLO
                add     hl,de
                xor     a
                ld      de,100
loc_1183        sbc     hl,de
                jr      c,loc_118A
                inc     a
                jr      loc_1183

loc_118A        add     a,"0"
                call    PRINT_A_CHISLO
                add     hl,de
                xor     a
                ld      de,10
loc_1194        sbc     hl,de
                jr      c,loc_119B
                inc     a
                jr      loc_1194

loc_119B        add     a,"0"
                call    PRINT_A_CHISLO
                add     hl,de
                ld      a,l
                add     a,"0"
                call    PRINT_A_CHISLO
                ret

PRINT_A_CHISLO  push    hl
                push    de
                call    PRINT_A_
                pop     de
                pop     hl
                ret

FIND_END_BUFDIR push    hl
                push    bc
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      hl,TRD_5CF6                     ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                cp      (hl)
                call    nz,COM_01                       ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     bc
                pop     hl
                call    CP_END_BUF
                ld      a,(hl)
                or      a
                jp      z,END_COMAND
                cp      1
                call    z,ADD_10
                ret     nz
                jr      FIND_END_BUFDIR

LIST            call    CP_SECOND_SYM
                ld      bc,2
                ld      (TRD_5CDB),bc
                jr      z,loc_1205
                cp      "#"
                jr      nz,LIST4CODES
                ld      (CH_ADD),hl
                call    SET_NUM_CHAN
                call    GET_SYMSTR
                cp      0x0d
                jr      z,loc_1205
                cp      ","
                jp      nz,SINTAX_ERROR
                call    GET_NEXT_SYM
                call    PUT_NUMDSK_STK
                jr      loc_11FB

LIST4CODES      call    SET_AND_PUT
loc_11FB        call    EXIT_IF_SINTAX
                call    GET_STKBOT_
                ex      de,hl
                call    SETUP_DSK
loc_1205        call    EXIT_IF_SINTAX
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (TRD_5CF9),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5CDB)
                cp      2
                push    af
                call    z,CLEAR_SCREEN                  ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     af
                cp      0x11
                jp      nc,SINTAX_ERROR
                call    OPENSTREAM
                ld      a,0xff
                ld      (TRD_5CF8),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    CREATE_222BYTES
                ld      hl,TRD_5E06
                ld      de,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0X20
                ldir
                call    RD_0SEC2BUF                     ; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
                ld      hl,TRD_5D25
                push    hl
loc_123E        ld      hl,TXT_TITLE                    ; "TITLE:"
                push    bc
                rst     0x18
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x14
                add     hl,bc
                rst     0x18
                ld      hl,TXT_DISKDRIVE
                rst     0x18
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                add     a,"A"
                call    PRINT_A_
                call    PRINT_0D
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,3
                add     hl,bc
                ld      a,(hl)
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x13
                add     hl,bc
                sub     (hl)
                push    hl
                call    PRINT_CHISLO_A_
                ld      hl,TXT_DELFILES+5
                rst     0x18
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,2
                add     hl,bc
                ld      a,(hl)
                ld      hl,TXT_40TRK_SS
                cp      0x19
                jr      z,loc_1292
                ld      hl,TXT_80TRK_SS
                cp      0x18
                jr      z,loc_1292
                ld      hl,TXT_40TRK_DS
                cp      0x17
                jr      z,loc_1292
                ld      hl,TXT_80TRK_DS
loc_1292        rst     0x18
                pop     hl
                ld      c,(hl)
                call    CONV2_2BYTES
                ld      hl,TXT_DELFILES                 ; " DEL. FILE(S)"
                rst     0x18
                ld      hl,TXT_FREESECS
                rst     0x18
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,4
                add     hl,bc
                ld      c,(hl)
                inc     hl
                ld      b,(hl)
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                ld      hl,TXT_FILENAME
                rst     0x18
                pop     bc
                pop     hl
                ld      b,0x10                          ;‘ŠŽ‹œŠŽ ˆŒ… ”€‰‹Ž‚ ‡€ Ž•Ž„ ‚›‚…‘’ˆ € Š€
loc_12B5        call    FIND_END_BUFDIR                 ;Ž‚…Š€ € ŽŠŽ—€ˆ… „ˆ…Š’Žˆˆ
                call    PRINT_0D                        ;……‚Ž„ ‘’ŽŠˆ
                push    bc
                push    hl
                call    PRINT_FILENAME                  ; …—€’œ ˆŒ…ˆ ”€‰‹€
                ld      bc,0x0d
                pop     hl
                push    hl
                add     hl,bc
                ld      c,(hl)
                push    bc
                ld      a,c
                ld      b,2
                cp      10
                jr      c,loc_12D0
                dec     b
loc_12D0        cp      100
                jr      nc,loc_12D9
loc_12D4        ld      a," "
                rst     0x10
                djnz    loc_12D4
loc_12D9        pop     bc
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                ld      hl,TXT_1SPACE
                rst     0x18
                pop     hl
                push    hl
                ld      bc,9
                add     hl,bc
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                push    hl
                ex      de,hl
                call    PRINT_HL_CHISLO
                ld      a," "
                call    PRINT_A_
                pop     hl
                inc     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ex      de,hl
                call    PRINT_HL_CHISLO
                pop     hl
                push    hl
                ld      bc,8
                add     hl,bc
                ld      a,(hl)
                cp      "B"
                call    z,PRN_ADR_ASTART
                pop     hl
                pop     bc
                ld      de,0x10
                add     hl,de
                djnz    loc_12B5
                push    hl
                call    PRINT_0D
                call    PRINT_0D
                jp      loc_123E

PRN_ADR_ASTART  ld      bc,5
                add     hl,bc
                ld      b,(hl)
                inc     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                dec     b
                jr      z,loc_1335
                dec     b
                jr      z,loc_1335
                ld      a,0x10
loc_132C        inc     e
                cp      e
                jr      nz,loc_1333
                ld      e,0
                inc     d
loc_1333        djnz    loc_132C
loc_1335        ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x21
                add     hl,bc
                ld      b,2
                push    hl
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      a,0x80
                pop     hl
                ld      bc,0x200
                cpir
                ld      a,(hl)
                cp      0xaa
                ret     nz
                inc     hl
                ld      c,(hl)
                inc     hl
                ld      b,(hl)
                ld      a,b
                or      c
                ret     z
                push    bc
                ld      a," "
                call    PRINT_A_
                pop     bc
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                ret

COPY_S          call    SET_CH_ADD
                call    GET_NEXT_SYM
                call    PUT_NUMDSK_STK
                call    EXIT_IF_SINTAX
                call    RESERVED_RAM
                ld      hl,TXT_INS_SRC                  ; "INSERT SOURCE DISK THEN PRESS Y"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_1375        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_1375
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                call    SET_CP_FILENAME
                jp      nz,ERR_NOFILES
                call    COPY_ON1DSK
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "#"
                jp      nz,ERR_OK
loc_1393        ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                inc     (hl)
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,TXT_INS_SRC                  ; "INSERT SOURCE DISK THEN PRESS Y"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_13A5        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_13A5
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      nz,ERR_OK
                call    COPY_ON1DSK
                jr      loc_1393

COPY_ON1DSK     call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      de,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      bc,7
                ldir
                ld      a,(TRD_5CF1)
                ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    GET_TYPE_DISK
                ld      (TRD_5CD9),a                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,0xff
                ld      (TRD_5D21),a
                call    COPY_ON1DSK_
                ld      hl,(TRD_5D1F)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      hl,(TRD_5CF4)
                ld      (TRD_5E06),hl
                ld      hl,TRD_5E09
                inc     (hl)
                ld      c,(hl)
                dec     c
                ld      b,0
                push    bc
                ld      de,9
                ld      (TRD_5CF4),de
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                pop     bc
                call    SETHEADFILENAME
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                ret

CP_FREESEC      xor     a
                ld      (TRD_5D21),a
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    GET_TYPE_DISK
                ld      (TRD_5CDA),a
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      z,FILE_EXISTS
                call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E09)
                cp      0x80
                jp      z,ERR_DIRFULL
                ld      hl,TRD_5CED                     ; ŽŒ… …‚ŽƒŽ ’…Š€ ”€‰‹€
                ld      de,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      bc,7
                ldir
                call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5D10)                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                ld      (TRD_5CEA),a                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      de,(TRD_5CEA)                   ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      d,0
                or      a
                ld      hl,(TRD_5E0A)
                sbc     hl,de
                jp      c,loc_1C45
                ld      (TRD_5E0A),hl
                ld      hl,(TRD_5E06)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      (TRD_5D1F),hl
                ret

COPY_ON1DSK_    ld      a,(TRD_5CF1)
                or      a
                ret     z
                ld      a,(TRD_5D21)
                or      a
                jr      nz,loc_146F
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,TXT_INS_SRC                  ; "INSERT SOURCE DISK THEN PRESS Y"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_1465        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_1465
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
loc_146F        ld      a,(TRD_5CF1)
                or      a
                ret     z
                push    hl
                ld      hl,TRD_5D23
                sub     (hl)
                pop     hl
                jr      nc,loc_14CB
                ld      a,(TRD_5CF1)
                ld      b,a
                xor     a
                ld      (TRD_5CF1),a
loc_1484        push    bc
                ld      (TRD_5CCE),a                    ; #00-—’…ˆ… ‘…Š’Ž€,#FF-‡€ˆ‘œ ‘…Š’Ž€
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                push    hl
                ld      de,(TRD_5CF2)
                call    SET_DSK_SOURCE
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CF2),hl
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,TXT_INS_DEST                 ; "INSERT DESTINATION DISK"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_14A5        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_14A5
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                ld      a,(TRD_5D21)
                or      a
                call    nz,CP_FREESEC
                pop     hl
                pop     bc
                ld      de,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                call    SETUP_DSK_DEST
                call    COM_06
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                jp      COPY_ON1DSK_

loc_14CB        ld      (TRD_5CF1),a
                push    hl
                ld      hl,TRD_5D23
                ld      b,(hl)
                pop     hl
                xor     a
                jp      loc_1484

SET_DSK_SOURCE  push    hl
                push    de
                call    GET_TYPE_DISK
                ld      a,(TRD_5CD9)                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                pop     de
                pop     hl
                ret

SETUP_DSK_DEST  push    hl
                push    de
                call    GET_TYPE_DISK
                ld      a,(TRD_5CDA)
                ld      (hl),a
                pop     de
                pop     hl
                ret

CP_FREE_DEST    xor     a
                ld      (TRD_5D21),a
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    GET_TYPE_DISK
                ld      (TRD_5CDA),a
                ld      a,(TRD_5E08)
                ld      (TRD_5CE7),a                    ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      hl,640
                cp      0x19
                jr      z,SAVE_SECS_DEST
                ld      hl,1280
                cp      0x18
                jr      z,SAVE_SECS_DEST
                cp      0x17
                jr      z,SAVE_SECS_DEST
                ld      hl,2560
                cp      0x16
                jr      z,SAVE_SECS_DEST
                jp      SINTAX_ERROR

SAVE_SECS_DEST  ld      (TRD_5CDD),hl                   ; ˆŒŸ ”€‰‹€
                ld      bc,(TRD_5CDF)
                sbc     hl,bc
                jp      c,loc_1C45
                ret

COPY_B          call    EXIT_IF_SINTAX
                call    RESERVED_RAM
                ld      hl,TXT_BACKUPDISK               ; "BACKUP DISK"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
                ld      hl,TXT_INS_SRC                  ; "INSERT SOURCE DISK THEN PRESS Y"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_153E        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_153E
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                ld      a,0xff
                ld      (TRD_5D21),a
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    GET_TYPE_DISK
                ld      (TRD_5CD9),a                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(TRD_5E08)
                cp      0x19
                ld      hl,640
                jr      z,loc_1575
                ld      hl,1280
                cp      0x18
                jr      z,loc_1575
                cp      0x17
                jr      z,loc_1575
                ld      hl,2560
                cp      0x16
                jr      z,loc_1575
                jp      SINTAX_ERROR

loc_1575        ld      bc,(TRD_5E0A)
                sbc     hl,bc
                ld      (TRD_5CE5),hl                   ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      (TRD_5CDF),hl
                ld      hl,0
                ld      (TRD_5CE1),hl
                ld      (TRD_5CE3),hl
                call    COPY_SECTORS
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5CE7)                    ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      (TRD_5E08),a
                ld      hl,(TRD_5CDD)                   ; ˆŒŸ ”€‰‹€
                ld      bc,(TRD_5CDF)
                sbc     hl,bc
                ld      (TRD_5E0A),hl
                call    SETUP_DSK_DEST
                ld      de,9
                ld      (TRD_5CF4),de
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                JP      ERR_OK

CP_COPY_SECS    ld      hl,(TRD_5CE5)                   ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      a,h
                or      l
                ret

COPY_SECTORS    call    CP_COPY_SECS
                ret     z
                ld      a,(TRD_5D21)
                or      a
                jr      nz,loc_15DB
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,TXT_BACKUPDISK               ; "BACKUP DISK"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
                ld      hl,TXT_INS_SRC                  ; "INSERT SOURCE DISK THEN PRESS Y"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_15D1        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_15D1
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
loc_15DB        call    CP_COPY_SECS
                ret     z
                push    bc
                push    hl
                ld      hl,TRD_5D23
                ld      c,(hl)
                ld      b,0
                pop     hl
                sbc     hl,bc
                pop     bc
                jp      nc,loc_1644
                ld      bc,(TRD_5CE5)                   ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      hl,0
                ld      (TRD_5CE5),hl                   ; €‘˜ˆ…ˆ… ”€‰‹€
loc_15F8        push    bc
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                push    hl
                call    SET_DSK_SOURCE
                ld      de,(TRD_5CE1)
                ld      b,c
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CE1),hl
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                ld      hl,TXT_BACKUPDISK               ; "BACKUP DISK"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
                ld      hl,TXT_INS_DEST                 ; "INSERT DESTINATION DISK"
                call    PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
loc_161D        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "Y"
                jr      nz,loc_161D
                call    CLEAR_DOWN_SCR                  ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                ld      a,(TRD_5D21)
                or      a
                call    nz,CP_FREE_DEST
                pop     hl
                pop     bc
                ld      de,(TRD_5CE3)
                ld      b,c
                call    SETUP_DSK_DEST
                call    COM_06
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CE3),hl
                jp      COPY_SECTORS

loc_1644        ld      (TRD_5CE5),hl                   ; €‘˜ˆ…ˆ… ”€‰‹€
                push    hl
                ld      hl,TRD_5D23
                ld      c,(hl)
                ld      b,0
                pop     hl
                xor     a
                jp      loc_15F8

CP_ERASED_FILE  call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      a,(TRD_5CDD)                    ; ˆŒŸ ”€‰‹€
                cp      1
                ret

;‘—ˆ’›‚€ˆ… Žˆ‘€’…‹Ÿ ‚ “”… 0X5CDD
COM_08          ld      c,a
; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
RDHEAD_FILENAME xor     a
loc_165E        push    bc
                call    RD_HEAD_COPY
                pop     bc
                ret

;‡€ˆ‘œ Žˆ‘€’…‹Ÿ ”€‰‹€ € „ˆ‘Š
COM_09          ld      c,a
                call    SETHEADFILENAME
                jp      REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€

SETHEADFILENAME ld      a,0xff
                jr      loc_165E

RESERVED_RAM    ld      a,0xff
                ld      (TRD_5D0E),a                    ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                call    CP_FREE_SECS
                ld      hl,(WORKSP)
                ld      (TRD_5CCF),hl                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                jp      CREATE_FREERAM

CP_FREE_SECS    rst     0x20
                dw      0x1f1a                          ; Ž‚…Š€ €‡Œ…€ ‘‚ŽŽ„Ž‰ €ŒŸ’ˆ
                ld      hl,0xffff
                sbc     hl,bc
                ld      a,h
                cp      0x10
                jr      nc,loc_168F
                ld      a,0x11
loc_168F        dec     a
                ld      (TRD_5D23),a
                ld      b,a
                ld      c,0
                ret

ADD_FILESIZE    ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                LD      (TRD_5CDB),hl
                ld      de,(TRD_5CEA)                   ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      d,0
                add     hl,de
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ret

MOVE            call    EXIT_IF_SINTAX
                call    RESERVED_RAM
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                ld      a,(TRD_5E19)
                or      a
                jp      z,ERR_OK
                ld      hl,0
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      c,0xff
loc_16C3        inc     c
                call    CP_ERASED_FILE
                jr      nz,loc_16C3
                ld      a,c
                ld      (TRD_5CD4),a
                ld      hl,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      (TRD_5CD5),hl
                call    ADD_FILESIZE
loc_16D6        inc     c
                call    CP_ERASED_FILE
                jr      z,loc_16D6
                cp      0
                jp      nz,loc_1710
                ld      a,(TRD_5CD4)
                ld      c,a
loc_16E5        inc     c
                call    CP_ERASED_FILE
                cp      0
                jr      z,REINIT_9SEC
                xor     a
                ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                call    WRHEAD_FILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                call    ADD_FILESIZE
                jr      loc_16E5

                DUPL 0X1710-$,0XFF
loc_1710        ld      a,(TRD_5CEA)                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      (TRD_5CD3),a
                ld      (TRD_5CD1),a
                ld      hl,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      (TRD_5CD5),hl
                push    bc
                call    MOVE_FILE
                pop     bc
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CD5),hl
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                xor     a
                ld      (TRD_5CEA),a                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      a,(TRD_5CDD)                    ; ˆŒŸ ”€‰‹€
                push    af
                ld      a,1
                ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                call    WRHEAD_FILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                pop     af
                ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                ld      a,(TRD_5CD4)
                ld      c,a
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      a,(TRD_5CD1)
                ld      (TRD_5CEA),a                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                call    WRHEAD_FILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      a,(TRD_5CD4)
                inc     a
                ld      c,a
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      hl,(TRD_5CD5)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                call    WRHEAD_FILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      a,(TRD_5CD4)
                ld      c,a
                jp      loc_16C3

REINIT_9SEC     ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x1000
                call    DEL_WORKRAM
                call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      hl,(TRD_5E0A)
                ld      de,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                add     hl,de
                ld      (TRD_5E0A),hl
                ld      a,(TRD_5E09)
                ld      hl,TRD_5E19
                sub     (hl)
                ld      (TRD_5E09),a
                ld      (hl),0
                ld      hl,(TRD_5CD5)
                ld      (TRD_5E06),hl
                push    af
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                pop     af
                ld      c,a
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                xor     a
                ld      (TRD_5CDD),a                    ; ˆŒŸ ”€‰‹€
                jp      loc_569

MOVE_FILE       ld      a,(TRD_5CD3)
                or      a
                ret     z
                push    hl
                ld      hl,TRD_5D23
                sub     (hl)
                pop     hl
                jr      nc,loc_17DD
                ld      a,(TRD_5CD3)
                ld      b,a
                xor     a
                ld      (TRD_5CD3),a
loc_17BA        push    bc
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                push    hl
                ld      de,(TRD_5CD5)
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CD5),hl
                pop     hl
                pop     bc
                ld      de,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    COM_06
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                jr      MOVE_FILE

loc_17DD        ld      (TRD_5CD3),a
                push    hl
                ld      hl,TRD_5D23
                ld      b,(hl)
                pop     hl
                xor     a
                jr      loc_17BA

RD_HEAD_COPY    push    af
                ld      hl,TRD_5CCC                     ; ’…Š“™ˆ‰ ŽŒ… ‘…Š’Ž€ ˆ —’…ˆˆ Š€’€‹Žƒ€
                ld      (hl),0
                ld      a,c
loc_17F0        sub     0x10
                jr      c,loc_17F7
                inc     (hl)
                jr      loc_17F0

loc_17F7        add     a,0x10
                ld      c,a
                push    bc
                call    READ_NUM_SEC                    ; —’…ˆ… ‘…Š’Ž€ Š€’€‹Žƒ€ Ž ŽŒ…“
                pop     bc
                pop     af
                call    FIND_HEAD_BUF
                ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                or      a
                jr      z,loc_180D
                ex      de,hl
loc_180D
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR
                ELSE
                ldir
                ret
                ENDIF
        ELSE
                LDIR
                RET
        ENDIF

VERIFY          ld      a,0xff
                ld      (TRD_5CF9),a                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
LOAD            call    ZERO2HIGH_ERR
loc_1818        call    LOAD_FILE
                call    EXIT_IF_SINTAX
                ld      a,0xff
                ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jp      z,ERR_OK
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "B"
                jp      z,WORK4AUTORUN                  ; Ž€Ž’Š€ ‘’ŽŠˆ €‚’Ž‡€“‘Š€ …‰‘ˆŠ€
                jp      ERR_OK

LOAD_FILE       call    GET_PARAMS
                call    EXIT_IF_SINTAX
                call    CP_PARAMS
                jp      RD_FILE

GET_LOAD_CODE   ld      hl,(CH_ADD)
                inc     hl
                ld      a,(hl)
                cp      0x0d
                ret     z
                ld      a,1
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                call    INPUT_PARAMS
ZERO2HIGH_ERR   xor     a
                ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                ret

sub_1857        call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                ld      a,"B"
                cp      b
                jr      nz,loc_1866
                ld      hl,(CH_ADD)
                dec     hl
                ld      (CH_ADD),hl
loc_1866        call    INPUT_PARAMS
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                xor     a
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ret

GET_PARAMS      call    CP_SECOND_SYM
                jp      z,loc_27B
                call    SET_AND_PUT
                call    CP_HIGH_ERR
                call    nz,sub_1857
                call    GET_SYMSTR
                cp      __CODE
                call    z,GET_LOAD_CODE
                cp      __DATA
                push    af
                call    CP_HIGH_ERR
                call    z,INP_EXTFILENAME               ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                pop     af
                call    z,READ_MASSIV
                call    EXIT_IF_SINTAX
                call    FIND_FILE                       ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
FIND_RD_HEAD    jp      nz,ERR_NOFILES
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ret

CP_PARAMS       ld      a,(TRD_5CD6)
                or      a
                ld      hl,(TRD_5CE6)                   ;€„…‘ ‡€ƒ“‡Šˆ ˆ‡ Žˆ‘€’…‹Ÿ ”€‰‹€
                jr      z,loc_18B7
                ld      hl,(TRD_5CD9)                   ;€„…‘ ‡€ƒ“‡Šˆ ˆ‡ ŠŽŒ€„Ž‰ ‘’ŽŠˆ
loc_18B7        CALL ADR_START_COM
                NOP
                cp      3
                ld      a,(TRD_5CEA)                    ;„‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                push    de
                ld      de,(TRD_5CE8)                   ;„‹ˆ€ Žƒ€ŒŒ› ˆ‡ Žˆ‘€’…‹Ÿ
                jr      nz,loc_18CB
                ld      de,(TRD_5CDB)                   ;„‹ˆ€ ”€‰‹€ „‹Ÿ ‡€ƒ“‡Šˆ ˆ‡ŠŽŒ€„Ž‰ ‘’ŽŠˆ
loc_18CB        ld      b,a
                ld      (TRD_5CDB),de
                ld      a,(TRD_5CE5)                    ;€‘˜ˆ…ˆ… ”€‰‹€
                cp      "C"
                ld      a,b
                jr      nz,loc_18FD
                ld      a,b
                cp      d
                jr      z,loc_18F6
                dec     a
                cp      d
                ld      a,b
                jr      z,loc_18F6
                ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                cp      3
                ld      a,b
                jr      z,loc_18F6
                xor     a
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ld      d,b
                ld      e,0
                ld      (TRD_5CDB),de
                jr      loc_18F9

loc_18F6        call    LOAD_FULLFILE
loc_18F9        ld      a,b
                call    KOLWO_SECS
loc_18FD        ld      b,a
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "C"
                pop     de
                ret     z
                push    de
                cp      "B"
                push    af
                call    z,LOAD4BASIC
                pop     af
                cp      "D"
                call    z,LOAD4DATA
                call    LOAD_FULLFILE
                ld      a,(TRD_5CDC)
                ld b,a
                pop de
                ret

LOAD_FULLFILE   ld      a,3
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ret

RD_FILE         call    CP_HIGH_ERR
                jr      z,loc_192D
                push    af
                call    NUM_SEC_FILE
                pop     af
                cp      0xff
loc_192D        push    af
                call    z,RD_SECTORS
                pop     af
                jr      z,loc_1937
                jp      COM_06

loc_1937        ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                cp      3
                call    z,RD_OR_VERIFY
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                dec     hl
                ld      (hl),0x80
                ret

RD_OR_VERIFY    ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jp      nz,LOAD_END_FILE
                ld      a,(TRD_5CDB)
                or      a
                ret     z
                ld      c,a
                ld      b,1
                ld      de,(TRD_5CF4)
                jr      loc_196A

RD_SECTORS      ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jp      nz,COM_05                       ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      (TRD_5CF4),de
                ld      c,0
loc_196A        ld      a,b
                or      a
                ret     z
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD9),de                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
loc_1974        push    bc
                ld      b,1
                ld      de,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      hl,TRD_5D25
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                pop     bc
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      de,TRD_5D25
loc_198E        ld      a,(de)
                cp      (hl)
                jr      nz,loc_199D
                inc     hl
                inc     de
                dec     c
                jr      nz,loc_198E
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                djnz    loc_1974
                ret

loc_199D        ld      hl,TXT_VERIFYERR                ; "VERIFY ERROR."
                ld      a,0x0d
                jp      PRINT_TXTERR

PEEK            ld      a,0xff
                jr      loc_19AB

POKE            ld      a,0xee
loc_19AB        ld      (TRD_5D10),a                    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                jp      loc_1818

MERGE           ld      a,0xff
                ld      (TRD_5D1F),a
                call    GET_PARAMS
                call    EXIT_IF_SINTAX
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "B"
                jp      nz,SINTAX_ERROR
                ld      bc,(TRD_5CE6)                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      (TRD_5CDB),bc
                push    bc
                inc     bc
                rst     0x20
                dw      0x30                            ; ‘Ž‡„€ˆ… ‘‚ŽŽ„ŽƒŽ Œ…‘’€
                ld      (hl),0x80
                ex      de,hl
                pop     de
                push    hl
                ld      de,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                call    LOAD_FULLFILE
                ld      a,(TRD_5CDC)
                ld      b,a
                call    ZERO2HIGH_ERR
                call    RD_FILE
                pop     hl
                ld      de,(PROG)
                rst     0x20
                dw      0x08d2                          ; €Ž’€ ‘Ž ‘’ŽŠ€Œˆ Žƒ€ŒŒ› € …‰‘ˆŠ…
                jp      ERR_OK

CP_FREE4PROG    ex      de,hl
                scf
                sbc     hl,de
                ret     c
                ld      de,0x0a
                add     hl,de
                ld      b,h
                ld      c,l
CP_FREE_RAM     rst     0x20
                dw      0x1f05                          ; Ž‚…Š€ ‘‚ŽŽ„Ž‰ €ŒŸ’ˆ
                ret

LOAD4BASIC      ld      de,(PROG)
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                dec     hl
                push    hl
                push    de
                sbc     hl,de
                ld      de,(TRD_5CE6)                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                push    de
                push    hl
                ld      hl,0
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jr      z,loc_1A20
                ld      hl,5
loc_1A20        add     hl,de
                ld      (TRD_5CDB),hl
                pop     hl
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jr      nz,loc_1A31
                pop     de
                pop     de
                pop     hl
                jr      loc_1A48

loc_1A31        call    CP_FREE4PROG
                pop     bc
                pop     de
                pop     hl
                push    bc
                rst     0x20
                dw      0x19e5                          ; ‚Ž‘‘’€Ž‚‹…ˆ…
                pop     bc
                call    RESERV_RAM
                inc     hl
                ld      bc,(TRD_5CE8)                   ; „‹ˆ€ Žƒ€ŒŒ›
                add     hl,bc
                ld      (VARS),hl
loc_1A48        ld      hl,(PROG)
                ret

LOAD4DATA       ld      de,(TRD_5CE8)                   ; „‹ˆ€ Žƒ€ŒŒ›
                ld      (TRD_5CDB),de
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                ret     z
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                push    hl
                call    CP_FREE4PROG
                pop     hl
                ld      a,h
                or      l
                jr      z,loc_1A79
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                dec     hl
                dec     hl
                dec     hl
                ld      bc,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                inc     bc
                inc     bc
                inc     bc
                call    DEL_WORKRAM
loc_1A79        ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                dec     hl
                ld      bc,(TRD_5CE8)                   ; „‹ˆ€ Žƒ€ŒŒ›
                push    bc
                inc     bc
                inc     bc
                inc     bc
                call    RESERV_RAM
                inc     hl
                ld      a,(TRD_5CD2)
                ld      (hl),a
                inc     hl
                pop     de
                ld      (hl),e
                inc     hl
                ld      (hl),d
                inc     hl
                ret

NUM_SEC_FILE    ld      a,(TRD_5CD9)                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      c,b
                ld      b,a
                ld      a,c
                cp      b
                jr      c,loc_1AB6
                ld      a,b
                or      a
                jp      z,SINTAX_ERROR
                dec     b
                jr      z,loc_1AB0
                ld      a,0x10
loc_1AA7        inc     e
                cp      e
                jr      nz,loc_1AAE
                ld      e,0
                inc     d
loc_1AAE        djnz    loc_1AA7
loc_1AB0        ld      b,1
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ret

loc_1AB6        ld      hl,TXT_R_O
                ld      a,5
                jp      PRINT_TXTERR

CP_FILE_FREE    call    FIND_FILE                       ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
                jp      z,FILE_EXISTS
CP_FREE_ON_DSK  call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E09)
                cp      0x80
                jp      z,ERR_DIRFULL
                ret

SAVE            call    ZERO2HIGH_ERR
                ld      hl,0
                ld      (TRD_5CD1),hl
                call    SET_AND_PUT
                call    GET_SYMSTR
                cp      __CODE
                jr      z,loc_1B39
                cp      __LINE
                jr      nz,loc_1AF8
                call    SET_NUM_CHAN
                call    EXIT_IF_SINTAX
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CD1),hl
                ld      hl,TRD_5CE5                     ; €‘˜ˆ…ˆ… ”€‰‹€
                jr      loc_1B1F

loc_1AF8        cp      __SCREENS
                jr      nz,loc_1B0D
                ld      hl,0x4000
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,0x1b00
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CDB),hl
                jr      loc_1B48

loc_1B0D        call    EXIT_IF_SINTAX
                call    GET_SYMSTR
                ld      hl,TRD_5CE5                     ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      __DATA
                jr      z,loc_1B2C
                cp      0x0d
                jp      nz,SINTAX_ERROR
loc_1B1F        ld      (hl),"B"
                call    CP_FILE_FREE
                call    DEL_5BYTES
loc_1B27        call    SET_START_SIZE
                jr      loc_1B53

loc_1B2C        ld      (hl),"D"
                call    CP_FILE_FREE
                call    CP_MASSIV
                jr      nc,loc_1B53
                jp      c,SINTAX_ERROR
loc_1B39        call    GET_START_SIZE
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
loc_1B48        call    EXIT_IF_SINTAX
                ld      a,"C"
                ld      (TRD_5CE5),a                    ; €‘˜ˆ…ˆ… ”€‰‹€
                call    CP_FILE_FREE
loc_1B53        call    SAVE_FILE
                jp      loc_569

SAVE_FILE       ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CE6),hl                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ex      de,hl
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,l
                or      h
                jp      z,SINTAX_ERROR
                ld      a,l
                or      a
                jr      z,loc_1B6D
                inc     h
loc_1B6D        ld      a,h
                ld      (TRD_5CEA),a                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      e,a
                ld      d,0
                ld      hl,(TRD_5E0A)
                sbc     hl,de
                jp      c,loc_1C45
                push    hl
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      (hl),__SCREENS
                inc     hl
                ld      de,(TRD_5CD1)
                ld      (hl),e
                inc     hl
                ld      (hl),d
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CE8),hl                   ; „‹ˆ€ Žƒ€ŒŒ›
                ld      hl,(TRD_5E06)
                ld      (TRD_5CEB),hl                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ex      de,hl
                ld      hl,(TRD_5CE6)                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      a,(TRD_5CEA)                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      b,a
                call    COM_06
                ld      hl,(TRD_5CF4)
                push    hl
                call    READ_9SEC                       ; —’…ˆ… 9 ‘…Š’Ž€
                pop     hl
                ld      (TRD_5E06),hl
                pop     hl
                ld      (TRD_5E0A),hl
                ld      hl,TRD_5E09
                ld      a,(hl)
                ld      (TRD_5D1E),a
                inc     (hl)
                push    hl
                call    REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                pop     hl
                ld      c,(hl)
                dec     c
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "B"
                call    z,SET_HEAD_STSZ
                ret

SET_HEAD_STSZ   ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      de,(PROG)
                scf
                sbc     hl,de
                ld      (TRD_5CE6),hl                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      hl,(VARS)
                sbc     hl,de
                ld      (TRD_5CE8),hl                   ; „‹ˆ€ Žƒ€ŒŒ›
                ret

SET_START_SIZE  ld      hl,(VARS)
                ld      de,(PROG)
                sbc     hl,de
                ld      (TRD_5CDB),hl
                ld      hl,(PROG)
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                inc     hl
                inc     hl
                inc     hl
                sbc     hl,de
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ret

READ_MASSIV     call    FIND_MASSIV
                ret     nc
                ld      hl,0
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(TRD_5CF9)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                ret     nz
                jp      loc_1C13

CP_MASSIV       call    FIND_MASSIV
                ret     nc
loc_1C13        ld      a,0x0e
                ld      hl,TXT_ARRAYNOT                 ; "ARRAY NOT FOUND"
                jp      PRINT_TXTERR

FIND_MASSIV     call    GET_NEXT_SYM
                call    LOOK_VARS
                set     7,c
                ld      a,c
                ld      (TRD_5CD2),a
                jr      nc,loc_1C2B
loc_1C29        scf
                ret

loc_1C2B        jr      nz,loc_1C29
                inc     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                inc     hl
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CDB),de
                ld      (TRD_5CD9),de                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                call    GET_NEXT_SYM
                cp      ")"
                jr      nz,loc_1C2B
                ret

loc_1C45        ld      hl,TXT_NOSPACE_
                ld      a,3
PRINT_TXTERR    call    PRINT_ERROR                     ; …—€’œ ‘ŽŽ™…ˆŸ Ž Ž˜ˆŠ…
                jp      END_COMAND

FILE_EXISTS     ld      hl,TXT_FILEEXISTS_
                ld      a,2
                jr      PRINT_TXTERR

SET_FILENAME    ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      b,8
loc_1C5C        ld      (hl)," "
                inc     hl
                djnz    loc_1C5C
                call    CP_ON_STKBOT
                ex      de,hl
                call    SETUP_DSK
                ld      a,c
                or      a
                jp      z,SINTAX_ERROR
                cp      9
                jr      c,loc_1C73
                ld      c,8
loc_1C73        ld      a,(hl)
                cp      " "
                jp      c,SINTAX_ERROR
                ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                push    bc
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR_RBC
               
                RET
                ELSE
                ldir
                pop bc
                ret
                ENDIF
        ELSE
                ldir
                pop     bc
                ret
        ENDIF

;‚›Ž „ˆ‘Š€ „‹Ÿ ”ŽŒ€’ˆŽ‚€ˆŸ
SETUP_DSK       inc     hl
                ld      a,(hl)                          ;‚’ŽŽ‰ ‘ˆŒ‚Ž‹ ‚ Š€‚›—Š€•
                CP      ":"                             ;…‘‹ˆ … ":", ’Ž
                jr      nz,loc_1C98                     ;……•Ž„ € ‚›Ž ’…Š“™…ƒŽ „ˆ‘ŠŽ‚Ž„€
                dec     hl
                ld      a,(hl)                          ;ˆ€—… ‡€ˆ€…Œ ˆ‡ ‘’ŽŠˆ “Š‚“ „ˆ‘ŠŽ‚Ž„€
                call    NUMDSK2BYTE                     ;“‘’€Ž‚Š€ „ˆ‘ŠŽ‚Ž„€ € ŠŽ’ŽŽŒ “„…’ ”ŽŒ€’ˆŽ‚€ˆ…
                push    bc
                push    hl
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     hl
                pop     bc
                dec     bc
                dec     bc                              ;Ž“‘Š€…Œ ˆŒŸ „ˆ‘ŠŽ‚Ž„€ ‚ ˆŒ…ˆ „ˆ‘Š€
                inc     hl
                inc     hl                              ;‘„‚ˆ“‹ˆ “Š€‡€’…‹œ ‚ ‚‚…„…Ž‰ ‘’ŽŠ… € €—€‹Ž ˆŒ…ˆ „ˆ‘Š€
                ret

loc_1C98        dec     hl
                ld      a,(TRD_5D19)                    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
                push    bc
                push    hl
                call    COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                pop     hl
                pop     bc
                ret

FIND_HEAD_BUF   ld      l,c
                ld      h,0
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl
                ld      bc,TRD_5D25
                add     hl,bc
                ret

SET_CP_FILENAME call    SET_FILENAME
; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
FIND_FILENAME   call    RD_0SEC2BUF                     ; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
                ld      b,0x80
                ld      c,0
loc_1CBA        push    bc
                call    FIND_HEAD_BUF
                call    CP_END_BUF
                pop     bc
                push    bc
                ld      a,c
                cp      0x10
                jr      nz,loc_1CCD
                pop     bc
                ld      c,0
                jr      loc_1CBA

loc_1CCD        ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      a,(TRD_5D06)                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                ld      b,a
                xor     a
                cp      (hl)
                jr      nz,loc_1CDB
                pop     bc
                jr      loc_1CE4

loc_1CDB        call    COMPARE_B_SYM
                pop     bc
                jr      z,loc_1CE7
                inc     c
                djnz    loc_1CBA
loc_1CE4        or      0xff
                ret

loc_1CE7        ld      a,0x80
                sub     b
                ld      c,a
                ld      (TRD_5D1E),a
                xor     a
                ret     z

;Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ˆ €‘˜ˆ…ˆž
COM_0A          call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                ld      hl,TRD_5D0F                     ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      (hl),c
                ret     z
                ld      (hl),0xff
                ret

RETURN          call    EXIT_IF_SINTAX
                CALL    DELETE_BUFFER
                res     3,(iy+1)
                call    RESTORE_SP                      ; ‚Ž‘‘’€Ž‚‹…ˆ… ……•‚€’—ˆŠ€ Ž˜ˆŽŠ
                ld      sp,(TRD_5D1C)                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                exx                     ;LD HL,(ERR_SP)
                ld      hl,0x2758       ;DEC HL
                exx                     ;LD A,0X12
                dec     hl              ;CP (HL)
                ld      a,0x12          ;JR NZ,LOCRET_1D19
                cp      (hl)            ;DEC HL
                ret     nz              ;LD (ERR_SP),HL
                dec     hl              ;LOCRET_1D19    RET
                jp      loc_0235

SINTAX_ERROR    bit     7,(iy+0)
                jr      z,loc_1D25
                ld      a,0x0b
                ld      (ERR_NR),a
loc_1D25        inc     a
                ld      hl,TXT_ERROR_
loc_1D29        call    PRINT_ERROR                     ; …—€’œ ‘ŽŽ™…ˆŸ Ž Ž˜ˆŠ…
                jp      END_COMAND

loc_1D2F        ld      a,(ERR_NR)
                ld      hl,TXT_BREAK                    ; "*BREAK*"
                cp      0x14
                jr      z,loc_1D29
                cp      0x0c
                jr      z,loc_1D29
                ld      hl,TXT_OUTRAM                   ; "OUT OF RAM"
                cp      3
                jr      z,loc_1D29
                ld      hl,TXT_ARRAYNOT                 ; "ARRAY NOT FOUND"
                cp      1
                jr      z,loc_1D29
                jr      SINTAX_ERROR

RUN             call    ZERO2HIGH_ERR
                call    LOAD_FILE
                call    EXIT_IF_SINTAX
                ld      hl,(TRD_5CE6)
                ld      a,(TRD_5CE5)                    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "B"
                JP      RUN_FILE

                push    hl
                ret

CLEAR_WORKSPACE ld      hl,TRD_5D0E                     ; #FF-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                ld      a,(hl)
loc_1D67        cp      0xff
                ld      (hl),0
                ret     nz
                rst     0x20
                dw      0x16bf                          ; Ž—ˆ‘’Š€ €Ž—…‰ Ž‹€‘’ˆ ˆ ‘’…Š€ Š€‹œŠ“‹Ÿ’Ž€
                ret

CP_SINTAX       bit     7,(iy+1)
                ret

EXIT_IF_SINTAX  call    CP_SINTAX
                ret     nz
                pop     hl
                ret

; ‡€…‘…ˆ… —ˆ‘‹€ € ‘’…Š Š€‹œŠ“‹Ÿ’Ž€
CHISLO2STKBOT   call    GET_NEXT_SYM
                call    BC2STKBOT
                jr      CP_SINTAX

; Ž’Š›’ˆ… Š€€‹€ 0
OPEN_CHAN_0     xor     a
OPENSTREAM      rst     0x20
                dw      0x1601                          ; Ž’Š›’ˆ… Š€€‹€
                ret

; Ž’Š›’ˆ… Š€€‹€ 2
OPEN_CHAN_2     ld      a,2
                jr      OPENSTREAM

GET_SYMSTR      rst     0x20
                dw      0x18                            ; ‚›ŽŠ€ ‘ˆŒ‚Ž‹€ ˆ‡ (CH_ADD)
                ret

CALL2BASEDIT    call    OPEN_CHAN_0                     ; Ž’Š›’ˆ… Š€€‹€ 0
                rst     0x20
                dw      0x0f2c                          ; …„€Š’Ž ŠŽŒ€„Ž‰ ‘’ŽŠˆ
                ret

; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
CLEAR_SCREEN    rst     0x20
                dw      0x0d6b                          ; Ž—ˆ‘’Š€ Š€€
                ret

LOOK_VARS       rst     0x20
                dw      0x28b2                          ; LOOK-VARS. ”ˆƒ ‡€…’ —… „…‹€…’
                ret

; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
CLEAR_DOWN_SCR  rst     0x20
                dw      0x0d6e                          ; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
                ret

PRINT_CHISLO_A_ ld      c,a
CONV2_2BYTES    ld      b,0
                jp      PRINT_CHISLO

PRINT_CHISLO    push    bc
                DUPL 3,0
                pop     bc
                rst     0x20
                dw      0x1a1b                          ; …—€’œ ‘ŽŽ™…ˆ‰ ˆ ŽŒ…Ž‚ ‘’ŽŠ
                DUPL 3,0
                ret

GET_STKBOT_     rst     0x20
                dw      0x2bf1                          ; —’…ˆ… „€ ‘’…Š€ Š€‹œŠ“‹Ÿ’Ž€
                ret

FIND_LAST       rst     0x20
                dw      0x1e99                          ; Žˆ‘Š Ž‘‹…„…ƒŽ –…‹ŽƒŽ —ˆ‘‹€
                ret

PUT_NUMDSK_STK  rst     0x20
                dw      0x1c8c
                ret

BC2STKBOT       rst     0x20
                dw      0x1c82
                ret

SET_CH_ADD      ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                inc     hl
                ld      (CH_ADD),hl
                ret

INP_2STR2STKBOT call    SET_AND_PUT
loc_1DD0        call    GET_SYMSTR
                cp      ","
                jp      nz,SINTAX_ERROR
                call    GET_NEXT_SYM
                call    PUT_NUMDSK_STK
                ret

SET_AND_PUT     call    SET_CH_ADD
                jp      PUT_NUMDSK_STK

GET_START_SIZE  call    GET_SYMSTR
                cp      __CODE
                ret     nz
INPUT_PARAMS    call    CHISLO2STKBOT                   ; ‡€…‘…ˆ… —ˆ‘‹€ € ‘’…Š Š€‹œŠ“‹Ÿ’Ž€
                jr      z,loc_1DFB
                call    FIND_LAST
                ld      (TRD_5CD9),bc                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CDB),bc
loc_1DFB        call    GET_SYMSTR
                cp      ","
                jr      z,SET_NUM_CHAN
                cp      0x0d
                jp      nz,SINTAX_ERROR
                call    EXIT_IF_SINTAX
                ret

SET_NUM_CHAN    call    CHISLO2STKBOT                   ; ‡€…‘…ˆ… —ˆ‘‹€ € ‘’…Š Š€‹œŠ“‹Ÿ’Ž€
                ret     z
                call    FIND_LAST
                ld      (TRD_5CDB),bc
                ld      a,3
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ret

DEL_5BYTES      ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                rst     0x20
                dw      0x11a7                          ; “„€‹…ˆ… ˆ‡ ŠŽŒ€„Ž‰ ‘’PŽŠˆ Ÿ’ˆ€‰’›• —ˆ‘…‹
                ret

CREATE_FREERAM  ld      hl,(WORKSP)
                rst     0x20
                dw      0x30                            ; ‘Ž‡„€ˆ… ‘‚ŽŽ„ŽƒŽ Œ…‘’€
                ret

GET_NEXT_SYM    rst     0x20
                dw      0x20                            ; …—€’œ ‘‹…„“ž™…ƒŽ ‘ˆŒ‚Ž‹€
                ret

DEL_WORKRAM     rst     0x20
                dw      0x19e8                          ; “„€‹…ˆ… Ž‹€‘’ˆ €ŒŸ’ˆ
                ret

RESERV_RAM      rst     0x20
                dw      0x1655
                ret

WR_NUM_TRACK    call    GET_NUM_TRACK   ;FIX
                ld      a,h
        IF EMU
                RST32 _OUT_3F,__OUT_N_A+0X3F<<8
        ELSE
                out     (0x3f),a
        ENDIF
                ret

;—’…ˆ… ‘…Š’ŽŽ‚
COM_05          xor     a
                jr      loc_1E64

WRHEAD_FILENAME call    SETHEADFILENAME                 ; ‘Ž•€…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
REWRITE_9SEC    ld      de,(TRD_5CF4)                   ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                dec     de
                ld      b,1
                ld      hl,TRD_5D25
;‡€ˆ‘œ ‘…Š’ŽŽ‚
COM_06          JR SAVE_SECTORS

                DUPL 0X1E62-$,0
SAVE_SECTORS    ld      a,0xff
loc_1E64        ld      (TRD_5CCE),a                    ; #00-—’…ˆ… ‘…Š’Ž€,#FF-‡€ˆ‘œ ‘…Š’Ž€
loc_1E67        ld      (TRD_5CF4),de
                push    bc
                push    hl
        IF EMU
                CALL    SV_LD_RAMDISK
        ELSE
                call    WR_NUM_TRACK
        ENDIF
                pop     hl
                pop     bc
                xor     a
                or      b
                ret     z
loc_1E75        push    bc
                push    hl
                call    COM_04
                ld      a,(TRD_5CF4)
                call    COM_03
                ld      a,(TRD_5CF5)
                call    COM_02
                ld      a,(TRD_5CCE)                    ; #00-—’…ˆ… ‘…Š’Ž€,#FF-‡€ˆ‘œ ‘…Š’Ž€
                or      a
                push    af
                call    z,LOAD_SECTOR
                pop     af
                call    nz,SAVE_SECTOR
                pop     hl
                ld      de,0x100
                add     hl,de
                push    hl
                ld      a,0x10
                ld      hl,TRD_5CF4
                inc     (hl)
                cp      (hl)
                jr      nz,loc_1EA7
                ld      (hl),0
                ld      hl,TRD_5CF5
                inc     (hl)
loc_1EA7        pop     hl
                pop     bc
                djnz    loc_1E75
                ret

KOLWO_SECS      push    hl
                ld      h,a
                ld      l,0
                push    hl
                sbc     hl,de
                call    c,LOAD_FILLFILE
                pop     hl
                ld      a,h
                pop     hl
                ret     c
                ld      a,d
                ret

LOAD_FILLFILE   xor     a
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                scf
                ret

FORMAT          ld      hl,0xffff
                LD      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CD1),hl
                call    CP_SECOND_SYM
                jp      z,SINTAX_ERROR
                call    SET_AND_PUT
                call    EXIT_IF_SINTAX
                call    SET_FILENAME

                DUPL 0X1EE1-$,0
                CALL FORMAT_RAM
                JR Z,END_FORMAT
                ld      a,80
loc_1EE8        ld      (TRD_5CD7),a                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    COM_00
                call    COM_17
                call    PAUSE_3_C_A
                ld      e,1
                call    FORMAT_TREK
                call    COM_16
                ld      e,0
                call    FORMAT_TREK

                DUPL 0X1F08-$,0
                call    COM_17
                call    PAUSE_3_C_A
                call    loc_3EB5
                ld      a,0X80
                ld      (TRD_5CDA),a
loc_1F1B        call    FORMAT_DISK

END_FORMAT      CALL CP_TYPEDRIVE
                CALL Z,CREATE_TRDTABL
                CALL CLEAR_DOWN_SCR
                LD HL,TRD_5D25
                LD DE,TRD_5D26
                LD BC,0XFF
                LD (HL),B
                LDIR
                JR loc_1F50

                DUPL 0X1F50-$,0
loc_1F50        ld      a,0x16
                ld      hl,2544
loc_1F55        ld      (TRD_5E08),a
                ld      (TRD_5E0A),hl
                ld      a,1
                ld      (TRD_5E07),a
                ld      a,0X10
                ld      (TRD_5E0C),a
                ld      hl,TRD_5E0F
                ld      de,TRD_5E10
                ld      bc,8
                ld      (hl)," "
                ldir
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      de,TRD_5E1A
                ld      bc,8
                ldir                                    ;……Ž‘ ˆŒ…ˆ „ˆ‘Š€
                call    COM_16
                ld      b,1
                ld      de,8
                ld      hl,TRD_5D25
                call    SAVE_SECTORS
                ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                push    af
                xor     a
                ld      (TRD_5CE5),a                    ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      hl,(TRD_5E0A)
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                rst     0x18
                ld      a,0x0d
                rst     0x10
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                pop     af
                push    hl
                ld      d,0
                ld      e,a
                sbc     hl,de
                ld      b,h
                ld      c,l
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                ld      a,"/"
                rst     0x10
                pop     bc
                call    PRINT_CHISLO                    ; …—€’œ —ˆ‘‹€
                jp      END_COMAND

;’€‹ˆ–€ ŽŒ…Ž‚ ‘…Š’ŽŽ‚ „‹Ÿ ”ŽŒ€’ˆŽ‚€ˆŸ
TABL_SECTORS    DB 0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F,0X10,0X01

CP_DISK_TRACK   call    GET_TIME_HEAD                   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                or      11h
                ld      b,a
                ld      a,32h
                call    HEAD_POSITION
                ld      a,2
                call    HEAD_POSITION
                call    PAUSE725779T
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(1Fh)
        ENDIF
                and     4
                ld      a,80                            ; 80 „ŽŽ†…Š
                jr      z,loc_1FE7
                ld      a,40                            ; 40 „ŽŽ†…Š
loc_1FE7        ld      (TRD_5CD7),a                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ret

;“‘’€Ž‚Š€ ‘’ŽŽ› 0 „ˆ‘Š€
COM_16          ld      a,(TRD_5D16)                    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                or      0x3c
loc_1FF0        ld      (TRD_5D16),a                    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
                ret

;“‘’€Ž‚Š€ ‘’ŽŽ› 1 „ˆ‘Š€
COM_17          ld      a,(TRD_5D16)                    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                and     0x6f
                jr      loc_1FF0

FORMAT_TREK     di
                ld      a,0xf4
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                ld      hl,TABL_SECTORS
                ld      c,0x7f
loc_2007        ld      b,0x0a
                ld      d,0x4e
                call    WRITE_C_D_B
                ld      b,0x0c
                ld      d,0
                call    WRITE_C_D_B
                ld      b,3
                ld      d,0xf5
                call    WRITE_C_D_B
                ld      d,0xfe
                call    WRITE_C_D_1
                ld      d,e
                call    WRITE_C_D_1
                ld      d,0
                call    WRITE_C_D_1
                ld      d,(hl)
                call    WRITE_C_D_1
                ld      d,1
                call    WRITE_C_D_1
                ld      d,0xf7
                call    WRITE_C_D_1
                ld      b,0x16
                ld      d,0x4e
                call    WRITE_C_D_B
                ld      b,0x0c
                ld      d,0
                call    WRITE_C_D_B
                ld      b,3
                ld      d,0xf5
                call    WRITE_C_D_B
                ld      d,0xfb
                call    WRITE_C_D_1
                ld      b,0
                ld      d,0
                call    WRITE_C_D_B
                ld      d,0xf7
                call    WRITE_C_D_1
                ld      b,0x3c
                ld      d,0x4e
                call    WRITE_C_D_B
                ld      a,(hl)
                inc     hl
                cp      0x10
                jr      nz,loc_2007
                ld      b,0
                call    WRITE_C_D_B
                jp      m,loc_2076
                call    WRITE_C_D_B
loc_2076
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     0x40
                jp      nz,loc_3F39                     ; READ ONLY
CP_NUM_TRACK    ld      a,(TRD_5CD8)                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                or      a
                ret     nz
                ld      c,0x7f
                ld      a,e
        IF EMU
                RST32 _OUT_3F,__OUT_N_A+0X3F<<8
        ELSE
                out     (0x3f),a
        ENDIF
                ld      hl,TABL_SECTORS+1
loc_208A        ld      b,3
                ld      a,(hl)
        IF EMU
                RST32 _OUT_5F,__OUT_N_A+0X5F<<8
        ELSE
                out     (0x5f),a
        ENDIF
                push    hl
loc_2090        di
                ld      a,0x80
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                push    bc
                call    RD_DATAPORT
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     0x7f
                pop     bc
                jr      z,loc_20A6
                djnz    loc_2090
                ld      hl,TRD_5CD6                     ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                inc     (hl)
loc_20A6        pop     hl
                ld      a,(hl)
                inc     hl
                cp      1
                jr      nz,loc_208A
                ei
                ret

WRITE_C_D_1     ld      b,1
WRITE_C_D_B
        IF EMU
                RST32 _IN_FF,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      z,WRITE_C_D_B
                ret     m
        IF EMU
                RST32 _OUT_C_D,__OUT_C_D
        ELSE
                out     (c),d
        ENDIF
                djnz    WRITE_C_D_B
                ret

FORMAT_DISK     ld      hl,TRD_5CD7                     ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      b,(hl)
                xor     a
                inc     hl
                ld      (hl),a
                ld      e,0xff
loc_20C6        push    bc
                inc     e
                ld      a,e
                ld      b,0x18
                call    HEAD_POSITION
                call    COM_16
                CALL loc_20D1

                DUPL 0X20DE-$,0
                call    FORMAT_TREK
loc_20E1        pop     bc
                djnz    loc_20C6
                ret

DELETE_BUF      push    af
                ld      a,(TRD_5CF8)                    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0xff
                jr      z,loc_211C
                pop     af
                jp      DEL_BUF

; Ž‚…Š€ €‹ˆ—ˆŸ INTERFACE1
CP_INTERFACE1   push    af
                ld      a,(TRD_5CB6)                    ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                cp      0F4h
                jr      z,loc_211C
                xor     a
                ld      hl,TRD_5D18
                or      (hl)
                ld      (hl),0FFh
                jr      z,loc_211C
                ld      a,(TRD_5D0C)
                or      a
                ld      hl,TRD_5CC3
                ld      de,TRD_5D33
                jr      nz,loc_2111
                ld      de,TRD_5E34
loc_2111        ld      b,2Dh
loc_2113        ld      c,(hl)
                ld      a,(de)
                ld      (hl),a
                ld      a,c
                ld      (de),a
                inc     hl
                inc     de
                djnz    loc_2113
loc_211C        pop     af
                ret

;[“„€‹…ˆ… ‚‚…„…Ž‰ ‘’ŽŠˆ Ž‘‹… ‚›Ž‹…ˆŸ ŠŽŒ€„›]
CLRBUF_EDITOR   CALL CLRBUF_EDITOR2
                ld      (hl),0x0d
                ld      (K_CUR),hl
                inc     hl
                ld      (hl),0x80
                ret

;‚Ž‘‘’€Ž‚‹…ˆ… ‚‚…„…Ž‰ ‘’ŽŠˆ ‚ “”…… …„€Š’Ž€
RESTORE_COMSTR  ld      de,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      hl,TRD_5D20                     ; „‹Ÿ ‘Ž•€…ˆŸ 3 ‘ˆŒ‚Ž‹Ž‚ ‚‚…„…Ž‰ ‘’ŽŠˆ
                call    LDI3_HL2DE                      ; ……Ž‘ 3 €‰’
                ret

; ˆŸ’ˆ… ˆ Ž€Ž’Š€ ŠŽŒ€„
GET_COMMAND     ld      a,(TRD_5D0F)                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                or      a
                push    af
                call    nz,RESTORE_COMSTR               ;…‘‹ˆ ›‹€ Ž˜ˆŠ€, ’Ž ‚Ž‡‚€™€…Œ 3 ‘Ž•€…›• €‰’€
                pop     af
                call    z,CLRBUF_EDITOR                 ;…‘‹ˆ Ž˜ˆŠˆ … ›‹Ž, ’Ž Ž—ˆ‘’Š€ “”…€ ‘’ŽŠˆ …„€Š’ˆŽ‚€ˆŸ
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                call    PRINT_0D
                ld      a,(TRD_5D19)                    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
        IF EMU
                call    GET_COMMAND2
        ELSE
                add     a,"A"
                rst     0x10
        ENDIF
                ld      a,">"
                rst     0x10
                ld      hl,ERR_NR
                ld      (hl),0xff
                jp      CALL2BASEDIT

sub_2158        call    GET_NEXT_SYM
                call    GET_SYMSTR
                cp      ","
                jp      nz,SINTAX_ERROR
                ld      hl,(TRD_5CDB)
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                call    SET_NUM_CHAN
                call    EXIT_IF_SINTAX
                ld      hl,(TRD_5CDB)
                ld      a,h
                or      a
                jp      nz,SINTAX_ERROR
                inc     hl
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CDB),hl
                ret

OPEN            ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      (CH_ADD),hl
                call    SET_NUM_CHAN
                call    loc_1DD0
loc_218E        call    GET_SYMSTR
                cp      "A"
                jr      nc,loc_219A
                call    GET_NEXT_SYM
                jr      loc_218E

loc_219A        cp      0xa5
                push    af
                call    z,sub_2158
                pop     af
                jr      z,loc_21AE
                and     0xdf
                cp      "R"
                jr      z,loc_21AE
                cp      "W"
                jp      nz,SINTAX_ERROR
loc_21AE        ld      (TRD_5D09),a
                call    EXIT_IF_SINTAX
                ld      a,"#"
                ld      (TRD_5CE5),a                    ; €‘˜ˆ…ˆ… ”€‰‹€
                ld      a,0
                ld      (TRD_5CE6),a                    ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                call    FIND_ENDFILE
                push    af
                call    CP_STREAMS
                pop     af
                push    af
                call    nz,CREATE_BLOCK0
                pop     af
                call    OPEN_STREAM
                ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      bc,0x124
                add     hl,bc
                ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                jp      END_COMAND

FIND_ENDFILE    ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                call    SET_CP_FILENAME
                push    af
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                pop     af
                jr      nz,loc_2206
                ld      a,(TRD_5D09)
                cp      "R"
                jr      z,loc_2201
loc_21F1        ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                inc     (hl)
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jr      z,loc_21F1
                ld      hl,TRD_5CE6                     ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                dec     (hl)
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
loc_2201        call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                xor     a
                ret

loc_2206        ld      a,(TRD_5D09)
                cp      "R"
                ret     nz
                jp      ERR_NOFILES

CP_STREAMS      ld      a,(TRD_5CDB)
                rst     0x20
                dw      0x1727
                ld      a,b
                or      c
                jp      nz,loc_221B
                ret

loc_221B        ld      a,0x19
                ld      (ERR_NR),A
                ld      hl,TXT_STREAMOPEN               ; "STREAM OPENED"
                ld      a,0x0a
loc_2225        jp      PRINT_TXTERR

loc_2228        ld      a,0x0b
                ld      hl,TXT_NODISKFILE               ; "NOT DISK FILE"
                jr      loc_2225

INITFREEACCESS  push    hl
                ld      c,0x20
                rst     0x28
                ld      a,(TRD_5CD7)                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (hl),a
                inc     hl
                xor     a
                ld      (hl),a
                inc     hl
                ld      (hl),a
                inc     hl
                ld      (hl),a
                ld      a,0x7f
                pop     hl
                ret

OPEN_STREAM     push    af
                call    CP_STREAMS
                ex      de,hl
                ld      hl,(PROG)
                ld      bc,(CHANS)
                sbc     hl,bc
                ex      de,hl
                ld      (hl),e
                inc     hl
                ld      (hl),d
                call    CREATE_HEADCHAN
                ld      a,(TRD_5D09)
                cp      0xa5
                call    z,INITFREEACCESS
                jr      z,loc_226B
                ld      a,(TRD_5D09)
                cp      "R"
                ld      a,0xff
                jr      nz,loc_226B
                xor     a
loc_226B        ld      (hl),a
                pop     af
                jp      loc_2270

loc_2270        push    af
                ld      bc,0x14
                add     hl,bc
                push    hl
                call    GET_TEKSECFILE
                pop     hl
                inc     hl
                ld      b,1
                pop     af
                or      a
                push    af
                call    nz,COM_06
                pop     af
                call    z,COM_05                        ; —’…ˆ… ‘…Š’ŽŽ‚
                ret

CREATE_BLOCK0   ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                push    hl
                ld      hl,0x2000
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    CREATE_BLOCK
                pop     hl
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ret

CREATE_BLOCK    ld      hl,0x1000
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                call    CP_FREE_ON_DSK
                call    SAVE_FILE
                ld      hl,0
                ld      (TRD_5CE8),hl                   ; „‹ˆ€ Žƒ€ŒŒ›
                call    SETHEADFILENAME
                jp      REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€

CREATE_HEADCHAN ld      hl,(PROG)
                dec     hl
                ld      (CURCHL),hl
                push    hl
                ld      bc,0x124
                call    RESERV_RAM
                ld      a,0
                ld      b,0
loc_22C4        ld      (de),a
                dec     de
                djnz    loc_22C4
                pop     hl
                push    hl
                ld      de,loc_3D0E
                ld      (hl),e
                inc     hl
                ld      (hl),d
                inc     hl
                ld      de,loc_3D06
                ld      (hl),e
                inc     hl
                ld      (hl),d
                inc     hl
                ld      (hl),"D"
                inc     hl
                inc     hl
                inc     hl
                inc     hl
                inc     hl
                ld      (hl),"$"
                inc     hl
                ld      (hl),1
                inc     hl
                ld      a,(TRD_5CF6)                    ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                ld      (hl),a
                inc     hl
                ld      a,(TRD_5D1E)
                ld      (hl),a
                inc     hl
                ld      a,(TRD_5D09)
                cp      "R"
                ld      (hl),0
                jr      z,loc_22FC
                ld      a,(TRD_5CE8)                    ; „‹ˆ€ Žƒ€ŒŒ›
                ld      (hl),a
loc_22FC        inc     hl
                ld      (hl),b
                jr      z,loc_2304
                ld      a,(TRD_5CE9)                    ; „‹ˆ€ Žƒ€ŒŒ›
                ld      (hl),a
loc_2304        inc     hl
                ex      de,hl
                pop     hl
                push    de
                ld      de,0x10
                add     hl,de
                ex      de,hl
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR_RHL
                ELSE
                ldir
                pop     hl
                ENDIF
        ELSE
                ldir
                pop     hl
        ENDIF
                ret

GET_ADRTEKSYM   ld      c,0x0d
                rst     0x28
                ld      c,(hl)
                rst     0x28
                ld      bc,0x24
                add     hl,bc
                ret

GET_ADRTEKFRG   ld      c,0x24
ADR_OPEN_CHAN   ld      b,0
                ld      hl,(CURCHL)
                add     hl,bc
                ret

CP_ENDOFSECTOR  ld      c,0x0d
                rst     0x28
                inc     (hl)
                ret     nz
                push    hl
                call    SET_DISK
                call    SAVE_TEKSECTOR                  ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
                pop     hl
                inc     hl
                inc     (hl)
                push    hl
                call    LOADINGSECTOR
                pop     hl
                ld      a,0x10
                cp      (hl)
                ret     nz
                push    hl
                ld      c,0x0f
                rst     0x28
                ld      a,(hl)
                cp      0x7f
                pop     hl
                jr      z,loc_2358
                ld      hl,(CURCHL)
                call    SAVE_HEAD_BLK
                ld      c,0x0e
                rst     0x28
                jp      loc_2379

loc_2358        call    FIND_NEXT_BLK
                push    af
                call    z,LOADINGSECTOR
                ld      c,0x0e
                rst     0x28
                pop     af
                call    nz,CREATE_NEWBLOCK
                ret

sub_2367        ld      (hl),0
                ld      c,0x19
                rst     0x28
                ld      d,0x20
                ld      e,(hl)
                ret

CREATE_NEWBLOCK call    sub_2367
                ld      (TRD_5CD7),de                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                jr      CREATE_BLK

loc_2379        call    sub_2367
                inc     e
                ld      (TRD_5CD7),de                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
CREATE_BLK      call    CREATE_BLOCK
                call    DEL_BUF
                ld      c,0x10
                rst     0x28
                ex      de,hl
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                ldir
                ld      c,0x0c
                rst     0x28
                ld      a,(TRD_5D1E)
                ld      (hl),a
                ret

FIND_END_SEC    ld      c,0x0d
                rst     0x28
                inc     (hl)
                ret     nz
                inc     hl
                inc     (hl)
                push    hl
                call    SET_DISK
                ld      c,0x23
                rst     0x28
                ld      a,(hl)
                or      a
                jr      z,loc_23B6
                pop     hl
                push    hl
                dec     (hl)
                call    SAVE_TEKSECTOR                  ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
                pop     hl
                push    hl
                inc     (hl)
loc_23B6        call    LOADINGSECTOR
                pop     hl
                ld      a,0x10
                cp      (hl)
                call    z,OPEN_NEXT_BLK
                ret

OPEN_NEXT_BLK   call    FIND_NEXT_BLK
                push    af
                call    DEL_BUF
                pop     af
                jp      nz,ERR_ENDOFFILE
                jp      LOADINGSECTOR

FIND_NEXT_BLK   ld      (hl),0
                ld      c,0x19
                rst     0x28
                inc     (hl)
                ld      c,0x10
                rst     0x28
                ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                ldir
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                ret     nz
OPEN_BLK        call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                ld      c,0x10
                rst     0x28
                ex      de,hl
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                ldir
                ld      c,0x0c
                rst     0x28
                ld      a,(TRD_5D1E)
                ld      (hl),a
                xor     a
                ret

; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
SAVE_TEKSECTOR  call    GET_TEKSECFILE
                call    GET_ADRTEKFRG
                ld      b,1
                call    COM_06
                ld      c,0x0f
                rst     0x28
                ld      a,(hl)
                cp      0x7f
                ret     z
                call    GET_ADRTEKFRG
                xor     a
                ld      b,a
loc_2413        ld      (hl),a
                inc     hl
                djnz    loc_2413
                ret

LOADINGSECTOR   call    GET_TEKSECFILE
                call    GET_ADRTEKFRG
                ld      b,1
                jp      COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚

GET_TEKSECFILE  ld      hl,(CURCHL)
                ld      bc,0x1e
                add     hl,bc
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ld      c,0x0e
                rst     0x28
                ld      b,(hl)
                dec     b
                inc     b
                push    af
                ld      a,0x10
                jr      z,loc_2441
loc_2438        inc     e
                cp      e
                jr      nz,loc_243F
                ld      e,0
                inc     d
loc_243F        djnz    loc_2438
loc_2441        pop     af
                ret

SET_DISK        ld      c,0x0b
                rst     0x28
                ld      a,(hl)
                jp      COM_01                          ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„

OUT_SYM2FILE    ld      hl,TRD_5CC2                     ; ‘Ž„…†ˆ’ #C9. „‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                push    hl
                DUPL 4,0
                push    af
                DUPL 3,0
                ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                pop     af
                call    WORK4FREEACCESS
                push    af
                call    CP_FILE_OPENED
                jp      z,ERR_INVALID_IO
                pop     af
                call    GET_ADRTEKSYM
                ld      (hl),a
                jp      CP_ENDOFSECTOR

CP_END_BLK      ld      c,0x0d
                rst     0x28
                ld      a,(hl)
                ld      bc,0x0e
                add     hl,bc
                cp      (hl)
                ret     nz
                ld      c,0x0e
                rst     0x28
                ld      a,(hl)
                ld      bc,0x0e
                add     hl,bc
                cp      (hl)
                ret     nz
                ld      hl,TRD_5CB6                     ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                ld      a,(hl)
                cp      0xf4
                jr      z,ERR_ENDOFFILE
                bit     4,(hl)
                jr      z,ERR_ENDOFFILE
                or      1
                pop     hl
                ret

ERR_ENDOFFILE   ld      a,7
loc_2494        ld      (ERR_NR),a
                call    DELETE_BUF
                rst     0x20
                dw      0x0058
                ret

ERR_INVALID_IO  ld      a,0x17
                jr      loc_2494

WORK4FREEACCESS ld      d,a
                ld      c,0x0f
                rst     0x28
                ld      a,(hl)
                cp      0x7f
                ld      a,d
                ret     nz
                ld      bc,0x13
                add     hl,bc
                ld      a,(hl)
                or      a
                ld      a,d
                jr      nz,loc_24D5
                dec     hl
                ld      a,(hl)
                or      a
                jr      nz,loc_24C2
                push    bc
                push    hl
                push    de
                call    W16B2WORKSP
                pop     de
                pop     hl
                pop     bc
loc_24C2        ld      c,(hl)
                ld      a,d
                ex      de,hl
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                add     hl,bc
                cp      6
                ld      (hl),a
                call    z,WORK_NUMSAVE
                ld      c,0x21
                rst     0x28
                inc     (hl)
                pop     hl
                ret

loc_24D5        dec     hl
                ld      a,(hl)
                dec     hl
                inc     a
                cp      (hl)
                inc     hl
                inc     (hl)
                push    hl
                push    af
                ld      c,0x23
                rst     0x28
                ld      (hl),0xff
                pop     af
                pop     hl
                jr      c,loc_24EE
                ld      a,d
                cp      0x0d
                jr      z,loc_24F2
                pop     bc
                ret

loc_24EE        ld      a,d
                cp      0x0d
                ret     nz
loc_24F2        xor     a
                ld      (hl),a
                inc     hl
                ld      (hl),a
                ld      a,d
                ret

W16B2WORKSP     ld      hl,(WORKSP)
                ld      (TRD_5CCF),hl                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,0x10
                jp      CREATE_FREERAM

WORK_NUMSAVE    ld      (hl),0x0d
                ld      hl,(CH_ADD)
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      (CH_ADD),hl
                ld      hl,FLAGS
                res     7,(hl)
                call    BC2STKBOT
                ld      hl,FLAGS
                set     7,(hl)
                ld      hl,(TRD_5CCF)                   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      (CH_ADD),hl
                call    BC2STKBOT
                call    FIND_LAST
                push    bc
                pop     de
                ld      c,0x20
                rst     0x28
                ld      b,(hl)
                xor     a
                ld      hl,0
                ld      (TRD_5CDB),hl
loc_2538        add     hl,de
                jr      nc,loc_2544
                push    hl
                ld      hl,(TRD_5CDB)
                inc     hl
                ld      (TRD_5CDB),HL
                pop     hl
loc_2544        djnz    loc_2538
                ld      (TRD_5CD9),HL                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(TRD_5CDB)
                ld      hl,TRD_5CDA
                rrd
                and     0x0f
                ld      (TRD_5CDB),a
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (CH_ADD),hl
                call    OPEN_SAVED
                ld      c,0x21
                rst     0x28
                ld      a,0xff
                ld      (hl),a
                inc     hl
                ld      (hl),a
                ret

OPEN_SAVED      ld      c,0x19
                rst     0x28
                ld      a,(TRD_5CDA)
                cp      (hl)
                jp      nz,loc_2584
                ld      c,0x0e
                rst     0x28
                ld      a,(TRD_5CDB)
                cp      (hl)
                jp      nz,loc_25A7
loc_257C        ld      c,0x0d
                rst     0x28
                ld      a,(TRD_5CD9)                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                ret

loc_2584        call    CPANDZERO23
                call    nz,SAVE_TEK_SEC
                ld      a,(TRD_5CDA)
                ld      c,0x19
                rst     0x28
                ld      (hl),a
                ld      c,0x10
                rst     0x28
                ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                ldir
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      nz,loc_25D2
                call    OPEN_BLK
                jr      loc_25AD

loc_25A7        call    CPANDZERO23
                call    nz,SAVE_TEK_SEC
loc_25AD        ld      a,(TRD_5CDB)
                ld      c,0x0e
                rst     0x28
                ld      (hl),a
                push    hl
                call    SET_DISK
                call    LOADINGSECTOR
                pop     hl
                dec     hl
                ld      a,(TRD_5CD9)                    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                jr      loc_257C

SAVE_TEK_SEC    call    SET_DISK
                call    SAVE_TEKSECTOR                  ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
                ret

CPANDZERO23     ld      c,0x23
                rst     0x28
                ld      a,(hl)
                or      a
                ld      (hl),0
                ret

loc_25D2        ld      hl,(TRD_5CDA)
                ld      h,0x20
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                push    hl
                ld      hl,(TRD_5CDB)
                push    hl
                call    CREATE_BLK
                pop     hl
                ld      (TRD_5CDB),hl
                pop     hl
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                jr      loc_25AD

INPUTDATAFILE   DUPL 3,0
                ld      hl,TV_FLAG
                res     3,(hl)
                ld      hl,(ERR_SP)
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                or      a
                ld      hl,0x107F
                sbc     hl,de
                jr      nz,loc_2626
                ld      sp,(ERR_SP)
                pop     de
                pop     de
                ld      (ERR_SP),de
loc_260F        call    INPUT_SYM_FILE
                jr      c,loc_261D
loc_2614        ld      hl,TRD_5CC2                     ; ‘Ž„…†ˆ’ #C9. „‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                push    hl
                ld      hl,DELETE_BUF
                push    hl
                ret

loc_261D        cp      0x0d
                jr      z,loc_2614
                rst     0x20
                dw      0x0f85
                jr      loc_260F

loc_2626        call    INPUT_SYM_FILE
                jr      loc_2614

INPUT_SYM_FILE  ld      a,0x0a
                ld      (TRD_5D06),a                    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                call    CP_FILE_OPENED
                jr      z,loc_2642
                cp      0x7f
                jp      nz,ERR_INVALID_IO
                ld      bc,0x13
                add     hl,bc
                ld      (hl),0
                jr      loc_2645

loc_2642        call    CP_END_BLK
loc_2645        call    GET_ADRTEKSYM
                ld      a,(hl)
                push    af
                call    FIND_END_SEC
                pop     af
                scf
                ret

CP_FILE_OPENED  ld      c,0x0f
                rst     0x28
                ld      a,(hl)
                or      a
                ret

CLOSE           ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      (CH_ADD),hl
                call    SET_NUM_CHAN
                call    EXIT_IF_SINTAX
                ld      a,(TRD_5CDB)
                rst     0x20
                dw      0x1727
                ld      a,b
                or      c
                jp      z,END_COMAND
                push    hl
                ld      hl,(CHANS)
                add     hl,bc
                ld      a,(hl)
                ld      hl,loc_3D0E
                cp      h
                pop     hl
                jp      nz,loc_2228
                ld      (hl),0
                inc     hl
                ld      (hl),0
                ld      (TRD_5CD9),bc                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      hl,(CHANS)
                add     hl,bc
                dec     hl
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    sub_26CE
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      bc,0x124
                call    DEL_WORKRAM
                ld      hl,STRMS
                ld      b,0x10
loc_269D        push    bc
                ld      bc,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ex      de,hl
                sbc     hl,bc
                ex      de,hl
                jr      c,loc_26BC
                ld      d,(hl)
                dec     hl
                ld      e,(hl)
                inc     hl
                push    hl
                ex      de,hl
                ld      bc,0x124
                sbc     hl,bc
                ex      de,hl
                pop     hl
                ld      (hl),d
                dec     hl
                ld      (hl),e
                inc     hl
loc_26BC        inc     hl
                pop     bc
                djnz    loc_269D
                ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      bc,0x124
                sbc     hl,bc
                ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                jp      END_COMAND

sub_26CE        ld      bc,0x0f
                add     hl,bc
                ld      a,(hl)
                or      a
                ret     z
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (CURCHL),hl
                call    SAVE_HEAD_BLK
                jp      SAVE_TEKSECTOR                  ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€

SAVE_HEAD_BLK   ld      bc,0x0d
                add     hl,bc
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ld      bc,0x0d
                add     hl,bc
                ld      (hl),e
                inc     hl
                ld      (hl),d
                ld      c,0x10
                rst     0x28
                ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                ldir
                call    SET_DISK
                ld      c,0x0c
                rst     0x28
                ld      c,(hl)
                call    SETHEADFILENAME
                jp      REWRITE_9SEC                    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€

PRINT_MSG       ld      a,(hl)
                or      a
                ret     z
                and     0x7f
                rst     0x10
                bit     7,(hl)
                ret     nz
                inc     hl
                jr      PRINT_MSG                       ; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ

COMPARE_B_SYM   ld      a,(de)
                cp      (hl)
                ret     nz
                inc     de
                inc     hl
                djnz    COMPARE_B_SYM
                ret

loc_271B        ld      hl,TXT_NODISK_                  ; "NO DISK"
                ld      a,6
                jp      PRINT_TXTERR

ERR_DIRFULL     ld      hl,TXT_DIRFULL                  ; "DIRECTORY FULL"
                ld      a,4
                jp      PRINT_TXTERR

SET_TAPELDERR   ld      a,0x1a
                jr      SET_NUM_ERR

                ld      a,0x12
SET_NUM_ERR     ld      (ERR_NR),a
                ret

                ld      a,3
                jr      SET_NUM_ERR

;Ž‚…Š€ „ŽŽ†Šˆ
COM_15          xor     a
                ld      (TRD_5CD8),a                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                ld      (TRD_5CCD),a                    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                ld      e,d
                push    de
                ld      a,e
        IF EMU
                RST32 _OUT_7F,__OUT_N_A+0X7F<<8
        ELSE
                out     (0x7f),a
        ENDIF
                ld      a,0x18
                call    COM2VG_WAIT
                ld      a,(TRD_5CCD)                    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                and     0x80
                call    nz,PAUSE_3_C_A
                pop     de
                call    CP_NUM_TRACK
                ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                or      a
                ret     z
                ld      a,7
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ret

TXT_OK_         DZ "O.K."
TXT_VERIFYERR   DB "Verify Error.",0X8D
TXT_BACKUPDISK  DB "BACKUP DISK",0X8D
TXT_INS_DEST    DB "Insert Destination disk",0X0D
                DZ "then press Y"
TXT_INS_SRC     DZ "Insert Source disk then press Y"
TXT_BREAK       DB "*BREAK*",0X8D
TXT_OUTRAM      DB "Out of RAM",0X8D
TXT_ARRAYNOT    DB "Array not found",0X8D
TXT_DIRFULL     DB "Directory full",0X8D
TXT_NODISK_     DB "No disk",0X8D
TXT_STREAMOPEN  DB "Stream opened",0X8D
TXT_NODISKFILE  DB "Not disk file",0X8D
TXT_FILEEXIST   DB "File exists",0X0D
                DC "Over write?(Y/N)"

CALL_3D13       push    af
                push    bc
                ld      (TRD_5D04),de
                ld      (TRD_5D02),hl
;               CALL SET_RWPORT0
                LD A,0XFF
                LD (TRD_5D15),A                         ; …‘‹ˆ 0,…—€’€’œ ˜€Š“ TR-DOS.ˆ€—… … …—€’€’œ
                LD (TRD_5D1F),A
                pop     bc
                pop     af
                ld      hl,CP_ERROR                     ; €„…‘ ‡€‚…˜…ˆŸ ˆ’……’€’Ž€
                ld      (TRD_5D1A),hl                   ; ‚“’…ˆ‰ €„…‘ ‡€‚…˜…ˆŸ ˆ’……’€’Ž€ ŠŽŒ€„
                ld      hl,0
                add     hl,sp
                ld      (TRD_5D1C),hl                   ; ‘Ž•€…ˆ… ’…Š“™…ƒŽ ‘’…Š€
                dec     hl
                dec     hl
                ld      sp,hl
                push    af
                call    MARK_SP                         ; “‘’€Ž‚Š€ ‘’…Š€ „‹Ÿ ……•‚€’€ Ž˜ˆŽŠ
                ld      hl,COMAND_TBL
                LD A,C
                CP LOW ((ECOMAND_TBL-COMAND_TBL)/2)+1
                JP NC,END_COMAND
                ADD A,A
                LD E,A
                POP AF
                LD D,0
                ADD HL,DE
                LD E,(HL)
                INC HL
                LD D,(HL)
                LD HL,END_COMAND
                PUSH HL
                PUSH DE
                LD HL,(TRD_5D02)
                LD DE,(TRD_5D04)
                RET

COMAND_TBL      DW COM_00                               ;‚Ž‘‘’€Ž‚‹…ˆ… ‚ƒ93
                DW COM_01                               ;€‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                DW COM_02                               ;“‘’€Ž‚Š€ ƒŽ‹Ž‚Šˆ € „ŽŽ†Š“
                DW COM_03                               ;“‘’€Ž‚Š€ ŽŒ…€ ‘…Š’Ž€
                DW COM_04                               ;“‘’€Ž‚Š€ €„…‘€ “”…€
                DW COM_05                               ;—’…ˆ… ‘…Š’ŽŽ‚
                DW COM_06                               ;‡€ˆ‘œ ‘…Š’ŽŽ‚
                DW COM_07                               ;‚›‚Ž„ Š€’€‹Žƒ€ ‚ Š€€‹
                DW COM_08                               ;‘—ˆ’›‚€ˆ… Žˆ‘€’…‹Ÿ ‚ “”… 0X5CDD
                DW COM_09                               ;‡€ˆ‘œ Žˆ‘€’…‹Ÿ ”€‰‹€ € „ˆ‘Š
                DW COM_0A                               ;Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ˆ €‘˜ˆ…ˆž
                DW COM_0B                               ;‡€ˆ‘œ ‹ŽŠ€ ŠŽ„Ž‚ € „ˆ‘Š
                DW COM_0C                               ;‡€ˆ‘œ …‰‘ˆŠ Žƒ€ŒŒ› € „ˆ‘Š
                DW END_COMAND
                DW COM_0E                               ;‡€ƒ“‡Š€ ˆ‹ˆ Ž‚…Š€ ”€‰‹€
                DW END_COMAND
                DW END_COMAND
                DW END_COMAND
                DW COM_12                               ;“„€‹…ˆ… ”€‰‹€
                DW COM_13                               ;……Ž‘ Žˆ‘€’…‹Ÿ ”€‰‹€ ‚ “”… 0X5CDD
                DW COM_14                               ;……Ž‘ Žˆ‘€’…‹Ÿ ”€‰‹€ ˆ‡ “”…€ 0X5CDD
                DW COM_15                               ;Ž‚…Š€ „ŽŽ†Šˆ
                DW COM_16                               ;“‘’€Ž‚Š€ ‘’ŽŽ› 0 „ˆ‘Š€
                DW COM_17                               ;“‘’€Ž‚Š€ ‘’ŽŽ› 1 „ˆ‘Š€
                DW COM_18                               ;€‘’Ž‰Š€ € „ˆ‘Š…’“
ECOMAND_TBL

                DUPL 0X28D8-$,0XFF
;‚›‚Ž„ Š€’€‹Žƒ€ ‚ Š€€‹
COM_07          push    af
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                pop     af
                jp      loc_479

;……Ž‘ Žˆ‘€’…‹Ÿ ”€‰‹€ ‚ “”… 0X5CDD
COM_13          xor     a
                jr      loc_28E5

;……Ž‘ Žˆ‘€’…‹Ÿ ”€‰‹€ ˆ‡ “”…€ 0X5CDD
COM_14          ld      a,0xff
loc_28E5        ld      de,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,0x10
                or      a
                jr      z,loc_28EF
                ex      de,hl
loc_28EF
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR
                ELSE
                ldir
                ret
                ENDIF
        ELSE
                ldir
                ret
        ENDIF

;‡€ˆ‘œ …‰‘ˆŠ Žƒ€ŒŒ› € „ˆ‘Š
COM_0C          call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    CP_FREE_ON_DSK
                jp      loc_1B27

;‡€ˆ‘œ ‹ŽŠ€ ŠŽ„Ž‚ € „ˆ‘Š
COM_0B          ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD9),de                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CDB),de
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    CP_FREE_ON_DSK
                jp      loc_1B53

;‡€ƒ“‡Š€ ˆ‹ˆ Ž‚…Š€ ”€‰‹€
COM_0E          or      a
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (TRD_5CDB),de
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                call    FIND_RD_HEAD
                call    CP_PARAMS                       ;WDC
                jp      RD_FILE

;“„€‹…ˆ… ”€‰‹€
COM_12          call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      ERASE_FILES

; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
FIND_FILE       call    SET_FILENAME
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                jp      FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€

; …—€’œ ˆŒ…ˆ ”€‰‹€
PRINT_FILENAME  push    bc
                ld      b,8
loc_293B        ld      a,(hl)
                rst     0x10
                inc     hl
                djnz    loc_293B
                ld      a,"<"
                rst     0x10
                ld      a,(hl)
                rst     0x10
                ld      a,">"
                rst     0x10
                pop     bc
                ret

; ‘Ž‡„€ˆ… “”…€
CREATE_BUF      push    hl
                push    de
                push    bc
                push    af
                ld      hl,TRD_5D0C
                ld      a,(hl)
                or      a
                jr      z,loc_2992
                push    hl
                ld      bc,0x101
                push    bc
                call    CP_FREE_RAM
                pop     bc
                pop     hl
                ld      (hl),0
                ld      hl,TRD_5D25
                call    RESERV_RAM
                ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      bc,0x101
                add     hl,bc
                jr      loc_298F

; “„€‹…ˆ… “”…€,…‘‹ˆ  Ž …‘’œ
DEL_BUF         push    hl
                push    de
                push    bc
                push    af
                ld      hl,TRD_5D0C
                ld      a,(hl)
                or      a
                jr      nz,loc_2992
                ld      (hl),0xff
                ld      hl,TRD_5D25
                ld      bc,0x101
                call    DEL_WORKRAM
                or      a
                ld      bc,0x101
                ld      hl,(TRD_5D11)                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                sbc     hl,bc
loc_298F        ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
loc_2992        pop     af
                pop     bc
                pop     de
                pop     hl
                ret

COM_40          xor     a
loc_2998        ld      (TRD_5CD7),a                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    EXIT_IF_SINTAX                  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                call    CP_SECOND_SYM                   ; Ž‚…Š€ ‘‹…„“ž™…ƒŽ ‘ˆŒ‚Ž‹€
                jp      z,SINTAX_ERROR
                call    GET_TYPE_DISK                   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                ld      a,(TRD_5CD7)                    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (hl),a
                jp      ERR_OK

COM_80          ld      a,80h
                jr      loc_2998

TXT_ERROR_      DB 0X0D,"*ERROR*",0X8D
TXT_NOSPACE_    DB 0X0D,"No space",0X8D
TXT_FILEEXISTS_ DB 0X0D,"File exists",0X8D
TXT_FREE_       DB " Free",0X8D
READ_ONLY       DB 0X0D
                DC "Read Only"
TXT_DISCERROR_  DB 0X0D
                DC "Disc Error"
TXT_R_O         DB 0X0D
                DC "Rec.  O/F"
TXT_TITLE_      DC "Title: "
TXT_RIA_        DB 0X0D
                DZ "Retry,Abort,Ignore?"
TXT_TRK_        DB 0X0D
                DC "Trk "
TXT_SEC_        DC " sec "
TXT_DELFILE_    DB " Del. File",0X8D
TXT_NOFILES_    DB 0X0D
TXT_NOFILES     DB "No File(s)",0X8D,0

sub_2A35        ld      hl,loc_2A41
                ld      de,4080h
                ld      bc,20h
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR
                ELSE
                ldir
                ret
                ENDIF
        ELSE
                ldir
                ret
        ENDIF

loc_2A41        ld      a,(loc_3B5)
                cp      0F3h
                ld      a,10h
                jr      z,loc_2A4B
                xor     a
loc_2A4B        ld      (KSTATE1),a
                ld      bc,7FFDh
                ld      a,10h
        IF EMU
                JP LOC_2A53_
        ELSE
                out     (c),a
                ret
        ENDIF

MAGIC           push    af
                push    bc
                push    de
                push    hl
                push    ix
                push    iy
                exx
                push    bc
                push    de
                push    hl
                ex      af,af'
                push    af
                ld      a,i
                push    af
                ld      a,r
                push    af
                ld      hl,0
                add     hl,sp
                push    hl
                ld      a,3Ch
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0FFh),a
        ENDIF
                ld      a,3Fh
                ld      i,a
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(1Fh)
        ENDIF
                and     80h
                rrca
                rrca
                rrca
                ld      (KSTATE1),a
                call    sub_2F65
                call    PAUSE_3_C_A
                call    PAUSE_3_C_A
                ld      de,0Ah
                ld      hl,4000h
                push    hl
                call    sub_2D73
                ld      hl,4100h
                ld      de,0Bh
                call    sub_2D73
                pop     hl
                push    hl
                ld      de,8
                call    sub_2F1B
                ld      hl,40E3h
                ld      a,(hl)
                ld      (KSTATE0),a
                inc     hl
                ld      a,(hl)
                inc     (hl)
                inc     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                or      a
                ex      de,hl
                ld      de,0C0h
                sbc     hl,de
                ld      (40E5h),hl
                ld      hl,4000h
                ld      de,8
                call    sub_2D73
                pop     hl
                ld      de,(40E1h)
                push    de
                ld      de,0Ah
                call    sub_2F1B
                pop     de
                call    sub_2D4C
                push    de
                ld      a,3Ch
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0FFh),a
        ENDIF
                call    sub_2F65
                ld      hl,4000h
                ld      de,8
                ld      b,1
                call    sub_2F1B
                pop     de
                ld      hl,(40E1h)
                ld      (40E1h),de
                push    hl
                ld      hl,4000h
                ld      de,8
                ld      b,1
                call    sub_2D73
                ld      a,(40E4h)
                dec     a
                call    sub_2CE5
                ld      (hl),"@"
                inc     hl
                ld      b,7
loc_2B09        ld      (hl)," "
                inc     hl
                djnz    loc_2B09
                ld      (hl),"C"
                pop     de
                pop     bc
                inc     hl
                ld      (hl),c
                inc     hl
                ld      (hl),b
                inc     hl
                inc     hl
                inc     hl
                ld      (hl),0C0h
                inc     hl
                ld      (hl),e
                inc     hl
                ld      (hl),d
                ld      hl,4000h
                ld      de,0
        IF EMU
                RST32 _IN_5F,__IN_A_N+0X5F<<8
        ELSE
                in      a,(5Fh)
        ENDIF
                dec     a
                ld      e,a
                ld      b,1
                call    sub_2D73
                ld      hl,0
                add     hl,sp
                ld      (4140h),hl
                ld      sp,41FFh
                call    sub_2A35
                ld      hl,0C000h
                xor     a
loc_2B3F        add     a,(hl)
                inc     hl
                ld      b,a
                ld      a,h
                or      a
                ld      a,b
                jr      nz,loc_2B3F
                ld      hl,4100h
                ld      (hl),a
                push    hl
                ld      hl,loc_2B58
                push    hl
                ld      hl,loc_3D2F
                push    hl
                di
                jp      4080h

loc_2B58        pop     hl
                ld      bc,7FFDh
                ld      a,0AAh
                ld      (4130h),a
                ld      d,5
                ld      a,(KSTATE1)
                or      d
                ld      d,a
                out     (c),d
                ld      a,(0C130h)
                cp      0AAh
                jp      nz,loc_2C1B
                ld      a,d
                and     0F8h
                ld      d,a
                inc     hl
                ld      b,8
loc_2B79        ld      (hl),d
                out     (c),d
                xor     a
                ld      hl,0C000h
loc_2B80        add     a,(hl)
                inc     hl
                ld      e,a
                ld      a,h
                or      a
                ld      a,e
                jr      nz,loc_2B80
                ld      hl,4100h
                cp      (hl)
                inc     hl
                jr      z,loc_2B93
                inc     d
                djnz    loc_2B79
                dec     d
loc_2B93        ld      b,8
loc_2B95        push    bc
                call    sub_2C37
                pop     bc
                djnz    loc_2B95
                ld      c,0
                call    sub_2F3A
                call    sub_2D2A
                ld      a,(40E4h)
                ld      (4102h),a
                inc     a
                ld      (40E4h),a
                ld      hl,(40E5h)
                ld      de,1
                sbc     hl,de
                ld      (40E5h),hl
                ret     c
                ld      hl,(40E1h)
                ld      (411Eh),hl
                call    sub_2D1E
                ld      a,38h
                ld      (4111h),a
                ld      a,1
                ld      (411Dh),a
                ld      hl,4100h
                ld      (4119h),hl
                ld      hl,100h
                ld      (411Bh),hl
                ld      de,(40E1h)
                call    sub_2F65
                ld      c,d
                call    sub_2F3A
                ld      hl,4100h
                ld      b,1
                call    loc_2D58
                ld      (40E1h),de
                ld      c,0
                call    sub_2F3A
                call    sub_2D34
                ld      a,(4102h)
                call    sub_2CE5
                ld      de,4110h
                ld      bc,10h
                ex      de,hl
                ldir
        IF EMU
                RST32 _IN_5F,__IN_A_N+0X5F<<8
        ELSE
                in      a,(5Fh)
        ENDIF
                dec     a
                ld      e,a
                ld      d,0
                ld      hl,4000h
                call    sub_2D73
                ld      bc,7FFDh
                ld      a,(4101h)
                out     (c),a
loc_2C1B        ld      hl,(4140h)
                ld      sp,hl
                ld      hl,4000h
                ld      de,0Ah
                call    sub_2F1B
                ld      hl,4100h
                ld      de,0Bh
                call    sub_2F1B
                ld      a,3Ch
                push    af
                jp      loc_2EBC

sub_2C37        ld      a,b
                dec     a
                ld      (4103h),a
                ld      b,a
                ld      a,(4101h)
                and     7
                cp      b
                ret     z
                ld      a,2
                cp      b
                ret     z
                ld      a,(4101h)
                and     8
                jr      z,loc_2C55
                ld      a,b
                cp      7
                ret     z
                jr      loc_2C59

loc_2C55        ld      a,b
                cp      5
                ret     z
loc_2C59        call    sub_2C5D
                ret

sub_2C5D        ld      hl,4101h
                ld      a,(hl)
                and     0F8h
                ld      c,a
                ld      a,b
                or      c
                push    bc
                ld      bc,7FFDh
                out     (c),a
                pop     bc
                ld      hl,0C000h
loc_2C70        ld      a,(hl)
                or      a
                jr      nz,loc_2C7A
                inc     hl
                ld      a,h
                or      a
                jr      nz,loc_2C70
                ret

loc_2C7A        call    sub_2C7E
                ret

sub_2C7E        ld      c,0
                call    sub_2F3A
                call    sub_2D2A
                ld      a,(40E4h)
                ld      (4102h),a
                inc     a
                ld      (40E4h),a
                ld      hl,(40E5h)
                ld      de,40h
                sbc     hl,de
                ld      (40E5h),hl
                ret     c
                ld      hl,(40E1h)
                ld      (411Eh),hl
                call    sub_2D1E
                ld      a,40h
                ld      (411Dh),a
                ld      hl,0C000h
                ld      (4119h),hl
                ld      hl,4000h
                ld      (411Bh),hl
                ld      de,(40E1h)
                call    sub_2D3E
                ld      (40E1h),de
                ld      c,0
                call    sub_2F3A
                call    sub_2D34
                ld      a,(4102h)
                call    sub_2CE5
                ld      de,4110h
                ld      bc,10h
                ex      de,hl
                ldir
        IF EMU
                RST32 _IN_5F,__IN_A_N+0X5F<<8
        ELSE
                in      a,(5Fh)
        ENDIF
                dec     a
                ld      e,a
                ld      d,0
                ld      hl,4000h
                call    sub_2D73
                ret

sub_2CE5        ld      c,a
                and     0F0h
                rrca
                rrca
                rrca
                rrca
                ld      b,a
                push    bc
                ld      e,b
                ld      d,0
                ld      hl,4000h
                push    de
                call    sub_2F1B
                pop     de
                pop     bc
                ld      b,0
                ld      a,c
                and     0Fh
                rlca
                rlca
                rlca
                rlca
                ld      hl,4000h
                add     a,l
                ld      l,a
                ret

sub_2D09        ld      hl,4110h
                ld      b,9
loc_2D0E        ld      (hl)," "
                inc     hl
                djnz    loc_2D0E
                ld      a,"@"
                ld      (4110h),a
                ld      a,"C"
                ld      (4118h),a
                ret

sub_2D1E        call    sub_2D09
                ld      a,(4103h)
                add     a,"0"
                ld      (4111h),a
                ret

sub_2D2A        ld      hl,4000h
                ld      de,8
                call    sub_2F1B
                ret

sub_2D34        ld      hl,4000h
                ld      de,8
                call    sub_2D73
                ret

sub_2D3E        call    sub_2F65
                ld      c,d
                call    sub_2F3A
                ld      hl,0C000h
                ld      b,40h
                jr      loc_2D58

sub_2D4C        call    sub_2F65
                ld      c,d
                call    sub_2F3A
                ld      hl,4000h
                ld      b,0C0h
loc_2D58        push    bc
                push    de
                call    sub_2D73
                ld      de,100h
                add     hl,de
                pop     de
                inc     e
                ld      a,e
                cp      10h
                jr      nz,loc_2D6F
                ld      e,0
                inc     d
                ld      c,d
                call    sub_2F3A
loc_2D6F        pop     bc
                djnz    loc_2D58
                ret

sub_2D73        ld      a,e
                inc     a
        IF EMU
                RST32 _OUT_5F,__OUT_N_A+0X5F<<8
        ELSE
                out     (5Fh),a
        ENDIF
                push    hl
                ld      d,14h
                push    de
loc_2D7B        di
                ld      c,7Fh
                ld      a,0A0h
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (1Fh),a
        ENDIF
                call    WR_DATAPORT
                pop     de
                pop     hl
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     0x7f
                ret     z
                dec     d
                push    hl
                push    de
                jr      nz,loc_2D7B
                halt
loc_2D92        ld      hl,(TRD_5CE6)                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      de,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                ld      a,(TRD_5CEA)                    ; „‹ˆ€ ”€‰‹€ ‚ ‘…Š’Ž€•
                ld      b,a
                call    COM_05                          ; —’…ˆ… ‘…Š’ŽŽ‚
                ret

GOTO            call    SET_AND_PUT
                call    EXIT_IF_SINTAX                  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                call    SET_FILENAME                    ; ……Ž‘ ‡€„€ŽƒŽ ˆŒ…ˆ ”€‰‹€ ‚ “”… #5CDD
                ld      (4020h),bc
                ld      a,c
                cp      8
                jr      nc,loc_2DD2
                call    COM_18                          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      nz,ERR_NOFILES
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,(4020h)
                add     hl,bc
                ld      (hl),"8"
                push    hl
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                pop     hl
                jr      z,loc_2DD8
                ld      (hl)," "
loc_2DD2        call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jp      loc_2E33

loc_2DD8        call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                call    loc_2D92
                ld      sp,40FFh
                ld      b,8
loc_2DE3        push    bc
                ld      a,b
                ld      bc,7FFDh
                dec     a
                push    af
                or      10h
                out     (c),a
                pop     af
                add     a,"0"
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,(4020h)
                add     hl,bc
                ld      (hl),a
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                jr      nz,loc_2E05
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                call    loc_2D92
loc_2E05        pop     bc
                djnz    loc_2DE3
                ld      a," "
                ld      hl,TRD_5CDD                     ; ˆŒŸ ”€‰‹€
                ld      bc,(4020h)
                add     hl,bc
                ld      (hl),a
                call    FIND_FILENAME                   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
                push    bc
                push    af
                ld      bc,7FFDh
                ld      a,(4101h)
                out     (c),a
                pop     af
                pop     bc
                jr      loc_2E39

                call    SET_AND_PUT
                call    EXIT_IF_SINTAX                  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                call    INP_EXTFILENAME                 ; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
                call    FIND_FILE                       ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
loc_2E33        jp      nz,ERR_NOFILES
                call    RDHEAD_FILENAME                 ; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
loc_2E39        ld      a,(TRD_5CDD)                    ; ˆŒŸ ”€‰‹€
                cp      "$"
                di
                jr      nz,loc_2E43
                im      2
loc_2E43        ld      sp,40F0h
                call    GET_TYPE_DISK                   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                ld      (4010h),a
                ld      a,(TRD_5D16)                    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                ld      (4011h),a
                ld      hl,(TRD_5CE6)                   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                push    hl
                ld      de,(TRD_5CEB)                   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                push    de
                inc     e
                ld      a,e
                cp      10h
                jr      nz,loc_2E64
                ld      e,0
                inc     d
loc_2E64        ld      c,d
                call    sub_2F07
                ld      a,(4010h)
                and     2
                call    nz,sub_2F0F
                ld      a,c
                call    loc_2F50
                ld      hl,4100h
                ld      b,0BFh
loc_2E79        push    bc
                push    de
                call    sub_2F1B
                ld      de,100h
                add     hl,de
                pop     de
                inc     e
                ld      a,e
                cp      10h
                jr      nz,loc_2E9C
                ld      e,0
                inc     d
                ld      c,d
                call    sub_2F07
                ld      a,(4010h)
                and     2
                call    nz,sub_2F0F
                ld      a,c
                call    loc_2F50
loc_2E9C        pop     bc
                djnz    loc_2E79
                pop     de
                pop     hl
                ld      sp,hl
                ld      a,(4011h)
                push    af
                ld      c,d
                call    sub_2F07
                ld      a,(4010h)
                and     2
                call    nz,sub_2F0F
                ld      a,c
                call    loc_2F50
                ld      hl,4000h
                call    sub_2F1B
loc_2EBC        pop     af
                ex      af,af'

                pop     af
                ld      r,a
                pop     af
                ld      i,a
                di
                ld      a,0FFh
                jp      po,loc_2ECC
                ld      a,0
loc_2ECC        ld      (KSTATE0),a
                pop     af
                pop     hl
                pop     de
                pop     bc
                exx
                ex      af,af'
                pop     iy
                pop     ix
                pop     hl
                pop     de
                pop     bc
                ld      a,(BORDCR)
                and     38h
                rrca
                rrca
                rrca
                out     (0FEh),a
                ld      a,(SWAP_8)
                cp      0EEh
                jr      nz,loc_2EF7
                push    bc
                ld      bc,7FFDh
                ld      a,(BANKM)
                out     (c),a
                pop     bc
loc_2EF7        ld      a,(KSTATE0)
                or      a
                ld      a,0C9h
                ld      (KSTATE0),a
                jr      nz,loc_2F03
                ei
loc_2F03        pop     af
                jp      KSTATE0

sub_2F07        ld      a,(4011h)
                or      0x3c
loc_2F0C
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
                ret

sub_2F0F        ld      a,c
                or      a
                rra
                ld      c,a
                ret     nc
                ld      a,(4011h)
                and     0x6f                            ;LORD OF CHAOS
                jr      loc_2F0C

sub_2F1B        ld      a,e                             ;EXOLON
                inc     a
        IF EMU
                RST32 _OUT_5F,__OUT_N_A+0X5F<<8
        ELSE
                out     (0x5f),a
        ENDIF
                push    hl
                ld      d,0x14
                push    de
loc_2F23        di
                ld      c,0x7f
                ld      a,0x80
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                call    RD_DATAPORT
                pop     de
                pop     hl
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     0x7f
                ret     z
                dec     d
                push    hl
                push    de
                jr      nz,loc_2F23
                halt
sub_2F3A        ld      a,3Ch
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0FFh),a
        ENDIF
                ld      a,(KSTATE0)
                and     8
                jr      nz,loc_2F4F
                ld      a,c
                or      a
                rra
                ld      c,a
                jr      nc,loc_2F4F
                ld      a,2Ch
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
loc_2F4F        ld      a,c
loc_2F50
        IF EMU
                RST32 _OUT_7F,__OUT_N_A+0X7F<<8
        ELSE
                out     (0x7f),a
        ENDIF
                call    loc_3D2F;PAUSE725779T
                ld      a,0x18
loc_2F57
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
loc_2F59
        IF EMU
                RST32 _IN_FF,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0x80
                jr      z,loc_2F59
                push    bc
                call    PAUSE725779T
                pop     bc
                ret

sub_2F65        ld      a,0x08                          ;SOLDIER OF THE FUTURE
                jr      loc_2F57

WORK4ERROR      ld      hl,(TRD_5D1C)                   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      sp,hl
                jp      loc_1D2F

CALL2BASIC      ld      (TRD_5D02),hl
                ld      (TRD_5D04),de
                pop     hl
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                inc     hl
                push    hl
                ld      hl,loc_3D2F
                push    hl
                push    de
                ld      hl,TRD_5CC2
                push    hl
                ld      hl,(TRD_5D02)
                ld      de,(TRD_5D04)
                ret

SET_VARS        LD HL,0X0808
                ld      (TRD_5CFA),hl                   ; ‚…ŒŸ ……Œ…™…ˆŸ „ˆ‘ŠŽ‚Ž„€ A
                ld      (TRD_5CFC),hl                   ; ‚…ŒŸ ……Œ…™…ˆŸ „ˆ‘ŠŽ‚Ž„€ C
                LD HL,0X8383
                ld      (TRD_5CC8),hl                   ; …†ˆŒ €Ž’€ „ˆ‘ŠŽ‚Ž„€ A
                ld      (TRD_5CCA),hl                   ; …†ˆŒ €Ž’€ „ˆ‘ŠŽ‚Ž„€ C
                xor     a
                ld      (TRD_5D17),a                    ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ, …‘‹ˆ #AA
                ld      (TRD_5D18),a
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      (TRD_5D1F),a
                CALL SET_DRIVENAME
                ld      a,0xff
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
                ld      (ERR_NR),a
                ld      (TRD_5D0C),a
                ld      a,0xc9
                ld      (TRD_5CC2),a
                ld      a,0xd0
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                ret

CP_END_CAT      call    CP_END_BUF
                ld      a,(hl)
                or      a
                jp      z,END_OUT_DIR
                cp      1
                call    z,ADD_10
                ret     nz
                jr      CP_END_CAT

LOAD_SEC2BUF    ld      b,1
                ld      hl,TRD_5D25
                jp      loc_1E67

LOAD_END_FILE   push    hl
                ld      de,(TRD_5CF4)
                call    LOAD_SEC2BUF
                ld      a,(TRD_5CDB)
                pop     de
                or      a
                ret     z
                ld      c,a
                ld      hl,TRD_5D25
        IF EMU
                IF EMU3D2F=1
                JP EMU_LDIR
                ELSE
                ldir
                ret
                ENDIF
        ELSE
                ldir
                ret
        ENDIF

; ’€‹ˆ–€ …‰‘ˆŠ ŠŽŒ€„ „‹Ÿ TR-DOS
CODE_BYTE_COM   db __CAT
                db "*"
                db __FORMAT
                db __MOVE
                db __NEW
                db __ERASE
                db __LOAD
                db __SAVE
                db __RETURN
                db __PEEK
                db __POKE
                db __MERGE
                db __RUN
                db __OPEN
                db __CLOSE
                db __COPY
                db "4"
                db __GOTO
                db "8"
                db __LIST
                db __VERIFY
ECODE_BYTE_COM

; ’€‹ˆ–€ €„…‘Ž‚ ˆ‘Ž‹…ˆŸ ŠŽŒ€„
SPIS_ADR_COM    dw CAT
                dw COM_STAR
                dw FORMAT
                dw MOVE
                dw NEW                  ; ‚›Ž‹…ˆ… ŠŽŒ€„› NEW
                dw ERASE                ; ‚›Ž‹…ˆ… ŠŽŒ€„› ERASE
                dw LOAD
                dw SAVE
                dw RETURN
                dw PEEK
                dw POKE
                dw MERGE
                dw RUN
                dw OPEN
                dw CLOSE
                dw COPY
                dw COM_40
                dw GOTO
                dw COM_80
                dw LIST
                dw VERIFY

SAE2E_LINE      ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,0xff
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ld      hl,TRD_5CDB
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                jr      loc_3057

SAE2_HL_        ld      (TRD_5D11),hl                   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                call    CP_ADR_STR
                ret     nz
                inc     hl
                inc     hl
                ld      (TRD_5CD7),hl                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
loc_3057        call    CMP_SPECSYM
                jr      nz,loc_3087
                ex      de,hl
                inc     de
                ld      b,0
                ld      hl,BYTES_COM
                add     hl,bc
                ld      a,(hl)
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                inc     hl
                ex      de,hl
                rst     0x20
                dw      0x19dd
                push    bc
;[???]
;               call CLRBUF_EDITOR1
                rst     20h
                dw      19E8h
                pop     bc
                ld      a,(TRD_5CD6)                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                or      a
                jr      nz,loc_3087
                ld      hl,(TRD_5CD7)                   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ex      de,hl
                or      a
                sbc     hl,bc
                ex      de,hl
                ld      (hl),d
                dec     hl
                ld      (hl),e
loc_3087        ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(hl)
                cp      0x0d
                ret     z
                inc     hl
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(hl)
                cp      0x0d
                ret     z
                cp      0x22
                jr      nz,loc_3057
loc_309A        inc     hl
                ld      a,(hl)
                cp      0x0d
                ret     z
                cp      0x22
                jr      nz,loc_309A
                inc     hl
                ld      (TRD_5CD9),hl                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                jr      loc_3057

FIND_KEYWORD    ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      de,TBL_KEYWORD                  ; "SAVE"
                ld      c,0
loc_30B1        ld      a,(hl)
                and     0xdf
                ld      b,a
                or      a
                jr      nz,loc_30BB
                inc     hl
                jr      loc_30B1

loc_30BB        ld      a,(de)
                and     0x80
                jr      nz,loc_30C8
                ld      a,(de)
                cp      b
                jr      nz,loc_30D9
                inc     hl
                inc     de
                jr      loc_30B1

loc_30C8        ld      a,(de)
                and     0x7f
                cp      b
                ret     z
loc_30CD        inc     c
                ld      hl,(TRD_5CD9)                   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                inc     de
                ld      a,(de)
                cp      0xff
                jr      nz,loc_30B1
                or      a
                ret

loc_30D9        inc     de
                ld      a,(de)
                and     0x80
                jr      z,loc_30D9
                jr      loc_30CD

CP_ADR_STR      ld      hl,(PPC)
                inc     hl
                inc     hl
                ld      a,h
                or      l
                jr      z,loc_30F4
                xor     a
                ld      (TRD_5CD6),A                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                dec     hl
                dec     hl
                rst     0x20
                dw      0x196e
                ret

loc_30F4        ld      a,0xff
                ld      (TRD_5CD6),a                    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                ld      hl,(E_LINE)                     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ret

;’€‹ˆ–€ Š‹ž—…‚›• ‘‹Ž‚
TBL_KEYWORD     db "SAVE",0x80
                DC "SAVE"
                db "LOAD",0x80
                DC "LOAD"
                db "RUN",0x80
                DC "RUN"
                db "CAT",0x80
                DC "CAT"
                db "ERASE",0x80
                DC "ERASE"
                db "NEW",0x80
                DC "NEW"
                db "MOVE",0x80
                DC "MOVE"
                db "MERGE",0x80
                DC "MERGE"
                db "PEEK",0x80
                DC "PEEK"
                db "POKE",0x80
                DC "POKE"
                db "OPEN",0x83
                db "CLOSE",0x83
                db "CODE",0x80
                DC "CODE"
                db "RND",0x80
                DC "RND"
                db "DATA",0x80
                DC "DATA"
                db "SCREEN",4,0x84
                db "SCREEN",0x84
                db "COPY",0x80
                DC "COPY"
                db "FORMAT",0x80
                DC "FORMAT"
                db "GOTO",0x80
                DC "GOTO"
                db "LIST",0x80
                DC "LIST"
                db "LINE",0x80
                DC "LINE"
                db "VERIFY",0x80
                DC "VERIFY"
                db 0xff,0xff

;€‰’Ž‚›… ŠŽ„› Š‹ž—…‚›• ‘‹Ž‚
BYTES_COM       dw __SAVE<<8+__SAVE
                dw __LOAD<<8+__LOAD
                dw __RUN<<8+__RUN
                dw __CAT<<8+__CAT
                dw __ERASE<<8+__ERASE
                dw __NEW<<8+__NEW
                dw __MOVE<<8+__MOVE
                dw __MERGE<<8+__MERGE
                dw __PEEK<<8+__PEEK
                dw __POKE<<8+__POKE
                dw __CLOSE<<8+__OPEN
                dw __CODE<<8+__CODE
                dw __RND<<8+__RND
                dw __DATA<<8+__DATA
                dw __SCREENS<<8+__SCREENS
                dw __COPY<<8+__COPY
                dw __FORMAT<<8+__FORMAT
                dw __GOTO<<8+__GOTO
                dw __LIST<<8+__LIST
                dw __LINE<<8+__LINE
                dw __VERIFY<<8+__VERIFY
                db 0

CP_VARSTRDOS    CALL CMP_VARSTRDOS
                or      a
                ld      bc,TRD_5D25
                sbc     hl,bc
                ret

;===============FREE SPACE 2============
                include extend.a80
                include raznoe.a80
                include patch.a80
;„‹Ÿ …‡ˆ„…’€ HONEY COMANDER
                include hc_resident.a80
;===============FREE SPACE 2============

                TITLE "evo-dos.a80"

                DUPL 0X3C01-$,0XFF
                jr      loc_3C06

                db      0xff
                jr      loc_3C09

loc_3C06        jp      loc_3D00

loc_3C09        jp      loc_3D03

;===============FREE SPACE 3============
                DUPL 0X3C30-$,0XFF
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                IN A,(0X1F)
        ENDIF
                RET

;„‹Ÿ …‡ˆ„…’€ HONEY COMANDER
                DUPL 0X3C50-$,0XFF
LOC_3C50        LD H,CMOS_BYTE_01
                CALL READCMOS
                AND M_REZIDENT
                JP Z,LOC_3C4B
                JP loc_3C50

        IF EMU
                DUPL ADR_RST8END-$,0XFF
                JP EDOS2RST8
        ENDIF
;===============FREE SPACE 3============

                DUPL 0X3CFA-$,0XFF
loc_3CFA        nop
                jr      loc_3D2F

loc_3CFD        jp      CALL_3D13

;‚•Ž„ ‚ DOS (15616)
loc_3D00        nop
                jr      IN_DOS_15616

;Ž€™…ˆ… ˆ‡ …‰‘ˆŠ€ (15619)
loc_3D03        nop
                jr      IN_DOS_15619

loc_3D06        nop
                jp      INPUTDATAFILE

loc_3D0A        jp      OUT_SYM2FILE

                nop
loc_3D0E        jr      loc_3D0A

                nop
                jr      loc_3CFA

                nop
                jr      loc_3CFD

loc_3D16        nop
                jp      WORK4ERROR

IN_DOS_15619    call    CREATE_VARS_TRD
                push    hl
                jp      CONTINUE_15619

CREATE_VARS_TRD call    CP_VARSTRDOS
                nop
                nop
                call    c,JMP_CREATE_VARS
                ld      hl,TRD_5CC2
                ret

                nop
                nop
loc_3D2F        nop
                ret

IN_DOS_15616    call    CREATE_VARS_TRD
                push    hl
                jp      IN_COMMAND_CPU                  ; ‚•Ž†„…ˆ… ‚ ŠŽŒ€„›‰ Ž–…‘‘Ž „Ž‘€

INI_INTERFACE1  xor     a
                DUPL 2,0
                in      a,(0xf7)
                cp      0x1e
                jr      z,loc_3D44
                cp      0x1f
                ret     nz
loc_3D44        rst     8
                db      0x31
                ld      a,1
                ld      (TRD_5CEF),a
                ret

JMP_CREATE_VARS xor     a
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
                in      a,(0xf6)
                ld      hl,INI_INTERFACE1
                ld      de,MEMBOT
                ld      bc,0x14
                ldir                                    ;ADS
                ld      hl,CREATE_VARS
                push    hl
                LD      hl,loc_3D2F
                push    hl
                jp      MEMBOT

CREATE_VARS
        IF EMU
                CALL CMP_RAMDISK
        ELSE
                ld      hl,SET_VARS
        ENDIF
                push    hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,0x1655
                push    hl
                ld      hl,TSTACK_END
                push    hl
                ld      (hl),0xc9
                ld      hl,P_RAMT+1
                ld      bc,0x70
                ret

PRINT_0D        ld      a,0x0d
PRINT_A_        push    hl
                push    bc
                push    de
                push    af
                DUPL 3,0
                pop     af
                call    PRINT_SYM
                DUPL    3,0
                pop     de
                pop     bc
                pop     hl
                ret

PRINT_SYM       rst     0x20
                dw      0x10
                ret

;‚Ž‘‘’€Ž‚‹…ˆ… ‚ƒ93
COM_00          ld      a,0x08
COM2VG_WAIT
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
loc_3D9C        push    hl
                rst     0x20
                dw      0x1f54
                jr      c,loc_3DA5
                rst     0x20
                dw      0x1b7b
loc_3DA5        pop     hl
        IF EMU
                RST32 _IN_FF,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0x80
                jr      z,loc_3D9C
                ret

CP_PRESENT_DSK  ld      a,0x08
                call    COM2VG_WAIT
                ld      de,0
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     2
                ld      b,a
loc_3DBA
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     2
                cp      b
        IF EMU
                IF EMU3D2F=1
                RET
                ELSE
                ret nz
                ENDIF
        ELSE
                ret     nz
        ENDIF
                inc     de
                ld      a,e
                or      d
                jr      nz,loc_3DBA
                jp      loc_3EE7

;‚›Ž „ˆ‘ŠŽ‚Ž„€ Ž “ŒŽ‹—€ˆž
ACTIV_DEF_DSK   ld      a,(TRD_5D19)                    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
;€‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
COM_01          ld      (TRD_5CF6),a                    ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                ld      hl,TRD_5D16                     ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                or      0x3c
                ld      (hl),a
        IF EMU
                RST30 _OUT_FF
        ELSE
                out     (0xff),a
        ENDIF
                LD B,0
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
        IF EMU
                RST32 _OUT_7F,__OUT_N_A+0X7F<<8
        ELSE
                out     (0x7f),a
        ENDIF
                LD A,%00011000                          ;…‡ Ž‚…Šˆ ŽŒ…€ „ŽŽ†Šˆ
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                DJNZ $                                  ;€“‡€
COM_011
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                AND 0X80
                JP NZ,loc_3EE7
LOC_3DFA        JP WR_NUM_TRACK

WR_BYTE_RET     OUT (C),A
                RET

                DUPL 0X3DFD-$,0XFF
PAUSE725779T    ld      a,0x50
PAUSE_C_A       ld      c,0xff
loc_3E01        dec     c
                jr      nz,loc_3E01
                dec     a
                jr      nz,PAUSE_C_A
                ret

; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
GET_TIME_HEAD   ld      de,TRD_5CFA                     ; ‚…ŒŸ ……Œ…™…ˆŸ „ˆ‘ŠŽ‚Ž„€ A
loc_3E0B        ld      hl,(TRD_5CF6)                   ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
                add     hl,de
                ld      a,(hl)
                ret

GET_TYPE_DISK   ld      de,TRD_5CC8                     ; …†ˆŒ €Ž’€ „ˆ‘ŠŽ‚Ž„€ A
                jr      loc_3E0B

; Ž…„…‹…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
CP_TIME_GOHEAD  call    GET_TIME_HEAD                   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                ld      b,8
                ld      c,4
loc_3E1D        ld      (hl),b
                ld      a,0Bh
                call    COM2VG_WAIT
                ld      a,20h
                ld      b,0Bh
                call    HEAD_POSITION
                ld      b,(hl)
                ld      a,1
                call    HEAD_POSITION
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(1Fh)
        ENDIF
                and     4
                jr      nz,loc_3E3F
                xor     a
                call    HEAD_POSITION
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(1Fh)
        ENDIF
                and     4
                ret     nz
loc_3E3F        inc     b
                dec     c
                ret     z
                jr      loc_3E1D

HEAD_POSITION
        IF EMU
                RST32 _OUT_7F,__OUT_N_A+0X7F<<8
        ELSE
                out     (0x7f),a
        ENDIF
                ld      a,b
                or      0x18
                jp      COM2VG_WAIT

POSITIONIREN
        IF EMU
                RST32 _OUT_7F,__OUT_N_A+0X7F<<8
        ELSE
                out     (0x7f),a
        ENDIF
                push    bc
                ld      b,a
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
                cp      b
                pop     bc
                push    af
                ld      a,b
                or      0x18
                call    COM2VG_WAIT
                pop     af
                ret     z
                push    bc
                call    PAUSE725779T
                pop     bc
                ret

;“‘’€Ž‚Š€ ƒŽ‹Ž‚Šˆ € „ŽŽ†Š“
COM_02          ld      c,a
                call    COM_16
                call    GET_TYPE_DISK
                and     2
                call    nz,SET_SIDE_DSK
                push    bc
                bit     7,(hl)
                jr      z,loc_3E83
                bit     0,(hl)
                jr      nz,loc_3E83
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
                cp      c
                jr      z,loc_3E82
                rlca
        IF EMU
                RST32 _OUT_3F,__OUT_N_A+0X3F<<8
        ELSE
                out     (0x3f),a
        ENDIF
                ld      a,c
                rlca
loc_3E82        ld      c,a
loc_3E83        call    GET_TIME_HEAD                   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                ld      b,a
                ld      a,c
                call    POSITIONIREN
                pop     bc
                ld      a,c
        IF EMU
                RST32 _OUT_3F,__OUT_N_A+0X3F<<8
        ELSE
                out     (0x3f),a
        ENDIF
                ld      a,(TRD_5CCD)                    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                or      a
                ret     z
                xor     a
                ld      (TRD_5CCD),a                    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                ret

                DUPL 0X3EA0-$,0XFF
PAUSE_3_C_A     ld      b,3
loc_3EA2        ld      a,0xff
                call    PAUSE_C_A
                djnz    loc_3EA2
                ret

SET_SIDE_DSK    ld      a,c
                or      a
                rra
                ld      c,a
                ret     nc
                jp      COM_17

GET_NUM_TRACK   call    COM_16
loc_3EB5
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                and     0x80
                ld      (TRD_5CCD),a                    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
                ld      h,a
                call    BUGFIX_3EBF                     ;PATCH ERROR
                ld      c,0x7f
                ld      d,1
                di
                ld      a,0xc0
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                push    bc
                ld      b,3
loc_3ECE
        IF EMU
                RST32 _IN_FF,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      nz,loc_3EF2
                inc     de
                ld      a,e
                or      d
                jr      nz,loc_3ECE
                djnz    loc_3ECE
                pop     bc
                ei
                ld      a,0xd0
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                ld      a,(TRD_5D17)
                cp      0xff
                ret     z
loc_3EE7        call    SET_TAPELDERR
                ld      a,0xff
                ld      (TRD_5D17),a                    ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ, …‘‹ˆ #AA
                jp      loc_271B

loc_3EF2        pop     bc
        IF EMU
                RST32 _IN_H_C,__IN_H_C
        ELSE
                in      h,(c)
        ENDIF
loc_3EF5
        IF EMU
                RST32 _IN_FF,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      z,loc_3EF5
                ei
                ret     m
                di
                in      a,(0x7f)
                jr      loc_3EF5

;“‘’€Ž‚Š€ ŽŒ…€ ‘…Š’Ž€
COM_03          ld      (TRD_5CFF),a
                ret

;“‘’€Ž‚Š€ €„…‘€ “”…€
COM_04          ld      (TRD_5D00),hl
                ret

SAVE_SECTOR     ld      a,0xa0
                jr      loc_3F10

LOAD_SECTOR     ld      a,0x80
loc_3F10        ld      (TRD_5CFE),a
loc_3F13        ld      d,0x0a
loc_3F15        push    de
                di
                ld      a,(TRD_5CFF)
                inc     a
        IF EMU
                RST32 _OUT_5F,__OUT_N_A+0X5F<<8
        ELSE
                out     (0x5f),a
        ENDIF
                ld      hl,(TRD_5D00)
                ld      c,0x7f
                ld      a,(TRD_5CFE)
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                cp      0xa0
                push    af
                call    z,WRITE_SEC
                pop     af
                call    nz,READ_SEC
                pop     de
                ei
        IF EMU
                RST32 _IN_1F,__IN_A_N+0X1F<<8
        ELSE
                in      a,(0x1f)
        ENDIF
                ld      b,a
                and     0x7f
                ret     z
loc_3F39        ld      hl,READ_ONLY                    ; READ ONLY
                and     0x40
                jr      nz,loc_3F4B
                ld      a,b
                and     4
                jr      z,loc_3FA0
                dec     d
                jr      nz,loc_3F15
loc_3F48        ld      hl,TXT_DISCERROR_               ; DISC ERROR
loc_3F4B        ld      a,0xd0
        IF EMU
                RST32 _OUT_1F,__OUT_N_A+0X1F<<8
        ELSE
                out     (0x1f),a
        ENDIF
                ld      a,b
                and     1
                jp      nz,loc_3EE7
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
                or      a
                jr      nz,loc_3F5F
        IF EMU
                RST32 _IN_5F,__IN_A_N+0X5F<<8
        ELSE
                in      a,(0x5f)
        ENDIF
                cp      0x0a
                ret     z
loc_3F5F        push    hl
                call    CLEAR_SCREEN                    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     hl
                rst     0x18
                ld      hl,TXT_TRK_                     ; TRACK
                rst     0x18
        IF EMU
                RST32 _IN_3F,__IN_A_N+0X3F<<8
        ELSE
                in      a,(0x3f)
        ENDIF
                call    PRINT_CHISLO_A_
                ld      hl,TXT_SEC_                     ; SECTOR
                rst     0x18
        IF EMU
                RST32 _IN_5F,__IN_A_N+0X5F<<8
        ELSE
                in      a,(0x5f)
        ENDIF
                call    PRINT_CHISLO_A_
                ld      hl,TXT_RIA_
                rst     0x18
loc_3F7B        call    GET_KEYS                        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "I"                             ; IGNORE-RET ‚ €„…‘ #1E8E
                ret     z
                cp      "R"                             ; RETRY
                jr      z,PRESS_RETRY
                cp      "A"                             ; ABORT
                jr      nz,loc_3F7B
                call    SET_TAPELDERR                   ; PRESS ABORT
                ld      a,7
                ld      (TRD_5D0F),a                    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                jp      END_COMAND

PRESS_RETRY     ld      a,(TRD_5CF5)
                call    COM_02
                call    PAUSE_3_C_A
                jp      loc_3F13

loc_3FA0        dec     d
                jp      z,loc_3F48                      ; DISC ERROR
                push    de
                call    GET_TIME_HEAD                   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                and     2
                jr      nz,loc_3FAD
                inc     (hl)
loc_3FAD        call    COM_00
                ld      a,(TRD_5CF5)
                call    COM_02
                pop     de
                jp      loc_3F15

WRITE_SEC       ld      b,4
loc_3FBC
        IF EMU
                RST32 WWRITE_SEC_,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      nz,loc_3FD1
                inc     de
                ld      a,e
                or      d
                jr      nz,loc_3FBC
                djnz    loc_3FBC
                ret

WR_DATAPORT
        IF EMU
                RST32 WWRITE_SEC_,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      z,WR_DATAPORT
                ret     m
loc_3FD1
        IF EMU
                RST32 WWRITE_SEC_,__OUTI
        ELSE
                outi
        ENDIF
                jr      WR_DATAPORT

READ_SEC        ld      b,4
loc_3FD7
        IF EMU
                RST32 WREAD_SEC_,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      nz,loc_3FEC
                inc     de
                ld      a,e
                or      d
                jr      nz,loc_3FD7
                djnz    loc_3FD7
                ret

RD_DATAPORT
        IF EMU
                RST32 WREAD_SEC_,__IN_A_N+0XFF<<8
        ELSE
                in      a,(0xff)
        ENDIF
                and     0xc0
                jr      z,RD_DATAPORT
                ret     m
loc_3FEC
        IF EMU
                RST32 WINI_RET,__INI
        ELSE
                ini
        ENDIF
                jr      RD_DATAPORT

                OUT (C),A
FOR_RET         RET

                IN A,(C)
                RET

                DUPL 0X3FF8-$,0XFF
                DB "EVODOS"
                DW DATA_VERS