mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
790 lines
18 KiB
NASM
Executable File
790 lines
18 KiB
NASM
Executable File
; ‚ª«îç ¥â ®¡ê¥ªâë ~Radio Button~ ¨ ~Check Box~
|
||
;
|
||
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
; <20>à®à¨á®¢ª ®¡ê¥ªâ "Radio Button"
|
||
; object ~Claster radio buttons~ (¨¬¥¥â 䮪ãá)
|
||
; Input: HL-®¯¨á â¥«ì ®¡ê¥ªâ
|
||
; Format table:
|
||
; +0 - ®¬¥à ®¡ê¥ªâ ~Radio Button"
|
||
; +1 - Xo «¥¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +2 - Xi ¯à ¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +3 - Yo «¥¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +4 - Yi ¯à ¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +5 - Xi ¯à ¢®¥ ¯®«®¦. ¨¬¥¨
|
||
; from: +0 - Y ¯®«®¦. radio-ª®¯ª¨
|
||
; +1 - ᪥-ª®¤ hot-¡ãª¢ë
|
||
; +2 - âਣ. ï祩ª
|
||
; +3,4 - ¤à¥á ï祩ª¨
|
||
; 80h - ª®¥æ â ¡«¨æë ®¡ê¥ªâ
|
||
;---------------------------------------------------------------------
|
||
; db ClsRadioBut ; ®¬¥à ®¡ê¥ªâ
|
||
; dw 0202h,0112h ; Yo,Xo,lenY,lenX (á "() ")
|
||
; db "&Viewer command",0 ; ¨¬ï í«¥¬¥â
|
||
; db 2Dh ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
; dw Mode1 ; ï祩ª ¯ ¬ïâ¨
|
||
; db "&Editor command",0 ; ¨¬ï í«¥¬¥â
|
||
; db 12h ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
; dw Mode2 ; ï祩ª ¯ ¬ïâ¨
|
||
; db 0 ; ª®¥æ ª« áâ¥à
|
||
;=====================================================================
|
||
PutClsRadioBut:
|
||
push iy
|
||
inc iy
|
||
ld (iy+0),a ; ®¬¥à ®¡ê¥ªâ
|
||
ld a,(hl) ; X pos
|
||
inc hl
|
||
ld c,a
|
||
ld (ix+4),a ; Save X pos
|
||
add a,(ix+0) ; Pos X from begin screen
|
||
ld (iy+1),a ;+1 Xo
|
||
ld a,(hl) ; Y pos
|
||
inc hl
|
||
ld b,a
|
||
ld (ix+5),a ; Save Y pos
|
||
add a,(ix+1) ; Pos Y from begin screen
|
||
ld (iy+3),a ;+3 Yo
|
||
call GetPutA
|
||
ld a,(hl)
|
||
inc hl
|
||
ld (ix+6),a
|
||
add a,(iy+1)
|
||
ld (iy+2),a ; Xi pos
|
||
ld a,(hl)
|
||
inc hl
|
||
add a,(iy+3)
|
||
ld (iy+4),a
|
||
ld a,(ix+6)
|
||
add a,(iy+1)
|
||
ld (iy+5),a ; Xi pos name
|
||
ld bc,6 ; next element claster
|
||
add iy,bc
|
||
; Next element
|
||
ClChkLp:ld c,(ix+4) ; pos element
|
||
ld b,(ix+5)
|
||
call GetPutA
|
||
ld b,0
|
||
ex de,hl
|
||
ld (hl),"("
|
||
inc hl
|
||
inc hl
|
||
inc b
|
||
push hl
|
||
inc hl
|
||
inc hl
|
||
inc b
|
||
ld (hl),")"
|
||
inc hl
|
||
inc hl
|
||
inc b
|
||
inc hl
|
||
inc hl
|
||
inc b
|
||
; ¨¬ï í«¥¬¥â ®¡ê¥ªâ
|
||
ld a,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
ld c,a
|
||
ld a,(de)
|
||
ClChkL1:inc de
|
||
cp "&"
|
||
jr nz,ClChkN0
|
||
ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
ld c,a
|
||
ld a,(de)
|
||
inc de
|
||
ld (hl),a
|
||
inc hl
|
||
ld a,(hl)
|
||
and 0F0h
|
||
or c
|
||
ld (hl),a
|
||
inc hl
|
||
ld a,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
ld c,a
|
||
inc b
|
||
ld a,(de)
|
||
inc de
|
||
ClChkN0:ld (hl),a
|
||
inc hl
|
||
ld (hl),c
|
||
inc hl
|
||
inc b
|
||
ld a,(de)
|
||
or a
|
||
jr nz,ClChkL1
|
||
inc de
|
||
ld a,(ix+5) ; Current Y pos
|
||
add a,(ix+1) ; from begin screen
|
||
ld (iy+0),a
|
||
inc iy
|
||
ex de,hl
|
||
ld a,(hl)
|
||
inc hl
|
||
ld (iy+0),a ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
inc iy
|
||
ld c,(hl)
|
||
inc hl
|
||
ld b,(hl)
|
||
inc hl
|
||
ld a,(bc)
|
||
ld (iy+0),a ; ï祩ª
|
||
inc iy
|
||
ld (iy+0),c ; bc= ¤à¥á ï祩ª¨
|
||
inc iy
|
||
ld (iy+0),b
|
||
inc iy
|
||
pop bc
|
||
or a
|
||
ld a," "
|
||
jr z,$+4
|
||
ld a,""
|
||
ld (bc),a
|
||
inc (ix+5)
|
||
ld a,(hl)
|
||
or a
|
||
jp nz,ClChkLp
|
||
ld (iy+0),80h ; End tab claster
|
||
inc iy
|
||
inc hl
|
||
; á®åà. à §¬¥à â ¡«¨æë ¢ ’ ¡«¨æ¥ ®¡ê¥ªâ®¢
|
||
push iy
|
||
exx
|
||
pop hl
|
||
pop de
|
||
or a
|
||
sbc hl,de
|
||
ld a,l
|
||
ld (de),a
|
||
exx
|
||
ld a,1
|
||
ld (SavElem+1),a ; ¯¥à¢ë© í«¥¬¥â
|
||
ret
|
||
|
||
|
||
|
||
;=====================================================================
|
||
; <20>à®à¨á®¢ª ®¡ê¥ªâ "Check Box"
|
||
; object ~Claster check buttons~ (¨¬¥¥â 䮪ãá)
|
||
; Input: HL-®¯¨á â¥«ì ®¡ê¥ªâ
|
||
; Format table:
|
||
; +0 - ®¬¥à ®¡ê¥ªâ "CheckBox"
|
||
; +1 - Xo «¥¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +2 - Xi ¯à ¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +3 - Yo «¥¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +4 - Yi ¯à ¢®¥ ¯®«®¦. ®¡ê¥ªâ
|
||
; +5 - Xi ¯à ¢®¥ ¯®«®¦. ¨¬¥¨ ®¡ê¥ªâ
|
||
; from: +0 - Y ¯®«®¦. 祪-¡®ªá
|
||
; +1 - ᪥-ª®¤ hot-¡ãª¢ë
|
||
; +2 - âਣ. ï祩ª
|
||
; +3,4 - ¤à¥á ï祩ª¨
|
||
; 80h - ª®¥æ â ¡«¨æë ®¡ê¥ªâ
|
||
;---------------------------------------------------------------------
|
||
; db ClsCheckBox ; ®¬¥à ®¡ê¥ªâ
|
||
; dw 0202h,0225h ; Yo,Xo,lenY,lenX (á "[x] ")
|
||
; db "&Clear r/o attribute",0 ; ¨¬ï í«¥¬¥â
|
||
; db 2Ch ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
; dw cSystem1 ; ¤à¥á ï祩ª¨
|
||
; db "Clear &attribute",0 ; ¨¬ï í«¥¬¥â
|
||
; db 1Dh ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
; dw cSystem2 ; ¤à¥á ï祩ª¨
|
||
; db 0 ; ª®¥æ ª« áâ¥à
|
||
;=====================================================================
|
||
PutClsCheckBox:
|
||
PUSH IY
|
||
INC IY
|
||
LD (IY+0),A ; ®¬¥à ®¡ê¥ªâ
|
||
LD A,(HL) ; Xo pos
|
||
INC HL
|
||
LD C,A
|
||
LD (IX+4),A ; Save X pos ##
|
||
ADD A,(IX+0) ; Pos X from begin screen
|
||
LD (IY+1),A ;+1 Xo
|
||
LD A,(HL) ; Yo pos
|
||
INC HL
|
||
LD B,A
|
||
LD (IX+5),A ; Save Yo pos
|
||
ADD A,(IX+1) ; Pos Yo from begin screen
|
||
LD (IY+3),A ;+3 Yo
|
||
CALL GetPutA
|
||
LD A,(HL) ; X Len
|
||
INC HL
|
||
LD (IX+6),A ; è¨à¨ ®¡ê¥ªâ
|
||
;
|
||
ADD A,(IY+1) ;+1 Xo «¥¢ ï ¯®§¨æ¨ï ®¡ê¥ªâ
|
||
LD (IY+2),A ;+2 Xi pos
|
||
LD A,(HL) ; Y Len
|
||
INC HL
|
||
ADD A,(IY+3) ;+3 Yo pos object
|
||
LD (IY+4),A ;+4 Yi pos object
|
||
LD A,(IX+6)
|
||
ADD A,(IY+1)
|
||
LD (IY+5),A ; Xi pos name
|
||
LD BC,6 ; next element claster
|
||
ADD IY,BC
|
||
; Next element
|
||
ClRadLp:LD C,(IX+4) ; pos element
|
||
LD B,(IX+5)
|
||
CALL GetPutA
|
||
LD B,0
|
||
EX DE,HL
|
||
LD (HL),"["
|
||
INC HL
|
||
INC HL
|
||
INC B
|
||
PUSH HL
|
||
INC HL
|
||
INC HL
|
||
INC B
|
||
LD (HL),"]"
|
||
INC HL
|
||
INC HL
|
||
INC B
|
||
INC HL
|
||
INC HL
|
||
INC B
|
||
; ¨¬ï í«¥¬¥â ®¡ê¥ªâ
|
||
LD A,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
LD C,A
|
||
LD A,(DE)
|
||
ClRadL1:INC DE
|
||
CP "&"
|
||
JR NZ,ClRadN0
|
||
LD A,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
LD C,A
|
||
LD A,(DE)
|
||
INC DE
|
||
LD (HL),A
|
||
INC HL
|
||
LD A,(HL)
|
||
AND 0F0h
|
||
OR C
|
||
LD (HL),A
|
||
INC HL
|
||
LD A,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
LD C,A
|
||
INC B
|
||
LD A,(DE)
|
||
INC DE
|
||
ClRadN0:LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
INC B
|
||
LD A,(DE)
|
||
OR A
|
||
JR NZ,ClRadL1
|
||
INC DE
|
||
LD A,(IX+5) ; Current Y pos
|
||
ADD A,(IX+1) ; from begin screen
|
||
LD (IY+0),A
|
||
INC IY
|
||
EX DE,HL
|
||
ld a,(hl)
|
||
ld (iy+0),a ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
inc hl
|
||
inc iy
|
||
LD C,(HL)
|
||
INC HL
|
||
LD B,(HL)
|
||
INC HL
|
||
LD A,(BC)
|
||
LD (IY+0),A ; ï祩ª
|
||
INC IY
|
||
LD (IY+0),C ; bc= ¤à¥á ï祩ª¨
|
||
INC IY
|
||
LD (IY+0),B
|
||
INC IY
|
||
POP BC
|
||
OR A
|
||
LD A," "
|
||
JR Z,$+4
|
||
LD A,"x"
|
||
LD (BC),A
|
||
INC (IX+5)
|
||
LD A,(HL)
|
||
OR A
|
||
JP NZ,ClRadLp
|
||
LD (IY+0),80h ; End tab claster
|
||
INC IY
|
||
INC HL
|
||
; á®åà. à §¬¥à â ¡«¨æë ¢ ’ ¡«¨æ¥ ®¡ê¥ªâ®¢
|
||
push iy
|
||
exx
|
||
pop hl
|
||
pop de
|
||
or a
|
||
sbc hl,de ; ¤«¨ â ¡«¨æë "Check Box"
|
||
ld a,l
|
||
ld (de),a ; DialTab+5
|
||
exx
|
||
ld a,1
|
||
ld (SavElem+1),a ; ¯¥à¢ë© í«¥¬¥â
|
||
ret
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20> ç «ìë© ä®ªãá ®¡ê¥ªâ "Check Box" ¨«¨ "Radio Button"
|
||
;-----------------------------------------------------------
|
||
ClastI: ld de,color_array+24 ; 70h 梥⠤¨ «. ®ª®
|
||
ld (set_dial_tmp_inv+1),de ; ¥ "¢ë¤¥«ïâì" 梥⮬ 祪-¡®ªáë
|
||
ld e,(ix+2) ; Xo
|
||
inc e
|
||
ld d,(ix+4) ; Y
|
||
ld a,(ix+6) ; Xi name
|
||
sub e
|
||
ld c,a
|
||
call SetDialInv
|
||
ld hl,color_array+26
|
||
ld (set_dial_tmp_inv+1),hl ; ¢®ááâ. ï祩ªã
|
||
push ix
|
||
pop hl
|
||
ld de,7
|
||
add hl,de
|
||
ld a,(ix+7) ; Y ¯®«®¦. 1-£® í«¥¬¥â ª« áâ¥à
|
||
ld (hl),a ; Y pos check button
|
||
jp SetClasInv ; ¢ë¤¥«¨âì í«¥¬¥â ®¡ê¥ªâ
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; “§ âì á®áâ®ï¨¥ ï祩ª¨ ª« áâ¥à
|
||
;-------------------------------------------------
|
||
GetClsData:
|
||
push ix
|
||
pop hl
|
||
ld bc,7
|
||
add hl,bc ; Begin claster elements
|
||
GetDtLp:inc hl ; Y pos
|
||
inc hl ; ᪥-ª®¤ hot-¡ãª¢ë
|
||
ld a,(hl) ; ï祩ª
|
||
inc hl
|
||
ld e,(hl) ; de=¤à¥á ï祩ª¨
|
||
inc hl
|
||
ld d,(hl)
|
||
inc hl
|
||
ld (de),a
|
||
bit 7,(hl) ; 7bit-End claster
|
||
jr z,GetDtLp
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;=====================================================================
|
||
;
|
||
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ®¢ "Check Box" ¨ "Radio Button"
|
||
;
|
||
;=====================================================================
|
||
EvClasterBut:
|
||
ld hl,what
|
||
ld a,(hl)
|
||
inc hl
|
||
cp evMouseFr
|
||
jr z,ECmouse ; Mouse fire
|
||
cp evKeyboard
|
||
jr z,ECkeys ; Key press
|
||
cp evCombKey
|
||
jp z,ECcombK ; Key press
|
||
ret
|
||
|
||
; ‘®¡ë⨥ - Œëèª
|
||
ECmouse:LD E,(HL) ; X pos
|
||
INC HL
|
||
LD D,(HL) ; Y pos
|
||
LD A,E
|
||
BIT 7,(IX+2)
|
||
JR NZ,$+6
|
||
CP (IX+2) ; Xo left pos
|
||
RET C ; <
|
||
BIT 7,(IX+3)
|
||
RET NZ
|
||
CP (IX+3) ; Xi right pos
|
||
RET NC ; >
|
||
LD A,D
|
||
CP (IX+4) ; Yo left pos
|
||
RET C ; <
|
||
CP (IX+5) ; Yi right pos
|
||
RET NC ; >
|
||
xor a
|
||
LD (ECnext+1),a
|
||
DEC A
|
||
LD (SaveA1+1),a ; Begin element claster
|
||
PUSH IX
|
||
POP HL
|
||
INC HL
|
||
inc hl
|
||
ld bc,5 ; len element claster
|
||
LD E,B ; number element
|
||
LD A,D
|
||
EClsLp1:ADD HL,BC
|
||
BIT 7,(HL)
|
||
JP NZ,SelClas ; Elem not found
|
||
INC E
|
||
CP (HL) ; Compare with Y pos elem
|
||
JR NZ,EClsLp1
|
||
JR CSelNxt
|
||
|
||
; ‘®¡ë⨥ - ®¡ëç ï ª« ¢¨è
|
||
ECkeys: xor a
|
||
ld (ECnext+1),a
|
||
dec a
|
||
ld (SaveA1+1),a ; Begin element claster
|
||
ld a,(hl) ;+1 what
|
||
cp 20h ; ¯à®¡¥«
|
||
jr z,ECspace
|
||
bit 7,(ix+1)
|
||
jr nz,ECkeyN ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
cp 9 ; Tab
|
||
jp z,SelCls0 ; If tab then select my
|
||
ECkeyN: inc hl
|
||
ld a,(hl) ;+2 what ᪥-ª®¤
|
||
push ix
|
||
pop hl
|
||
inc hl
|
||
inc hl
|
||
ld bc,5 ; Len elements
|
||
ld e,b
|
||
ECkeyLp:add hl,bc
|
||
bit 7,(hl)
|
||
ret nz
|
||
inc e
|
||
inc hl
|
||
cp (hl) ; hot-key element
|
||
dec hl
|
||
jr nz,ECkeyLp
|
||
CSelNxt:bit 7,(ix+1)
|
||
jp nz,CSelect ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
jp SelCls1
|
||
|
||
; Ž¡à ¡®âª ¯à®¡¥«
|
||
ECspace:BIT 7,(IX+1)
|
||
RET Z ; not select
|
||
LD A,(SavElem+1)
|
||
OR A
|
||
JR NZ,ECspc1
|
||
INC A
|
||
LD (SavElem+1),A
|
||
ECspc1: LD (ECnext+1),A
|
||
PUSH IX
|
||
POP HL
|
||
INC HL
|
||
inc hl
|
||
ld de,5
|
||
LD B,A
|
||
ADD HL,DE ; find elem.label
|
||
DJNZ $-1
|
||
JP ECnext ; change
|
||
|
||
; Šãàá®àë¥ ª« ¢¨è¨
|
||
ECcombK:bit 7,(ix+1)
|
||
jr nz,ECcombn ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥
|
||
ld b,(hl) ;+1 what
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 56h ; ªãàá®à ¢¯à ¢®
|
||
jp z,SelCls0
|
||
push ix
|
||
ld e,(ix+0) ; à §¬¥à â ¡«¨æë "Input Line"
|
||
ld d,0
|
||
add ix,de
|
||
bit 7,(ix+0)
|
||
pop ix
|
||
ret z ; ¥é¥ ¥ ª®¥æ ®¡ê¥ªâ®¢
|
||
cp 54h ; ªãàá®à ¢«¥¢®
|
||
jp z,SelCls0
|
||
ld a,b
|
||
and 00111111b ; ¡¨âë Ctrl, Alt
|
||
ret nz
|
||
ld a,(hl) ;+2 what
|
||
cp 15+80h ; Tab ᪥-ª®¤+80h
|
||
ret nz
|
||
jp SelCls0 ; If tab then select my
|
||
;
|
||
ECcombn:xor a
|
||
ld (ECnext+1),a ; Flag change buttons
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 58h ; ¢¢¥àå
|
||
jr z,ECup
|
||
cp 54h ; ¢«¥¢®
|
||
jr z,ECup
|
||
cp 52h ; ¢¨§
|
||
jr z,ECdown
|
||
cp 56h ; ¢¯à ¢®
|
||
ret nz
|
||
; ªãàá®à ¢¨§
|
||
ECdown: PUSH IX
|
||
POP HL
|
||
INC HL
|
||
inc hl
|
||
ld e,l
|
||
ld d,h
|
||
ld bc,5
|
||
LD A,(SavElem+1)
|
||
OR A
|
||
JR NZ,$+3
|
||
INC A
|
||
INC A ; increment element
|
||
LD (SavElem+1),A
|
||
ECcmlp: ADD HL,BC ; find label
|
||
BIT 7,(HL)
|
||
CALL NZ,EndClst ; table is over
|
||
DEC A
|
||
JR NZ,ECcmlp
|
||
CALL ResClasInv ; Res inver elem
|
||
JP Pcurs ; next invert
|
||
|
||
; Get begin table elem
|
||
EndClst:EX DE,HL
|
||
ADD HL,BC ; table is begin
|
||
LD A,1
|
||
LD (SavElem+1),A ; first elem.
|
||
RET
|
||
|
||
; Šãàá®à ¢¢¥àå
|
||
ECup: PUSH IX
|
||
POP HL
|
||
INC HL
|
||
inc hl
|
||
ld de,5
|
||
LD A,(SavElem+1)
|
||
OR A
|
||
JR NZ,$+3
|
||
INC A
|
||
DEC A ; decrement cur.elem.
|
||
CALL Z,BegClst
|
||
LD (SavElem+1),A
|
||
LD B,A
|
||
ADD HL,DE ; find label
|
||
DJNZ $-1
|
||
CALL ResClasInv ; Res inver elem
|
||
JR Pcurs ; next invert
|
||
|
||
; Get end table elem
|
||
BegClst:PUSH HL
|
||
SUB A
|
||
DEC A
|
||
INC A
|
||
ADD HL,DE ; find nember end element
|
||
BIT 7,(HL)
|
||
JR Z,$-4
|
||
POP HL
|
||
RET ; A=end element
|
||
|
||
; selected claster
|
||
SelClas:BIT 7,(IX+1)
|
||
JR NZ,SaveA1 ; NZ-is select
|
||
SelCls0:ld e,0
|
||
SelCls1:LD A,E
|
||
LD (SaveA1+1),A
|
||
call MoveObj
|
||
call ResDialInv ; Res orevios invert
|
||
LD IX,DialTab+5
|
||
SaveA1: LD A,0
|
||
INC A
|
||
JR Z,EClexit ; Element not found
|
||
DEC A
|
||
LD (SavElem+1),A
|
||
LD (ECnext+1),A
|
||
JR CButton ; Change buttons
|
||
|
||
; ‘®¡ë⨥ - Œëèª (¢ ¢ë¡à ®¬ ª« áâ¥à¥)
|
||
CSelect:LD A,1
|
||
LD (ECnext+1),A
|
||
LD A,(SavElem+1)
|
||
CP E
|
||
JR Z,ECnext
|
||
LD A,E
|
||
LD (SavElem+1),A
|
||
CALL ResClasInv ; Res inver elem
|
||
CButton:PUSH IX
|
||
POP HL
|
||
INC HL
|
||
inc hl
|
||
ld de,5
|
||
SavElem:LD A,0
|
||
OR A
|
||
JR NZ,$+3
|
||
INC A
|
||
LD B,A
|
||
ADD HL,DE
|
||
DJNZ $-1
|
||
Pcurs: CALL SetClasInv ; Set inver elem
|
||
ECnext: ld a,0
|
||
or a
|
||
call nz,ChangeB
|
||
EClexit:ld hl,what ; Event claster exit
|
||
ld (hl),evNothing
|
||
jp get_fire
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; ˆ§¬¥¥¨¥ í«¥¬¥â®¢ CheckBox- ¨«¨ Radio-ª®¯®ª
|
||
;
|
||
; ¢å®¤: HL-Address claster element label
|
||
;---------------------------------------------------------------------
|
||
ChangeB:LD A,(IX+1)
|
||
RES 7,A
|
||
CP ClsCheckBox
|
||
JP Z,ChangeR ; ¨§¬¥¨âì CheckBox
|
||
; ˆ§¬¥¨âì Radio-ª®¯ªã
|
||
LD E,L
|
||
LD D,H
|
||
PUSH IX
|
||
POP HL
|
||
LD BC,7
|
||
ADD HL,BC
|
||
PUSH HL ; Save cur.elem
|
||
ChangL1:INC HL ; Begin elements claster
|
||
INC HL
|
||
;INC HL
|
||
LD (HL),B ; (Ceil)=0
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
BIT 7,(HL)
|
||
JR Z,ChangL1
|
||
EX DE,HL ; HL=Current element claster
|
||
INC B
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD (HL),B ; Cur.elem=1
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
POP HL ; Reset begin elem table
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
LD A,(page_dial_screen)
|
||
OUT (SLOT3),A
|
||
ChangL2:LD D,(HL) ; Y pos
|
||
INC HL
|
||
INC HL
|
||
;INC HL ;?
|
||
LD A,(HL) ; Address ceil
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD E,(IX+2) ; X ¯®«®¦. ""
|
||
INC E
|
||
PUSH IX
|
||
PUSH DE
|
||
LD IX,DialData
|
||
EX AF,AF'
|
||
LD A,E
|
||
SUB (IX+0)
|
||
LD C,A
|
||
LD A,D
|
||
SUB (IX+1)
|
||
LD B,A
|
||
CALL GetPutA
|
||
EX AF,AF'
|
||
LD C,A
|
||
OR A
|
||
LD A," "
|
||
JR Z,$+4
|
||
LD A,""
|
||
LD (DE),A
|
||
POP DE
|
||
POP IX
|
||
LD A,D
|
||
CP 31
|
||
JR NC,cl1
|
||
BIT 7,E
|
||
JR NZ,cl1
|
||
LD A,E
|
||
CP 80
|
||
JR NC,cl1
|
||
PUSH HL
|
||
LD A,C
|
||
PUSH AF
|
||
LD C,84h ; Set position print
|
||
RST 08h
|
||
POP AF
|
||
OR A
|
||
LD A," "
|
||
JR Z,$+4
|
||
LD A,""
|
||
LD BC,0182h
|
||
RST 08h ; Print on/off
|
||
POP HL
|
||
cl1: BIT 7,(HL)
|
||
JR Z,ChangL2
|
||
CALL ResILCr ; Res cursor
|
||
CALL PILCurs ; Set cursor
|
||
EI
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
|
||
;-------------------------------------------------
|
||
; ˆ§¬¥¥¨¥ í«¥¬¥â CheckBox-
|
||
;-------------------------------------------------
|
||
ChangeR:
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
LD A,(page_dial_screen)
|
||
OUT (SLOT3),A
|
||
LD D,(HL) ; Y pos
|
||
INC HL
|
||
INC HL
|
||
LD A,(HL) ; ï祩ª
|
||
XOR 1
|
||
LD (HL),A
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
LD E,(IX+2) ; X ¯®«®¦. "x"
|
||
INC E
|
||
PUSH IX
|
||
PUSH DE
|
||
LD IX,DialData
|
||
EX AF,AF'
|
||
LD A,E
|
||
SUB (IX+0)
|
||
LD C,A
|
||
LD A,D
|
||
SUB (IX+1)
|
||
LD B,A
|
||
CALL GetPutA
|
||
EX AF,AF'
|
||
LD C,A
|
||
OR A
|
||
LD A," "
|
||
JR Z,$+4
|
||
LD A,"x"
|
||
LD (DE),A
|
||
POP DE
|
||
POP IX
|
||
LD A,D
|
||
CP 31
|
||
JR NC,cl2
|
||
BIT 7,E
|
||
JR NZ,cl2
|
||
LD A,E
|
||
CP 80
|
||
JR NC,cl2
|
||
LD A,C
|
||
PUSH AF
|
||
LD C,84h ; Set position print
|
||
RST 08h
|
||
POP AF
|
||
OR A
|
||
LD A," "
|
||
JR Z,$+4
|
||
LD A,"x"
|
||
LD BC,0182h
|
||
RST 08h ; Print
|
||
cl2: CALL ResILCr
|
||
CALL PILCurs
|
||
EI
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|