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

261 lines
6.2 KiB
NASM
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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; •í­¤«ë áâà ­¨æ ¬¥­¥¤¦¥à 
id_block: db -1 ; ¤¥áªà¨¯â®à ¢ë¤¥«. ¡«®ª  ¯ ¬ïâ¨
;
page_sys_screen: db -1 ; +0 á¨áâ. íªà ­, +2800h ¤ ­­ë¥ user-menu
page_dial_screen: db -1 ; ¡ãä¥à á®åà. ¤¨ «. ®ª®­ ¨ ¢¥àâ. ¬¥­î
page_left_dir: db -1 ; ᯨ᮪ «¥¢®© ¯ ­¥«¨
page_right_dir: db -1 ; ᯨ᮪ ¯à ¢®© ¯ ­¥«¨
page_manager: db -1 ; ®á­. ª®¤ ¬¥­¥¤¦¥à 
page_module0: db -1 ; ¤à ©¢¥àë ª« ¢ë, ¬ë誨, ¤¨ «. ª®¤ á ®¡à ¡.
page_module1: db -1 ; ®¯¨á â¥«¨ ¯ ­¥«¥©
page_spec: db -1 ; áâà ­¨æ  à §¡®à  ᯥª-ä㭪権
page_viewer: db -1 ; áâà ­¨æ  ¢ìî¥à 
;
;db -1
db 0 ; á⮯-¡ ©â
;
DSS_PAGE: db -1 ; á®åà. ¯®àâ 82h
port_E2: db -1 ; á®åà. ¯®àâ 0E2h
port_89: db -1 ; á®åà. ¯®àâ 89h
;
lastdrive: db 'B'-'A' ; ¯®á«¥¤­¨© ¤¨áª ¢ á¨á⥬¥ (0..25)
;-------------------------------------------------
; ‚ë§®¢ „Ž‘-à¥áâ àâ 
;-------------------------------------------------
int10: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS
int__: PUSH AF
di
ld a,(page_module0)
out (SLOT0),a ; ¢®ááâ. áâà. ¤à ©¢¥à®¢ ª« ¢ë, ¬ë誨
ei
POP AF
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h
;-------------------------------------------------
int18: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS.DRV
jr int__
;-------------------------------------------------
; ‚ë§®¢ RST 10h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt10: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS
alt__: PUSH AF
di
ld a,(page_spec)
out (SLOT0),a ; ¢®ááâ. áâà.
ei
POP AF
ret
;-------------------------------------------------
; ‚ë§®¢ RST 18h ¨§ ᯥª-áâà ­¨æë
;-------------------------------------------------
alt18: PUSH AF
di
ld a,(DSS_PAGE) ; ¤®á-áâà ­¨æ 
out (SLOT0),a
ei
POP AF
rst ToDSS.DRV
jr alt__
;-----------------------------------------------------------------------
INCLUDE 'fview_core.asm' ; ¯à®æ¥¤ãàë ¢ë室  ¨§ £«ï¤¥«ª¨
;-----------------------------------------------------------------------
; à ¡®ç¨© ¡ãä¥à ”Œ
work_buffer: ds 512
ds 80
stack: ; á⥪ ”Œ
begin: ; ã§­ âì boot-¤¨áª á¨á⥬ë
ld bc,0009h
rst ToDSS
add a,"A"
ld (ccp_name),a ; launch.asm
; ¨­¨æ. ­®¬¥à  áâà ­¨æ ¢ áâàãªâãà å ¯ ­¥«¥©
ld a,(page_left_dir)
ld (cash_left_dir),a
ld a,(page_right_dir)
ld (cash_right_dir),a
; ¢ª«. ¢ #4000 áâà. ”Œ
ld a,(page_module1)
out (SLOT1),a
; á®åà. ⥪. ¤¨áª
ld c,2
rst ToDSS
ld (save_disk),a
; á®åà. ⥪ã騩 ¯ãâì
ld hl,save_path
ld c,1Eh
rst ToDSS
include 'shell.asm' ; ä ©«¥à
include 'fillstr.asm' ; § ¯®«­¥­¨¥ áâப¨ ä ©«¥à 
include 'event.asm' ; ç⥭¨¥ ᮡë⨩
include 'mouse.asm' ; ¬ë誠
include 'keybar.asm' ; key-¡ à
include 'clock.asm' ; ç áë ¯ ­¥«¥©
include 'setup.asm' ; ç⥭¨¥/§ ¯¨áì ini-ä ©« , mnu-ä ©«
include 'space.asm' ; ᢮¡. ®¡ê¥¬ ¤¨áª 
include 'hilight.asm' ; ¯®¤á¢¥âª  ä ©«®¢
include 'readdsk.asm' ; ç⥭¨¥ ­®¢®© ¯ ¯ª¨
include 'enter.asm' ; ®¡à ¡®âª  ­ ¦ â¨ï <Enter>
include 'launch.asm' ; § ¯ã᪠䠩«®¢
include 'pos.asm' ; ¯®§¨æ. 㪠§ â¥«ï ¯®á«¥ ᬥ­ë ᯨ᪠
include 'utils.asm' ; ¢á¯®¬. ¯à®æ¥¤ãàë
include 'copy.asm' ; ª®¯¨à®¢ ­¨¥ ä ©«®¢
include 'info.asm' ; info-०¨¬ ¯ ­¥«¨
include 'qview.asm' ; qview-०¨¬ ¯ ­¥«¨
include 'mkdir.asm' ; á®§¤ ­¨¥ ¯ ¯ª¨ (F7)
include 'delete.asm' ; 㤠«¥­¨¥ ä ©« /¯ ¯ª¨ (F8)
include 'rename.asm' ; ¯¥à¥¨¬¥­®¢ ­¨¥ ä ©«  (F6)
;include 'mod2/debug.asm'
; <20>¥¦¨¬ à ¡®âë ¢ìî¥à 
viewer_mode: db 0 ; 0=®¡ëç­ë©, 1=¯ ­¥«ì­ë©
attr_record: db 0 ;  âਡãâ ⥪. § ¯¨á¨ ᯨ᪠ ª â «®£ 
del_confirm: db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ä ©«®¢/¯ ¯®ª
flag_del_non_empty:
db true ; ä« £ ¯®¤â¢. 㤠«¥­¨ï ­¥ ¯ãáâëå ¯ ¯®ª
move_home_end: db false ; ä« £ ®âà ¡®âª¨ Home/End ¯à¨ ®âªà. ¯ ­¥«ïå
enable_mnu_file:db false ; ä« £ ­ «¨ç¨ï mnu-ä ©« 
;-------------------------------------------------
; ‘â ­¤ àâ­ë© ¢ë室 ¢ „Ž‘
;-------------------------------------------------
exit: ld a,b
ld (return_code+1),a ; á®åà. ª®¤ ¢®§¢à â 
; ¢®ááâ. „Ž‘-áâà ­¨æã
di
ld a,(DSS_PAGE)
out (SLOT0),a
ei
; ¯®«®¦. á¨áâ. ¬ë誨 ¯® ¬¥áâ­®¬ã ¤à ©¢¥àã
Xcoord+1: ld hl,0 ; ª®®à¤¨­ â  X (0..639)
Ycoord+1: ld de,0 ; ª®®à¤¨­ â  Y (0..255)
ld c,4 ; ãáâ. ¯®«®¦. ¬ë誨
rst 30h
; ãáâ. á¨áâ. ¤¨áª ¨ ¯ãâì  ªâ. ¯ ­¥«¨
call set_path_from_activ_panel
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_89)
out (PORT_Y),a
; ¢®ááâ. á¨áâ. íªà ­
ld c,0B3h
ld a,(page_sys_screen) ; áâà ­¨æ  ¡ãä¥à 
call screen__
; ¢®ááâ. §­ ç¥­¨¥ ¯®àâ 
ld a,(port_E2)
out (SLOT3),a
; ¢®ááâ. ¯®«®¦. ªãàá®à  á¨áâ. íªà ­ 
sys_cursor_coords:
ld de,0
ld c,84h
rst 08h
; ®á¢®¡. ¢ë¤¥«¥­­ë© ¡«®ª ¯ ¬ïâ¨
ld a,(id_block)
ld c,3Eh
rst ToDSS
; ®ç¨áâ¨âì ¡ãä¥à á¨áâ. ª« ¢ë
ld bc,3135h
rst ToDSS
return_code: ld b,0 ; ª®¤ ¢®§¢à â 
ld c,41h
rst ToDSS
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© á¨á⥬­ë© íªà ­
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­ 
screen__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
scrn1__: ld ix,0C000h ;  ¤à¥á ¡ãä¥à  ¤«ï ¤ ­­ëå
scrn2__: ld b,a
xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
ld e,a ; X ¯®«®¦.
ld d,a ; Y ¯®«®¦.
di
rst 08h
ei
ret
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. á¨á⥬­ë© íªà ­ ¤® ª®¬. áâப¨
;-----------------------------------------------------------
; ¢å®¤: C = #B2/#B3 á®åà./¢®ááâ. íªà ­
; A = ­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen1__: ld hl,1E50h ; ¢ëá®â /è¨à¨­  íªà ­ 
jr scrn1__
;-----------------------------------------------------------
; ‘®åà ­¨âì/¢®ááâ. ¯®«­ë© íªà ­ ¬¥­¥¤¦¥à 
;-----------------------------------------------------------
; in: c=#B2/#B3 á®åà./¢®ááâ. íªà ­
; a=­®¬¥à áâà ­¨æë ¡ãä¥à  ®ª­  (page_sys_screen)
screen2__: ld hl,2050h ; ¢ëá®â /è¨à¨­  íªà ­ 
ld ix,0C000h+1400h ; ­ ç «® íªà ­  ¬¥­¥¤¦¥à 
jr scrn2__
;-----------------------------------------------------------
; <20>¥áâ àâ ¤«ï Œ¥­î ¨ ¤¨ «. ®ª®­
;-----------------------------------------------------------
scrn4__: ld b,a
scrn5__: xor a ; ¨¤¥­â¨ä. £«®¡. ®ª­ 
di
rst 08h
ei
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;