mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
363 lines
8.7 KiB
NASM
Executable File
363 lines
8.7 KiB
NASM
Executable File
;-------------------------------------------------
|
||
; ˆ¨æ¨ «¨§ æ¨ï ¬ë誨 ¨ ¢ë¢®¤ ¥¥ íªà
|
||
;-------------------------------------------------
|
||
init_mouse:
|
||
xor a
|
||
rst 30h
|
||
jr show_mouse
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‚뢥á⨠ªãàá®à ¬ë誨
|
||
;-------------------------------------------------
|
||
show_mouse:
|
||
ld a,1
|
||
rst 30h
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‘ªàëâì ªãàá®à ¬ë誨
|
||
;-------------------------------------------------
|
||
hide_mouse:
|
||
ld a,2
|
||
rst 30h
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; <20>®«ãç¨âì ®¢ãî ¨ä®à¬ æ¨î ® ¬ë誥
|
||
;-------------------------------------------------
|
||
get_mouse_info:
|
||
ld a,3 ; ¯®«ãç¨âì ª®®à¤. ¬ë誨
|
||
rst 30h
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; †¤¥¬, ¯®ª ¦ âë ¡ãâ®ë ¬ë誨
|
||
;-------------------------------------------------
|
||
get_fire:
|
||
call get_mouse_info
|
||
and 3
|
||
jr nz,$-5 ; ¡ãâ®ë ¦ âë
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; Ž¡à ¡®âª ¦ â¨ï ¡ãâ®®¢ ¬ë誨 ¯ ¥«ïå ¬¥¥¤¦¥à
|
||
;
|
||
; ¢å®¤: hl=Y/X ⥪áâ. ª®®à¤¨ âë ¬ë誨.
|
||
; d=¡¨âë ¦ â¨ï ¡ãâ®®¢
|
||
;---------------------------------------------------------------------
|
||
buttons_press:
|
||
ld a,d
|
||
ld (buttons_bits),a ; á®åà. ¡¨âë ¦ â¨ï ¡ãâ®®¢
|
||
ld a,h
|
||
cp 27 ; ¨¦ïï £à ¨æ ᯨáª
|
||
jp nc,event_keybar ; â¥áâ comline ¨ key-¡ à
|
||
or a ; 0-ï áâப
|
||
jp z,main_menu ; £®à¨§. Œ¥î
|
||
call test_show_panels ; â¥áâ ०¨¬ ¢ª«. ¯ ¥«¥©
|
||
ret z
|
||
call mouse_set_active_panel ; ãáâ. ¬ë誮© ªâ. ¯ ¥«ì
|
||
ld a,(format_mode) ; ä®à¬ â ªâ. ¯ ¥«¨
|
||
and form_info+form_qview
|
||
ret nz ; info, qviev
|
||
ld a,h ; Y ª®®à¤¨ â ¬ë誨
|
||
cp 2 ; ¢¥àåïï £à ¨æ ᯨáª
|
||
jp c,event_title ; â¥áâ § £®«®¢®ª ¯ ¥«¨
|
||
sub 2
|
||
ld b,l ; á®åà. X ª®®à¤¨ âã
|
||
ld l,a ; Y ª®®à¤¨ â ¬ë誨
|
||
ld h,0
|
||
;
|
||
ld de,(all_files) ; ç¨á«® ä ©«®¢ ¨ ¯ ¯®ª
|
||
ld a,e
|
||
or d
|
||
jp z,get_fire ; § é¨â ®â "§ «¨¯ ¨ï" ¡ãâ®®¢
|
||
ld a,(cur_panel) ; ⥪. ªâ. ¯ ¥«ì
|
||
ld c,a ; 0=«¥¢ ï, 80h=¯à ¢ ï
|
||
ld a,(format_mode) ; ä®à¬ â ªâ. ¯ ¥«¨
|
||
bit 0,a ; full, full-ᯥª
|
||
jr nz,event_set__ ; ¨ç¥£® ¥ ¬¥ïâì
|
||
push de
|
||
call event_calc_pointer ; ¢ëç¨á«¨âì ¯®«®¦. 㪠§ ⥫ï
|
||
pop de
|
||
event_set__:
|
||
; hl=¯®«®¦. 㪠§ â¥«ï ¯® ª®®à¤. ¬ë誨
|
||
; de=all_files
|
||
call cmphlde ; áà ¢¨âì hl á de
|
||
jr nc,event_set_end ; 㪠§ â¥«ì ¢ ª®¥æ ᯨáª
|
||
; ¬ëèª ¢ ¯à¥¤¥« å ᯨ᪠(¥ ¢ ¯ãá⮬ ¬¥á⥠ª®«®ª¨)
|
||
call A0E12_ ; ®¡®¢¨âì ¯®«®¦. 㪠§ ⥫ï
|
||
ld a,(buttons_bits) ; ¡¨âë ¦ â¨ï ¡ãâ®®¢
|
||
bit 1,a ; «¥¢ë© ?
|
||
jr nz,button_left ; ¤
|
||
; ¯®áâ ¢¨âì/áïâì ¢ë¤¥«¥¨¥ ä ©«
|
||
call A0E13
|
||
jp get_fire ; § é¨â ®â "§ «¨¯ ¨ï" ¡ãâ®®¢
|
||
;
|
||
; 㪠§ â¥«ì ¢ ª®¥æ ᯨáª
|
||
event_set_end:
|
||
dec de
|
||
ex de,hl ; hl = all_files-1
|
||
call A0E12_ ; ®¡®¢¨âì ¯®«®¦. 㪠§ ⥫ï
|
||
jp get_fire ; § é¨â ®â "§ «¨¯ ¨ï" ¡ãâ®®¢
|
||
;
|
||
button_left:
|
||
call get_fire
|
||
ei
|
||
ld b,9 ; ®¦¨¤ ¨¥
|
||
push bc
|
||
call get_mouse_info ; ç⥨¥ á®áâ®ï¨ï ¬ë誨
|
||
pop bc
|
||
jr nz,double_press ; ª®¯ª¨ ¦ âë
|
||
halt
|
||
djnz $-8
|
||
ret
|
||
; ¤¢®©®© ª«¨ª
|
||
double_press:
|
||
xor a
|
||
ld (MSbutt),a ; á¡à. áâ âãá ¡ãâ®®¢
|
||
jp Press_Enter ; enter.asm
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‚ëç¨á«¥¨¥ ¯®«®¦¥¨ï 㪠§ â¥«ï ¯® ª®®à¤¨ â ¬ ¬ë誨
|
||
; ¤«ï "ªà ⪮£®" ¨ "á।¥£®" ä®à¬ ⮢ ¯ ¥«¥©.
|
||
;
|
||
; ¢å®¤: a=ä®à¬ â ¯ ¥«¨
|
||
; hl=Y ª®®à¤¨ â ¬ë誨
|
||
; b=X ª®®à¤¨ â ¬ë誨
|
||
; c=⥪. ªâ. ¯ ¥«ì (0=«¥¢ ï, 80h=¯à ¢ ï)
|
||
; ¢ë室: hl=¯®«®¦. 㪠§ ⥫ï
|
||
;-----------------------------------------------------------
|
||
event_calc_pointer:
|
||
ld de,files_per_colon ; 25 ä ©«®¢ ª®«®ªã
|
||
and form_brief
|
||
ld a,b ; X ª®®à¤¨ â
|
||
jr z,event_medium__
|
||
; "ªà ⪨©" ä®à¬ â
|
||
dec c ; ªâ. «¥¢ ï ¯ ¥«ì ?
|
||
inc c
|
||
; «¥¢ ï ¯ ¥«ì
|
||
ld c,14 ; ç «® á।¥© ª®«®ª¨
|
||
ld b,27 ; ç «® ¯à ¢®© ª®«®ª¨
|
||
jr z,event_calc__ ; ¤ , «¥¢ ï
|
||
; ¯à ¢ ï ¯ ¥«ì
|
||
ld c,54 ; ç «® á।¥© ª®«®ª¨
|
||
ld b,67 ; ç «® ¯à ¢®© ª®«®ª¨
|
||
event_calc__:
|
||
cp c ; ç «® á।¥© ª®«®ª¨
|
||
ret c
|
||
add hl,de ; ª®®à¤.¬ë誨 + ä ©«®¢ ª®«®ªã
|
||
event_calc1__:
|
||
cp b ; ç «® ¯à ¢®© ª®«®ª¨
|
||
ret c
|
||
add hl,de
|
||
ret
|
||
;
|
||
; "á।¨©" ä®à¬ â
|
||
event_medium__:
|
||
dec c ; ªâ. «¥¢ ï ¯ ¥«ì ?
|
||
inc c
|
||
; «¥¢ ï ¯ ¥«ì
|
||
ld b,20 ; ç «® á।¥© ª®«®ª¨
|
||
jr z,event_calc1__ ; ¤ , «¥¢ ï
|
||
; ¯à ¢ ï ¯ ¥«ì
|
||
ld b,60 ; ç «® á।¥© ª®«®ª¨
|
||
jr event_calc1__
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; “áâ ®¢ª ¬ë誮© ªâ¨¢®© ¯ ¥«¨
|
||
;
|
||
; ¢å®¤: hl=Y/X ª®®à¤¨ âë
|
||
; ¢ë室: h=Y ª®à४â. ª®®à¤¨ â
|
||
;-----------------------------------------------------------
|
||
mouse_set_active_panel:
|
||
ld a,(cur_panel) ; 0=«¥¢ ï, 80h=¯à ¢ ï
|
||
or a
|
||
ld a,l
|
||
jr nz,mouse_set__ ; ªâ. ¯à ¢ ï
|
||
cp 40 ; ç «® ¯à ¢®© ¯ ¥«¨
|
||
call nc,mouse_set_panel ; ãáâ. ªâ. ¯ ¥«ì
|
||
ret
|
||
mouse_set__:
|
||
cp 40 ; ç «® ¯à ¢®© ¯ ¥«¨
|
||
call c,mouse_set_panel ; ãáâ. ªâ. ¯ ¥«ì
|
||
ret
|
||
;
|
||
mouse_set_panel:
|
||
push hl ; á®åà. ª®®à¤¨ âë ¬ë誨
|
||
ld hl,D48B1 ; ä« £ ¨¢¥àᨨ
|
||
ld (hl),false ; á¡à. ¨¢¥àá¨î path-áâப¨
|
||
push hl
|
||
call clear_pointer ; ã¡à âì 㪠§ ⥫ì
|
||
call prn_up_path ; ¢ë¢®¤ ¯ã⨠⥪. ¯ ¥«¨ ¡¥§ ¨¢¥àᨨ
|
||
call change_panel ; ᬥ¨âì ªâ. ¯ ¥«ì
|
||
pop hl
|
||
ld (hl),true ; ¨¢¥àá¨ï path-áâப¨
|
||
call prn_up_path ; ¢ë¢®¤ ¯ã⨠⥪. ¯ ¥«¨ á ¨¢¥àᨥ©
|
||
call print_compath ; ¢ë¢®¤ ¯ã⨠¢ ª®¬-áâப¥
|
||
pop hl
|
||
ret
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Ž¡à ¡®âª ¬ë誨 â¨â«¥ ¯ ¥«¨
|
||
;
|
||
; ¢å®¤: hl=Y/X ⥪áâ. ª®®à¤¨ âë ¬ë誨
|
||
;-----------------------------------------------------------
|
||
event_title:
|
||
ld a,(buttons_bits) ; ¡¨âë ¦ â¨ï ¡ãâ®®¢
|
||
bit 0,a ; ¯à ¢ë© ¡ãâ® ?
|
||
jr nz,event_title_right ; ¤
|
||
ld a,l ; X ª®®à¤¨ â
|
||
cp 1 ; ¡ãª¢ á®àâ¨à®¢ª¨
|
||
jp z,select_left_drive ; ¬¥î ¢ë¡®à ¤¨áª®¢
|
||
cp 41 ; ¡ãª¢ á®àâ¨à®¢ª¨
|
||
jp z,select_right_drive ; ¬¥î ¢ë¡®à ¤¨áª®¢
|
||
cp 2 ; «¥¢®© ¯ ¥«¨
|
||
jr z,event_title_sort
|
||
cp 42 ; ¯à ¢®© ¯ ¥«¨
|
||
jr z,event_title_sort
|
||
; “ª § ⥫ì áâப㠢¢¥àå
|
||
call up ; 㪠§ ⥫ì áâப㠢¢¥àå
|
||
jr event_title_wait ; § ¤¥à¦ª ¯¥à¥¬¥é. 㪠§ ⥫ï
|
||
;
|
||
; ‹¨áâ ¨¥ áâà ¨æ¥©
|
||
event_title_right:
|
||
call page_up ; PageUp
|
||
call get_fire
|
||
jr event_title_wait
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20> áâப㠢¨§, ¥á«¨ ¬ëèª 27-© áâப¥
|
||
;-----------------------------------------------------------
|
||
event_footerline:
|
||
call test_show_panels ; â¥áâ ०¨¬ ¢ª«. ¯ ¥«¥©
|
||
ret z
|
||
push bc
|
||
call mouse_set_active_panel ; ãáâ. ¬ë誮© ªâ. ¯ ¥«ì
|
||
pop bc
|
||
bit 0,c ; ¯à ¢ë© ¡ãâ® ?
|
||
jr nz,event_foot_right ; ¤
|
||
; “ª § ⥫ì áâப㠢¨§
|
||
call down
|
||
event_title_wait:
|
||
call show_pointer ; ¢ë¢¥á⨠㪠§ ⥫ì (ª®£¤ ¥ ¢ë¢®¤ïâ up/down)
|
||
ei
|
||
halt
|
||
halt
|
||
halt
|
||
ret
|
||
;
|
||
; ‹¨áâ ¨¥ áâà ¨æ¥©
|
||
event_foot_right:
|
||
call page_down ; PageDown
|
||
call get_fire
|
||
jr event_title_wait
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Ž¡à ¡®âª ᨬ¢®« "áâ५ª " á®àâ¨à®¢ª¨ ¯ ¥«¥©
|
||
;-----------------------------------------------------------
|
||
event_title_sort:
|
||
ld hl,sort_type
|
||
ld c,(hl) ; n/x/.. ¡ãª¢ á®àâ¨à®¢ª¨
|
||
ld a,"u"
|
||
cp c ; unsort ?
|
||
call nz,sorting_list ; ®¡®¢¨âì ¯ ¥«ì á ®¢®© á®àâ¨à®¢ª®©
|
||
call show_pointer ; ¢ë¢¥á⨠㪠§ ⥫ì
|
||
jp get_fire ; § é¨â ®â "§ «¨¯ ¨ï" ¡ãâ®®¢
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; Ž¡à ¡®âª ¬ë誨 key-¡ à¥
|
||
;
|
||
; ¢å®¤: hl=Y/X ⥪áâ. ª®®à¤¨ âë ¬ë誨
|
||
;---------------------------------------------------------------------
|
||
event_keybar:
|
||
db 3Eh ; ld a,..
|
||
buttons_bits:
|
||
db 0 ; ¡¨âë ¦ â¨ï ¡ãâ®®¢
|
||
ld c,a
|
||
ld a,h
|
||
cp 27 ; Y ª®®à¤¨ â
|
||
jr z,event_footerline
|
||
bit 0,c ; ¯à ¢ë© ¡ãâ® ?
|
||
ret nz ; ¤
|
||
ld a,h
|
||
cp 31 ; Y ª®®à¤¨ â
|
||
jp nz,event_comline ; â¥áâ ª®¬. áâபã
|
||
ld a,l ; X ª®®à¤¨ â
|
||
push af
|
||
call get_fire ; § é¨â ®â "§ «¨¯ ¨ï"
|
||
pop af
|
||
cp 8
|
||
ret c; ; F1 ¯ãªâ
|
||
cp 16
|
||
jp c,user_menu ; F2 ¯ãªâ
|
||
cp 24
|
||
jp c,file_viewer ; F3 ¯ãªâ
|
||
cp 32
|
||
ret c; ; F4 ¯ãªâ
|
||
cp 40
|
||
jp c,copy ; F5 ¯ãªâ
|
||
cp 48
|
||
jp c,rename ; F6 ¯ãªâ
|
||
cp 56
|
||
jp c,make_folder ; F7 ¯ãªâ
|
||
cp 64
|
||
jp c,delete ; F8 ¯ãªâ
|
||
cp 72
|
||
jp nc,quit ; F10 ¯ãªâ
|
||
; F9 ¯ãªâ
|
||
jp main_menu
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; Ž¡à ¡®âª ¬ë誨 ª®¬ ¤®© áâப¥
|
||
;---------------------------------------------------------------------
|
||
event_comline:
|
||
cp 30 ; Y ¯®«®¦. ª®¬-áâப¨
|
||
ret nz
|
||
ld a,(EvComMouse1+1) ; X ç «® ¯®«ï ¢¢®¤ ª®¬-áâப¨
|
||
ld h,a
|
||
push hl ; l=X ª®®à¤¨ â
|
||
call get_fire ; § é¨â ®â "§ «¨¯ ¨ï"
|
||
pop hl
|
||
ld a,l
|
||
sub h
|
||
ret c ; ¬ëèª «¥¢¥¥ áâப¨ ¢¢®¤
|
||
ld de,(YXpos+1) ; ç «® ¯®«ï ¢¢®¤ ª®¬-áâப¨
|
||
ld (CursorPos),de
|
||
ld iy,ComLineBuff ; áâàãªâãà ¡ãä¥à ª®¬-áâப¨
|
||
jp enter_to_comline
|