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

105 lines
2.7 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>à®æ¥áá á®§¤ ­¨ï ¯ ¯ª¨
;
;===========================================================
make_folder:
call test_show_panels ; â¥áâ ­  ०¨¬ ¢ª«. ¯ ­¥«¥©
ret z
call get_fire ; § é¨â  ®â "§ «¨¯ ­¨ï" ¡ãâ®­®¢
ld a,(format_mode) ; ⥪. ä®à¬ â ¯ ­¥«¨
and form_info+form_qview ; info, qview
ret nz
; ¢ë¢®¤ ­ ç «ì­®£® ®ª­ 
ld hl,dial_folder ; ®¯¨á â¥«ì ®ª­ 
call DialogW
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Ok"
ret nz
; ‘®§¤ ­¨¥ ¯ ¯ª¨
ld a,(input_line_makedir+4); ¤«¨­  ¢¢¥¤. áâப¨
or a
ret z ; ¯ãáâ ï áâப 
;
call set_path_from_activ_panel ; ãáâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
ret c
;
; ¢ë¤¥«¨âì ¨¬ï ¯ ¯ª¨
ld hl,input_line_makedir+5 ; ®âªã¤ 
ld de,temp_fname ; ªã¤  (13 ¡ ©â)
ld bc,0345h
rst 10h
push af
push af
or a
bit 3,a ; 㪠§ ­ ¤¨áª ?
call nz,cut_disk ; ¢ë¤¥«¨âì ¨ ãáâ. ¤¨áª
jr c,make_fold_err1
pop af
or a
bit 2,a ; 㪠§ ­ ¯ãâì ?
call nz,cut_path ; ¢ë¤¥«¨âì ¨ ãáâ. ¯ãâì
jr c,make_fold_err2
pop af
and 00001100b ; ¤¨áª ¨ ¯ãâì § ¤ ¢ «¨áì ?
jr z,try_make_fold ; ­¥â
ld (fresh_two_panels_flag+1),a ; ãáâ. ä« £ ®¡­®¢«. ¤¢ãå ¯ ­¥«¥©
jr try_make_folder
;
try_make_fold:
; call set_path_from_activ_panel ; ­¥â, ãáâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
; ret c
; á®§¤ âì ¯ ¯ªã
try_make_folder:
ld hl,temp_fname ; ¨¬ï ¯ ¯ª¨
ld c,1Bh ; á®§¤ âì ¯ ¯ªã
rst 10h
jr c,make_fold_err
; ®¡­®¢¨âì ᯨ᮪ ¯ ­¥«¥©
fresh_two_panels: ;<- ®¡à é¥­¨¥ ¨§ delete.asm
;  ªâ. ¯ ­¥«ì
call read_new_list ; § ¯®«­¨âì ¡ ­ªã ­®¢ë¬ ᯨ᪮¬ + à §¬¥à ä ©«®¢
jr c,make_fold_err
call sorting ; à §¤¥«ì­ë© ᯨ᮪ 㪠§ â¥«¥© + á®àâ. ᯨ᪠
call A20FC ; ®¡­®¢¨âì ¯ ­¥«ì
fresh_two_panels_flag:
ld a,0 ; ¯à¨§­ ª ®¡­®¢«¥­¨ï ¤¢ãå ¯ ­¥«¥©
or a
jr nz,$+8
; áà ¢­¨âì ¯ã⨠¯ ­¥«¥© (¯à¨ ᮢ¯ ¤. ®¡­®¢¨âì ¢â®àãî)
call compare_path_two_panels
jp nz,show_pointer ; ­¥ à ¢­ë, ¯®ª § âì 㪠§ â¥«ì
xor a
ld (fresh_two_panels_flag+1),a ; á¡à. ä« £
; ¯ áá. ¯ ­¥«ì
call change_panel
call read_new_list ; § ¯®«­¨âì ¡ ­ªã ­®¢ë¬ ᯨ᪮¬ + à §¬¥à ä ©«®¢
jr c,make_fold_err
call sorting ; à §¤¥«ì­ë© ᯨ᮪ 㪠§ â¥«¥© + á®àâ. ᯨ᪠
call A20FC
call change_panel ; ᬥ­¨âì ¯ ­¥«ì
jp show_pointer ; ¯®ª § âì 㪠§ â¥«ì
make_fold_err1:
pop af
make_fold_err2:
pop af
; Žè¨¡ª 
make_fold_err:
; 業â஢ª  ¨¬¥­¨ ¯ ¯ª¨
ld hl,input_line_makedir+5 ; áâàãªâãà  áâப¨ ~input line~
ld de,create_name ; ªã¤ 
call copy_dest_name ; ᪮¯¨à. ¯ãâì+¨¬ï ä ©« /¯ ¯ª¨
; ¢ë¢®¤ ®ª­  ®è¨¡ª¨ á®§¤ ­¨ï ¯ ¯ª¨
ld hl,dial_error_make_folder
call DialogEr
cp evCommand ; ᮡë⨥ "ª®¬ ­¤ "
ret nz
ld a,(hl) ;+1 what
cp cmOkey ; "Retry"
jr z,try_make_folder
ret