mirror of
https://github.com/Tolik-Trek/FFORMAT.git
synced 2026-06-15 09:21:43 +03:00
220 lines
5.1 KiB
NASM
Executable File
220 lines
5.1 KiB
NASM
Executable File
;=====================================================================
|
|
;
|
|
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ®¢ "Button"
|
|
;
|
|
;=====================================================================
|
|
EvButton: ld hl,what ; ¯®«¥ ᮡë⨩
|
|
ld a,(hl) ;+0
|
|
inc hl
|
|
cp evMouseFr
|
|
jr z,EBmouse
|
|
cp evKeyboard
|
|
jp z,EBkeys
|
|
cp evCombKey
|
|
ret nz
|
|
bit 7,(ix+1) ; sel or nosel
|
|
ret nz ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
|
ld b,(hl) ;+1 what
|
|
inc hl
|
|
ld a,(hl) ;+2 what
|
|
cp 56h ; ªãàá®à ¢¯à ¢®
|
|
jr z,tb__
|
|
push ix
|
|
ld e,(ix+0) ; à §¬¥à â ¡«¨æë "Button"
|
|
ld d,0
|
|
add ix,de
|
|
bit 7,(ix+0)
|
|
pop ix
|
|
ret z ; ¥é¥ ¥ ª®¥æ ®¡ê¥ªâ®¢
|
|
cp 54h ; ªãàá®à ¢«¥¢®
|
|
jr z,tb__
|
|
ld a,b
|
|
and 00111111b ; ¡¨âë Ctrl, Alt
|
|
ret nz
|
|
ld a,(hl) ;+2 what
|
|
cp 15+80h ; Tab ᪥-ª®¤+80h
|
|
ret nz
|
|
; Shift+Tab
|
|
tb__: xor a
|
|
ld (_Push+1),a ; Push flag
|
|
jp SetButton ; select my
|
|
|
|
; ‘®¡ë⨥ - ¬ëèª
|
|
EBmouse: ld e,(hl) ;+1 X coord
|
|
inc hl
|
|
ld d,(hl) ;+2 Y coord
|
|
ld a,d
|
|
cp (ix+4) ; Y pos button
|
|
jr nz,get_fr ; if <> exit
|
|
ld a,e
|
|
bit 7,(ix+2)
|
|
jr nz,$+6
|
|
cp (ix+2) ; Xo pos
|
|
jr c,get_fr ; <
|
|
bit 7,(ix+3)
|
|
jr nz,get_fr
|
|
cp (ix+3) ; Xi pos
|
|
jr nc,get_fr ; >
|
|
xor a
|
|
inc a
|
|
ld (_Push+1),a ; Push flag
|
|
bit 7,(ix+1)
|
|
jr nz,_Push
|
|
jr SetButton
|
|
|
|
; ‘®¡ë⨥ - ®¡ëç ï ª« ¢¨è
|
|
EBkeys: xor a
|
|
ld (_Push+1),a ; Push flag
|
|
ld a,(hl) ;+1 what ª®¤ ª« ¢¨è¨
|
|
bit 7,(ix+1) ; Sel or nosel
|
|
jr nz,EBkeyN
|
|
cp 9 ; Tab
|
|
jr z,SetButton ; if tab then set button
|
|
jr EBkeyN1
|
|
;
|
|
EBkeyN: cp 0Dh ; Enter
|
|
jr z,EBent
|
|
EBkeyN1: inc hl
|
|
ld a,(hl) ;+2 what ᪥-ª®¤
|
|
cp (ix+6) ; hot-¡ãª¢
|
|
ret nz
|
|
EBent: ld a,1
|
|
ld (_Push+1),a
|
|
SetButton: call MoveObj ; Select Button
|
|
call ResDialInv ; Reset previos invert
|
|
ld ix,DialTab+5
|
|
;ld de,color_array+34 ; 梥â Selected buttons
|
|
;ld (set_dial_tmp_inv+1),de
|
|
ld e,(ix+2) ; Xo
|
|
ld d,(ix+4) ; Y
|
|
ld a,(ix+3) ; Xi
|
|
sub e
|
|
ld c,a
|
|
call SetDialInv ; ¢ë¤¥«¨âì ¡ã⮠梥⮬
|
|
;ld de,color_array+26 ; 梥â Selected title (®¡ê¥ªâ )
|
|
;ld (set_dial_tmp_inv+1),de
|
|
_Push: ld a,0
|
|
or a
|
|
jr z,BTexit
|
|
call PushBut ; § ᢥâ¨âì ªãàá®à
|
|
ld hl,what
|
|
ld (hl),evCommand
|
|
inc hl
|
|
ld a,(ix+5) ; ®¬¥à ª®¬ ¤ë
|
|
ld (hl),a
|
|
get_fr: jp GetFire
|
|
;
|
|
; Button exit
|
|
BTexit: ld hl,what
|
|
ld (hl),evNothing
|
|
ret
|
|
|
|
|
|
|
|
|
|
;[]===========================================================[]
|
|
; Event button
|
|
; IX,DialTab+5
|
|
;EButton:LD HL,what ; ᯨ᮪ ᮡë⨩
|
|
; LD A,(HL)
|
|
; INC HL
|
|
; CP evMouseFr
|
|
; JR Z,EBmouse
|
|
; CP evKeyboard
|
|
; JR Z,EBkeys
|
|
; CP evCombKey
|
|
; RET NZ
|
|
; BIT 7,(IX+1)
|
|
; RET NZ ; ¢ë©â¨ - ®¡ê¥ªâ ¢ë¤¥«¥
|
|
; PUSH IX
|
|
; LD E,(IX+0)
|
|
; LD D,0
|
|
; ADD IX,DE
|
|
; BIT 7,(IX+0)
|
|
; POP IX
|
|
; RET Z
|
|
; INC HL
|
|
; LD A,(HL) ;+1
|
|
; CP 9 ; Shift+Tab
|
|
; RET NZ
|
|
; xor a
|
|
; LD (_Push+1),A ; Push flag
|
|
; JP SetButt ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ
|
|
|
|
; ‘®¡ë⨥ ®â ¬ë誨,
|
|
; ¯à®¢¥àª ª®®à¤¨ â
|
|
;EBmouse:LD E,(HL) ;Xcoord
|
|
; INC HL
|
|
; LD D,(HL) ;Ycoord
|
|
; LD A,D
|
|
; CP (IX+4) ;Y pos button
|
|
; RET NZ ;if <> exit
|
|
; LD A,E
|
|
; BIT 7,(IX+2)
|
|
; JR NZ,$+6
|
|
; CP (IX+2) ;Xo pos
|
|
; RET C ;<
|
|
; BIT 7,(IX+3)
|
|
; RET NZ
|
|
; CP (IX+3) ;Xi pos
|
|
; RET NC ;>
|
|
; SUB A
|
|
; LD (Kbutt+1),A
|
|
; INC A
|
|
; LD (_Push+1),A ;Push flag
|
|
; BIT 7,(IX+1)
|
|
; JR NZ,_Push
|
|
; JR SetButt
|
|
|
|
; ‘®¡ë⨥ - ¦ â ª« ¢¨è
|
|
;EBkeys: xor a
|
|
; LD (_Push+1),A ; Push flag
|
|
; LD A,(HL)
|
|
; cp " "
|
|
; jr c,ebkey1
|
|
; cp "A"
|
|
; ret c
|
|
;ebkey1: inc hl ; hl,what+2
|
|
; bit 7,(hl) ; ¦ â ª« ¢¨è á Ctrl,Shift,Alt ?
|
|
; ret nz ; ¤ , ¢ë©â¨
|
|
; RES 5,A ; a..z -> A..Z
|
|
; BIT 7,(IX+1) ; ¢ë¡à ¨«¨ ¥ ¢ë¡à
|
|
; JR NZ,EBkeyN
|
|
; CP 9 ; Tab
|
|
; JR Z,SetButt ; ¢ë¤¥«¨âì á«¥¤. ®¡ê¥ªâ
|
|
; cp 0Dh ; ###
|
|
; jr z,SetButt
|
|
; JR EBkeyN1
|
|
;
|
|
;EBkeyN: CP 0Dh
|
|
; JR Z,EBent
|
|
;EBkeyN1:CP (IX+6) ; Hot key
|
|
; RET NZ
|
|
;EBent: LD A,1
|
|
; LD (_Push+1),A
|
|
; LD (Kbutt+1),A
|
|
;SetButt:CALL MoveObj ; Select Button
|
|
; CALL ResDialInv ; Reset previos invert
|
|
; LD IX,DialTab+5
|
|
; LD E,(IX+2) ; Xo
|
|
; LD D,(IX+4) ; Y
|
|
; LD A,(IX+3) ; Xi
|
|
; SUB E
|
|
; LD C,A
|
|
; CALL SetDialInv
|
|
;_Push: LD A,0
|
|
; OR A
|
|
; JP Z,BTexit
|
|
; CALL PushBut ; Push/pop ¡ãâ®
|
|
; JP C,BTexit
|
|
; LD HL,what
|
|
; LD (HL),evCommand
|
|
; INC HL
|
|
; LD A,(IX+5)
|
|
; LD (HL),A
|
|
; RET
|
|
;Button exit
|
|
;BTexit: LD HL,what
|
|
; LD (HL),evNothing
|
|
; RET
|