mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
105 lines
2.7 KiB
NASM
Executable File
105 lines
2.7 KiB
NASM
Executable File
;===========================================================
|
||
;
|
||
; <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
|