File-Manager/MOD2/RENAME.ASM
2025-04-04 00:37:36 +10:00

107 lines
2.5 KiB
NASM
Executable File
Raw 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>à®æ¥áá ¯¥à¥¨¬¥­®¢ ­¨ï ä ©« /¯ ¯ª¨
;
;===========================================================
rename: call test_show_panels ; â¥áâ ­  ०¨¬ ¢ª«. ¯ ­¥«¥©
ret z
call get_fire ; § é¨â  ®â "§ «¨¯ ­¨ï" ¡ãâ®­®¢
ld a,(format_mode) ; ⥪. ä®à¬ â ¯ ­¥«¨
and form_info+form_qview ; info, qview
ret nz
call set_path_from_activ_panel ; ãáâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
ret c
call prep_rename_name ; ¨¬ï ä ©«  ¢ ®¯¨á â¥«ì ®ª­ 
ret c ; ".." § ¯¨áì
; ¢ë¢®¤ ­ ç «ì­®£® ®ª­ 
ld hl,dial_rename ; ®¯¨á â¥«ì ®ª­ 
call DialogW
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Ok"
ret nz
; ¯¥à¥¨¬¥­®¢ ­¨¥ ä ©« 
ld hl,temp_fname ; áâ à®¥ ¨¬ï
ld de,input_line_rename+5 ; ­®¢®¥ ¨¬ï
ld c,10h ; ¯¥à¥¨¬¥­. ä ©«
rst 10h
jp nc,fresh_two_panels ; ¡¥§ ®è¨¡®ª, ®¡­®¢¨âì ¯ ­¥«¨
;
; ¢ë¢®¤ ®ª­  ®è¨¡ª¨ ¯¥à¥¨¬¥­®¢ ­¨ï
ld hl,dial_error_rename ; "Cannot rename the file or folder"
jp DialogEr
; ‘ª®¯¨à®¢ âì ⥪. ¨¬ï ¯¥à¥¨¬¥­. ä ©« /¯ ¯ª¨ ¢ ®¯¨á â¥«ì ®ª­ .
; Ž¡à ¡®âª  ¬ ªá. ®¤­®© ¢ë¤¥«. § ¯¨á¨
; ¢ë室: hl= ¤à¥á § ¯¨á¨
prep_rename_name:
ld de,(mark_files) ; ç¨á«® ¢ë¤¥«. ä ©«®¢
ld hl,1
sbc hl,de
ret c ; >= 2 ¢ë¤¥«. ä ©«®¢
jr z,prep_ren_name1 ; ¥áâì ®¤¨­ ¢ë¤¥«. ä ©«
; ­¥â ¢ë¤¥«. ä ©«®¢
call get_record ; § ¯¨áì ¢ ⥪. ¯®«®¦¥­¨¨ 㪠§ â¥«ï
ld a,(hl)
cp "." ; ".."
scf
ret z
jr $+5
prep_ren_name1:
call scan_mark_records ; ¯®¨áª ®â¬¥ç. ä ©«  (á ­ ç «  ᯨ᪠)
; ¢å®¤: hl=§ ¯¨áì ä ©« 
ld bc,rename_name1 ; ªã¤  (¡ãä¥à 12 ¡ ©â)
push hl
call copy_cur_fname ; ᪮¯¨à. ¨¬ï ä ©«  ¨ ®â業â஢ âì
pop hl
; hl=®âªã¤ 
ld de,temp_fname ; ªã¤ 
ld bc,0044h ; 11 -> 8.3
rst 10h
; ®ç¨áâ¨âì áâàãªâãàã ¡ãä¥à 
ld hl,input_line_rename ; áâàãªâãà  ¡ãä¥à 
call clear_struct_inline
; ¢áâ ¢¨âì ¨¬ï ¢ áâàãªâãàã ¡ãä¥à 
ld iy,input_line_rename ; áâàãªâãà  ¡ãä¥à 
ld de,temp_fname ; ®âªã¤ 
ld hl,input_line_rename+5 ; ªã¤ 
prep_ren_loop:
ld a,(de)
or a
ret z
call put_char1 ; ¢áâ ¢¨âì ᨬ¢®«
inc de
inc hl
jr prep_ren_loop
; ‚áâ ¢¨âì ᨬ¢®« ¢ ¡ãä¥à áâàãªâãàë
; ¢å®¤: iy=áâàãªâãà  ¡ãä¥à 
; hl=ªã¤ 
; a=ᨬ¢®«
put_char1:
push hl
push iy
pop hl ; áâàãªâãà  ¡ãä¥à 
ex af,af' ; á®åà. ᨬ¢®«
ld a,(iy+2) ; X ⥪. ¯®«®¦. ªãàá®à  ¢ áâப¥
add a,(iy+3)
add a,l
ld l,a
jr nc,$+3
inc h
inc hl
inc hl
inc hl
inc hl
inc hl
ex af,af'
ld (hl),a ; ᨬ¢®« ¢ ª®¬-áâபã
pop hl
inc (iy+4) ; ç¨á«® ¢¢¥¤. ᨬ¢®«®¢
inc (iy+2) ; X ⥪. ¯®«®¦. ªãàá®à  ¢ áâப¥
ret