mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
524 lines
14 KiB
NASM
Executable File
524 lines
14 KiB
NASM
Executable File
; …᫨ ¯¥à¥¬¥ ï ®ªà㦥¨ï ©¤¥ , ini-ä ©« ç¨â ¥âáï/§ ¯¨áë¢ ¥âáï
|
||
; ⮫쪮 ¢ ¥©.
|
||
; …᫨ ¯¥à¥¬¥®© ®ªà㦥¨ï ¥â, ini-ä ©« ç¨â ¥âáï/§ ¯¨áë¢ ¥âáï ¯®
|
||
; ⥪ã饬㠯ã⨠¬¥¥¤¦¥à .
|
||
;
|
||
; …᫨ ini-ä ©« ¥ ©¤¥ - ¢ ¯ ¥«ïå ãáâ ¢«¨¢ ¥âáï ¤¨áª ¨ ⥪ã騩
|
||
; ¯ãâì ¬¥¥¤¦¥à . …᫨ ini-ä ©« ©¤¥, ¤¨áª¨ ¨ ¯ã⨠¯ ¥«¥© ãáâ ¢-
|
||
; «¨¢ îâáï ᮣ« á® ¤ ëå ini-ä ©« .
|
||
;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;
|
||
; ‘âàãªâãà ini-ä ©« :
|
||
;
|
||
; +0 - ”« £ ªâ¨¢®© ¯ ¥«¨ (0=«¥¢ ï, 80h=¯à ¢ ï)
|
||
; +1 - <20>®¬¥à ¤¨áª «¥¢®© ¯ ¥«¨ (0=A,1=B,..)
|
||
; +2 - <20>®¬¥à ¤¨áª ¯à ¢®© ¯ ¥«¨ (0=A,1=B,..)
|
||
; +3 - <20> áªà áª ä ©«®¢ (true/false)
|
||
; +4 - ”« £ áªàëâ¨ï ¬ë誨 ¯à¨ à ¡®â¥ á ª« ¢®© (true/false)
|
||
; <20>¥¦¨¬ á®àâ¨à®¢ª¨ «¥¢®© ¯ ¥«¨:
|
||
; +5 - n/x/d/s/u (name/ext/date/size/unsort)
|
||
; +6 - 0=, 1= (¢®á室ïé ï/¨á室ïé ï)
|
||
; <20>¥¦¨¬ á®àâ¨à®¢ª¨ ¯à ¢®© ¯ ¥«¨:
|
||
; +7 - n/x/d/s/u (name/ext/date/size/unsort)
|
||
; +8 - 0=, 1= (¢®á室ïé ï/¨á室ïé ï)
|
||
; +9 - ”®à¬ â «¥¢®© ¯ ¥«¨: full/med/brief/info/qview
|
||
; +10 - ”®à¬ â ¯à ¢®© ¯ ¥«¨: full/med/brief/info/qview
|
||
; +11 - ”« £ ¢ë¢®¤ ¡ãª¢ ०¨¬ á®àâ¨à®¢ª¨ (true/false)
|
||
; +12 - ”« £ ¢ë¢®¤ áâப¨ á㬬 ன ¨ä®à¬ 樨 (true/false)
|
||
; +13 - ‘¬¥é¥¨¥ ªãàá®à ¢¨§ ¯à¨ ¢ë¤¥«¥¨¨ ä ©«®¢ (true/false)
|
||
; +14 - ”« £ ¢ë¢®¤ ç ᮢ ¢¢¥àåã ¯à ¢®© ¯ ¥«¨ (true/false)
|
||
; +15 - ”« £ ¯®¤â¢¥à¦¤¥¨ï ¢ë室 ¨§ ¬¥¥¤¦¥à (true/false)
|
||
; +16 - ”« £ ®â¬¥âª¨ ¯ ¯®ª (true/false)
|
||
; +17 - ”« £ ¢à¥¬¥®£® ¯à®á¬®âà á¨áâ. íªà ¯® Esc (true/false)
|
||
; +18 - ”« £ ®âà ¡®âª¨ Home/End ¢ ª®¬-áâப¥ ¯à¨ ®âªàëâëå ¯ ¥«ïå (false/true)
|
||
; ;+19 - ”« £ ¢ë¢®¤ ®¡é¥© «¨¥©ª¨ ¯à®æ¥áá ª®¯¨à®¢ ¨ï (false/true)
|
||
; +20 - १¥à¢
|
||
; +21 - १¥à¢
|
||
; +22 - १¥à¢
|
||
;
|
||
; +23 - Œ áᨢ 梥⮢ ¬¥¥¤¦¥à (color_array), 66 ¡ ©â
|
||
;
|
||
; +88 - ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ª®¯¨à®¢ ¨¨ (Copy)
|
||
; +89 - ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ¯¥à¥¬¥é¥¨¨ (Move)
|
||
; +90 - ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯à¨ 㤠«¥¨¨ (Delete)
|
||
; +91 - ”« £ ¯®¤â¢¥à¦¤¥¨ï 㤠«¥¨ï ¥ ¯ãáâëå ¯ ¯®ª (Delete non-empty folders)
|
||
; +92 - १¥à¢
|
||
; +93 - १¥à¢
|
||
; +94 - १¥à¢
|
||
; +95 - १¥à¢
|
||
;
|
||
; +96 - <20>ãâì «¥¢®© ¯ ¥«¨ (256 ¡ ©â)
|
||
; +353 - <20>ãâì ¯à ¢®© ¯ ¥«¨ (256 ¡ ©â)
|
||
;
|
||
|
||
|
||
|
||
block1 equ 23 ; ï祩ª¨ 1-£® ¡«®ª áâ஥ª
|
||
block2 equ 8 ; ï祩ª¨ 2-£® ¡«®ª
|
||
|
||
size_ini_part1 equ block1+len_color_array+block2 ;97 ¡ ©â ( áâனª¨ FM)
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20> áâநâì ®¯æ¨® «ìë¥ ï祩ª¨ ¬¥¥¤¦¥à
|
||
; ¨ ãáâ ®¢¨âì ¤¨áª¨ ¨ ¯ã⨠¯ ¥«¥©.
|
||
; ¢å®¤: § ¯®«¥ë© work_buffer, ¯à¨ «¨ç¨¨ ini-ä ©«
|
||
;-----------------------------------------------------------
|
||
init_option_cells:
|
||
; ä« £ «¨ç¨ï ini-ä ©«
|
||
db 3Eh ; ld a,..
|
||
enable_ini_file:
|
||
db false
|
||
or a
|
||
jr nz,yes_ini__
|
||
;--------------------------------
|
||
; ¥â ini-ä ©«
|
||
;--------------------------------
|
||
; ¨á¯®«ì§®¢ âì æ¢¥â ¯®-㬮«ç ¨î
|
||
ld hl,default_colors ; ®âªã¤
|
||
ld de,color_array ; ªã¤
|
||
ld bc,len_color_array
|
||
ldir
|
||
; ãáâ. ®¤¨ ª®¢ë¥ ¤¨áª¨ ¢ ¯ ¥«ïå
|
||
ld c,2 ; ¯®«ãç¨âì ®¬¥à ⥪. ¤¨áª
|
||
rst 10h
|
||
ld (disk),a ; ®¬¥à ¤¨áª ªâ. ¯ ¥«¨
|
||
ld (disk1),a ; ®¬¥à ¤¨áª ¯ áá. ¯ ¥«¨
|
||
; ãáâ. ®¤¨ ª®¢ë¥ ¯ã⨠¢ ¯ ¥«ïå
|
||
ld hl,buff_left ; ¡ãä¥à ¯ã⨠«¥¢®© ¯ ¥«¨
|
||
ld c,1Eh ; ¯®«ãç¨âì ⥪. ¯ãâì
|
||
rst 10h
|
||
ld hl,buff_left ; ¯ãâì «¥¢®© ¯ ¥«¨
|
||
ld de,buff_right ; ¯ãâì ¯à ¢®© ¯ ¥«¨
|
||
jp copy_string ; ᪮¯¨à. áâப㠤® ã«ï (á ã«¥¬)
|
||
|
||
yes_ini__:
|
||
;----------------------------------------
|
||
; ˆá¯®«ì§®¢ âì áâனª¨ ¨§ ini-ä ©«
|
||
;----------------------------------------
|
||
; “áâ. ªâ¨¢ãî ¯ ¥«ì
|
||
ld de,panel_left+1
|
||
ld hl,panel_right+1
|
||
ld a,(work_buffer) ;+0 ¨§ ini-ä ©« (0=«¥¢ ï, 80h=¯à ¢ ï)
|
||
or a
|
||
ld a,0
|
||
jr z,$+3
|
||
ex de,hl
|
||
ld (de),a ; X ¯®«®¦. ®¤®© ¯ ¥«¨
|
||
ld (hl),40 ; X ¯®«®¦. ¤à㣮© ¯ ¥«¨
|
||
inc de
|
||
inc hl
|
||
ld (de),a ; cur_panel
|
||
ld (hl),80h ; cur_panel ¤à.¯ ¥«¨
|
||
; “áâ. ¤¨áª¨ ¯ ¥«¥©
|
||
ld a,(work_buffer+1)
|
||
ld (disk),a ; ¤¨áª ªâ. ¯ ¥«¨
|
||
ld a,(work_buffer+2)
|
||
ld (disk1),a ; ¤¨áª ¯ áá. ¯ ¥«¨
|
||
; <20> áªà áª ä ©«®¢
|
||
ld a,(work_buffer+3)
|
||
ld (hilight_enable),a
|
||
; <20>àïâ âì ¬ëèªã ¯à¨ à ¡®â¥ á ª« ¢®©
|
||
ld a,(work_buffer+4)
|
||
ld (hidden_mouse),a ; ä« £ (¢ 0-© áâà. ”Œ, 㦥 ¢ª«îç¥ )
|
||
; <20>¥¦¨¬ë á®àâ¨à®¢®ª ¯ ¥«¥©
|
||
; l=n/x/d/s/u (name/ext/date/size/unsort)
|
||
; h=0/1 (00=, 01=)
|
||
ld hl,(work_buffer+5)
|
||
ld (sort_type),hl ; ªâ.
|
||
ld hl,(work_buffer+7)
|
||
ld (sort_type1),hl ; ¯ áá.
|
||
; ”®à¬ âë ¯ ¥«¥©
|
||
ld a,(work_buffer+9) ; full/med/...
|
||
ld (format_mode),a ; ªâ.
|
||
ld a,(work_buffer+10)
|
||
ld (format_mode1),a ; ¯ áá.
|
||
; ”« £ ¢ë¢®¤ ¡ãª¢ë ०¨¬ á®àâ¨à®¢ª¨
|
||
ld a,(work_buffer+11) ; true/false
|
||
ld (sort_char_flag),a ; ä« £
|
||
; ”« £ ¢ë¢®¤ á㬬 ன ¨ä®à¬ 樨 (¢¨§ã ¯ ¥«¥©)
|
||
ld a,(work_buffer+12) ; false/true
|
||
ld (flag_summary_info),a ; ä« £
|
||
; ‘¬¥é¥¨¥ ªãàá®à ¢¨§ ¯à¨ ¢ë¤¥«¥¨¨ ä ©«®¢
|
||
ld a,(work_buffer+13)
|
||
ld (enable_down_mark),a ; ä« £
|
||
; ”« £ ¢ë¢®¤ ç ᮢ
|
||
ld a,(work_buffer+14)
|
||
ld (clock__+1),a ; ⥪. á®áâ. ०¨¬ ¢ë¢®¤
|
||
ld (enable_clock),a ; ä« £
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¢ë室 ¨§ ¬¥¥¤¦¥à
|
||
ld a,(work_buffer+15)
|
||
ld (confirm_quit),a
|
||
; ”« £ ®â¬¥âª¨ ¯ ¯®ª
|
||
ld a,(work_buffer+16)
|
||
ld (mark_folders),a
|
||
; ”« £ ¢à¥¬. ¯à®á¬®âà á¨áâ. íªà ¯® Esc
|
||
ld a,(work_buffer+17)
|
||
ld (flag_esc),a
|
||
; ”« £ ®âà ¡®âª¨ Home/End ¢ ª®¬-áâப¥ ¯à¨ ®âªà. ¯ ¥«ïå
|
||
ld a,(work_buffer+18)
|
||
ld (move_home_end),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ª®¯¨à®¢ ¨¨ (Copy)
|
||
ld a,(work_buffer+88)
|
||
;ld (),a
|
||
;ld (confirm_ceil0),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ¯¥à¥¬¥é¥¨¨ (Move)
|
||
ld a,(work_buffer+89)
|
||
;ld (),a
|
||
;ld (confirm_ceil1),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯à¨ 㤠«¥¨¨ (Delete)
|
||
ld a,(work_buffer+90)
|
||
ld (del_confirm),a
|
||
ld (confirm_ceil2),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï 㤠«¥¨ï ¥ ¯ãáâëå ¯ ¯®ª (Delete non-empty folders)
|
||
ld a,(work_buffer+91)
|
||
ld (flag_del_non_empty),a
|
||
ld (confirm_ceil3),a
|
||
; <20> áâநâì æ¢¥â ¬¥¥¤¦¥à
|
||
ld hl,work_buffer+23 ; ç «® 梥â. ¬ áᨢ ¢ ini-ä ©«¥
|
||
ld de,color_array ; ¬ áᨢ 梥⮢ ¬¥¥¤¦¥à
|
||
ld bc,len_color_array
|
||
ldir
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; —⥨¥ ini-ä ©«
|
||
;-------------------------------------------------
|
||
read_ini_file:
|
||
; ¯à®¢¥à¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï Far-
|
||
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥®©
|
||
ld de,work_buffer ; ¡ãä¥à ¤«ï § ç¥¨ï ¯¥à¥¬¥®©
|
||
rst 10h
|
||
jr c,no_ini_string ; ®è¨¡ª
|
||
or a
|
||
jr nz,read_ini_file__ ; ¯¥à¥¬¥ ï ©¤¥
|
||
; ¨á¯. ⥪ã騩 á¨áâ. ¯ãâì
|
||
ld hl,save_path ; ®âªã¤
|
||
ld de,work_buffer ; ªã¤
|
||
call copy_string ; ᪮¯¨à. áâபã
|
||
dec de
|
||
dec de
|
||
ld a,(de)
|
||
cp '\'
|
||
jr z,$+3
|
||
inc de
|
||
read_ini_file__:
|
||
push de ; ª®¥æ áâப¨ ¯¥à¥¬¥®© ®ªà㦥¨ï
|
||
ld hl,name_ini_file ; ¨¬ï ini-ä ©«
|
||
ld bc,len_ini_name
|
||
ldir ; ª ¤¨áª+¯ãâì + ¨¬ï ini-ä ©«
|
||
; ©â¨ ä ©«
|
||
ld hl,work_buffer ; ¨¬ï ä ©« (¤¨áª+¯ãâì)
|
||
ld de,work_buffer+127;255 ; ¡ãä¥à
|
||
ld bc,0119h
|
||
ld a,20h ; " à娢ë©"
|
||
rst 10h
|
||
pop de ; ª®¥æ áâப¨ ¯¥à¥¬¥®© ®ªà㦥¨ï
|
||
jr nc,found_ini_file ; ä ©« ©¤¥
|
||
no_ini_string:
|
||
xor a ; false
|
||
ld (enable_ini_file),a ; ä« £ «¨ç¨ï ini-ä ©«
|
||
jr ini_done
|
||
;
|
||
found_ini_file:
|
||
ld hl,work_buffer ; ¯®«®¥ ¨¬ï ä ©« (¤¨áª+¯ãâì+¨¬ï)
|
||
ld a,1 ; ç⥨¥
|
||
ld c,11h ; ®âªàëâì ä ©«
|
||
rst 10h
|
||
jr c,no_ini_string ; ®è¨¡ª ®âªàëâ¨ï
|
||
ld (handle_ini_file),a ; á®åà. ¤¥áªà¨¯â®à
|
||
; ¯à®ç¨â âì áâனª¨ ¬¥¥¤¦¥à
|
||
ld hl,work_buffer ; ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,size_ini_part1 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
|
||
ld c,13h ; ç⥨¥ ä ©«
|
||
rst 10h
|
||
jr c,read_ini_error
|
||
; ¯à®ç¨â âì ¯ã⨠«¥¢®© ¨ ¯à ¢®© ¯ ¥«¥©
|
||
ld hl,buff_left ; ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,256+256 ; 512 ç¨á«® ç¨â ¥¬ëå ¡ ©â
|
||
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
|
||
ld c,13h ; ç⥨¥ ä ©«
|
||
rst 10h
|
||
ld a,true
|
||
jr nc,read_ini_ok ; ¡¥§ ®è¨¡®ª
|
||
read_ini_error:
|
||
xor a
|
||
read_ini_ok:
|
||
ld (enable_ini_file),a ; ä« £ «¨ç¨ï ini-ä ©«
|
||
close_ini_file:
|
||
db 3Eh
|
||
handle_ini_file:
|
||
db -1
|
||
ld c,12h ; § ªàëâì ä ©«
|
||
rst 10h
|
||
ini_done:
|
||
restore_sys_path:
|
||
ld a,(save_disk)
|
||
ld c,1 ; ãáâ. ¤¨áª
|
||
rst 10h
|
||
ret c
|
||
ld hl,save_path
|
||
ld c,1Dh ; ãáâ. ª â «®£
|
||
rst 10h
|
||
ret
|
||
|
||
|
||
|
||
|
||
env_name:
|
||
db "FM",0 ; ¨¬ï ¯¥à¥¬¥®© ®ªà㦥¨ï
|
||
|
||
name_ini_file:
|
||
db '\FM.INI',0 ; ¨¬ï ini-ä ©«
|
||
|
||
len_ini_name equ $ - name_ini_file
|
||
|
||
|
||
|
||
name_mnu_file:
|
||
db '\FM.MNU',0 ; ä ©« Œ¥î <20>®«ì§®¢ ⥫ï
|
||
|
||
len_mnu_name equ $ - name_mnu_file
|
||
|
||
|
||
|
||
|
||
|
||
;------------------------------------------------------------------
|
||
; ‡ ¯¨áì áâ஥ª ¢ ini-ä ©« (97+256+256=609 ¡ ©â).
|
||
; …᫨ ¯¥à¥¬¥ ï ®ªà㦥¨ï ¥ ©¤¥ - § ¯¨áì ¯à®¨§¢®¤¨âáï
|
||
; ¢ ⥪ã饬 ¯ãâ¨.
|
||
;------------------------------------------------------------------
|
||
write_ini_file:
|
||
ld hl,show_pointer ; ç «ìë© ¢ë¢®¤ 㪠§ ⥫ï
|
||
push hl
|
||
call clear_pointer ; áªàëâì 㪠§ ⥫ì
|
||
; ¯à®¢¥à¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï Far`
|
||
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥®©
|
||
ld de,work_buffer ; ¡ãä¥à ¤«ï § ç¥¨ï ¯¥à¥¬¥®©
|
||
rst 10h
|
||
ret c ; ®è¨¡ª
|
||
or a
|
||
jr nz,write_ini_file__ ; ¯¥à¥¬¥ ï ©¤¥
|
||
; ¨á¯. ⥪ã騩 á¨áâ. ¯ãâì
|
||
ld hl,save_path ; ®âªã¤
|
||
ld de,work_buffer ; ªã¤
|
||
call copy_string ; ᪮¯¨à. áâபã
|
||
dec de
|
||
dec de
|
||
ld a,(de)
|
||
cp '\'
|
||
jr z,$+3
|
||
inc de
|
||
write_ini_file__:
|
||
ld hl,name_ini_file ; ¨¬ï ini-ä ©«
|
||
ld bc,len_ini_name
|
||
ldir ; ¤¨áª+¯ãâì + ¨¬ï ini-ä ©«
|
||
ld hl,work_buffer ; ¯®«®¥ ¨¬ï ä ©« (¤¨áª+¯ãâì+¨¬ï)
|
||
ld a,20h ; " à娢ë©"
|
||
ld c,0Ah ; á®§¤ âì ä ©«
|
||
rst 10h
|
||
jr c,ini_done ; ®è¨¡ª á®§¤ ¨ï
|
||
ld (handle_ini_file),a ; á®åà. ¤¥áªà¨¯â®à
|
||
;
|
||
call prep_ini_buffer ; § ¯®«¨âì ini-¡ãä¥à
|
||
;
|
||
; § ¯¨á âì áâனª¨ ¬¥¥¤¦¥à
|
||
ld hl,work_buffer ; ¡ãä¥à ¤ ëå
|
||
ld de,size_ini_part1 ; 97 ç¨á«® § ¯¨á. ¡ ©â
|
||
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
|
||
ld c,14h ; § ¯¨áì ä ©«
|
||
rst 10h
|
||
jr c,close_ini_file ; § ªàëâì ä ©«
|
||
; § ¯¨á âì ¯ãâì «¥¢®© ¯ ¥«¨
|
||
ld hl,(__buff) ; ¤à¥á áâப¨ «¥¢®© ¯ ¥«¨
|
||
ld de,256 ; ç¨á«® § ¯¨á. ¡ ©â
|
||
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
|
||
ld c,14h ; § ¯¨áì ä ©«
|
||
rst 10h
|
||
jr c,close_ini_file ; § ªàëâì ä ©«
|
||
; § ¯¨á âì ¯ãâì ¯à ¢®© ¯ ¥«¨
|
||
ld hl,(__buff1) ; ¤à¥á áâப¨ ¯à ¢®© ¯ ¥«¨
|
||
ld de,256 ; ç¨á«® § ¯¨á. ¡ ©â
|
||
ld a,(handle_ini_file) ; ¤¥áªà¨¯â®à
|
||
ld c,14h ; § ¯¨áì ä ©«
|
||
rst 10h
|
||
jp close_ini_file ; § ªàëâì ä ©«
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; <20>®¤£®â®¢¨âì ¡ãä¥à ¤«ï § ¯¨á¨ ¢ ini-ä ©«
|
||
;-------------------------------------------------
|
||
prep_ini_buffer:
|
||
; €ªâ¨¢ ï ¯ ¥«ì
|
||
ld a,(cur_panel) ; 0=«¥¢ ï, 80h=¯à ¢ ï
|
||
ld (work_buffer),a ;+0
|
||
;or a
|
||
; ª®à४⮠᪮¯¨à®¢ âì ¯ ¥«¥-§ ¢¨á¨¬ë¥ ï祩ª¨
|
||
;push af
|
||
;call nz,change_panel
|
||
call prep_ini_buffer1
|
||
;pop af
|
||
;call nz,change_panel
|
||
;
|
||
; <20> áªà áª ä ©«®¢
|
||
ld a,(hilight_enable)
|
||
ld (work_buffer+3),a
|
||
; <20>àïâ âì ¬ëèªã ¯à¨ à ¡®â¥ á ª« ¢®©
|
||
ld a,(hidden_mouse) ; ä« £ (¢ 0-© áâà. ”Œ)
|
||
ld (work_buffer+4),a
|
||
; ”« £ ¢ë¢®¤ ¡ãª¢ë ०¨¬ á®àâ¨à®¢ª¨
|
||
ld a,(sort_char_flag)
|
||
ld (work_buffer+11),a
|
||
; ”« £ ¢ë¢®¤ á㬬 ன ¨ä®à¬ 樨 (¢¨§ã ¯ ¥«¥©)
|
||
ld a,(flag_summary_info)
|
||
ld (work_buffer+12),a
|
||
; ‘¬¥é¥¨¥ ªãàá®à ¢¨§ ¯à¨ ¢ë¤¥«¥¨¨ ä ©«®¢
|
||
ld a,(enable_down_mark)
|
||
ld (work_buffer+13),a
|
||
; ”« £ ¢ë¢®¤ ç ᮢ
|
||
ld a,(enable_clock)
|
||
ld (work_buffer+14),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¢ë室 ¨§ ¬¥¥¤¦¥à
|
||
ld a,(confirm_quit)
|
||
ld (work_buffer+15),a
|
||
; ”« £ ®â¬¥âª¨ ¯ ¯®ª
|
||
ld a,(mark_folders)
|
||
ld (work_buffer+16),a
|
||
; ”« £ ¢à¥¬. ¯à®á¬®âà á¨áâ. íªà ¯® Esc
|
||
ld a,(flag_esc)
|
||
ld (work_buffer+17),a
|
||
; ”« £ ®âà ¡®âª¨ Home/End ¢ ª®¬-áâப¥ ¯à¨ ®âªà. ¯ ¥«ïå
|
||
ld a,(move_home_end)
|
||
ld (work_buffer+18),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ª®¯¨à®¢ ¨¨ (Copy)
|
||
;ld a,()
|
||
ld (work_buffer+88),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯¥à¥§ ¯¨á¨ ¯à¨ ¯¥à¥¬¥é¥¨¨ (Move)
|
||
;ld a,()
|
||
ld (work_buffer+89),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï ¯à¨ 㤠«¥¨¨ (Delete)
|
||
ld a,(del_confirm)
|
||
ld (work_buffer+90),a
|
||
; ”« £ ¯®¤â¢¥à¦¤¥¨ï 㤠«¥¨ï ¥ ¯ãáâëå ¯ ¯®ª (Delete non-empty folders)
|
||
ld a,(flag_del_non_empty)
|
||
ld (work_buffer+91),a
|
||
; <20>¥à¥ª ç âì ¬ áᨢ 梥⮢ ¬¥¥¤¦¥à
|
||
ld hl,color_array
|
||
ld de,work_buffer+23 ; ç «® 梥â. ¬ áᨢ ¢ ini-ä ©«¥
|
||
ld bc,len_color_array
|
||
ldir
|
||
ret
|
||
|
||
|
||
; Š®¯¨à®¢ ¨¥ ¢ ini-¡ãä¥à ¯ ¥«¥-§ ¢¨á¨¬ëå ï祥ª
|
||
prep_ini_buffer1:
|
||
; <20>®¬¥à ¤¨áª ªâ. ¯ ¥«¨
|
||
ld a,(disk)
|
||
ld (work_buffer+1),a
|
||
; <20>®¬¥à ¤¨áª ¯ áá. ¯ ¥«¨
|
||
ld a,(disk1)
|
||
ld (work_buffer+2),a
|
||
; <20>¥¦¨¬ë á®àâ¨à®¢®ª ¯ ¥«¥©
|
||
ld hl,(sort_type) ; ªâ.
|
||
ld (work_buffer+5),hl
|
||
ld hl,(sort_type1) ; ¯ áá.
|
||
ld (work_buffer+7),hl
|
||
; ”®à¬ âë ¯ ¥«¥©
|
||
ld a,(format_mode) ; ªâ.
|
||
ld (work_buffer+9),a
|
||
ld a,(format_mode1) ; ¯ áá.
|
||
ld (work_buffer+10),a
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
array_read equ 0C000h ; ¡ãä¥à mnu-ä ©«
|
||
|
||
;-------------------------------------------------
|
||
; —⥨¥ ä ©« fm.mnu
|
||
;-------------------------------------------------
|
||
read_mnu_file:
|
||
; ¯à®¢¥à¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï Far-
|
||
ld bc,0146h ; ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||
ld hl,env_name ; ¨¬ï ¯¥à¥¬¥®©
|
||
ld de,work_buffer ; ¡ãä¥à ¤«ï § ç¥¨ï ¯¥à¥¬¥®©
|
||
rst 10h
|
||
jr c,no_mnu_string ; ®è¨¡ª
|
||
or a
|
||
jr nz,read_mnu_file__ ; ¯¥à¥¬¥ ï ©¤¥
|
||
; ¨á¯. ⥪ã騩 á¨áâ. ¯ãâì
|
||
ld hl,save_path ; ®âªã¤
|
||
ld de,work_buffer ; ªã¤
|
||
call copy_string ; ᪮¯¨à. áâபã
|
||
dec de
|
||
dec de
|
||
ld a,(de)
|
||
cp '\'
|
||
jr z,$+3
|
||
inc de
|
||
read_mnu_file__:
|
||
push de ; ª®¥æ áâப¨ ¯¥à¥¬¥®© ®ªà㦥¨ï
|
||
ld hl,name_mnu_file ; ¨¬ï mnu-ä ©«
|
||
ld bc,len_mnu_name
|
||
ldir ; ª ¤¨áª+¯ãâì + ¨¬ï mnu-ä ©«
|
||
; ©â¨ ä ©«
|
||
ld hl,work_buffer ; ¨¬ï ä ©« (¤¨áª+¯ãâì)
|
||
ld de,work_buffer+127;255 ; ¡ãä¥à
|
||
ld bc,0119h
|
||
ld a,20h ; " à娢ë©"
|
||
rst 10h
|
||
pop de ; ª®¥æ áâப¨ ¯¥à¥¬¥®© ®ªà㦥¨ï
|
||
jr nc,found_mnu_file ; ä ©« ©¤¥
|
||
no_mnu_string:
|
||
xor a ; false
|
||
ld (enable_mnu_file),a ; ä« £ «¨ç¨ï mnu-ä ©«
|
||
jr mnu_done
|
||
;
|
||
found_mnu_file:
|
||
ld hl,work_buffer ; ¯®«®¥ ¨¬ï ä ©« (¤¨áª+¯ãâì+¨¬ï)
|
||
ld a,1 ; ç⥨¥
|
||
ld c,11h ; ®âªàëâì ä ©«
|
||
rst 10h
|
||
jr c,no_mnu_string ; ®è¨¡ª ®âªàëâ¨ï
|
||
ld (handle_mnu_file),a ; á®åà. ¤¥áªà¨¯â®à
|
||
; ¯à®ç¨â âì ä ©«
|
||
ld hl,array_read ; 0C000h ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,73*52 ; 3796 ¬ ªá. ç¨á«® ç¨â ¥¬ëå ¡ ©â
|
||
ld c,13h ; ç⥨¥ ä ©«
|
||
rst 10h
|
||
ld a,true
|
||
jr nc,read_mnu_ok ; ¡¥§ ®è¨¡®ª
|
||
xor a
|
||
read_mnu_ok:
|
||
ld (enable_mnu_file),a ; ä« £ «¨ç¨ï mnu-ä ©«
|
||
ld hl,array_read
|
||
add hl,de
|
||
ld (hl),0 ; ¢ ª®¥æ ä ©«
|
||
db 3Eh ; ld a,..
|
||
handle_mnu_file:
|
||
db -1
|
||
ld c,12h ; § ªàëâì ä ©«
|
||
rst 10h
|
||
mnu_done:
|
||
jp restore_sys_path ; ¢®ááâ. ⥪. ¯ãâì
|