File-Manager/CORE/COPY.ASM
2025-04-05 01:58:39 +10:00

303 lines
5.7 KiB
NASM
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;===========================================================
;
; <20>à®æ¥áá ª®¯¨à®¢ ­¨ï ä ©«®¢
;
;===========================================================
copy: call test_show_panels ; â¥áâ ­  ०¨¬ ¢ª«. ¯ ­¥«¥©
ret z
call get_fire ; § é¨â  ®â "§ «¨¯ ­¨ï" ¡ãâ®­®¢
ld a,(format_mode) ; ⥪. ä®à¬ â ¯ ­¥«¨
and form_info+form_qview ; info, qview
ret nz
; ᪮¯¨à. ¨¬ï ä ©« /¯ ¯ª¨ (¥á«¨ ­¥â ¢ë¤¥«.)
call prep_copy_name ; ­ áâநâì ¨¬ï ª®¯¨à. ä ©«  ¢ ®¯¨á â. ®ª®­ ¨ ¤à.
ret c ; ⥪ã騩 ".." ¨ ­¥â ®â¬¥ç. ä ©«®¢
; ¢ë¢®¤ ­ ç «ì­®£® ®ª­ 
ld hl,dial_copy ; ®¯¨á â¥«ì ®ª­ 
call DialogW
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Copy"
ret nz
; ¢ë¢®¤ ­ ç «ì­®£® ®ª­  ¯à®æ¥áá 
ld hl,copy_file ; ®¡à ¡®â稪 ¯à®æ¥áá  ~Process Line~
ld (subrout_process),hl
ld (subrout_process1),hl;
ld hl,dial_copy_total_process ; ®¯¨á â¥«ì ®ª­  á 2-¬ï «¨­¥©ª ¬¨
call DialogW
cp evCommand; ; ᮡë⨥ "ª®¬ ­¤ "
ret nz;
ld a,(hl); ;+1 what
cp cmOkey; ; "Yes"
ret nz;
;
;
; ¢ë¢®¤ ®ª­  ®è¨¡ª¨ ª®¯¨à®¢ ­¨ï
ld hl,dial_error_copy
call DialogEr
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmSkip ; "Skip"
cp cmSkipAll ; "Skip all"
cp cmOkey ; "Retry"
ret nz
;
; ¢ë¢¥á⨠®ª­® ¯à¥à뢠­¨ï ®¯¥à æ¨¨
ld hl,dial_abort ; ®¯¨á â¥«ì ®ª­ 
call DialogEr
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Yes"
ret nz
;
; ¢ë¢®¤ ®ª­  "ä ©« 㦥 áãé¥áâ¢ã¥â"
; § ¯®«­¨âì ï祩ª¨
ld hl,dial_existing
call DialogEr
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Overwrite"
cp cmAll ; "All"
cp cmSkip ; "Skip"
cp cmSkipAll ; "Skip all"
cp cmAppend ; "Append"
ret nz
;..
ret
; ˆ¬ï ª®¯¨à. ä ©«  ¢ ®¯¨á â¥«¨ ®ª®­ ¨ ¡ãä¥à áâப¨ "Copy"
prep_copy_name:
; ld hl,input_line_copy ; áâàãªâãà 
; call clear_struct_inline ; ®ç¨áâ¨âì áâàãªâãàã ~input line~
; ld hl,(__buff1) ; ¯ãâì ¯ áá. ¯ ­¥«¨
; ld de,input_line_copy+5 ; áâப  ~input line~
; ld b,2 ; áç¥â稪 ¤«¨­ë áâப¨
; ld a,(disk1)
; add a,"A"
; ld (de),a
; inc de
; ld a,":"
; ld (de),a
; inc de
; ld a,(hl)
; ld (de),a
; or a
; jr z,$+7
; inc hl
; inc de
; inc b
; jr $-8
; dec hl
; ld a,'\'
; cp (hl)
; jr z,$+7
; inc b
; ld (de),a
; inc de
; xor a
; ld (de),a
; ld a,b
; ld (input_line_copy+4),a ; áâàãªâãà  áâப¨ ~input line~
;
ld bc,copy_name ; ªã¤ 
call copyname
ret c ; ⥪ã騩 ".." ¨ ­¥â ®â¬¥ç. ä ©«®¢
;
ld iy,input_line_copy ; áâàãªâãà 
; ®ç¨áâ¨âì áâàãªâãàã ¡ãä¥à 
ld hl,input_line_copy ; áâàãªâãà 
call clear_struct_inline
; ¢áâ ¢¨âì ¤¨áª
ld hl,input_line_copy+5 ; ªã¤ 
ld a,(disk1)
add a,"A"
call put_char1 ; ¢áâ ¢¨âì ᨬ¢®«
inc hl
ld a,":"
call put_char1
inc hl
; ¢áâ ¢¨âì ¯ãâì
ld de,(__buff1) ; ¯ãâì ¯ áá. ¯ ­¥«¨
prep_copy_loop:
ld a,(de)
or a
jr z,prep_copy_next
call put_char1 ; ¢áâ ¢¨âì ᨬ¢®«
inc de
inc hl
jr prep_copy_loop
;
prep_copy_next:
dec hl
ld a,'\'
cp (hl)
jr z,$+6
inc hl
call put_char1
inc hl
; ¢áâ ¢¨âì ¨¬ï
ld de,work_buffer ; ®âªã¤ 
prep_copy_loop1:
ld a,(de)
or a
jr z,prep_copy_next1
call put_char1 ; ¢áâ ¢¨âì ᨬ¢®«
inc de
inc hl
jr prep_copy_loop1
;
prep_copy_next1:
ld (hl),a
;
; ­ ç «ì­®¥ ®ª­® ª®¯¨à®¢ ­¨ï
;ld bc,copy_name ; ªã¤ 
;call copyname
;ret c ; ⥪ã騩 ".." ¨ ­¥â ®â¬¥ç. ä ©«®¢
;
; ®ª­® ¯à®æ¥áá  ª®¯¨à®¢ ­¨ï á 2-¬ï «¨­¥©ª ¬¨
ld hl,copy_name ; ®âªã¤ 
ld de,copy_name1 ; ªã¤ 
call copy_string ; (hl) -> (de)
; ᪮¯¨à. ¯ãâì
ld hl,input_line_copy+5 ; áâàãªâãà  áâப¨ ~input line~
ld de,copy_name2 ; ªã¤ 
call copy_dstname ; ᪮¯¨à. ¯ãâì+¨¬ï ä ©« /¯ ¯ª¨
;
; ®ª­® "®è¨¡ª  ª®¯¨à®¢ ­¨ï ¢:"
ld hl,copy_name ; ®âªã¤ 
ld de,copy_name3 ; ªã¤ 
call copy_string ; (hl) -> (de)
; á æ¥­â஢ª®© ¨¬¥­¨
; ¯ãâì ­ §­ ç¥­¨ï ®ª­  "®è¨¡ª  ª®¯¨à®¢ ­¨ï"
ld hl,input_line_copy+5 ; áâàãªâãà  áâப¨ ~input line~
ld de,copy_name4 ; ªã¤ 
call copy_dest_name ; ᪮¯¨à. ¯ãâì+¨¬ï ä ©« /¯ ¯ª¨
;
; ¯ãâì ­ §­ ç¥­¨ï ®ª­  "ä ©« 㦥 áãé¥áâ¢ã¥â"
ld hl,copy_name4 ; ®âªã¤ 
ld de,exists_name ; ªã¤ 
call copy_string ; (hl) -> (de)
; ¨¬ï ä ©« 
;ld hl,work_buffer+33;
;dec de;
;call copy_string; ; (hl) -> (de)
ret
;-----------------------------------------------------------
; ‘®§¤ âì ¯ ¯ªã ¯® ⥪. ¯ã⨠­  ¤¨áª¥ ­ §­ ç¥­¨ï
;-----------------------------------------------------------
create_folder:
; á®§¤ âì ⥪. â à£¥â-¯ãâì ¢ work_buffer+128 ;256
; ®á­®¢ë¢ ïáì ­  ¡ §®¢®¬ ¯ã⨠work_buffer (â®çª  ®âáç¥â )
or a;
ret
;-----------------------------------------------------------
; ‘ª®¯¨à®¢ âì ä ©« ⥪. ¯ã⨠­  ¤¨áª ­ §­ ç¥­¨ï.
; <20>à®æ¥¤ãà  «¨­¥©ª¨ ¯à®æ¥áá  ª®¯¨à®¢ ­¨ï.
; <20>ਠ§ ¢¥à襭¨¨ (¨«¨ ¯à¥à뢠­¨¨) ª®¯¨à®¢ ­¨ï
; ¢ë¤ ¥â ä« £ "Carry".
;-----------------------------------------------------------
copy_file:
; á®§¤ âì ä ©« ¯® ⥪. â à£¥â-¯ã⨠(¢ work_buffer+128 ;256)
;...
scf;
or a;
ret
; Ÿç¥©ª¨ 1-© «¨­¥©ª¨ ¯à®æ¥áá 
max_file_bytes:
dw 0 ; à §¬¥à ä ©«  (¯ ¯ª¨)
dw 0 ; áâ. à §àï¤
;
curr_bytes:
dw 0 ; ⥪. ç¨á«® ®¡à ¡. ¡ ©â®¢
dw 0 ; áâ. à §àï¤
; Ÿç¥©ª¨ 2-© «¨­¥©ª¨ ¯à®æ¥áá  (®¡é¥©)
max_file_bytes1:
dw 0 ; à §¬¥à ä ©«  (¯ ¯ª¨)
dw 0 ; áâ. à §àï¤
;
curr_bytes1:
dw 0 ; ⥪. ç¨á«® ®¡à ¡. ¡ ©â®¢
dw 0 ; áâ. à §àï¤
copy_overwrite:
db false ; ä« £ ¯®¤â¢. ¯¥à¥§ ¯¨á¨ ¯à¨ ª®¯¨à®¢ ­¨¨
; Š®­¢¥àâ¨à®¢ âì à §¬¥à ä ©«  ¢ ç¨á«® ¡ ­®ª
; ¢å®¤: de=áâ. à §àï¤
; hl=¬«. à §àï¤
; ¢ë室: de=áâ. à §àï¤?
; hl=¬«. à §àï¤?
ConvLenToBank:
ld a,h
ld h,l
ld l,0
sla a
rl e
rl d
rl l
sla a
rl e
rl d
rl l
or h
ld h,0
ex de,hl
jr z,$+3
inc hl
ld a,h
or l
ret nz
inc de
ret