mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
261 lines
6.2 KiB
NASM
261 lines
6.2 KiB
NASM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
; •í¤«ë áâà ¨æ ¬¥¥¤¦¥à
|
||
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
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |