mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
615 lines
12 KiB
NASM
Executable File
615 lines
12 KiB
NASM
Executable File
; #C000+#2800=#E800
|
||
; <20>ãä¥àë User-¤ ëå
|
||
array_user1 equ 0E800h ; 26*2 ¬ áᨢ 㪠§. ª®¬-áâப¨
|
||
array_user2 equ array_user1+(26*2) ; 72*56 ®¯¨á â¥«ì ¯ãªâ®¢ ¬¥î
|
||
; + 1 ¡ ©â ¯®¤ ª®¥æ ®¯¨á ⥫ï
|
||
array_user3 equ array_user2+(72*26)+1 ; 71*26 ¬ áᨢ ª®¬-áâப
|
||
|
||
; ®áâ ⮪ ¡ ª¨ ¯®á«¥ ¢á¥£® ¬ áᨢ #0944 ¡ ©â.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‚ë§®¢ Œ¥î <20>®«ì§®¢ ⥫ï
|
||
;-----------------------------------------------------------
|
||
user_menu:
|
||
ld a,(enable_mnu_file) ; ä« £ «¨ç¨ï mnu-ä ©«
|
||
or a
|
||
ret z ; ¥â
|
||
ld hl,user_table ; ®¯¨á â¥«ì ¬¥î (mod1)
|
||
call put_user_menu ; ®âà¨á®¢ª ¬¥î
|
||
call get_fire ; § é¨â ®â "§ «¨¯ ¨ï" ¡ãâ®®¢
|
||
call event_user_menu ; ®¡à ¡®â稪 ᮡë⨩ ¬¥î
|
||
;
|
||
ld hl,what
|
||
ld a,(hl)
|
||
cp evCommand
|
||
ret nz
|
||
ld (hl),evRunComLine ; ᮡë⨥ "®âà ¡®â âì ª®¬-áâபã"
|
||
jp get_fire
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20>à®à¨á®¢ª ¬¥î ¯®«ì§®¢ ⥫ï.
|
||
; <20>®«®¦¥¨¥ ¬¥î ®¯à¥¤¥«ï¥âáï è¨à¨®© ¨ ç¨á«®¬ ¯ãªâ®¢.
|
||
; ’ ¡«¨æ ¬¥î:
|
||
; <20>®«®¦¥¨¥ ®ª ¬¥î:
|
||
; +0 - Xo «¥¢ë© ªà ©
|
||
; +1 - Xi ¯à ¢ë© ªà ©
|
||
; +2 - Yo «¥¢ë© 㣮«
|
||
; +3 - Yi ¯à ¢ë© 㣮«
|
||
; +4 - <20>®«®¦¥¨¥ ¯ãªâ ¬¥î:
|
||
; +0 - Xo «¥¢®¥
|
||
; +1 - Xi ¯à ¢®¥
|
||
; +2 - Y ¯®«®¦.
|
||
; +3 - hot-¡ãª¢
|
||
;-----------------------------------------------------------
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ¬¥î
|
||
;-----------------------------------------------------------
|
||
put_user_menu:
|
||
ld a,1
|
||
ld (CurMBox),a ; ®¬¥à ¯ãªâ ¬¥î
|
||
push iy
|
||
ld iy,BoxTabl ; Generes MenuBox mouse table
|
||
ld ix,BoxData
|
||
ld a,(page_sys_screen) ; áâà. user-¤ ëå
|
||
out (SLOT3),a
|
||
ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
inc hl
|
||
ld (usermenu_title+1),de ; ¤à¥á § £®«®¢ª ®ª
|
||
ld a,(hl) ; ¤à¥á ®¯¨á ⥫ï ⥪. ¬¥î
|
||
ld (ix+0),a ; á®åà. ¤à¥á ®¯¨á ⥫ï
|
||
inc hl
|
||
ld h,(hl)
|
||
ld (ix+1),h ;
|
||
ld l,a
|
||
call GetLenB1 ; get in DE len Y,X MenuBox
|
||
; X æ¥â஢ª ¬¥î
|
||
ld a,80 ; è¨à¨ ®ª
|
||
sub e
|
||
srl a ; /2
|
||
ld (iy+0),a ; Xo ¯®«®¦. ®ª ¬¥î
|
||
ld b,a
|
||
inc a
|
||
ld (ix+2),a ; Xo ¯®«®¦. ¯ãªâ ¬¥î
|
||
ld a,e ; è¨à¨ ®ª (¡¥§ ⥨)
|
||
sub 2
|
||
ld (ix+5),a ; è¨à¨ ®ª ¡¥§ à ¬ª¨
|
||
ld a,e
|
||
add a,b ; + Xo ¯®«®¦. ®ª ¬¥î
|
||
ld (iy+1),a ; X ¯à ¢ë© ªà © ®ª ¬¥î
|
||
dec a
|
||
ld (ix+3),a ; Xi ¯à ¢ë© ªà © ¯ãªâ ¬¥î
|
||
; Y æ¥â஢ª ¬¥î
|
||
ld a,30 ; ¢ëá®â ®ª
|
||
sub d
|
||
srl a ; /2
|
||
ld (iy+2),a ; Yo ¯®«®¦. ®ª ¬¥î
|
||
ld (ix+4),a ; Temp Y posit for element box
|
||
ld b,a
|
||
ld a,d ; ¢ëá®â ®ª (¡¥§ ⥨)
|
||
add a,b ; Yi (+ Y ¯®«®¦. ®ª ¬¥î)
|
||
ld (iy+3),a
|
||
call SaveBox ; á®åà. íªà ¯®¤ ¡ã¤ã騬 ®ª®¬
|
||
in a,(SLOT3)
|
||
push af
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
out (SLOT3),a
|
||
; ç «® ¢áâ ¢ª¨ ®ª á â¥ìî ¢ ¡ãä¥à
|
||
ld hl,LC000+MaxDialWin
|
||
ld bc,4
|
||
add iy,bc ; ¤à¥á ®¯¨á â¥«ï ¬¥î
|
||
exx
|
||
ld hl,LC000
|
||
ld a,(ix+5) ; è¨à¨ ®ª
|
||
inc a
|
||
inc a
|
||
add a,a
|
||
ld e,a
|
||
ld d,0
|
||
add hl,de
|
||
exx
|
||
ld a,(color_array+15) ; 梥⠢¥àâ. ¬¥î
|
||
ld c,a
|
||
; æ¥â஢ª § £®«®¢ª
|
||
push hl
|
||
ld de,(usermenu_title+1) ; ¤à¥á § £®«®¢ª ®ª
|
||
ld a,(de) ; ¤«¨ § £®«®¢ª
|
||
ld b,a
|
||
ld a,(ix+5) ; è¨à¨ ®ª
|
||
sub b
|
||
srl a ; /2
|
||
add a,a ; ãç¥áâì âਡãâë (१ã«ìâ ⠢ᥣ¤ ç¥âë©)
|
||
ld e,a
|
||
ld d,0
|
||
add hl,de
|
||
ld (usermenu_addr+1),hl ; ¤à¥á ¢áâ ¢ª¨
|
||
pop hl
|
||
; à ¬ª ®ª
|
||
ld (hl),"É" ; «¥¢ë© ¢¥àå. 㣮«
|
||
inc hl
|
||
ld (hl),c ; 梥â
|
||
inc hl
|
||
ld b,(ix+5) ; è¨à¨ ®ª
|
||
ld a,"Í"
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
djnz $-4
|
||
ld (hl),"»" ; ¯à ¢ë© ¢¥àå. 㣮«
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
;
|
||
push hl
|
||
usermenu_title:
|
||
ld de,0 ; ¤à¥á â¨â« ®ª
|
||
usermenu_addr:
|
||
ld hl,0 ; ¤à¥á ¢áâ ¢ª¨
|
||
ld a,(de)
|
||
ld b,a ; ¤«¨ áâப¨
|
||
inc de
|
||
ld (hl)," "
|
||
inc hl
|
||
inc hl
|
||
ld a,(de)
|
||
ld (hl),a
|
||
inc hl
|
||
inc hl ; âਡãâ
|
||
inc de
|
||
djnz $-5
|
||
ld (hl)," "
|
||
pop hl
|
||
;
|
||
ld b,3
|
||
call copy_cell
|
||
exx
|
||
ld a,(hl)
|
||
inc hl
|
||
add hl,de
|
||
exx
|
||
ld (hl),a
|
||
inc hl
|
||
ld e,(ix+0) ;; de= ¤à¥á ᯨ᪠¯ãªâ®¢
|
||
ld d,(ix+1)
|
||
; 横« ¢ë¢®¤ ¯ãªâ®¢ ¬¥î
|
||
usermenu_loop:
|
||
inc (ix+4) ; 㢥«¨ç¨âì Y-¯®«®¦. ¯ãªâ ¬¥î
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
cp -2 ; à §¤¥«¨â¥«ì
|
||
jr nz,usermenu1__
|
||
; ¢áâ ¢¨âì à §¤¥«¨â¥«ì ¯ãªâ®¢
|
||
inc de
|
||
ld (hl),"Ç"
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
ld b,(ix+5) ; è¨à¨ ¯ãªâ
|
||
ld a,"Ä"
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
djnz $-4
|
||
ld (hl),"¶"
|
||
jr usermenu3__
|
||
usermenu1__:
|
||
cp -1 ; ª®¥æ ®¯¨á ⥫ï ?
|
||
jp z,usermenu4__ ; ¤
|
||
ld a,(ix+2)
|
||
ld (iy+0),a ;+0 Xo coord
|
||
inc iy
|
||
ld a,(ix+3)
|
||
ld (iy+0),a ;+1 Xi coords
|
||
inc iy
|
||
ld a,(ix+4)
|
||
ld (iy+0),a ;+2 Y coords
|
||
inc iy
|
||
ld (hl),"º"
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
ld b,2 ; 2 ¯à®¡¥« ¢ ç «¥ ¯ãªâ
|
||
ld (hl)," "
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
djnz $-5
|
||
inc b ; b=1
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
usermenu2__:
|
||
inc de
|
||
cp "&"
|
||
call z,Bhotkey2__ ; ¢áâ ¢¨âì hot-¡ãª¢ã
|
||
ld (hl),a ; Put name element
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
inc b
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
or a ; ª®¥æ ¨¬¥¨ ?
|
||
jr nz,usermenu2__
|
||
inc de ; de=ï祩ª ᪥-ª®¤ ¯ãªâ
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
ld (iy+0),a ;+3 ᪥-ª®¤ hot-ª« ¢¨è¨
|
||
inc iy
|
||
inc de
|
||
ld a,(ix+5) ; è¨à¨ ⥪. ¯ãªâ
|
||
dec a
|
||
sub b
|
||
ld b,a
|
||
ld (hl)," " ; § ¯®«¨âì ®áâ ⮪ ¯ãªâ
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
djnz $-5
|
||
ld (hl),"º"
|
||
usermenu3__:
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
exx
|
||
ld a,(hl)
|
||
inc hl
|
||
inc hl
|
||
exx
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),color_shadow ; 梥â ⥨
|
||
inc hl
|
||
exx
|
||
ld a,(hl)
|
||
inc hl
|
||
inc hl
|
||
add hl,de
|
||
exx
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),color_shadow ; 梥â ⥨
|
||
inc hl
|
||
jp usermenu_loop ; § ¤ ¢ 横«
|
||
;
|
||
usermenu4__:
|
||
ld (iy+0),80h ; ª®¥æ â ¡«¨æë ¯ãªâ®¢
|
||
ld (hl),"È"
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
ld b,(ix+5)
|
||
ld a,"Í"
|
||
ld (hl),a
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
djnz $-4
|
||
ld (hl),"¼"
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
; ¢áâ ¢¨âì 2 ⥨ 㣫 "Ù"
|
||
ld b,2
|
||
call print_shadow
|
||
; ¢áâ ¢¨âì ¨¦îî â¥ì
|
||
ld b,4
|
||
call copy_cell ; ᪮¯¨à. ï祩ª¨
|
||
ld b,(ix+5) ; Full Len box
|
||
inc b
|
||
inc b
|
||
call print_shadow
|
||
pop af
|
||
out (SLOT3),a
|
||
call PutBox
|
||
pop iy
|
||
jp USetBoxI ; Set box invert
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; “áâ ®¢¨âì æ¢¥â hot-¡ãª¢ë ¯ãªâ user-¬¥î
|
||
;-------------------------------------------------
|
||
Bhotkey2__:
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
ld (hl),a ; hot-¡ãª¢ã ¢ ¡ãä¥à
|
||
inc hl
|
||
inc de
|
||
push de
|
||
ld a,(color_array+17) ; 梥â hot-¡ãª¢ë ¬¥î
|
||
and 0Fh
|
||
ld e,a
|
||
ld a,(color_array+15) ; 梥⠢¥àâ. ¬¥î
|
||
and 0F0h
|
||
or e
|
||
ld (hl),a ; âਡãâ
|
||
pop de
|
||
inc hl
|
||
call get_user_byte ; ¢§ïâì ¡ ©â ¨§ áâà. user-¤ ëå
|
||
inc de
|
||
inc b
|
||
ret
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‚ëç¨á«¨âì è¨à¨ã ⥪ã饣® ®ª ¢¥àâ. ¬¥î
|
||
;
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ¬¥î
|
||
; ¢ë室: de=¢ëá®â /è¨à¨ ®ª
|
||
;----------------------------------------------------------
|
||
GetLenB1:
|
||
ld de,0207h ; Y/X à §¬¥àë
|
||
ld b,e
|
||
dec b
|
||
GetL1: ld a,(hl)
|
||
inc hl
|
||
cp -1 ; ª®¥æ ®¯¨á ⥫ï ?
|
||
ret z
|
||
cp -2 ; à §¤¥«¨â¥«ì ¯ãªâ®¢ ?
|
||
jr z,AddLn
|
||
GetL2: inc b
|
||
GetL3: ld a,(hl)
|
||
inc hl
|
||
cp "&" ; hot-¡ãª¢
|
||
jr z,GetL3
|
||
or a ; ª®¥æ §¢ ¨ï ¯ãªâ ?
|
||
jr nz,GetL2 ; ¥â
|
||
inc hl ; ¯à®©â¨ ᪥-ª®¤
|
||
ld a,b
|
||
cp e
|
||
jr c,AddLn
|
||
ld e,b
|
||
AddLn: inc d
|
||
ld b,6 ; b=e-1
|
||
jr GetL1
|
||
|
||
|
||
|
||
; ‚§ïâì ¡ ©â ¨§ áâà ¨æë user-¤ ëå
|
||
; ¢å®¤: de= ¤à¥á ¤ ëå
|
||
get_user_byte:
|
||
in a,(SLOT3)
|
||
push af
|
||
ld a,(page_sys_screen) ; áâà. user-¤ ëå
|
||
out (SLOT3),a
|
||
ld a,(de)
|
||
ex af,af'
|
||
pop af
|
||
out (SLOT3),a ; ¢®ááâ. áâà.
|
||
ex af,af'
|
||
ret
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
;
|
||
; Ž¡à ¡®â稪 ᮡë⨩ Œ¥î <20>®«ì§®¢ ⥫ï
|
||
;
|
||
;-----------------------------------------------------------
|
||
event_user_menu:
|
||
call handle_event ; ç¨â ¥¬ ᮡë⨥
|
||
ld hl,what
|
||
ld de,event_user_menu
|
||
push de
|
||
ld a,(hl) ;+0 ã§ âì ᮡë⨥
|
||
inc hl
|
||
cp evMouseFr ; ¦ âë ¡ãâ®ë ¬ë誨
|
||
jp z,user_menu_mouse
|
||
cp evKeyboard ; ¦ âë ®¡ëçë¥ ª« ¢¨è¨
|
||
jr z,user_menu_keys
|
||
cp evCombKey ; ¦ âë ªãàá. ª« ¢¨è¨ ¨ á«ã¦.
|
||
jr z,user_menu_ckeys
|
||
ret
|
||
;
|
||
user_menu_exit:
|
||
call CloseBx ; § ªàëâì ¬¥î
|
||
pop de ; ¢®ááâ. ¡ « á á⥪
|
||
ld hl,what
|
||
ld (hl),evNothing ; "¥â ᮡë⨩"
|
||
ret
|
||
|
||
;-------------------------------------------------
|
||
; Ž¡ëçë¥ ª« ¢¨è¨
|
||
;-------------------------------------------------
|
||
user_menu_keys:
|
||
ld a,(hl) ;+1 ª®¤ ª« ¢¨è¨
|
||
cp 1Bh ; Esc
|
||
jr z,user_menu_exit
|
||
cp 0Dh ; Enter
|
||
jr nz,user_menu_keys1
|
||
ld a,(CurMBox)
|
||
ld b,a
|
||
ld ix,BoxTabl ; ¯®¨áª ¯ãªâ ¬¥î
|
||
ld de,4
|
||
add ix,de
|
||
djnz $-2
|
||
jp UBxEnt
|
||
;
|
||
user_menu_keys1:
|
||
inc hl
|
||
ld a,(hl) ;+2 ᪥-ª®¤ ª« ¢¨è¨
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ ¬¥î
|
||
ld bc,4
|
||
ld h,b
|
||
user_menu_keys2:
|
||
inc h
|
||
add ix,bc
|
||
bit 7,(ix+0)
|
||
ret nz ; ª®¥æ â ¡«¨æë ¯ãªâ®¢
|
||
cp (ix+3) ; ᪥-ª®¤ hot-ª« ¢¨è¨
|
||
jr nz,user_menu_keys2
|
||
jp UBxHotEx
|
||
|
||
;-------------------------------------------------
|
||
; Šãàá®àë¥ ª« ¢¨è¨ ¨ F10
|
||
;-------------------------------------------------
|
||
user_menu_ckeys:
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 44h ; F10
|
||
jr z,user_menu_exit
|
||
cp 58h ; ¢¢¥àå
|
||
jr z,UMBup
|
||
cp 52h ; ¢¨§
|
||
jr z,UMBdown
|
||
cp 54h ; ¢«¥¢®
|
||
jr z,UMBhome
|
||
cp 56h ; ¢¯à ¢®
|
||
jr z,UMBend
|
||
cp 59h ; PageUp
|
||
jr z,UMBhome
|
||
cp 53h ; PageDown
|
||
jr z,UMBend
|
||
cp 57h ; Home
|
||
jr z,UMBhome
|
||
cp 51h ; End
|
||
jr z,UMBend
|
||
ret
|
||
|
||
; Šãàá®à ¢¢¥àå
|
||
UMBup: ld a,(CurMBox)
|
||
dec a
|
||
jr nz,UMBupNxt
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ ¬¥î
|
||
ld bc,4
|
||
ld a,b
|
||
dec a
|
||
UMBupLp:inc a ; ¯®¨áª ¯®á«¥¤¥£® í«¥¬¥â
|
||
add ix,bc
|
||
bit 7,(ix+0)
|
||
jr z,UMBupLp
|
||
UMBupNxt:
|
||
ld (CurMBox),a
|
||
ld b,a
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ ¬¥î
|
||
ld de,4
|
||
add ix,de
|
||
djnz $-2
|
||
push ix
|
||
call ResBoxI
|
||
call USetBoxI
|
||
pop ix
|
||
ret
|
||
|
||
; Šãàá®à ¢¨§
|
||
UMBdown:ld a,(CurMBox)
|
||
inc a
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ ¬¥î
|
||
ld bc,4
|
||
ld h,b ; â¥áâ ¯®á«¥¤¨© í«¥¬¥â
|
||
UMBdnLp:inc h
|
||
add ix,bc
|
||
bit 7,(ix+0)
|
||
jr z,UMBdnLp
|
||
cp h
|
||
jr nz,$+4
|
||
; Home ¢ ç «® ᯨáª
|
||
UMBhome:ld a,1
|
||
jr UMBupNxt
|
||
|
||
; End ¢ ª®¥æ ᯨáª
|
||
UMBend: ld a,(CurMBox)
|
||
ld h,a
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ ¬¥î
|
||
ld bc,4
|
||
ld a,b
|
||
dec a
|
||
UMBendLp:
|
||
inc a ; ¯®¨áª ¯®á«¥¤¥£® í«¥¬¥â
|
||
add ix,bc
|
||
bit 7,(ix+0)
|
||
jr z,UMBendLp
|
||
cp h
|
||
jr nz,UMBupNxt
|
||
ret
|
||
|
||
;-------------------------------------------------
|
||
; ‘®¡ëâ¨ï ¬ë誨
|
||
;-------------------------------------------------
|
||
user_menu_mouse:
|
||
ld e,(hl) ;+1 X coord
|
||
inc hl
|
||
ld d,(hl) ;+2 Y coord
|
||
; ¯à®¢¥àª ª®®à¤. ¬ë誨 ¨ ®ª
|
||
ld ix,BoxTabl ; à ¡®ç ï â ¡«¨æ
|
||
ld a,e
|
||
cp (ix+0)
|
||
jp c,user_menu_exit ; < Xo
|
||
cp (ix+1)
|
||
jp nc,user_menu_exit ; > Xi
|
||
ld a,d
|
||
cp (ix+2)
|
||
jp c,user_menu_exit ; < Yo
|
||
cp (ix+3)
|
||
jp nc,user_menu_exit ; > Yi
|
||
ld bc,4
|
||
ld h,b
|
||
usermenu_mouse_loop:
|
||
inc h
|
||
add ix,bc
|
||
bit 7,(ix+0) ; ª®¥æ ®¯¨á â¥«ï ¬¥î ?
|
||
ret nz ; ¤
|
||
ld a,d
|
||
cp (ix+2)
|
||
jr nz,usermenu_mouse_loop
|
||
ld a,e ; ¯®¨áª ¯ãªâ ¬¥î
|
||
cp (ix+0)
|
||
jr c,usermenu_mouse_loop ; < Xo
|
||
cp (ix+1)
|
||
jr nc,usermenu_mouse_loop ; > Xi
|
||
UBxHotEx:
|
||
ld a,(CurMBox)
|
||
cp h
|
||
jr z,UBxEnt ; ãáâ. ¯ãªâ ¬¥î
|
||
ld a,h
|
||
ld (CurMBox),a
|
||
push af
|
||
call ResBoxI
|
||
call USetBoxI
|
||
pop af
|
||
halt
|
||
halt
|
||
halt
|
||
halt
|
||
; ¢ë¯®«. ¯ãªâ ¯® <Enter> ¨«¨ ¬ë誥
|
||
UBxEnt: dec a
|
||
ld hl,what
|
||
ld (hl),evCommand ; ãáâ. ᮡë⨥ "ª®¬ ¤ "
|
||
; ᪮¯¨à. ª®¬-áâப㠢 ¡ãä¥à
|
||
add a,a
|
||
ld e,a
|
||
ld d,0
|
||
ld a,(page_sys_screen);; ; áâà. user-¤ ëå
|
||
out (SLOT3),a;;
|
||
ld hl,array_user1 ; â ¡«¨æ 㪠§ ⥫¥© ª®¬-áâப¨
|
||
add hl,de
|
||
ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
ex de,hl ; hl=®âªã¤
|
||
ld de,work_buffer+127;255 ; ªã¤
|
||
call copy_string ; ᪮¯¨à. áâபã (á ã«¥¬)
|
||
; § ªàëâì ¬¥î
|
||
call CloseBx
|
||
pop de
|
||
ret ; ¢ë©â¨ ¨§ ¬¥î
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ˆ¢¥àâ¨à®¢ ¨¥ ¯ãªâ ¬¥î
|
||
;-------------------------------------------------
|
||
USetBoxI:
|
||
ld c,0
|
||
ld a,(CurMBox)
|
||
dec a
|
||
add a,a ;1+1=2
|
||
jp SetBoxI1
|