File-Manager/CORE/KEYBAR.ASM
2025-04-05 01:58:39 +10:00

345 lines
8.0 KiB
NASM
Executable File
Raw Permalink 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.

;-----------------------------------------------------------
; ‚뢮¤ à §­ëå á®áâ®ï­¨© key-¡ à  ¨ ®¡à ¡®â稪¨ ¥£® ®¯æ¨©
;-----------------------------------------------------------
; ­®à¬ «ì­ ï áâப  key-¡ à 
keybar_norm:
db "1Help "
db "2UserMn "
db "3View "
db "4Edit "
db "5Copy "
db "6RenMov "
db "7MkFold "
db "8Delete "
db "9ConfMn "
db "10Quit "
; áâப  key-¡ à  á Ctrl+..
keybar_ctrl:
db "1 "
db "2 "
db "3Name "
db "4Extens "
db "5Date "
db "6Size "
db "7Unsort "
db "8 "
db "9 "
db "10 "
; áâப  key-¡ à  á Alt+..
keybar_alt:
db "1Left "
db "2Right "
db "3 " ; "3View.. "
db "4 " ; "4Edit.. "
db "5 " ; "5Print "
db "6 "
db "7 " ; "7Find "
db "8 "
db "9 "
db "10 "
; áâப  key-¡ à  á Shift+..
keybar_shift:
db "1 "
db "2 "
db "3 "
db "4 "
db "5 "
db "6 "
db "7 "
db "8 "
db "9 "
db "10 "
;  âਡãâë áâப¨ key-¡ à 
keybar_attr:
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 1
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 2
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 3
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 4
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 5
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 6
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 7
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 8
db kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f,kb_b ; 9
db kb_b,kb_b,kb_f,kb_f,kb_f,kb_f,kb_f,kb_f ; 10
__pointer:
call show_pointer ; ¢ë¢¥á⨠㪠§ â¥«ì (¥á«¨ ¯ ­¥«¨ ¢ª«.)
;-----------------------------------------------------------
; <20> ç «ì­ë© ¢ë¢®¤ áâப¨ key-¡ à  (áâப  á  âਡãâ ¬¨)
;-----------------------------------------------------------
print_keybar:
ld de,keybar_norm ; ⥪áâ
print_keybar1:
ld hl,037Dh ; 0301h + (4*31)
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
di
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
ld l,l ; ª®¯¨à®¢ âì ¡«®ª
ld a,(de)
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,a ; ª®¯¨à®¢ ­¨¥ ¡«®ª  (¢¥àâ. «¨­¨¨)
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
; ¢ë¢®¤  âਡã⮢
ld de,keybar_attr ; áâப   âਡã⮢
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (PORT_Y),a
inc hl ; ¯¥à¥©â¨ ­   âਡãâë
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
ld l,l ; ª®¯¨à®¢ âì ¡«®ª
ld a,(de)
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,a ; ª®¯¨à®¢ ­¨¥ ¡«®ª  (¢¥àâ. «¨­¨¨)
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
ret
;-----------------------------------------------------------
; ‚뢮¤ áâப¨ key-¡ à  ¤«ï ᯥæ-ª« ¢¨è (Ctrl,Alt,Shift)
; ¨ ¯¥à¥å®¤ ­  ®¡à ¡®â稪¨ ®¯æ¨© key-¡ à .
; (áâப  key-¡ à  ¤«ï ᯥæ-ª« ¢¨è ¢ë¢®¤¨âáï ¡¥§  âਡã⮢)
;-----------------------------------------------------------
; ¢å®¤: a = ¯à¨§­ ª ­ ¦ â¨ï Ctrl,Alt,Shift
;
change_keybar:
ld (keybar2__+1),a
ld de,keybar_ctrl ; áâப 
bit 5,a ; Ctrl+
jr nz,keybar__
ld de,keybar_alt ; áâப 
bit 4,a ; Alt+
jr nz,keybar__
ld de,keybar_shift ; áâப 
keybar__:
ld hl,037Dh ; 0301h + (4*31)
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
di
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,81h ; +0 (ᬥé. á«¥¢ )
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,80 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
ld l,l ; ª®¯¨à®¢ âì ¡«®ª
ld a,(de)
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,a ; ª®¯¨à®¢ ­¨¥ ¡«®ª  (¢¥àâ. «¨­¨¨)
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
ld hl,__pointer ; â®çª  ¢ë室 
push hl
; â¥áâ ­  "§ «¨¯ ­¨¥" ª« ¢¨è
keybar1__:
ld a,3 ; â¥áâ ­ ¦ â¨ï ª« ¢¨è
rst 20h
ld a,b
and 11110000b ; test Ctrl,Alt,Shift
jr nz,keybar1__ ; ¯®ª  ­ ¦ âë
ld a,2 ; ®¯à®á ª« ¢ë
rst 20h
ret z ; ¡ë«¨ ⮫쪮 Crtl,Alt,Shift
keybar2__:
ld b,0 ; á®åà. ¡¨âë ª« ¢¨è Ctrl,Alt,Shift
keybar_options:
res 7,d ; á¡à. 7-© ¡¨â
ld a,d
; b=¡¨â ª« ¢¨è Ctrl, Alt, Shift
; a=᪥­-ª®¤ ª« ¢¨è¨
;////////////////////////////////////////////////////////////////////////
;
; Ž¡à ¡®âª  ®¯æ¨© key-¡ à 
;
;////////////////////////////////////////////////////////////////////////
bit 5,b ; Ctrl+..
jr nz,options_ctrl
bit 4,b ; Alt+..
jr nz,_option_alt
;=====================================================================
;
; Shift-®¯æ¨¨
;
; ¢å®¤: a=᪥­-ª®¤
;=====================================================================
cp 43h ; F9
jp z,write_ini_file ; § ¯¨á âì ini-ä ©«
ret
;=====================================================================
;
; Ctrl-®¯æ¨¨
;
; ¢å®¤: a=᪥­-ª®¤
;=====================================================================
options_ctrl:
cp 2 ; "1" ªà âª¨©  ªâ. ¯ ­¥«¨
jp z,set_format_brief
cp 3 ; "2" á।­¨©  ªâ. ¯ ­¥«¨
jp z,set_format_medium
cp 4 ; "3" ¯®«­ë©  ªâ. ¯ ­¥«¨
jp z,set_format_full
cp 16h ; Ctrl+U ®¡¬¥­ ¯ ­¥«¥©
jp z,swap_panels
cp 25h ; Ctrl+L ¯ ­¥«ì ¨­ä®à¬ æ¨¨
jp z,alt_info_panel
cp 10h ; Ctrl+Q ¯ ­¥«ì ¡ëáâண® ¯à®á¬®âà 
jp z,alt_qview_panel
cp 18h ; Ctrl+O ã¡à âì/¯®ª § âì ¯ ­¥«¨
jp z,hidden_panels
cp 12h ; Ctrl+E ¯à¥¤. áâப  ¨áâ®à¨¨
jp z,prev_history
cp 2Bh ; Ctrl+X á«¥¤. áâப  ¨áâ®à¨¨
jp z,next_history
cp 4Fh ; Ctrl+Del, ®ç¨áâ¨âì ¨áâ®à¨î ª®¬ ­¤
jp z,clear_history
;
ld c,"n" ; name
cp 3Dh ; Ctrl+F3 á®àâ. ¯® ¨¬¥­¨
jp z,sorting_list
ld c,"x" ; ext
cp 3Eh ; Ctrl+F4 á®àâ. ¯® à áè.
jp z,sorting_list
ld c,"d" ; date
cp 3Fh ; Ctrl+F5 á®àâ. ¯® ¤ â¥
jp z,sorting_list
ld c,"s" ; size
cp 40h ; Ctrl+F6 á®àâ. ¯® à §¬¥àã
jp z,sorting_list
ld c,"u" ; unsorted
cp 41h ; Ctrl+F7 ¡¥§ á®àâ¨à®¢ª¨
jp z,sorting_list
;
cp 1Dh ; Ctrl+A ¢ë¢®¤ ®ª­   âਡ. ä ©« /¯ ¯ª¨
;jp z,set_attrib2
cp 28h ; Enter
jp z,put_name_to_comline ; ᪮¯¨à®¢ âì ¨¬ï/¯ãâì ¢ ª®¬-áâபã
cp 4Eh ; Enter æ¨äà. ¯®«ï
jp z,put_name_to_comline
;
cp 1Ah ; Ctrl+[ ¯ãâì «¥¢®© ¯ ­¥«¨ ¢ ª®¬-áâபã
jp z,copy_left_path_panel_to_comline
cp 1Bh ; Ctrl+] ¯ãâì ¯à ¢®© ¯ ­¥«¨ ¢ ª®¬-áâபã
jp z,copy_right_path_panel_to_comline
ret
;=====================================================================
;
; Alt-®¯æ¨¨
;
; ¢å®¤: a=᪥­-ª®¤
;=====================================================================
_option_alt:
cp 3Bh ; F1
jp z,select_left_drive
cp 3Ch ; F2
jp z,select_right_drive
ret
;-------------------------------------------------
; Ctrl+E. ‚áâ ¢¨âì ¯à¥¤. áâப㠨áâ®à¨¨
; ¨ ¢®©â¨ ¢ ª®¬-áâபã
;-------------------------------------------------
prev_history:
call print_keybar ; ¢®ááâ. ­®à¬. key-¡ à
jp up1
;-------------------------------------------------
; Ctrl+X. ‚áâ ¢¨âì á«¥¤. áâப㠨áâ®à¨¨
; ¨ ¢®©â¨ ¢ ª®¬-áâபã
;-------------------------------------------------
next_history:
call print_keybar ; ¢®ááâ. ­®à¬. key-¡ à
jp down1
;-------------------------------------------------
; Ctrl+O. “¡à âì/¯®ª § âì ¯ ­¥«¨
;-------------------------------------------------
hidden_panels:
ld hl,enable_panels
ld a,(hl)
xor 1
ld (hl),a
jr nz,hidden_off
; ‘ªàëâì ¯ ­¥«¨
; ¢ëª«. ¢ë¢®¤ ç á®¢
ld hl,enable_clock ; ä« £
ld a,(hl)
ld (clock__+1),a ; á®åà. ä« £
ld (hl),false
; ¢®ááâ. á¨áâ. íªà ­ ¤® ª®¬-áâப¨
ld c,0B3h
ld a,(page_sys_screen) ; áâà ­¨æ  ¡ãä¥à 
jp screen1__
; <20>®ª § âì ¯ ­¥«¨
hidden_off:
; á®åà. á¨áâ. íªà ­ ¤® ª®¬-áâப¨
ld c,0B2h
ld a,(page_sys_screen) ; áâà ­¨æ  ¡ãä¥à 
call screen1__
; ¢®ááâ. íªà ­ ¬¥­¥¤¦¥à 
call A20FC ; ¢ë¢¥á⨠ áâ. ¯ ­¥«ì
call change_panel ; ᬥ­¨âì ¯ ­¥«ì
call A20FC ; ¢ë¢¥á⨠¯ áá. ¯ ­¥«ì
call change_panel
call show_pointer ; ¢ë¢®¤ 㪠§ â¥«ï
; ¢ª«. ¢ë¢®¤ ç á®¢
ld a,(clock__+1)
ld (enable_clock),a
ret