mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 09:21:37 +03:00
549 lines
9.2 KiB
NASM
Executable File
549 lines
9.2 KiB
NASM
Executable File
; Œ¥î <20>®«ì§®¢ ⥫ï
|
||
;
|
||
;
|
||
; …᫨ ä ©« "FM.MNU" ¥ ©¤¥, â® ¢ë§®¢ Œ¥î <20>®«ì§®¢ â¥«ï ¡ã¤¥â ¥ ¤®á-
|
||
; â㯥. <20>ਠí⮬ ¨ª ª¨å ¯à¥¤ã¯à¥¦¤ îé¨å á®®¡é¥¨© ¢ë¢®¤¨âìáï ¥ ¡ã¤¥â.
|
||
; …᫨ ¯¥à¥¬¥ ï ®ªà㦥¨ï ä ©«-¬¥¥¤¦¥à ®¯à¥¤¥«¥ , â® mnu-ä ©« ç¨â ¥âáï
|
||
; ¨ § ¯¨áë¢ ¥âáï ⮫쪮 ¢ ¥©. …᫨ ¯¥à¥¬¥®© ®ªà㦥¨ï ¥â, mnu-ä ©« ç¨â -
|
||
; ¥âáï ¨ § ¯¨áë¢ ¥âáï ¢ ⥪ã饬 ¯ã⨠¬¥¥¤¦¥à .
|
||
;
|
||
; ‘âப¨ §¢ ¨© ¯ãªâ®¢ ¨ ª®¬ ¤ëå áâப ¬®£ãâ ç¨ âìáï á ¯à®¡¥«®¢ ¨«¨
|
||
; â ¡ã«ï権. <20>ãªâë ¨ ¨å ª®¬-áâப¨ ¬®£ãâ à §¤¥«ïâìáï ¯ãáâ묨 áâப ¬¨ (¨«¨ á®-
|
||
; ¤¥à¦ 騬¨ ®¤¨ ¯à®¡¥«ë ¨«¨ â ¡ã«ï樨).
|
||
; Š ¦¤®© áâப¥ ¯ãªâ ¤®«¦ ᮮ⢥âá⢮¢ âì ª®¬ ¤ ï áâப , ¢ë¯®«ï¥¬ ï
|
||
; ¯® í⮬㠯ãªâã.
|
||
;
|
||
; …᫨ ¯¥à¢ë© ᨬ¢®« ¢ áâப¥ "-", â® áâப áç¨â ¥âáï à §¤¥«¨â¥«¥¬ ¯ãªâ®¢
|
||
; ¬¥î ¨ ¯®á«¥¤ãî騥 ᨬ¢®«ë áâப¨ ¨£®à¨àãîâáï.
|
||
; …᫨ áâப ç¨ ¥âáï á ᨬ¢®« ";", â® ¤ ï áâப ¢®á¯à¨¨¬ ¥âáï ª ª
|
||
; ª®¬¬¥â ਩ ¨ â ª¦¥ ¯à®¯ã᪠¥âáï.
|
||
;
|
||
; ‚ ¨¬¥ å ¯ãªâ®¢ ¬®¦® § ¤ ¢ âì hot-ᨬ¢®«ë ¢ë§®¢ íâ¨å ¯ãªâ®¢. ‚ ª ç¥áâ-
|
||
; ¢¥ hot-ᨬ¢®«®¢ ¬®¦® ¨á¯®«ì§®¢ âì «ä ¢¨â®-æ¨äà®¢ë¥ á¨¬¢®«ë ®á®¢®£® ¯®«ï
|
||
; ª« ¢¨ âãàë. <20>ਠ®¯à¥¤¥«¥¨¨ hot-ᨬ¢®«®¢ « â¨áª¨å ¨ àãááª¨å ¯ãªâ®¢, ¬®¦¥â
|
||
; ¢®§¨ªãâì á¨âã æ¨ï, ª®£¤ hot-ᨬ¢®«ë « â¨áª¨å ¨ àãááª¨å ¯ãªâ®¢ ᮢ¯ ¤ãâ.
|
||
; <20>¨ç¥£® áâà 讣® ¢ í⮬ ¥â, ¯à®áâ® ¯® ¤ ®¬ã hot-ᨬ¢®«ã ¡ã¤¥â ¢ë§ë¢ âìáï
|
||
; ¯ãªâ, áâ®ï騩 ¯¥à¢ë¬ ®â ç « ¬¥î.
|
||
;
|
||
; Œ ªá¨¬ «ì®¥ ç¨á«® ®¡à ¡ âë¢ ¥¬ëå ¯ãªâ®¢ à ¢® 26. <20>ਠí⮬ ãç¨âë¢ îâáï
|
||
; â ª¦¥ à §¤¥«¨â¥«¨ ¯ãªâ®¢. Œ ªá¨¬ «ì ï ¤«¨ ¨¬¥ ¯ãªâ®¢ ¨ ª®¬-áâப à ¢
|
||
; 70 ᨬ¢®« ¬.
|
||
;
|
||
; <20>ã¤ì⥠¢¨¬ ⥫ìë - ¢ ª®æ¥ ª®¬-áâப ¥ ¤®«¦® ¡ëâì «¨è¨å ¯à®¡¥«®¢ ¨«¨
|
||
; â ¡ã«ï権!.
|
||
;
|
||
; ’¨¯¨çë© ¯à¨¬¥à § ¯¨á¨ ä ©« "FM.MNU" (®âáâã¯ë ¤«ï ª®¬-áâப ᤥ« ë ¤«ï
|
||
; £«ï¤®áâ¨):
|
||
;
|
||
; ; íâ® ª®¬¬¥â ਩
|
||
; &GoldED
|
||
; c:\mail\golded\gedw32.exe -f
|
||
; ; ¥é¥ ®¤¨ ª®¬¬¥â ਩
|
||
; ’®áá&¨âì ¯®çâã
|
||
; c:\mail\utils\inar.bat
|
||
; &T-Mail
|
||
; c:\mail\t-mail\t-mailnt.exe
|
||
; <20>&ãনâì ¯®çâã
|
||
; c:\mail\utils\purge.bat
|
||
; - <20>â® à §¤¥«¨â¥«ì ¯ãªâ®¢
|
||
; &FFormat
|
||
; c:\nc\fformat.exe
|
||
; &Rar 2.50
|
||
; c:\nc\rar.exe
|
||
;
|
||
|
||
|
||
|
||
|
||
|
||
; ”®à¬ â ®¯¨á â¥«ï ¯ãªâ®¢ Œ¥î <20>®«ì§®¢ ⥫ï
|
||
; <¨¬ï ¯ãªâ ,0>, <᪥-ª®¤ hot-¡ãª¢ë>
|
||
;-----------------------------------------------------------
|
||
;list1: db "&GoldED",0
|
||
;db 21h ; ᪥-ª®¤
|
||
;db "’&®áá¨âì ¯®çâã",0
|
||
;db 23h
|
||
;db "&T-Mail",0
|
||
;db 14h
|
||
;db "<22>&ãনâì ¯®çâã",0
|
||
;db 12h
|
||
;db -2 ; à §¤¥«¨â¥«ì
|
||
;db "&FFormat",0
|
||
;db 20h
|
||
;db "&Rar 2.50",0
|
||
;db 13h
|
||
;
|
||
;db -1 ; ª®¥æ ®¯¨á ⥫ï
|
||
|
||
|
||
|
||
max_user_len equ 70 ; ¬ ªá. ¤«¨ áâப («¨è¥¥ ®¡à¥§ ¥âáï)
|
||
max_user_puncts equ 26 ; ¬ ªá. ç¨á«® ¯ãªâ®¢ («¨è¨¥ ¨£®à¨àãîâáï)
|
||
|
||
|
||
;-------------------------------------------------
|
||
; <20>à®ç¨â âì MNU-ä ©« ¨ ¯®¤£®â®¢¨âì ®¯¨á ⥫ì
|
||
; Œ¥î <20>®«ì§®¢ ⥫ï.
|
||
;
|
||
; ¬ ªá. 26 ¯ãªâ®¢ (26*2 áâப)
|
||
; ¬ ªá. 70 ᨬ¢®«®¢ ¢ ¯ãªâ¥/ª®¬-áâப¥
|
||
;-------------------------------------------------
|
||
make_user_menu:
|
||
in a,(SLOT3)
|
||
push af
|
||
;ld a,(page_dial_screen) ; ¢ ª ç¥á⢥ ¢à¥¬. ¡ãä¥à
|
||
ld a,(page_sys_screen) ; ¢ ª ç¥á⢥ ¢à¥¬. ¡ãä¥à
|
||
out (SLOT3),a
|
||
call make_user_menu__ ; ç⥨¥ ä ©« Œ¥î <20>®«ì§®¢ ⥫ï
|
||
pop af
|
||
out (SLOT3),a
|
||
ret
|
||
|
||
|
||
make_user_menu__:
|
||
call read_mnu_file ; ç⥨¥ mnu-ä ©«
|
||
ld a,(enable_mnu_file) ; ä« £ «¨ç¨ï mnu-ä ©«
|
||
or a
|
||
ret z
|
||
ld de,array_read ; ç «® mnu-ä ©«
|
||
ld iy,array_user1 ; ¬ áᨢ 㪠§ ⥫¥© ª®¬-áâப¨
|
||
ld hl,array_user2 ; ¬ áᨢ ¯ãªâ®¢ ¬¥î
|
||
ld ix,array_user3 ; ¬ áᨢ ª®¬-áâப
|
||
ld b,0 ; áç¥â稪 ç¨á« ¯ãªâ®¢
|
||
make_user_newline:
|
||
xor a
|
||
ld c,a ; á¡à. áç¥â稪 ¤«¨ë ¯ãªâ
|
||
dec a
|
||
ld (make_user_hot+1),a ; á¡à. ᪥-ª®¤ ¡ãª¢ë
|
||
make_user_skip:
|
||
; ¯à®©â¨ ¯à®¡¥«ë ¢ ç «¥ áâப¨
|
||
ld a,(de)
|
||
inc de
|
||
cp " "
|
||
jr z,make_user_skip
|
||
cp 9 ; Tab
|
||
jr z,make_user_skip
|
||
or a
|
||
jr nz,$+10
|
||
make_user_done:
|
||
ld (hl),-1 ; ª®¥æ ®¯¨á ⥫ï
|
||
ret
|
||
make_user_done1:
|
||
xor a
|
||
ld (hl),a ; ª®¥æ ¯ãªâ ¢ ®¯¨á ⥫ì
|
||
inc hl
|
||
jr make_user_done
|
||
;
|
||
cp 0Dh ; ¯ãáâ ï áâப
|
||
jr nz,$+5
|
||
inc de ; ¯à®©â¨ 0Ah
|
||
jr make_user_newline
|
||
;
|
||
cp ";" ; ª®¬¬¥â ਩
|
||
jr z,make_user_to_end ; ¯à®©â¨ ¤® ª®æ áâப¨
|
||
cp "-" ; à §¤¥«¨â¥«ì
|
||
jr nz,make_user_loc1
|
||
ld (hl),-2 ; à §¤¥«¨â¥«ì ¯ãªâ®¢
|
||
inc hl
|
||
inc b ; ++ç¨á«® ¯ãªâ®¢
|
||
ld a,b
|
||
cp max_user_puncts ; 26
|
||
jr nc,make_user_done
|
||
; ¯à®©â¨ ¤® ª®æ áâப¨
|
||
make_user_to_end:
|
||
ld a,(de)
|
||
inc de
|
||
or a ; ª®¥æ ä ©«
|
||
jr z,make_user_done
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr nz,make_user_to_end
|
||
inc de ; ¯à®©â¨ 0Ah
|
||
jr make_user_newline ; ®¢ãî áâபã
|
||
;
|
||
make_user_loc1:
|
||
dec de
|
||
make_user_loc2:
|
||
ld a,(de)
|
||
inc de
|
||
cp "&" ; hot-¡ãª¢
|
||
jr nz,make_user_loc3
|
||
ld (hl),a
|
||
inc hl
|
||
inc c ; ++¤«¨ ¯ãªâ
|
||
ld a,(de)
|
||
ld (hl),a ; ¢ ®¯¨á ⥫ì
|
||
inc hl
|
||
inc c ; ++¤«¨ ¯ãªâ
|
||
push bc
|
||
call get_key_scancode ; ã§ âì ᪥-ª®¤ hot-¡ãª¢ë
|
||
ld a,c
|
||
pop bc
|
||
ld (make_user_hot+1),a ; ᪥-ª®¤ ¡ãª¢ë
|
||
inc de
|
||
jr make_user_loc2
|
||
make_user_loc3:
|
||
or a ; ª®¥æ ä ©«
|
||
jr z,make_user_done1
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr z,make_user_loc4
|
||
ld (hl),a ; ¢ ®¯¨á ⥫ì
|
||
inc hl
|
||
inc c ; ++¤«¨ ¯ãªâ
|
||
ld a,c
|
||
cp max_user_len ; 70
|
||
jr c,make_user_loc2
|
||
; ¯à®©â¨ ¤® ª®æ áâப¨
|
||
ld a,(de)
|
||
inc de
|
||
or a ; ª®¥æ ä ©«
|
||
jr z,make_user_done1
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr z,make_user_loc4
|
||
jr $-9
|
||
make_user_loc4:
|
||
ld (hl),0 ; ª®¥æ ¯ãªâ ¢ ®¯¨á ⥫ì
|
||
inc hl
|
||
make_user_hot:
|
||
ld (hl),-1 ; ᪥-ª®¤ ¢ ®¯¨á ⥫ì
|
||
inc hl
|
||
inc de ; ¯à®©â¨ 0Ah
|
||
push bc
|
||
call copy_user_string ; ᪮¯¨à. ª®¬-áâபã
|
||
pop bc
|
||
inc b ; ++ç¨á«® ¯ãªâ®¢
|
||
ld a,b
|
||
cp max_user_puncts ; 26
|
||
jr nc,make_user_done
|
||
jp make_user_newline ; à §¡®à ®¢®© áâப¨
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‘ª®¯¨à. ª®¬-áâபã á ¯¥à¥å. á«¥¤. ®¢ãî áâபã
|
||
; ix=¬ áᨢ ª®¬-áâப
|
||
; iy=¬ áᨢ 㪠§ ⥫¥© ª®¬-áâப¨
|
||
;-----------------------------------------------------------
|
||
copy_user_string:
|
||
push ix
|
||
pop bc
|
||
ld (iy+0),c ; á®åà. ¤à¥á áâப¨
|
||
inc iy
|
||
ld (iy+0),b
|
||
inc iy
|
||
ld c,0 ; áç¥â稪 ¤«¨ë áâப¨
|
||
copy_usr_loop:
|
||
; ¯à®©â¨ ¢¥¤. ¯à®¡¥«ë
|
||
ld a,(de)
|
||
inc de
|
||
cp " "
|
||
jr z,copy_usr_loop
|
||
cp 9 ; Tab
|
||
jr z,copy_usr_loop
|
||
cp 0Dh ; ¯ãáâ ï áâப
|
||
jr nz,copy_usr_loop1
|
||
inc de ; ¯à®©â¨ 0Ah
|
||
jr copy_usr_loop
|
||
;
|
||
copy_usr_loop1:
|
||
or a ; ª®¥æ ä ©«
|
||
jr z,copy_usr_done1
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr nz,copy_usr_nxt
|
||
copy_usr_done:
|
||
inc de ; ¯à®©â¨ 0Ah
|
||
jr $+3
|
||
copy_usr_done1:
|
||
dec de
|
||
xor a
|
||
ld (ix+0),a ; ¢ ª®¥æ ª®¬-áâப¨
|
||
inc ix
|
||
ret
|
||
copy_usr_nxt:
|
||
ld (ix+0),a
|
||
inc ix
|
||
inc c ; ++¤«¨ ª®¬-áâப¨
|
||
ld a,c
|
||
cp max_user_len ; 70
|
||
jr nc,copy_usr_nxt1 ; ¯à®©â¨ ¤® ª®æ áâப¨
|
||
ld a,(de)
|
||
inc de
|
||
jr copy_usr_loop1
|
||
;
|
||
copy_usr_nxt1:
|
||
ld a,(de)
|
||
inc de
|
||
or a ; ª®¥æ ä ©«
|
||
jr z,copy_usr_done1
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr nz,copy_usr_nxt1
|
||
jr copy_usr_done
|
||
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‘¨¬¢®«ìë¥ ª« ¢¨è¨ ®á. ¯®«ï ª« ¢¨ âãàë
|
||
; ¢å®¤: a=hot-ª« ¢¨è
|
||
; ¢ë室: c=᪥-ª®¤ ª« ¢¨è¨
|
||
;-------------------------------------------------
|
||
get_key_scancode:
|
||
ld c,0 ; áç¥â稪 ᪥-ª®¤
|
||
cp "ñ"
|
||
ret z
|
||
cp "ð"
|
||
ret z
|
||
cp "`"
|
||
ret z
|
||
cp "~"
|
||
ret z
|
||
cp "_"
|
||
jr z,get_key_scancod1+2
|
||
cp "à"
|
||
jr c,get_key_scancod1
|
||
cp "ï"+1
|
||
jp nc,get_key_scancod2
|
||
sub 50h
|
||
get_key_scancod1:
|
||
res 5,a
|
||
ld c,2
|
||
cp "1"
|
||
ret z
|
||
cp "!"
|
||
ret z
|
||
inc c
|
||
cp "2"
|
||
ret z
|
||
cp "@"
|
||
ret z
|
||
inc c
|
||
cp "3"
|
||
ret z
|
||
cp "#"
|
||
ret z
|
||
inc c
|
||
cp "4"
|
||
ret z
|
||
cp "$"
|
||
ret z
|
||
inc c
|
||
cp "5"
|
||
ret z
|
||
cp "%"
|
||
ret z
|
||
inc c
|
||
cp "6"
|
||
ret z
|
||
cp "^"
|
||
ret z
|
||
inc c
|
||
cp "7"
|
||
ret z
|
||
cp "&"
|
||
ret z
|
||
inc c
|
||
cp "8"
|
||
ret z
|
||
cp "*"
|
||
ret z
|
||
inc c
|
||
cp "9"
|
||
ret z
|
||
cp "("
|
||
ret z
|
||
inc c
|
||
cp "0"
|
||
ret z
|
||
cp ")"
|
||
ret z
|
||
inc c
|
||
cp "-"
|
||
ret z
|
||
cp "_"
|
||
ret z
|
||
inc c
|
||
cp "="
|
||
ret z
|
||
cp "+"
|
||
ret z
|
||
ld c,10h
|
||
cp "Q"
|
||
ret z
|
||
cp "‰"
|
||
ret z
|
||
inc c
|
||
cp "W"
|
||
ret z
|
||
cp "–"
|
||
ret z
|
||
inc c
|
||
cp "E"
|
||
ret z
|
||
cp "“"
|
||
ret z
|
||
inc c
|
||
cp "R"
|
||
ret z
|
||
cp "Š"
|
||
ret z
|
||
inc c
|
||
cp "T"
|
||
ret z
|
||
cp "…"
|
||
ret z
|
||
inc c
|
||
cp "Y"
|
||
ret z
|
||
cp "<22>"
|
||
ret z
|
||
inc c
|
||
cp "U"
|
||
ret z
|
||
cp "ƒ"
|
||
ret z
|
||
inc c
|
||
cp "I"
|
||
ret z
|
||
cp "˜"
|
||
ret z
|
||
inc c
|
||
cp "O"
|
||
ret z
|
||
cp "™"
|
||
ret z
|
||
inc c
|
||
cp "P"
|
||
ret z
|
||
cp "‡"
|
||
ret z
|
||
inc c
|
||
cp "["
|
||
ret z
|
||
cp "{"
|
||
ret z
|
||
cp "•"
|
||
ret z
|
||
inc c
|
||
cp "]"
|
||
ret z
|
||
cp "}"
|
||
ret z
|
||
cp "š"
|
||
ret z
|
||
ld c,1Dh
|
||
cp "A"
|
||
ret z
|
||
cp "”"
|
||
ret z
|
||
inc c
|
||
cp "S"
|
||
ret z
|
||
cp "›"
|
||
ret z
|
||
inc c
|
||
cp "D"
|
||
ret z
|
||
cp "‚"
|
||
ret z
|
||
inc c
|
||
cp "F"
|
||
ret z
|
||
cp "€"
|
||
ret z
|
||
inc c
|
||
cp "G"
|
||
ret z
|
||
cp "<22>"
|
||
ret z
|
||
inc c
|
||
cp "H"
|
||
ret z
|
||
cp "<22>"
|
||
ret z
|
||
inc c
|
||
cp "J"
|
||
ret z
|
||
cp "Ž"
|
||
ret z
|
||
inc c
|
||
cp "K"
|
||
ret z
|
||
cp "‹"
|
||
ret z
|
||
inc c
|
||
cp "L"
|
||
ret z
|
||
cp "„"
|
||
ret z
|
||
ld c,27h
|
||
cp "'"
|
||
ret z
|
||
cp "<22>"
|
||
ret z
|
||
ld c,2Ah
|
||
cp "Z"
|
||
ret z
|
||
cp "Ÿ"
|
||
ret z
|
||
inc c
|
||
cp "X"
|
||
ret z
|
||
cp "—"
|
||
ret z
|
||
inc c
|
||
cp "C"
|
||
ret z
|
||
cp "‘"
|
||
ret z
|
||
inc c
|
||
cp "V"
|
||
ret z
|
||
cp "Œ"
|
||
ret z
|
||
inc c
|
||
cp "B"
|
||
ret z
|
||
cp "ˆ"
|
||
ret z
|
||
inc c
|
||
cp "N"
|
||
ret z
|
||
cp "’"
|
||
ret z
|
||
inc c
|
||
cp "M"
|
||
ret z
|
||
cp "œ"
|
||
ret z
|
||
inc c
|
||
cp ","
|
||
ret z
|
||
cp "<22>"
|
||
ret z
|
||
cp "<"
|
||
ret z
|
||
inc c
|
||
cp "."
|
||
ret z
|
||
cp "ž"
|
||
ret z
|
||
cp ">"
|
||
ret z
|
||
inc c
|
||
cp "/"
|
||
ret z
|
||
cp "."
|
||
ret z
|
||
cp "?"
|
||
ret z
|
||
ld c,35h
|
||
cp '\' ;
|
||
ret z
|
||
cp "|"
|
||
ret z
|
||
ld c,38h
|
||
cp " "
|
||
ret z
|
||
get_key_scancod2:
|
||
ld c,-1
|
||
ret
|