Top secrets sources NedoPC pentevo

Rev

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


;LAST UPDATE: 06.08.2017 savelij

                include ../../macros.a80
                include ../../bas_trd_vars.a80

                ORG 0
                di
                ld      a,7
                OUT (0XFE),A
                jr      loc_9

                DB 1
RST_8           JP $

loc_9           ld      a,3Fh
                jr      loc_1B

                nop
RST_10          jp      PRINT_A_

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

loc_1B          LD I,A
                XOR A
                JR      loc_24

                DUPL 0X0020-$,0XFF
RST_20          jp      CALL2BASIC

                ret

loc_24          LD B,A
                LD C,A
                jr      loc_2B

                DUPL 0X0028-$,0XFF
RST_28          jp      ADR_OPEN_CHAN

loc_2B          LD SP,0XFFFF
                jr      loc_3A

RST_30          JP $

loc_33         

                DUPL 0X0038-$,0FFh
RST_38          ei
                ret

loc_3A          REPT 8
                PUSH BC
                ENDM
                LD HL,0XA500
                ADD HL,SP
                JR C,loc_3A
                ld      (P_RAMT),hl
                ld      de,3EAFh        ; €„…‘ UDG ‚ ‡“ 48Š
                ld      bc,0A8h
                ld      a,e
                ex      de,hl
                ld      sp,6000h
                ld      (TRD_5F00),hl
                ld      hl,loc_79
                push    hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,0B8EDh       ; LDDR
                jr      EXECUTECOM2HL

                jp      MAGIC

EXECUTECOM2HL   ld      (TRD_5F10),hl
                push    af
                ld      a,0C9h
                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,40h
                ld      (RASP),bc
                ld      (RAMTOP),hl
                ld      hl,3C00h        ; €„…‘ Ž‘Ž‚ŽƒŽ ”Ž’€ ‚ 48Š
                ld      (CHARS),hl
                ld      hl,(RAMTOP)
                ld      (hl),3Eh
                dec     hl
                ld      sp,hl
                dec     hl
                dec     hl
                ld      (ERR_SP),hl
                ld      de,1303h
                push    de
                im      1
                ld      iy,ERR_NR
                ld      hl,TRD_5CB6     ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                ld      (CHANS),hl
                ld      de,15AFh
                ld      bc,15h
                ex      de,hl
                call    COPY_BAS2VARS
                ex      de,hl
                dec     hl
                ld      (DATADD),hl
                inc     hl
                ld      (PROG),hl
loc_BE          ld      (VARS),hl
                ld      (hl),80h
                inc     hl
                ld      (E_LINE),hl     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      (hl),0Dh
                inc     hl
                ld      (hl),80h
                inc     hl
                ld      (WORKSP),hl
                ld      (STKBOT),hl
                ld      (STKEND),hl
                ld      a,38h
                ld      (ATTR_P),a
                ld      (ATTR_T),a
                ld      (BORDCR),a
                ld      hl,223h
                ld      (REPDEL),hl
                dec     (iy-3Ah)
                dec     (iy-36h)
                ld      hl,15C6h
                ld      de,STRMS
                ld      bc,0Eh
                call    COPY_BAS2VARS
                set     1,(iy+1)
                ld      hl,TRD_5CC2     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                ld      (hl),0C9h
                rst     20h
                dw 0EDFh                ; ®ç¨á⪠ ¡ãä¥à  ¯à¨­â¥à 
                ld      hl,DF_SZ
                ld      (hl),2
                ld      hl,128Bh
                push    hl
                ld      a,0AAh
                LD (NOT_USED),A
                ei
                jp      IN_DOS_15616

COPY_BAS2VARS   ld      (TRD_5F00),hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,0B0EDh       ; 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
                xor     a
                ld      (TRD_5D10),a    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
loc_140         push    hl
                call    RESTORE_SP      ; ‚Ž‘‘’€Ž‚‹…ˆ… ……•‚€’—ˆŠ€ Ž˜ˆŽŠ
                pop     hl
                ld      (NEWPPC),hl
                xor     a
                ld      (NSPPS),a
                rst     20h
                dw 16B0h                ; ãáâ ­®¢ª  ®¡« á⨠। ªâ¨à®¢ ­¨ï ¤® ¬¨­¨¬ã¬ 
                ld      hl,(PROG)
                dec     hl
                ld      (DATADD),hl
                ld      sp,(ERR_SP)
                ld      a,(TRD_5D10)    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                or      a
                ld      hl,1B76h
                jr      z,loc_166
                rst     20h
                dw 1BB0h                ; á®®¡é¥­¨¥ "Ok"
loc_166         push    hl
                ld      hl,TRD_5CC2     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                push    hl
                ret

loc_16C         DUPL 3,0
                call    CREATE_BUF      ; ‘Ž‡„€ˆ… “”…€
                ld      a,0FFh
                ld      (TRD_5D15),a    ; …‘‹ˆ 0,…—€’€’œ ˜€Š“ TR-DOS.ˆ€—… … …—€’€’œ
                xor     a
                ld      (TRD_5CF7),a
                ld      a,0AAh
                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,257
                sbc     hl,de
loc_1A5         ld      (CH_ADD),hl
loc_1A8         call    CP_0D_OR_80
loc_1AB         jp      z,END_COMAND
                cp      0EAh            ; 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     ld      a,(hl)
                cp      0Dh
                ret     z
                cp      80h
                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),0AAh
                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)

CP_ERROR        call    RESTORE_SP      ; Ž‚…Š€ € Ž˜ˆŠ“
                bit     7,(iy+0)
                ret     nz
                ld      de,TRD_5CC2     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                ld      sp,(ERR_SP)
                push    de
                ret

; Žˆ‘Š ŠŽ–€ ‘’ŽŠˆ
FIND_ENDSTR     call    GET_SYMSTR
                cp      0Dh
                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_235         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      0AAh
                ld      a,0
                ld      (TRD_5D0F),a    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                jp      z,COMMAND_CPU
                ld      (hl),0AAh
                ld      hl,ZASTAVKA     ; FIX
                                        ; ’…Š‘’ ‡€‘’€‚Šˆ „Ž‘€
                rst     18h
                call    OUT_COLOR_LINE  ; ˆ‘Ž‚€ˆ… –‚…’›• ‹ˆˆ‰ ‡€‘’€‚Šˆ „Ž‘€
                DUPL 0X026D-$,0
loc_271         LD A,(NOT_USED)         ; Ž‚…Š€ € #AA
                cp      0AAh
                jr      nz,COMMAND_CPU  ; …‘‹ˆ … #AA,’Ž ‚•Ž„ ‚ ŠŽŒ€„›‰ Ž–…‘‘Ž
                DUPL 0X027B-$,0
loc_27B         ld      hl,(E_LINE)     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                ld      a,0
                ld      (TRD_5D0E),a    ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                ld      (hl),0F7h
                inc     hl
                ld      (hl),'"'
                inc     hl
                ld      (hl),'b'
                inc     hl
                ld      (hl),'o'
                inc     hl
                ld      (hl),'o'
                inc     hl
                ld      (hl),'t'
                inc     hl
                ld      (hl),'"'
                inc     hl
                ld      (K_CUR),hl
                ld      (hl),0Dh
                inc     hl
                ld      (hl),80h
                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

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

COMMAND_CPU     ld      hl,(TRD_5D1C)   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                dec     hl
                dec     hl
                ld      sp,hl
                call    OPEN_CHAN_0     ; Ž’Š›’ˆ… Š€€‹€ 0
                ld      a,(TRD_5D16)    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                or      3
                call    STOP_MOTOR      ; FIX
                                        ; Ž‘’€Ž‚Š€ ŒŽ’Ž€ „ˆ‘ŠŽ‚Ž„€
                ld      a,(TRD_5D16)    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                call    STOP_MOTOR      ; FIX
                                        ; Ž‘’€Ž‚Š€ ŒŽ’Ž€ „ˆ‘ŠŽ‚Ž„€
                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     80h
                ld      a,b
                jr      z,loc_31A
                cp      0FEh            ; RETURN
                jr      z,loc_31A
                push    af
                call    ACTIV_DEF_DISK  ; ‚›Ž „ˆ‘ŠŽ‚Ž„€ Ž “ŒŽ‹—€ˆž
                pop     af
loc_31A         ld      hl,CODE_BYTE_COM ; ’€‹ˆ–€ …‰‘ˆŠ ŠŽŒ€„ „‹Ÿ TR-DOS
                                        ; CAT
                dec     hl
                ld      c,0
loc_320         inc     c
                ld      d,a
                ld      a,15h
                cp      c
                jp      c,END_COMAND
                ld      a,d
                inc     hl
                cp      (hl)
                jr      nz,loc_320
                cp      0FEh            ; 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
                push    hl
                ld      de,END_COM
                push    de
                jp      (hl)

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

; FIX
; ’…Š‘’ ‡€‘’€‚Šˆ „Ž‘€
ZASTAVKA        db 16h,1,5,"* TR-DOS Ver 5.03 *",0Dh,0Dh,7Fh
                db " 1986 Technology Research Ltd.",16h,5,0Bh
                db "(U.K.)",16h,7,5
                db "BETA 128",0

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_    ; " Free"
                rst     18h
GOTO_END        jp      END_COMAND

; …—€’œ ‘ŽŽ™…ˆŸ Ž Ž˜ˆŠ…
PRINT_ERROR     push    af
                ld      a,(TRD_5D0E)    ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                cp      0FEh
                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      10h
                jr      z,CP_TYPE_DISK
DISCERROR_      ld      hl,TXT_DISCERROR_
                JP DISCERROR_7

CP_TYPE_DISK    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      0Dh
                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      0Dh
                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_DISK
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      11h
                jp      nc,SINTAX_ERROR
                call    OPENSTREAM
                ld      a,0FFh
                ld      (TRD_5CF8),a    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                ld      hl,TXT_TITLE_   ; "Title:"
                rst     18h
                ld      hl,TRD_5E1A
                rst     18h
                call    PRINT_0D
                ld      a,(TRD_5E09)
                ld      hl,TRD_5E19
                sub     (hl)
                push    hl
                call    PRINT_CHISLO_A_
                ld      hl,TXT_FILES_   ; " File(s)"
                rst     18h
                pop     hl
                ld      c,(hl)
                call    CONV2_2BYTES
                ld      hl,TXT_DELFILE_ ; " Del. File"
                rst     18h
                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     10h
                ld      b,2
loc_4C4         call    CP_END_DIR      ; Ž‚…Š€ ŽŠŽ—€ˆŸ „ˆ…Š’Žˆˆ
                push    bc
                ld      a,":"
                rst     10h
                push    hl
                call    PRINT_FILENAME  ; …—€’œ ˆŒ…ˆ ”€‰‹€
                ld      bc,0Dh
                pop     hl
                push    hl
                add     hl,bc
                ld      c,(hl)
                push    bc
                ld      a,c
                ld      b,2
                cp      10
                jr      c,loc_4DF
                dec     b
loc_4DF         cp      100
                jr      nc,loc_4E8
loc_4E3         ld      a," "
                rst     10h
                djnz    loc_4E3
loc_4E8         pop     bc
                call    PRINT_CHISLO    ; …—€’œ —ˆ‘‹€
                pop     hl
                pop     bc
                ld      de,10h
                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,10h
                add     hl,de
                ret

; Ž‚…Š€ € ŠŽ…– “”…€
CP_END_BUF      push    hl
                push    bc
                ld      bc,0A1DBh
                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     0DFh
                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_STR2STKBOT
                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,0Ah
                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_DISK
                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,0FFh
                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    COPYFILE_ON2DSK ; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
                call    REWRITE_9SEC    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                jr      loc_5F4

; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
COPYFILE_ON2DSK call    READ_9SEC       ; —’…ˆ… 9 ‘…Š’Ž€
                ld      a,(TRD_5E09)
                cp      80h
                JP Z,ERR_DIRFULL        ; „Ž‹†… ›’œ ……•Ž„ € 0X2723
                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     0DFh
                cp      "S"
                jp      z,COPY_S
                cp      "B"
                jp      z,COPY_B
                call    INP_STR2STKBOT
                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    COPYFILE_ON2DSK ; ŠŽˆŽ‚€ˆ… ”€‰‹Ž‚ € 2 „ˆ‘ŠŽ‚Ž„€•
                call    REWRITE_9SEC    ; ……‡€ˆ‘œ 9 ‘…Š’Ž€
                ld      a,(TRD_5CE5)    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "#"
                jp      nz,ERR_OK
                ld      a,10
                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
                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 ‘…Š’Ž€

                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      ERR_OK

; ˆ…Œ €‘˜ˆ…ˆŸ ”€‰‹€
INP_EXTFILENAME ld      b,"C"
                ld      a,(TRD_5CD6)    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                or      a
                jr      nz,loc_104D
                call    GET_SYMSTR
                cp      0AFh            ; CODE
                ld      b,"C"
                jr      z,loc_104D
                cp      0E4h            ; 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     20h
                dw 28Eh                 ; ᪠­¨à®¢ ­¨¥ ª« ¢¨ âãàë
                ld      c,0
                jr      nz,loc_1056
                rst     20h
                dw 31Eh                 ; ¯à®¢¥àª  §­ ç¥­¨ï ­ ¦ â®© ª« ¢¨è¨
                jr      nc,loc_1056
                dec     d
                ld      e,a
                rst     20h
                dw 333h                 ; ¤¥ª®¤¨à®¢ ­¨¥ ª« ¢¨ âãàë
                pop     de
                pop     bc
                pop     hl
                and     0DFh
                ei
                ret

; ˆ‘Ž‚€ˆ… –‚…’›• ‹ˆˆ‰ ‡€‘’€‚Šˆ „Ž‘€
OUT_COLOR_LINE  ld      hl,58E5h
                ld      b,0Ah
loc_1073        ld      (hl),7
                inc     hl
                djnz    loc_1073
                ld      (hl),2
                inc     hl
                ld      (hl),16h
                inc     hl
                ld      (hl),34h
                inc     hl
                ld      (hl),25h
                inc     hl
                ld      (hl),28h
                inc     hl
                ld      (hl),7
                ld      hl,40EEh
                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,100h
                add     hl,de
                djnz    loc_108F
                ret

                ret

TXT_DELFILES    db " Del."
TXT_FILE_S_     db " File(s)",0
TXT_TITLE       DC "Title: "
TXT_DISKDRIVE   db 17h,11h," Disk Drive: ",0
TXT_1SPACE      db 17h,10h,20h,0
TXT_40TRK_SS    db 17h,10h," 40 Track S. Side",0
TXT_80TRK_SS    db 17h,10h," 80 Track S. Side",0
TXT_40TRK_DS    db 17h,10h," 40 Track D. Side",0
TXT_80TRK_DS    db 17h,10h," 80 Track D. Side",0
TXT_FREESECS    db 17h,10h," Free Sector ",0
TXT_FILENAME    db 0Dh,0Dh,"  File Name    Start Length Line",0

; ‘Ž‡„€ˆ… “”…€ € 0X222 €‰’€
CREATE_222BYTES ld      hl,(WORKSP)
                ld      (TRD_5CCF),hl   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,222h ; €‡Œ… ‘Ž‡„€‚€…ŒŽƒŽ “”…€
                jp      CREATE_FREERAM

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      0Dh
                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_DISK
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      11h
                jp      nc,SINTAX_ERROR
                call    OPENSTREAM
                ld      a,0FFh
                ld      (TRD_5CF8),a    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                call    CREATE_222BYTES ; ‘Ž‡„€ˆ… “”…€ € 0X222 €‰’€
                ld      hl,TRD_5E06
                ld      de,(TRD_5CCF)   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,20h
                ldir
                call    RD_0SEC2BUF     ; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
                ld      hl,TRD_5D25
                push    hl
loc_123E        ld      hl,TXT_TITLE    ; "Title:"
                push    bc
                rst     18h
                ld      hl,(TRD_5CCF)   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,14h
                add     hl,bc
                rst     18h
                ld      hl,TXT_DISKDRIVE
                rst     18h
                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,13h
                add     hl,bc
                sub     (hl)
                push    hl
                call    PRINT_CHISLO_A_
                ld      hl,TXT_FILE_S_  ; " File(s)"
                rst     18h
                ld      hl,(TRD_5CCF)   ; ‚…Œ…Ž… ‘Ž•€…ˆ… WORK_SP
                ld      bc,2
                add     hl,bc
                ld      a,(hl)
                ld      hl,TXT_40TRK_SS
                cp      19h
                jr      z,loc_1292
                ld      hl,TXT_80TRK_SS
                cp      18h
                jr      z,loc_1292
                ld      hl,TXT_40TRK_DS
                cp      17h
                jr      z,loc_1292
                ld      hl,TXT_80TRK_DS
loc_1292        rst     18h
                pop     hl
                ld      c,(hl)
                call    CONV2_2BYTES
                ld      hl,TXT_DELFILES ; " Del."
                rst     18h
                ld      hl,TXT_FREESECS
                rst     18h
                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     18h
                pop     bc
                pop     hl
                ld      b,10h
loc_12B5        call    FIND_END_BUFDIR
                call    PRINT_0D
                push    bc
                push    hl
                call    PRINT_FILENAME  ; …—€’œ ˆŒ…ˆ ”€‰‹€
                ld      bc,0Dh
                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     10h
                djnz    loc_12D4
loc_12D9        pop     bc
                call    PRINT_CHISLO    ; …—€’œ —ˆ‘‹€
                ld      hl,TXT_1SPACE
                rst     18h
                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,10h
                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,10h
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,21h
                add     hl,bc
                ld      b,2
                push    hl
                call    COM_05          ; —’…ˆ… ‘…Š’ŽŽ‚
                ld      a,80h
                pop     hl
                ld      bc,200h
                cpir
                ld      a,(hl)
                cp      0AAh
                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      ; “‘’€Ž‚Š€ 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_ON1DISK
                ld      a,(TRD_5CE5)    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "#"
                jp      nz,ERR_OK
loc_1393        ld      a,10
                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_ON1DISK
                jr      loc_1393

COPY_ON1DISK    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,0FFh
                ld      (TRD_5D21),a
                call    COPY_ON1DISK_
                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      80h
                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_ON1DISK_   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_DISK_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_DISK_DEST
                call    COM_06          ; ‡€ˆ‘œ ‘…Š’ŽŽ‚
                ld      hl,(TRD_5CF4)
                ld      (TRD_5CEB),hl   ; ŽŒ… …‚ŽƒŽ ‘…Š’Ž€ ”€‰‹€
                jp      COPY_ON1DISK_

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

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

SETUP_DISK_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_5CE6+1),a  ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      hl,640
                cp      19h             ; 40 „ŽŽ†…Š 1 ‘’ŽŽ€
                jr      z,SAVE_SECS_DEST
                ld      hl,1280
                cp      18h             ; 80 „ŽŽ†…Š 1 ‘’ŽŽ€
                jr      z,SAVE_SECS_DEST
                cp      17h             ; 40 „ŽŽ†…Š 2 ‘’ŽŽ›
                jr      z,SAVE_SECS_DEST
                ld      hl,2560
                cp      16h             ; 80 „ŽŽ†…Š 2 ‘’ŽŽ›
                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,0FFh
                ld      (TRD_5D21),a
                call    COM_18          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                call    GET_TYPE_DISK   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD9),a    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(TRD_5E08)
                cp      19h             ; 40 „ŽŽ†…Š 1 ‘’ŽŽ€
                ld      hl,640
                jr      z,loc_1575
                ld      hl,1280
                cp      18h             ; 80 „ŽŽ†…Š 1 ‘’ŽŽ€
                jr      z,loc_1575
                cp      17h             ; 40 „ŽŽ†…Š 2 ‘’ŽŽ›
                jr      z,loc_1575
                ld      hl,2560
                cp      16h             ; 80 „ŽŽ†…Š 2 ‘’ŽŽ›
                jr      z,loc_1575
                JP DISCERROR_

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_5CE6+1)  ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                ld      (TRD_5E08),a
                ld      hl,(TRD_5CDD)   ; ˆŒŸ ”€‰‹€
                ld      bc,(TRD_5CDF)
                sbc     hl,bc
                ld      (TRD_5E0A),hl
                call    SETUP_DISK_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_DISK_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_DISK_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

COM_08          ld      c,a             ; ‘—ˆ’›‚€ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€ ‚ “”… #5CDD
; —’…ˆ… Žˆ‘€’…‹Ÿ ”€‰‹€
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,0FFh
                jr      loc_165E

RESERVED_RAM    ld      a,0FFh
                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     20h
                dw 1F1Ah                ; ¯à®¢¥àª  à §¬¥à  ᢮¡®¤­®© ¯ ¬ïâ¨
                ld      hl,0FFFFh
                sbc     hl,bc
                ld      a,h
                cp      10h
                jr      nc,loc_168F
                ld      a,11h
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,0FFh
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-$,0FFh
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,1000h
                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     10h
                jr      c,loc_17F7
                inc     (hl)
                jr      loc_17F0

loc_17F7        add     a,10h
                ld      c,a
                push    bc
                call    READ_NUM_SEC    ; —’…ˆ… ‘…Š’Ž€ Š€’€‹Žƒ€ Ž ŽŒ…“
                pop     bc
                pop     af
                call    FIND_HEAD_BUF
                ld      de,TRD_5CDD     ; ˆŒŸ ”€‰‹€
                ld      bc,10h
                or      a
                jr      z,loc_180D      ; FIX
                ex      de,hl
loc_180D        ldir                    ; FIX
                ret

VERIFY          ld      a,0FFh
                ld      (TRD_5CF9),a    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
LOAD            call    ZERO2HIGH_ERR
loc_1818        call    LOAD_FILE
                call    EXIT_IF_SINTAX  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                ld      a,0FFh
                ld      (TRD_5D10),a    ; ‘’€˜ˆ‰ €‰’ Ž˜ˆŠˆ
                ld      a,(TRD_5CF9)    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0FFh
                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      0Dh             ; ‘‹…„“ž™ˆ‰ ‘ˆŒ‚Ž‹ ‚ ‘’ŽŠ… "ENTER"?
                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      0AFh            ; CODE
                call    z,GET_LOAD_CODE ; Ž‹“—…ˆ… €„…‘€ ‡€ƒ“‡Šˆ ŠŽ„€,…‘‹ˆ   “Š€‡€
                cp      0E4h            ; 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)    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                or      a
                ld      hl,(TRD_5CE6)   ; „‹Ÿ <C>-‘’€’Ž‚›‰ €„…‘,„‹Ÿ <B>-„‹ˆ€ Žƒ€ŒŒ›
                jr      z,loc_18B7
                ld      hl,(TRD_5CD9)   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
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      0FFh
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),80h
                ret

RD_OR_VERIFY    ld      a,(TRD_5CF9)    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0FFh
                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      0FFh
                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,0Dh
                jp      PRINT_TXTERR

PEEK            ld      a,0FFh
                jr      loc_19AB

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

MERGE           ld      a,0FFh
                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     20h
                dw 30h                  ; ᮧ¤ ­¨¥ ᢮¡®¤­®£® ¬¥áâ 
                ld      (hl),80h
                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     20h
                dw 8D2h                 ; à ¡®â  á® áâப ¬¨ ¯à®£à ¬¬ë ­  ¥©á¨ª¥
                jp      ERR_OK

CP_FREE4PROG    ex      de,hl
                scf
                sbc     hl,de
                ret     c
                ld      de,0Ah
                add     hl,de
                ld      b,h
                ld      c,l

CP_FREE_RAM     rst     20h
                dw 1F05h                ; ¯à®¢¥àª  ᢮¡®¤­®© ¯ ¬ïâ¨
                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      0FFh
                jr      z,loc_1A20
                ld      hl,5
loc_1A20        add     hl,de
                ld      (TRD_5CDB),hl
                pop     hl
                ld      a,(TRD_5CF9)    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0FFh
                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     20h
                dw 19E5h                ; ¢®ááâ ­®¢«¥­¨¥
                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      0FFh
                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,10h
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_DISK call    READ_9SEC       ; Ž‚…Š€ ‘‚ŽŽ„ŽƒŽ Œ…‘’€ € „ˆ‘Š…
                ld      a,(TRD_5E09)
                cp      80h
                jp      z,ERR_DIRFULL
                ret

SAVE            call    ZERO2HIGH_ERR
                ld      hl,0
                ld      (TRD_5CD1),hl
                call    SET_AND_PUT
                call    GET_SYMSTR
                cp      0AFh            ; CODE
                jr      z,loc_1B39
                cp      0CAh            ; LINE
                jr      nz,loc_1AF8     ; SCREEN$
                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      0AAh            ; SCREEN$
                jr      nz,loc_1B0D
                ld      hl,4000h
                ld      (TRD_5CD7),hl   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      hl,1B00h
                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      0E4h            ; DATA
                jr      z,loc_1B2C
                cp      0Dh
                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),0AAh       ; SCREEN$
                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      0FFh
                ret     nz
                jp      loc_1C13

CP_MASSIV       call    FIND_MASSIV
                ret     nc
loc_1C13        ld      a,0Eh
                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

; ……Ž‘ ‡€„€ŽƒŽ ˆŒ…ˆ ”€‰‹€ ‚ “”… #5CDD
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_DISK
                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
                ldir
                pop     bc
                ret

SETUP_DISK      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    ; ……Ž‘ ‡€„€ŽƒŽ ˆŒ…ˆ ”€‰‹€ ‚ “”… #5CDD
; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€
FIND_FILENAME   call    RD_0SEC2BUF     ; —’…ˆ… ‘…Š’Ž€ 0 Š€’€‹Žƒ€
                ld      b,80h
                ld      c,0
loc_1CBA        push    bc
                call    FIND_HEAD_BUF
                call    CP_END_BUF      ; Ž‚…Š€ € ŠŽ…– “”…€
                pop     bc
                push    bc
                ld      a,c
                cp      10h
                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      0FFh
                ret

loc_1CE7        ld      a,80h
                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),0FFh
                ret

RETURN          call    EXIT_IF_SINTAX  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                call    DELETE_BUF_
                res     3,(iy+1)
                call    RESTORE_SP      ; ‚Ž‘‘’€Ž‚‹…ˆ… ……•‚€’—ˆŠ€ Ž˜ˆŽŠ
                ld      sp,(TRD_5D1C)   ; ‘Ž•€…ˆ… …ƒˆ‘’€ SP
                exx
                ld      hl,2758h
                exx
                dec     hl
                ld      a,12h
                cp      (hl)
                ret     nz
                dec     hl
                JP LOC_235

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

loc_1D2F        ld      a,(ERR_NR)
                ld      hl,TXT_BREAK    ; "*BREAK*"
                cp      14h
                jr      z,PRT_TEXT_ERROR
                cp      0Ch
                jr      z,PRT_TEXT_ERROR
                ld      hl,TXT_OUTRAM   ; "Out of RAM"
                cp      3
                jr      z,PRT_TEXT_ERROR
                ld      hl,TXT_ARRAYNOT ; "Array not found"
                cp      1
                jr      z,PRT_TEXT_ERROR
                jr      SINTAX_ERROR

RUN             call    ZERO2HIGH_ERR
                call    LOAD_FILE
                call    EXIT_IF_SINTAX  ; ‚Ž‡‚€’ ‚ …„›„“™ˆ‰ ‚›‡Ž‚,…‘‹ˆ Ž‚…Š€ ‘ˆ’€Š‘ˆ‘€
                JP RUN_FILE             ;LD HL,(TRD_5CE6)
                ld      a,(TRD_5CE5)    ; €‘˜ˆ…ˆ… ”€‰‹€
                cp      "B"
                jp      z,WORK4AUTORUN  ; Ž€Ž’Š€ ŽŒ…€ ‘’ŽŠˆ €‚’Ž‘’€’€ Žƒ€ŒŒ› € …‰‘ˆŠ…
                push    hl
                ret

CLEAR_WORKSPACE ld      hl,TRD_5D0E     ; #FE-€Ž’€…’ BASIC,ˆ€—… TR-DOS
                ld      a,(hl)
loc_1D67        cp      0FFh
                ld      (hl),0
                ret     nz
                rst     20h
                dw 16BFh                ; ®ç¨á⪠ à ¡®ç¥© ®¡« á⨠¨ á⥪  ª «ìªã«ïâ®à 
                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     20h
                dw 1601h                ; ®âªàë⨥ ª ­ « 
                ret

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

GET_SYMSTR      rst     20h
                dw 18h                  ; ¢ë¡®àª  ᨬ¢®«  ¨§ (CH_ADD)
                ret

CALL2BASEDIT    call    OPEN_CHAN_0     ; Ž’Š›’ˆ… Š€€‹€ 0
                rst     20h
                dw 0F2Ch                ; । ªâ®à ª®¬ ­¤­®© áâப¨
                ret

; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
CLEAR_SCREEN    rst     20h
                dw 0D6Bh                ; ®ç¨á⪠ íªà ­ 
                ret

LOOK_VARS       rst     20h
                dw 28B2h                ; Look-Vars. 䨣 §­ ¥â ç¥ ¤¥« ¥â
                ret

; Ž—ˆ‘’Š€ ˆ†…‰ —€‘’ˆ Š€€
CLEAR_DOWN_SCR  rst     20h
                dw 0D6Eh                ; ®ç¨á⪠ ­¨¦­¥© ç á⨠íªà ­ 
                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     20h
                dw 1A1Bh                ; ¯¥ç âì á®®¡é¥­¨© ¨ ­®¬¥à®¢ áâப
                DUPL 3,0
                ret

GET_STKBOT_     rst     20h
                dw 2BF1h                ; ç⥭¨¥ ¤­  á⥪  ª «ìªã«ïâ®à 
                ret

FIND_LAST       rst     20h
                dw 1E99h                ; ¯®¨áª ¯®á«¥¤­¥£® 楫®£® ç¨á« 
                ret

PUT_NUMDSK_STK  rst     20h
                dw 1C8Ch
                ret

BC2STKBOT       rst     20h
                dw 1C82h
                ret

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

INP_STR2STKBOT  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      ; “‘’€Ž‚Š€ CH_ADD
                jp      PUT_NUMDSK_STK

GET_START_SIZE  call    GET_SYMSTR
                cp      0AFh            ; 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      0Dh
                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     20h
                dw 11A7h                ; 㤠«¥­¨¥ ¨§ ª®¬ ­¤­®© áâp®ª¨ ¯ï⨡ ©â­ëå ç¨á¥«
                ret

CREATE_FREERAM  ld      hl,(WORKSP)
                rst     20h
                dw 30h                  ; ᮧ¤ ­¨¥ ᢮¡®¤­®£® ¬¥áâ 
                ret

GET_NEXT_SYM    rst     20h
                dw 20h                  ; Ž‹“—…ˆ… ‘‹…„“ž™…ƒŽ ‘ˆŒ‚Ž‹€ ‚‚…„…Ž‰ ‘’ŽŠˆ
                ret

DEL_WORKRAM     rst     20h
                dw 19E8h                ; “¤ «¥­¨¥ ®¡« á⨠¯ ¬ïâ¨
                ret

RESERV_RAM      rst     20h
                dw 1655h
                ret

WR_NUM_TRACK    call    GET_NUM_TRACK
                ld      a,h
                out     (3Fh),a
                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          push    hl              ; ‡€ˆ‘œ ‘…Š’ŽŽ‚
                push    de
                call    GET_TYPE_DISK   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                bit     7,(hl)
                jr      z,loc_1E60
                bit     0,(hl)
                jr      nz,loc_1E60
                ld      hl,READ_ONLY
                jp      PRT_TEXT_ERROR

loc_1E60        pop     de
                pop     hl
SAVE_SECTORS    ld      a,0FFh
loc_1E64        ld      (TRD_5CCE),a    ; #00-—’…ˆ… ‘…Š’Ž€,#FF-‡€ˆ‘œ ‘…Š’Ž€
loc_1E67        ld      (TRD_5CF4),de
                push    bc
                push    hl
                call    WR_NUM_TRACK
                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,100h
                add     hl,de
                push    hl
                ld      a,10h
                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,0FFFFh
                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    ; ……Ž‘ ‡€„€ŽƒŽ ˆŒ…ˆ ”€‰‹€ ‚ “”… #5CDD
                call    GET_TYPE_DISK   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                and     80h
                ld      a,40            ; 40 „ŽŽ†…Š
                jr      z,loc_1EE8
                ld      a,80            ; 80 „ŽŽ†…Š
loc_1EE8        ld      (TRD_5CD7),a    ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    COM_00          ; ‚Ž‘‘’€Ž‚‹…ˆ… ‚ƒ93
                call    COM_17          ; “‘’€Ž‚Š€ 1 ‘’ŽŽ› „ˆ‘Š€
                call    PAUSE_3_C_A
                ld      e,1
                call    FORMAT_TREK     ; ”ŽŒ€’ˆŽ‚€ˆ… „ŽŽ†Šˆ
                call    COM_16          ; “‘’€Ž‚Š€ 0 ‘’ŽŽ› „ˆ‘Š€
                ld      e,0
                call    FORMAT_TREK     ; ”ŽŒ€’ˆŽ‚€ˆ… „ŽŽ†Šˆ
                ld      a,(TRD_5CDD)    ; ˆŒŸ ”€‰‹€
                cp      "$"
                jr      z,loc_1F1B
                call    COM_17          ; “‘’€Ž‚Š€ 1 ‘’ŽŽ› „ˆ‘Š€
                call    PAUSE_3_C_A
                call    loc_3EB5
                ld      a,h
                cp      1
                jr      nz,loc_1F1B
                ld      a,80h
                ld      (TRD_5CDA),a
loc_1F1B        call    FORMAT_DISK
                ld      hl,TRD_5D25
                ld      (hl),0
                ld      de,TRD_5D26
                ld      bc,0FFh
                ldir
                ld      bc,TRD_5CD7     ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      de,TRD_5CDA
                ld      a,(bc)
                cp      50h
                jr      z,loc_1F49
                ld      a,(de)
                cp      80h
                jr      z,loc_1F42      ; 80 „ŽŽ†…Š 1 ‘’ŽŽ€
                ld      a,19h           ; 40 „ŽŽ†…Š 1 ‘’ŽŽ€
                ld      hl,624          ; ‘…Š’ŽŽ‚
                jr      loc_1F55

loc_1F42        ld      a,17h           ; 80 „ŽŽ†…Š 1 ‘’ŽŽ€
loc_1F44        ld      hl,1264         ; ‘…Š’ŽŽ‚
                jr      loc_1F55

loc_1F49        ld      a,(de)
                cp      80h
                ld      a,18h           ; 40 „ŽŽ†…Š 2 ‘’ŽŽ›
                jr      nz,loc_1F44     ; ‘…Š’ŽŽ‚
                ld      a,16h           ; 80 „ŽŽ†…Š 2 ‘’ŽŽ›
                ld      hl,2544         ; ‘…Š’ŽŽ‚
loc_1F55        ld      (TRD_5E08),a
                ld      (TRD_5E0A),hl
                ld      a,1
                ld      (TRD_5E07),a
                ld      a,10h
                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          ; “‘’€Ž‚Š€ 0 ‘’ŽŽ› „ˆ‘Š€
                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     18h
                ld      a,0Dh
                rst     10h
                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     10h
                pop     bc
                call    PRINT_CHISLO    ; …—€’œ —ˆ‘‹€
                jp      END_COMAND

TABL_SECTORS    db 1,9,2,0Ah,3,0Bh,4,0Ch,5,0Dh,6,0Eh,7,0Fh,8,10h,1

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
                in      a,(1Fh)
                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      3Ch
SET_REG_FF      ld      (TRD_5D16),a    ; “‘’€Ž‚Š€ …ƒˆ‘’€ #FF
                out     (0FFh),a
                ret

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

; ”ŽŒ€’ˆŽ‚€ˆ… „ŽŽ†Šˆ
FORMAT_TREK     di
                ld      a,0F4h
                out     (1Fh),a
                ld      hl,TABL_SECTORS
                ld      c,7Fh
loc_2007        ld      b,0Ah
                ld      d,4Eh
                call    WRITE_C_D_B
                ld      b,0Ch
                ld      d,0
                call    WRITE_C_D_B
                ld      b,3
                ld      d,0F5h
                call    WRITE_C_D_B
                ld      d,0FEh
                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,0F7h
                call    WRITE_C_D_1
                ld      b,16h
                ld      d,4Eh
                call    WRITE_C_D_B
                ld      b,0Ch
                ld      d,0
                call    WRITE_C_D_B
                ld      b,3
                ld      d,0F5h
                call    WRITE_C_D_B
                ld      d,0FBh
                call    WRITE_C_D_1
                ld      b,0
                ld      d,0
                call    WRITE_C_D_B
                ld      d,0F7h
                call    WRITE_C_D_1
                ld      b,3Ch
                ld      d,4Eh
                call    WRITE_C_D_B
                ld      a,(hl)
                inc     hl
                cp      10h
                jr      nz,loc_2007
                ld      b,0
                call    WRITE_C_D_B
                jp      m,loc_2076
                call    WRITE_C_D_B
loc_2076        in      a,(1Fh)
                and     40h
                jp      nz,loc_3F39     ; Read Only
CP_NUM_TRACK    ld      a,(TRD_5CD7+1)  ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                or      a
                ret     nz
                ld      c,7Fh
                ld      a,e
                out     (3Fh),a
                ld      hl, TABL_SECTORS+1
loc_208A        ld      b,3
                ld      a,(hl)
                out     (5Fh),a
                push    hl
loc_2090        di
                ld      a,80h
                out     (1Fh),a
                push    bc
                call    RD_DATAPORT
                in      a,(1Fh)
                and     7Fh
                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     in      a,(0FFh)
                and     0C0h
                jr      z,WRITE_C_D_B
                ret     m
                out     (c),d
                djnz    WRITE_C_D_B
                ret

FORMAT_DISK     ld      hl,TRD_5CD7     ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      b,(hl)
                xor     a
                inc     hl
                ld      (hl),a
                ld      e,0FFh
loc_20C6        push    bc
                inc     e
                ld      a,e
                LD B,0X18
                call    HEAD_POSITION
                call    COM_16          ; “‘’€Ž‚Š€ 0 ‘’ŽŽ› „ˆ‘Š€
                AND A
                CALL FORMAT_TREK_
                NOP
                CP 0X80
                JR NZ,loc_20E1
                CALL COM_17
                SCF
                CALL FORMAT_TREK_
loc_20E1        pop     bc
                djnz    loc_20C6
                ret

DELETE_BUF      push    af
                ld      a,(TRD_5CF8)    ; „ˆ‘ŠŽ‚Ž„ ˆ Ž…€–ˆˆ ‘ 2 ”€‰‹€Œˆ
                cp      0FFh
                jr      z,loc_211C
                pop     af
                JP DEL_BUF              ; “„€‹…ˆ… “”…€,…‘‹ˆ  Ž …‘’œ
; Ž‚…Š€ €‹ˆ—ˆŸ INTERFACE1
CP_INTERFACE1   push    af
                ld      a,(TRD_5CB6)    ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                cp      0F4h
                jr      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_EDITOR_
                ld      (hl),0Dh
                ld      (K_CUR),hl
                inc     hl
                ld      (hl),80h
                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
                pop     af
                call    z,CLRBUF_EDITOR
                ld      hl,(E_LINE)     ; €„…‘ €—€‹€ …„€Š’ˆ“…ŒŽ‰ ‘’ŽŠˆ
                call    PRINT_0D
                ld      a,(TRD_5D19)    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
                add     a,"A"
                rst     10h
                ld      a,">"
                rst     10h
                ld      hl,ERR_NR
                ld      (hl),0FFh
                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      0A5h
                push    af
                call    z,sub_2158
                pop     af
                jr      z,loc_21AE
                and     0DFh
                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,124h
                add     hl,bc
                ld      (TRD_5D11),hl   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                jp      END_COMAND

FIND_ENDFILE    ld      a,0Ah
                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     20h
                dw 1727h
                ld      a,b
                or      c
                jp      nz,loc_221B
                ret

loc_221B        ld      a,19h
                ld      (ERR_NR),a
                ld      hl,TXT_STREAMOPEN ; "Stream opened"
                ld      a,0Ah
loc_2225        jp      PRINT_TXTERR

loc_2228        ld      a,0Bh
                ld      hl,TXT_NODISKFILE ; "Not disk file"
                jr      loc_2225

INITFREEACCESS  push    hl
                ld      c,20h
                rst     28h
                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,7Fh
                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      0A5h
                call    z,INITFREEACCESS
                jr      z,loc_226B
                ld      a,(TRD_5D09)
                cp      "R"
                ld      a,0FFh
                jr      nz,loc_226B
                xor     a
loc_226B        ld      (hl),a
                pop     af
                jp      loc_2270
loc_2270        push    af
                ld      bc,14h
                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,2000h
                ld      (TRD_5CD7),hl   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                call    CREATE_BLOCK
                pop     hl
                ld      (TRD_5CD7),hl   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ret

CREATE_BLOCK    ld      hl,1000h
                ld      (TRD_5CD9),hl   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                call    CP_FREE_ON_DISK ; Ž‚…Š€ ‘‚ŽŽ„ŽƒŽ Œ…‘’€ € „ˆ‘Š…
                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,124h
                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_5CE8+1)  ; „‹ˆ€ Žƒ€ŒŒ›
                ld      (hl),a
loc_2304        inc     hl
                ex      de,hl
                pop     hl
                push    de
                ld      de,10h
                add     hl,de
                ex      de,hl
                ld      hl,TRD_5CDD     ; ˆŒŸ ”€‰‹€
                ld      bc,10h
                ldir
                pop     hl
                ret

GET_ADRTEKSYM   ld      c,0Dh
                rst     28h
                ld      c,(hl)
                rst     28h
                ld      bc,24h
                add     hl,bc
                ret

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

CP_ENDOFSECTOR  ld      c,0Dh
                rst     28h
                inc     (hl)
                ret     nz
                push    hl
                call    SET_DISK
                call    SAVE_1_SECTOR   ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
                pop     hl
                inc     hl
                inc     (hl)
                push    hl
                call    LOAD_1_SECTOR
                pop     hl
                ld      a,10h
                cp      (hl)
                ret     nz
                push    hl
                ld      c,0Fh
                rst     28h
                ld      a,(hl)
                cp      7Fh
                pop     hl
                jr      z,loc_2358
                ld      hl,(CURCHL)
                call    SAVE_HEAD_BLK
                ld      c,0Eh
                rst     28h
                jp      loc_2379

loc_2358        call    FIND_NEXT_BLK
                push    af
                call    z,LOAD_1_SECTOR
                ld      c,0Eh
                rst     28h
                pop     af
                call    nz,CREATE_NEWBLOCK
                ret

sub_2367        ld      (hl),0
                ld      c,19h
                rst     28h
                ld      d,20h
                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,10h
                rst     28h
                ex      de,hl
                ld      hl,TRD_5CDD     ; ˆŒŸ ”€‰‹€
                ld      bc,10h
                ldir
                ld      c,0Ch
                rst     28h
                ld      a,(TRD_5D1E)
                ld      (hl),a
                ret

FIND_END_SEC    ld      c,0Dh
                rst     28h
                inc     (hl)
                ret     nz
                inc     hl
                inc     (hl)
                push    hl
                call    SET_DISK
                ld      c,23h
                rst     28h
                ld      a,(hl)
                or      a
                jr      z,loc_23B6
                pop     hl
                push    hl
                dec     (hl)
                call    SAVE_1_SECTOR   ; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
                pop     hl
                push    hl
                inc     (hl)
loc_23B6        call    LOAD_1_SECTOR
                pop     hl
                ld      a,10h
                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      LOAD_1_SECTOR

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

; ‡€ˆ‘œ ’…Š“™…ƒŽ ‘…Š’Ž€
SAVE_1_SECTOR   call    GET_TEKSECFILE
                call    GET_ADRTEKFRG
                ld      b,1
                call    COM_06          ; ‡€ˆ‘œ ‘…Š’ŽŽ‚
                ld      c,0Fh
                rst     28h
                ld      a,(hl)
                cp      7Fh
                ret     z
                call    GET_ADRTEKFRG
                xor     a
                ld      b,a
loc_2413        ld      (hl),a
                inc     hl
                djnz    loc_2413
                ret

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

GET_TEKSECFILE  ld      hl,(CURCHL)
                ld      bc,1Eh
                add     hl,bc
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ld      c,0Eh
                rst     28h
                ld      b,(hl)
                dec     b
                inc     b
                push    af
                ld      a,10h
                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,0Bh
                rst     28h
                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,0Ah
                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,0Dh
                rst     28h
                ld      a,(hl)
                ld      bc,0Eh
                add     hl,bc
                cp      (hl)
                ret     nz
                ld      c,0Eh
                rst     28h
                ld      a,(hl)
                ld      bc,0Eh
                add     hl,bc
                cp      (hl)
                ret     nz
                ld      hl,TRD_5CB6     ; „‹Ÿ Ž‚…Šˆ €‹ˆ—ˆŸ INTERFACE1
                ld      a,(hl)
                cp      0F4h
                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     20h
                dw 58h
                ret

ERR_INVALID_IO  ld      a,17h
                jr      loc_2494

WORK4FREEACCESS ld      d,a
                ld      c,0Fh
                rst     28h
                ld      a,(hl)
                cp      7Fh
                ld      a,d
                ret     nz
                ld      bc,13h
                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,21h
                rst     28h
                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,23h
                rst     28h
                ld      (hl),0FFh
                pop     af
                pop     hl
                jr      c,loc_24EE
                ld      a,d
                cp      0Dh
                jr      z,loc_24F2
                pop     bc
                ret

loc_24EE        ld      a,d
                cp      0Dh
                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,10h
                jp      CREATE_FREERAM

WORK_NUMSAVE    ld      (hl),0Dh
                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,20h
                rst     28h
                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     0Fh
                ld      (TRD_5CDB),a
                ld      hl,(TRD_5CD7)   ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (CH_ADD),hl
                call    OPEN_SAVED
                ld      c,21h
                rst     28h
                ld      a,0FFh
                ld      (hl),a
                inc     hl
                ld      (hl),a
                ret

OPEN_SAVED      ld      c,19h
                rst     28h
                ld      a,(TRD_5CDA)
                cp      (hl)
                jp      nz,loc_2584
                ld      c,0Eh
                rst     28h
                ld      a,(TRD_5CDB)
                cp      (hl)
                jp      nz,loc_25A7
loc_257C        ld      c,0Dh
                rst     28h
                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,19h
                rst     28h
                ld      (hl),a
                ld      c,10h
                rst     28h
                ld      de,TRD_5CDD     ; ˆŒŸ ”€‰‹€
                ld      bc,10h
                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,0Eh
                rst     28h
                ld      (hl),a
                push    hl
                call    SET_DISK
                call    LOAD_1_SECTOR
                pop     hl
                dec     hl
                ld      a,(TRD_5CD9)    ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                jr      loc_257C

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

CPANDZERO23     ld      c,23h
                rst     28h
                ld      a,(hl)
                or      a
                ld      (hl),0
                ret

loc_25D2        ld      hl,(TRD_5CDA)
                ld      h,20h
                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,107Fh
                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      0Dh
                jr      z,loc_2614
                rst     20h
                dw 0F85h
                jr      loc_260F

loc_2626        call    INPUT_SYM_FILE
                jr      loc_2614

INPUT_SYM_FILE  ld      a,0Ah
                ld      (TRD_5D06),a    ; ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆŒ…ˆ ”€‰‹€ ˆ Žˆ‘Š…
                call    CP_FILE_OPENED
                jr      z,loc_2642
                cp      7Fh
                jp      nz,ERR_INVALID_IO
                ld      bc,13h
                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,0Fh
                rst     28h
                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     20h
                dw 1727h
                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,124h
                call    DEL_WORKRAM
                ld      hl,STRMS
                ld      b,10h
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,124h
                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,124h
                sbc     hl,bc
                ld      (TRD_5D11),hl   ; €„…‘ ‘’ŽŠˆ ŠŽŒ€„› TR_DOS
                jp      END_COMAND

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

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

; …—€’œ ’…Š‘’Ž‚ŽƒŽ ‘ŽŽ™…ˆŸ
PRINT_MSG       ld      a,(hl)
                or      a
                ret     z
                and     7Fh
                rst     10h
                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,1Ah
                jr      SET_NUM_ERR

                ld      a,12h
SET_NUM_ERR     ld      (ERR_NR),a
                ret

                ld      a,3
                jr      SET_NUM_ERR

COM_15          xor     a               ; Ž‚…Š€ „ŽŽ†Šˆ
                ld      (TRD_5CD7+1),a  ; ŽŒ…†“’Ž—›‰ ‘’€’ ”€‰‹€ ˆ‹ˆ ŠŽ‹-‚Ž ’…ŠŽ‚
                                        ; Ž‘‹… Ž‚…Šˆ ’ˆ€ „ˆ‘ŠŽ‚Ž„€
                ld      (TRD_5CD6),a    ; #FF-ŠŽŒ€„€ ˆŸ’€ ‘ˆ’€Š‘ˆ—…‘ŠˆŒ €€‹ˆ‡€’ŽŽŒ
                in      a,(1Fh)
                ld      (TRD_5CCD),a    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                ld      e,d
                push    de
                ld      a,e
                out     (7Fh),a
                LD A,0X18
                call    COM2VG_WAIT
                ld      a,(TRD_5CCD)    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                and     80h
                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_         db "O.K.",0
TXT_VERIFYERR   db "Verify Error.",8Dh
TXT_BACKUPDISK  db "BACKUP DISK",8Dh
TXT_INS_DEST    db "Insert Destination disk",0Dh,"then press Y",0
TXT_INS_SRC     db "Insert Source disk then press Y",0
TXT_BREAK       db "*BREAK*",8Dh
TXT_OUTRAM      db "Out of RAM",8Dh
TXT_ARRAYNOT    db "Array not found",8Dh
TXT_DIRFULL     db "Directory full",8Dh
TXT_NODISK_     db "No disk",8Dh
TXT_STREAMOPEN  db "Stream opened",8Dh
TXT_NODISKFILE  db "Not disk file",8Dh
TXT_FILEEXIST   DB "File exists",0Dh
                DC "Over write?(Y/N)"

CALL_3D13       push    af
                push    bc
                ld      (TRD_5D04),de
                ld      (TRD_5D02),hl
                DUPL 3,0
                ld      a,0FFh
                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

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

COM_14          ld      a,0FFh          ; ……Ž‘ Žˆ‘€’…‹Ÿ ”€‰‹€ ˆ‡ “”…€ #5CDD
loc_28E5        ld      de,TRD_5CDD     ; ˆŒŸ ”€‰‹€
                ld      bc,10h
                or      a
                jr      z,loc_28EF      ; FIX
                ex      de,hl
loc_28EF        ldir                    ; FIX
                ret

COM_0C          call    COM_18          ; ‡€ˆ‘œ …‰‘ˆŠ Žƒ€ŒŒ› € „ˆ‘Š
                call    CP_FREE_ON_DISK ; Ž‚…Š€ ‘‚ŽŽ„ŽƒŽ Œ…‘’€ € „ˆ‘Š…
                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_DISK ; Ž‚…Š€ ‘‚ŽŽ„ŽƒŽ Œ…‘’€ € „ˆ‘Š…
                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       ; €‘’Ž‰Š€ €€Œ…’Ž‚ ‡€ƒ“‡Šˆ ”€‰‹€
                jp      RD_FILE

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

; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ
FIND_FILE       call    SET_FILENAME    ; ……Ž‘ ‡€„€ŽƒŽ ˆŒ…ˆ ”€‰‹€ ‚ “”… #5CDD
                call    COM_18          ; €‘’Ž‰Š€ € „ˆ‘Š…’“
                jp      FIND_FILENAME   ; Žˆ‘Š ”€‰‹€ Ž ˆŒ…ˆ ”€‰‹€

; …—€’œ ˆŒ…ˆ ”€‰‹€
PRINT_FILENAME  push    bc
                ld      b,8
loc_293B        ld      a,(hl)
                rst     10h
                inc     hl
                djnz    loc_293B
                ld      a,"<"
                rst     10h
                ld      a,(hl)
                rst     10h
                ld      a,">"
                rst     10h
                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,257          ; €‡Œ… “”…€ ‘…Š’Ž€
                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,257          ; €‡Œ… “”…€ ‘…Š’Ž€
                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),0FFh
                ld      hl,TRD_5D25
                ld      bc,257          ; €‡Œ… “”…€ ‘…Š’Ž€
                call    DEL_WORKRAM
                or      a
                ld      bc,257          ; €‡Œ… “”…€ ‘…Š’Ž€
                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 0Dh,"*ERROR*",8Dh
TXT_NOSPACE_    db 0Dh,"No space",8Dh
TXT_FILEEXISTS_ db 0Dh,"File exists",8Dh
TXT_FREE_       db " Free",8Dh
READ_ONLY       db 0Dh
                DC "Read Only"
TXT_DISCERROR_  db 0Dh
                DC "Disc Error"
TXT_R_O         db 0Dh
                DC "Rec.  O/F"
TXT_TITLE_      DC "Title: "
TXT_RIA_        db 0Dh,"Retry,Abort,Ignore?",0
TXT_TRK_        db 0Dh
                DC "Trk "
TXT_SEC_        DC " sec "
TXT_DELFILE_    db " Del. File",8Dh
TXT_NOFILES_    db 0Dh
TXT_NOFILES     db "No"
TXT_FILES_      db " File(s)",8Dh,0

sub_2A35        ld      hl,loc_2A41
                ld      de,4080h
                ld      bc,20h
                ldir                    ; FIX
                ret

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
                out     (c),a
                ret

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
                out     (0FFh),a
                ld      a,3Fh
                ld      i,a
                in      a,(1Fh)
                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
                out     (0FFh),a
                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
                in      a,(5Fh)
                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
                in      a,(5Fh)
                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
                in      a,(5Fh)
                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
                out     (5Fh),a
                push    hl
                ld      d,14h
                push    de
loc_2D7B        di
                ld      c,7Fh
                ld      a,0A0h
                out     (1Fh),a
                call    WR_DATAPORT
                pop     de
                pop     hl
                in      a,(1Fh)
                and     7Fh
                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,30h
                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,20h
                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      3Ch
loc_2F0C        out     (0FFh),a
                ret

sub_2F0F        ld      a,c
                or      a
                rra
                ld      c,a
                ret     nc
                ld      a,(4011h)
                and     6Fh
                jr      loc_2F0C

sub_2F1B        ld      a,e
                inc     a
                out     (5Fh),a
                push    hl
                ld      d,14h
                push    de
loc_2F23        di
                ld      c,7Fh
                ld      a,80h
                out     (1Fh),a
                call    RD_DATAPORT
                pop     de
                pop     hl
                in      a,(1Fh)
                and     7Fh
                ret     z
                dec     d
                push    hl
                push    de
                jr      nz,loc_2F23
                halt

sub_2F3A        ld      a,3Ch
                out     (0FFh),a
                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
                out     (0FFh),a
loc_2F4F        ld      a,c
loc_2F50        out     (7Fh),a
                call    PAUSE725779T
                LD A,0X18
loc_2F57        out     (1Fh),a
loc_2F59        in      a,(0FFh)
                and     80h
                jr      z,loc_2F59
                push    bc
                call    PAUSE725779T
                pop     bc
                ret

sub_2F65        LD A,8
                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     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                push    hl
                ld      hl,(TRD_5D02)
                ld      de,(TRD_5D04)
                ret

SET_VARS        ld      hl,0FFFFh
                ld      (TRD_5CFA),hl   ; ‚…ŒŸ ……Œ…™…ˆŸ „ˆ‘ŠŽ‚Ž„€ A
                ld      (TRD_5CFC),hl   ; ‚…ŒŸ ……Œ…™…ˆŸ „ˆ‘ŠŽ‚Ž„€ C
                ld      (TRD_5CC8),hl   ; …†ˆŒ €Ž’€ „ˆ‘ŠŽ‚Ž„€ A
                ld      (TRD_5CCA),hl   ; …†ˆŒ €Ž’€ „ˆ‘ŠŽ‚Ž„€ C
                xor     a
                ld      (TRD_5D17),a    ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ,…‘‹ˆ #AA
                ld      (TRD_5D19),a    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
                ld      (TRD_5D18),a
                ld      (TRD_5D0F),a    ; ŽŒ… Ž˜ˆŠˆ TR-DOS
                ld      (TRD_5D1F),a
                ld      a,0FFh
                out     (0FFh),a
                ld      (ERR_NR),a
                ld      (TRD_5D16),a    ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                ld      (TRD_5D0C),a
                ld      a,0C9h
                ld      (TRD_5CC2),a    ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                ld      a,0D0h
                out     (1Fh),a
                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
                ldir                    ; FIX
                ret

; ’€‹ˆ–€ …‰‘ˆŠ ŠŽŒ€„ „‹Ÿ TR-DOS
CODE_BYTE_COM   db 0CFh                 ; CAT
                db "*"
                db 0D0h                 ; FORMAT
                db 0D1h                 ; MOVE
                db 0E6h                 ; NEW
                db 0D2h                 ; ERASE
                db 0EFh                 ; LOAD
                db 0F8h                 ; SAVE
                db 0FEh                 ; RETURN
                db 0BEh                 ; PEEK
                db 0F4h                 ; POKE
                db 0D5h                 ; MERGE
                db 0F7h                 ; RUN
                db 0D3h                 ; OPEN
                db 0D4h                 ; CLOSE
                db 0FFh                 ; COPY
                db "4"                  ; 40
                db 0ECh                 ; GOTO
                db "8"                  ; 80
                db 0F0h                 ; LIST
                db 0D6h                 ; VERIFY

; ’€‹ˆ–€ €„…‘Ž‚ ˆ‘Ž‹…ˆŸ ŠŽŒ€„
SPIS_ADR_COM    dw CAT
                dw COM_STAR
                dw FORMAT
                dw MOVE
                dw NEW
                dw 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,0FFh
                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        ;CALL FIND_KEYWORD
                jr      nz,loc_3087
                ex      de,hl
                inc     de
                ld      b,0
                ld      hl,BYTES_COM    ; SAVE
                add     hl,bc
                ld      a,(hl)
                ld      hl,(TRD_5CD9)   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      (hl),a
                inc     hl
                ex      de,hl
                rst     20h
                dw 19DDh
                push    bc
                CALL FOR_LOC_306F
                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      0Dh
                ret     z
                inc     hl
                ld      (TRD_5CD9),hl   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                ld      a,(hl)
                cp      0Dh
                ret     z
                cp      22h
                jr      nz,loc_3057
loc_309A        inc     hl
                ld      a,(hl)
                cp      0Dh
                ret     z
                cp      22h
                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     0DFh
                ld      b,a
                or      a
                jr      nz,loc_30BB
                inc     hl
                jr      loc_30B1

loc_30BB        ld      a,(de)
                and     80h
                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     7Fh
                cp      b
                ret     z
loc_30CD        inc     c
                ld      hl,(TRD_5CD9)   ; ŽŒ…†“’Ž—€Ÿ „‹ˆ€ „‹Ÿ <B> ˆ <C>
                inc     de
                ld      a,(de)
                cp      0FFh
                jr      nz,loc_30B1
                or      a
                ret

loc_30D9        inc     de
                ld      a,(de)
                and     80h
                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     20h
                dw 196Eh
                ret

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

TBL_KEYWORD     db "SAVE",80h
                DC "SAVE"
                db "LOAD",80h
                DC "LOAD"
                db "RUN",80h
                DC "RUN"
                db "CAT",80h
                DC "CAT"
                db "ERASE",80h
                DC "ERASE"
                db "NEW",80h
                DC "NEW"
                db "MOVE",80h
                DC "MOVE"
                db "MERGE",80h
                DC "MERGE"
                db "PEEK",80h
                DC "PEEK"
                db "POKE",80h
                DC "POKE"
                db "OPEN",83h
                db "CLOSE",83h
                db "CODE",80h
                DC "CODE"
                db "RND",80h
                DC "RND"
                db "DATA",80h
                DC "DATA"
                db "SCREEN",4,84h
                db "SCREEN",84h
                db "COPY",80h
                DC "COPY"
                db "FORMAT",80h
                DC "FORMAT"
                db "GOTO",80h
                DC "GOTO"
                db "LIST",80h
                DC "LIST"
                db "LINE",80h
                DC "LINE"
                db "VERIFY",80h
                DC "VERIFY"
                db 0FFh,0FFh

BYTES_COM       dw 0F8F8h               ; SAVE
                dw 0EFEFh               ; LOAD
                dw 0F7F7h               ; RUN
                dw 0CFCFh               ; CAT
                dw 0D2D2h               ; ERASE
                dw 0E6E6h               ; NEW
                dw 0D1D1h               ; MOVE
                dw 0D5D5h               ; MERGE
                dw 0BEBEh               ; PEEK
                dw 0F4F4h               ; POKE
                dw 0D4D3h               ; OPEN CLOSE
                dw 0AFAFh               ; CODE
                dw 0A5A5h               ; RND
                dw 0E4E4h               ; DATA
                dw 0AAAAh               ; SCREEN
                dw 0FFFFh               ; COPY
                dw 0D0D0h               ; FORMAT
                dw 0ECECh               ; GOTO
                dw 0F0F0h               ; LIST
                dw 0CACAh               ; LINE
                dw 0D6D6h               ; VERIFY
                db 0

; Ž‚…Š€ €‹ˆ—ˆŸ TR-DOS ……Œ…›•
CP_VARSTRDOS    ld      hl,(CHANS)
                or      a
                ld      bc,TRD_5D25
                sbc     hl,bc
                ret

                include patch.a80

                DUPL 0X3C01-$,0FFh
                jr      loc_3C06

                db 0FFh
                jr      loc_3C09

loc_3C06        jp      loc_3D00

loc_3C09        jp      loc_3D03

                DUPL 0X3C30-$,0XFF
                IN A,(0X1F)
                RET

                DUPL 0X3CFA-$,0FFh
FOR_INTERFACE1  NOP
                JR loc_3D2F

loc_3CFD        jp      CALL_3D13

loc_3D00        nop
                jr      IN_DOS_15616

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      FOR_INTERFACE1

                nop
                jr      loc_3CFD

loc_3D16        nop
                jp      WORK4ERROR

IN_DOS_15619    call    CREATE_VARS_TRD
                push    hl
                jp      loc_16C

CREATE_VARS_TRD call    CP_VARSTRDOS    ; Ž‚…Š€ €‹ˆ—ˆŸ TR-DOS ……Œ…›•
                nop
                nop
                call    c,loc_3D67;CREATE_VARS
                ld      hl,TRD_5CC2     ; ‘Ž„…†ˆ’ #C9.„‹Ÿ ……•Ž„€ ˆ‡ TR-DOS ‚ BASIC
                ret

                nop
                nop
loc_3D2F        nop
                ret

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

INI_INTERFACE1  xor     a
                DW 0                    ;out    (0F7h),a
                in      a,(0F7h)
                cp      1Eh
                jr      z,loc_3D44
                cp      1Fh
                ret     nz
loc_3D44        rst     8
                db 31h
                ld      a,1
                ld      (TRD_5CEF),a    ; ‘Ž„…†ˆ’ 1 …‘‹ˆ …‘’œ INTERFACE1
                ret

CREATE_VARS     xor     a
                out     (0FFh),a
                in      a,(0F6h)
                ld      hl,INI_INTERFACE1
                ld      de,MEMBOT
                ld      bc,14h
                ldir
                ld      hl,loc_3D67
                push    hl
                ld      hl,loc_3D2F
                push    hl
                jp      MEMBOT

loc_3D67        ld      hl,SET_VARS
                push    hl
                ld      hl,loc_3D2F
                push    hl
                ld      hl,1655h
                push    hl
                ld      hl,TRD_5CC2
                push    hl
                ld      (hl),0C9h
                ld      hl, P_RAMT+1
                ld      bc,70h
                ret

PRINT_0D        ld      a,0Dh
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     20h
                dw 10h
                ret

; ‚Ž‘‘’€Ž‚‹…ˆ… ‚ƒ93
COM_00          LD A,8
COM2VG_WAIT     out     (1Fh),a
COM2VGWAIT1     push    hl
                rst     20h
                dw 1F54h                ; Ž‚…Š€ BREAK
                jr      c,COM2VGWAIT2
                rst     20h
                dw 1B7Bh                ; ‚›‚Ž„ ‘ŽŽ™…ˆŸ Ž Ž˜ˆŠ…,…‘‹ˆ €†€’  BREAK
COM2VGWAIT2     pop     hl
                in      a,(0FFh)
                and     80h
                jr      z,COM2VGWAIT1
                ret

; Ž‚…Š€ €‹ˆ—ˆŸ „ˆ‘Š€
CP_PRESENT_DISK LD A,8
                call    COM2VG_WAIT
                ld      de,0
                in      a,(1Fh)
                and     2
                ld      b,a
CPPRESENTDSK1   in      a,(1Fh)
                and     2
                cp      b
                ret     nz
                inc     de
                ld      a,e
                or      d
                jr      nz,CPPRESENTDSK1
                jp      DISK_NOT_FOUND

; ‚›Ž „ˆ‘ŠŽ‚Ž„€ Ž “ŒŽ‹—€ˆž
ACTIV_DEF_DISK  ld      a,(TRD_5D19)    ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
COM_01          ld      (TRD_5CF6),a    ; €‘’Ž‰Š€ € „ˆ‘ŠŽ‚Ž„
                ld      hl,TRD_5D16     ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
                ld      c,a
                ld      a,3Ch
                or      c
                out     (0FFh),a
                ld      (hl),a
                call    GET_TIME_HEAD   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                and     80h
                jr      z,loc_3DFA
                call    CP_PRESENT_DISK ; Ž‚…Š€ €‹ˆ—ˆŸ „ˆ‘Š€
                call    CP_TIME_GOHEAD  ; Ž…„…‹…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                call    GET_TYPE_DISK   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                cp      0FFh
                jr      nz,loc_3DFA
                push    hl
                call    CP_DISK_TRACK
                pop     hl
                cp      80              ; Ž‚…Š€ € 80 „ŽŽ†…Š
                ld      a,0
                jr      nz,loc_3DF9
                ld      a,80h
loc_3DF9        ld      (hl),a
loc_3DFA        call    WR_NUM_TRACK
PAUSE725779T    ld      a,50h
PAUSE_C_A       ld      c,0FFh
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
                in      a,(1Fh)
                and     4
                jr      nz,loc_3E3F
                xor     a
                call    HEAD_POSITION
                in      a,(1Fh)
                and     4
                ret     nz
loc_3E3F        inc     b
                dec     c
                ret     z
                jr      loc_3E1D

HEAD_POSITION   out     (7Fh),a
                ld      a,b
                or      18h
                jp      COM2VG_WAIT

POSITIONIREN    out     (7Fh),a
                push    bc
                ld      b,a
                in      a,(3Fh)
                cp      b
                pop     bc
                push    af
                ld      a,b
                or      18h
                call    COM2VG_WAIT
                pop     af
                ret     z
                push    bc
                call    PAUSE725779T
                pop     bc
                ret

; “‘’€Ž‚Š€ ƒŽ‹Ž‚Šˆ € „ŽŽ†Š“
COM_02          ld      c,a
                call    COM_16          ; “‘’€Ž‚Š€ 0 ‘’ŽŽ› „ˆ‘Š€
                call    GET_TYPE_DISK   ; Ž‹“—…ˆ… ŠŽ„€ …†ˆŒ€ €Ž’› „ˆ‘ŠŽ‚Ž„€
                and     2
                call    nz,SET_SIDE_DISK
                push    bc
                bit     7,(hl)
                jr      z,loc_3E83
                bit     0,(hl)
                jr      nz,loc_3E83
                in      a,(3Fh)
                cp      c
                jr      z,loc_3E82
                rlca
                out     (3Fh),a
                ld      a,c
                rlca
loc_3E82        ld      c,a
loc_3E83        call    GET_TIME_HEAD   ; Ž‹“—…ˆ… ‚…Œ…ˆ ……Œ…™…ˆŸ ƒŽ‹Ž‚Šˆ
                ld      b,a
                in      a,(3Fh)
                cp      c
                push    bc
                call    nz,PAUSE725779T
                pop     bc
                ld      a,c
                call    POSITIONIREN
                pop     bc
                ld      a,c
                out     (3Fh),a
                ld      a,(TRD_5CCD)    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                or      a
                ret     z
                xor     a
                ld      (TRD_5CCD),a    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
PAUSE_3_C_A     ld      b,3
loc_3EA2        ld      a,0FFh
                call    PAUSE_C_A
                djnz    loc_3EA2
                ret

SET_SIDE_DISK   ld      a,c
                or      a
                rra
                ld      c,a
                ret     nc
                jp      COM_17          ; “‘’€Ž‚Š€ 1 ‘’ŽŽ› „ˆ‘Š€

GET_NUM_TRACK   call    COM_16          ; “‘’€Ž‚Š€ 0 ‘’ŽŽ› „ˆ‘Š€
loc_3EB5        in      a,(1Fh)
                and     80h
                ld      (TRD_5CCD),a    ; #80-ƒŽ’Ž‚Ž‘’œ „ˆ‘ŠŽ‚Ž„€
                in      a,(3Fh)
                ld      h,a
                CALL BUGFIX_3EBF
                ld      c,7Fh
                ld      d,1
                di
                ld      a,0C0h
                out     (1Fh),a
                push    bc
                ld      b,3
loc_3ECE        in      a,(0FFh)
                and     0C0h
                jr      nz,loc_3EF2
                inc     de
                ld      a,e
                or      d
                jr      nz,loc_3ECE
                djnz    loc_3ECE
                pop     bc
                ei
                ld      a,0D0h
                out     (1Fh),a
                LD A,(TRD_5D17)
                cp      0FFh
                ret     z
DISK_NOT_FOUND  call    SET_TAPELDERR
                ld      a,0FFh
                ld      (TRD_5D17),a    ; ˆ‘Ž‚€ˆ… ‡€‘’€‚Šˆ,…‘‹ˆ #AA
                jp      loc_271B

loc_3EF2        pop     bc
                in      h,(c)
loc_3EF5        in      a,(0FFh)
                and     0C0h
                jr      z,loc_3EF5
                ei
                ret     m
                di
                in      a,(7Fh)
                jr      loc_3EF5

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

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

SAVE_SECTOR     ld      a,0A0h
                jr      loc_3F10

LOAD_SECTOR     ld      a,80h
loc_3F10        ld      (TRD_5CFE),a
RD_OR_WR_SEC    ld      d,0Ah
loc_3F15        push    de
                di
                ld      a,(TRD_5CFF)
                inc     a
                out     (5Fh),a
                ld      hl,(TRD_5D00)
                ld      c,7Fh
                ld      a,(TRD_5CFE)
                out     (1Fh),a
                cp      0A0h
                push    af
                call    z,WRITE_SEC     ; Ž†ˆ„€ˆ… ƒŽ’Ž‚Ž‘’ˆ ˆ ‡€ˆ‘œ ‘…Š’Ž€
                pop     af
                call    nz,READ_SEC
                pop     de
                ei
                in      a,(1Fh)
                ld      b,a
                and     7Fh
                ret     z
loc_3F39        ld      hl,READ_ONLY    ; Read Only
                and     40h
                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_
loc_3F4B        ld      a,0D0h
                out     (1Fh),a
                ld      a,b
                and     1
                jp      nz,DISK_NOT_FOUND
                in      a,(3Fh)
                or      a
                jr      nz,loc_3F5F
                in      a,(5Fh)
                cp      0Ah
                ret     z
loc_3F5F        push    hl
                call    CLEAR_SCREEN    ; Ž—ˆ‘’Š€ Ž‘Ž‚ŽƒŽ Š€€
                pop     hl
                rst     18h
                ld      hl,TXT_TRK_
                rst     18h
                in      a,(3Fh)
                call    PRINT_CHISLO_A_
                ld      hl,TXT_SEC_     ; " sec"
                rst     18h
                in      a,(5Fh)
                call    PRINT_CHISLO_A_
                ld      hl,TXT_RIA_
                rst     18h
loc_3F7B        call    GET_KEYS        ; Ž†ˆ„€ˆ… €†€’ˆŸ Š‹€‚ˆ˜ˆ
                cp      "I"             ; Ignore-RET ¢  ¤à¥á #1E8E
                ret     z
                cp      "R"             ; Retry
                jr      z,PRESSED_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

PRESSED_RETRY   ld      a,(TRD_5CF5)
                call    COM_02          ; “‘’€Ž‚Š€ ƒŽ‹Ž‚Šˆ € „ŽŽ†Š“
                call    PAUSE_3_C_A
                jp      RD_OR_WR_SEC

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

; Ž†ˆ„€ˆ… ƒŽ’Ž‚Ž‘’ˆ ˆ ‡€ˆ‘œ ‘…Š’Ž€
WRITE_SEC       ld      b,4
WAIT4WRITE      in      a,(0FFh)
                and     0C0h
                jr      nz,WR_DATAPORT1
                inc     de
                ld      a,e
                or      d
                jr      nz,WAIT4WRITE
                djnz    WAIT4WRITE
                ret

WR_DATAPORT     in      a,(0FFh)
                and     0C0h
                jr      z,WR_DATAPORT
                ret     m
WR_DATAPORT1    outi
                jr      WR_DATAPORT

READ_SEC        ld      b,4
WAIT4READ       in      a,(0FFh)
                and     0C0h
                jr      nz,RD_DATAPORT1
                inc     de
                ld      a,e
                or      d
                jr      nz,WAIT4READ
                djnz    WAIT4READ
                ret

RD_DATAPORT     in      a,(0FFh)
                and     0C0h
                jr      z,RD_DATAPORT
                ret     m
RD_DATAPORT1    ini
                jr      RD_DATAPORT

                OUT (C),A
                RET

                IN A,(C)
                RET

                DUPL 0X3FF8-$,0FFh
                DB "TRD503"
                DW DATA_VERS