File-Manager/OBJS/PALLETE.ASM
2025-04-04 00:37:36 +10:00

1047 lines
25 KiB
NASM
Executable File
Raw 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.

;-----------------------------------------------------------
; <20>à®à¨á®¢ª  ®¡ê¥ªâ  ~Pallete Box~
; Input: HL-label
; Format mouse table:
; +0 - Object ~Pallete Box"
; +1 - Xo position object
; +2 - Xi position object
; +3 - Yo position object
; +4 - Yi position object
; +5 - Xi position name
; +6 - ç¨á«® 梥â. ¯®«¥© ¯® X
; +7 - ç¨á«® 梥â. ¯®«¥© ¯® Y
; +8 - ⥪.í«¥¬¥­â
; +9 - hot-¡ãª¢ 
; +10 - ª®­â¥ªáâ
;-----------------------------------------------------------
; db PalleteBox
; dw 022Bh,0404h ; Yo,Xo,lenY,lenX
; db "&Foreground",0
; db 0 ; ª®­â¥ªáâ
; db 0Fh ; ¬ áª 
; dw ColPal ;  ¤à¥á ­ ç. 梥â 
;-----------------------------------------------------------
;
PPallete:
LD (IY+1),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 window
LD (IY+2),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 window
LD (IY+4),A ;+3 Yo
CALL GetPutA
LD A,(HL) ; len X
INC HL
LD (IY+7),A ; ç¨á«® 梥â­. ¯®«¥© ¯® X
LD C,A
ADD A,A ;1+1=2
ADD A,C ;2+1=3
LD (IX+6),A
LD B,A
ADD A,2
ADD A,(IY+2)
LD (IY+3),A ; Xi pos
LD A,(HL) ; len Y
INC HL
LD (IY+8),A ; ç¨á«® 梥â­. ¯®«¥© ¯® Y
ADD A,A
ADD A,2 ; Yi pos
ADD A,(IY+4)
LD (IY+5),A
LD A,"Ú"
LD (DE),A
INC DE
INC DE
LD A," " ; ¢¥¤. ¯à®¡¥« § £®«®¢ª 
LD (DE),A
INC DE
INC DE
DEC B
LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
LD C,A
LD A,(HL)
PltBox0:INC HL
CP "&"
JR NZ,PltBox1
LD A,(HL)
LD (DE),A ; hot-¡ãª¢ã ¢ ¡ãä¥à
INC HL
INC DE
push bc
ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª®­
ld b,a
ld a,c ; 梥⠡ãâ®­ 
and 0F0h
or b
ld (de),a ;  âਡãâ
pop bc
inc de
DEC B
LD A,(HL)
INC HL
PltBox1:LD (DE),A
INC DE
INC DE
DEC B
LD A,(HL)
OR A
JR NZ,PltBox0
INC HL
ld a,(hl)
inc hl
ld (iy+10),a ; hot-¡ãª¢ 
LD A," " ; ª®­æ. ¯à®¡¥« § £®«®¢ª 
LD (DE),A
INC DE
INC DE
DEC B
LD A,(IX+6)
SUB B
ADD A,(IY+2)
inc a
LD (IY+6),A ; Xi ¯®«®¦. § £®«®¢ª 
LD A,B
OR A
JR Z,PltBox2
LD A,"Ä"
LD (DE),A
INC DE
INC DE
DJNZ $-3
PltBox2:LD A,"¿"
LD (DE),A
INC (IX+5)
LD A,(HL) ; ª®­â¥ªáâ
INC HL
LD (IY+11),A
LD A,(HL)
INC HL
LD (IY+9),A ; ¬ áª  梥⮢ ¨§ ®¯¨á â¥«ï
LD A,(HL)
INC HL
LD (IY+12),A ;  ¤à¥á ­ ç «ì­®£® 梥â 
LD A,(HL)
INC HL
LD (IY+13),A
PUSH HL
LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
AND 0F0h
LD (IX+6),A ; ­ ç «ì­ë© 梥â
LD B,(IY+8)
; 横« ¢ë¢®¤  梥â­. ¯®«¥©
PltBox3:PUSH BC
LD C,(IX+4) ; pos element
LD B,(IX+5)
CALL GetPutA
EX DE,HL
LD (HL),"³" ; ­ ç «ì­ë© ᨬ¢®« 梥â­. ¯®«ï
INC HL
INC HL
LD B,(IY+7) ; ¢ëá®â  梥â­. ¯®«ï ¢ ᨬ¢®« å
LD A,(IX+6) ; ­ ç «ì­ë© 梥â
LD C,"Û" ; ᨬ¢®« § ¯®«­¥­¨ï 梥â­. ¯®«ï
PltBox4:LD (HL),C
INC HL
LD (HL),A
INC HL
LD (HL),C
INC HL
LD (HL),A
INC HL
LD (HL),C
INC HL
LD (HL),A
INC HL
INC A
DJNZ PltBox4
LD (HL),"³" ; ª®­¥ç­ë© ᨬ¢®« 梥â­. ¯®«ï
EX DE,HL
INC (IX+5) ; ++Y ¯®«®¦. ¯®«ï
LD C,(IX+4) ; bc=Y/X ¯®«®¦. 梥â­. ¯®«ï
LD B,(IX+5)
CALL GetPutA
EX DE,HL
LD (HL),"³" ; ­ ç «ì­ë© ᨬ¢®« 梥â­. ¯®«ï
INC HL
INC HL
LD B,(IY+7)
LD A,(IX+6)
LD C,"Û" ; ᨬ¢®« § ¯®«­¥­¨ï 梥â­. ¯®«ï
PltBox5:LD (HL),C
INC HL
LD (HL),A
INC HL
LD (HL),C
INC HL
LD (HL),A
INC HL
LD (HL),C
INC HL
LD (HL),A
INC HL
INC A
DJNZ PltBox5
LD (HL),"³" ; ª®­¥ç­ë© ᨬ¢®« 梥â­. ¯®«ï
EX DE,HL
INC (IX+5)
LD A,(IY+7)
ADD A,(IX+6)
LD (IX+6),A
POP BC
DJNZ PltBox3
; ¢á¥ 梥â­. ¯®«ï ¢ë¢¥¤¥­ë
LD C,(IX+4) ; pos element
LD B,(IX+5)
CALL GetPutA
EX DE,HL
LD (HL),"À"
INC HL
INC HL
LD A,(IY+3)
SUB (IY+2)
SUB 2
LD B,A
LD A,"Ä"
LD (HL),A
INC HL
INC HL
DJNZ $-3
LD (HL),"Ù"
LD L,(IY+12) ;  ¤à¥á ­ ç «ì­®£® 梥â 
LD H,(IY+13)
LD A,(HL) ; 梥â
AND (IY+9)
BIT 7,(IY+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
LD B,-1
INC B
SUB (IY+7)
JR NC,$-4
ADD A,(IY+7)
LD C,A
ADD A,A ;1+1=2
ADD A,C ;2+1=3 £®à¨§. è £
inc a
LD C,A
LD A,B
ADD A,A ;1+1=2 ¢¥àâ. è £
INC A
LD B,A
LD A,(IY+2)
SUB (IX+0)
INC A
ADD A,C
LD C,A
LD A,(IY+4)
SUB (IX+1)
INC A
ADD A,B
LD B,A
CALL GetPutA
LD A,"*"
LD (DE),A
INC DE
LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
LD (DE),A
POP HL
LD BC,14
LD (IY+0),C
ADD IY,BC
RET
;-------------------------------------------------
; Object ~Pallette Resident 1 or 2~
; Format mouse table:
; +0 - Object ~Pallette Resident~
;-------------------------------------------------
PResid2:EX AF,AF'
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD (AdrCol+1),DE ; ⥪.  ¤à¥á ¢ ¬ áᨢ¥ 梥⮢
LD A,(page_dial_screen) ; page buffer
OUT (SLOT3),A
EX AF,AF'
JR PResid1
;-------------------------------------------------
; Object ~Pallette Resident 1 or 2~
; Format mouse table:
; +0 - Object ~Pallette Resident~
;-------------------------------------------------
PResid1:LD (IY+0),2 ; ¤«¨­  â ¡«¨æë "Pallette Resident" ?
INC IY
LD (IY+0),A ;+0 ­®¬¥à ®¡ê¥ªâ  ~Pallette Resident 1 ¨«¨ 2~
INC IY
RET
;-------------------------------------------------
; <20>à®à¨á®¢ª  ®¡ê¥ªâ  ~Test color~
; Format mouse table:
;-------------------------------------------------
PTestCol:
LD (IY+1),A ;+0 object
LD (IY+4),0
LD A,(HL) ; X pos
INC HL
LD C,A
ADD A,(IX+0) ; Pos X from begin screen
LD (IY+2),A ;+1 Xo
LD A,(HL) ; Y pos
INC HL
LD B,A
ADD A,(IX+1) ; Pos Y from begin screen
LD (IY+3),A ;+3 Yo
LD (PTestC2+1),BC
CALL GetPutA
PUSH DE
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD A,(DE) ; 梥â áâப¨
LD C,A
;INC DE
;LD A,(DE)
;CPL
;LD B,A
POP DE
PUSH HL
; ⥪áâ. áâப 
LD A,(HL)
PTestC1:INC HL
LD (DE),A
INC DE
;LD A,(DE)
;AND B
;OR C
ld a,c
LD (DE),A ;  âਡãâ
INC DE
INC (IY+4)
LD A,(HL)
OR A
JR NZ,PTestC1
POP HL
; ¢ë¢®¤ 2-© áâப¨
PUSH BC
PTestC2:LD BC,0
INC B ; ­¨¦¥ ­  áâபã
CALL GetPutA
POP BC
LD A,(HL)
PTestC3:INC HL
LD (DE),A
INC DE
;LD A,(DE)
;AND B
;OR C
ld a,c
LD (DE),A ;  âਡãâ
INC DE
LD A,(HL)
OR A
JR NZ,PTestC3
INC HL
LD BC,5
LD (IY+0),C
ADD IY,BC
RET
;-----------------------------------------------------------
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ  ~Test Color~
;-----------------------------------------------------------
ETestCol:
LD HL,what
LD A,(HL)
INC HL
CP evMessage
RET NZ
LD A,(HL) ;+1
CP msNewColor
RET NZ
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD C,(HL) ; 梥⠨§ ¬ áᨢ  ­ ç. 梥⮢
;INC HL
;LD B,(HL)
;LD A,B
;CP 0FFh
;JR Z,ETestC1
;CPL
;LD B,A
;LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
;AND B
;OR C
;LD C,A
;ETestC1:
PUSH IY
PUSH IX
PUSH IX
POP IY
IN A,(SLOT3)
PUSH AF
LD A,(page_dial_screen)
OUT (SLOT3),A
LD IX,DialData ; â ¡«¨æ  ®á­. ¤¨ «. ®ª­ 
LD A,C
PUSH AF
LD A,(IY+2)
SUB (IX+0)
LD C,A
LD A,(IY+3)
SUB (IX+1)
LD B,A
CALL GetPutA
EX DE,HL
POP AF
PUSH AF
PUSH IX
PUSH HL
LD B,(IY+4)
INC HL
LD (HL),A
INC HL
DJNZ $-3
LD E,(IY+2)
LD D,(IY+3)
LD L,(IY+4)
LD H,1
POP IX
CALL PutDialLn
POP IX
LD A,(IY+2)
SUB (IX+0)
LD C,A
LD A,(IY+3)
SUB (IX+1)
INC A
LD B,A
CALL GetPutA
EX DE,HL
POP AF
PUSH HL
LD B,(IY+4)
INC HL
LD (HL),A
INC HL
DJNZ $-3
LD E,(IY+2)
LD D,(IY+3)
INC D
LD L,(IY+4)
LD H,1
POP IX
CALL PutDialLn
POP AF
OUT (SLOT3),A
POP IX
POP IY
RET
;-----------------------------------------------------------
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ  ~Pallete Box~
;-----------------------------------------------------------
EPallete:
ld hl,what
ld a,(hl)
inc hl
cp evMouseFr
jp z,EPmouse
cp evKeyboard
jp z,EPkeys
cp evMessage
jr z,EPmess
cp evCombKey
ret nz
; ‘®¡ë⨥ - ª®¬¡¨­ æ¨ï ª« ¢¨è
bit 7,(ix+1)
jr nz,EPcomb ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥­
ld b,(hl) ;+1 what
inc hl
ld a,(hl) ;+2 what
cp 56h ; ªãàá®à ¢¯à ¢®
jp z,SetPalBox
push ix
ld e,(ix+0) ; à §¬¥à â ¡«¨æë "Pallete Box"
ld d,0
add ix,de
bit 7,(ix+0)
pop ix
ret z ; ¥é¥ ­¥ ª®­¥æ ®¡ê¥ªâ®¢
cp 54h ; ªãàá®à ¢«¥¢®
jp z,SetPalBox
ld a,b
and 00111111b ; ¡¨âë Ctrl, Alt
ret nz
ld a,(hl) ;+2 what
cp 15+80h ; Tab ᪥­-ª®¤+80h
ret nz
; Shift+Tab
jp SetPalBox ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ
; ‘®¡ë⨥ - á®®¡é¥­¨¥
EPmess: ld a,(hl) ;+1 what
inc hl
cp msNewColor
ret nz
ld e,(hl) ;+2
inc hl
ld d,(hl) ;+3
ld l,(ix+12) ;  ¤à¥á ColList
ld h,(ix+13)
ex de,hl ; hl=áâ àë©  ¤à¥á 梥â 
;INC DE
;LD A,(DE)
;AND (IX+9)
;JR Z,EPmess1
;DEC DE
;LD A,(DE) ; ¨â®£®¢ë© 梥â
;AND (IX+9) ; ¬ áª  ¨§ ®¯¨á â¥«ï ®¡ê¥ªâ 
;LD B,A
;INC HL
;LD A,(HL)
;DEC HL
;AND (IX+9)
;JR Z,EPmess1
;LD A,(HL)
;AND (IX+9)
;CP B
;JR Z,EPmess1+3
;EPmess1:
call ResPalCurs
ld (ix+12),l ; hl=­®¢ë©  ¤à¥á 梥â 
ld (ix+13),h
;INC HL
;LD A,(HL)
;AND (IX+9)
jp SetPalCurs
;CALL NZ,SetPalCurs
;RET
; ‘®¡ë⨥ - ªãàá®à­ë¥ ª« ¢¨è¨
EPcomb: inc hl
ld de,EPexit
push de
ld a,(hl) ;+2
cp 58h ; ¢¢¥àå
jp z,EPup
cp 52h ; ¢­¨§
jp z,EPdown
cp 54h ; ¢«¥¢®
jp z,EPleft
cp 56h ; ¢¯à ¢®
jp z,EPright
pop de
ret
; ªãàá®à ¢¢¥àå
EPup: LD L,(IX+12)
LD H,(IX+13)
;INC HL
;LD A,(HL)
;AND (IX+9)
;RET Z
;DEC HL
LD A,(HL)
AND (IX+9)
BIT 7,(IX+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
SUB (IX+7)
RET C
JP EPex
; ªãàá®à ¢­¨§
EPdown: LD B,(IX+8)
SUB A
ADD A,(IX+7)
DJNZ $-3
LD C,A
LD L,(IX+12)
LD H,(IX+13)
;INC HL
;LD A,(HL)
;AND (IX+9)
;RET Z
;DEC HL
LD A,(HL)
AND (IX+9)
BIT 7,(IX+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
ADD A,(IX+7)
CP C
RET NC
JP EPex
; ªãàá®à ¢«¥¢®
EPleft: LD L,(IX+12)
LD H,(IX+13)
LD A,(HL)
AND (IX+9)
BIT 7,(IX+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
DEC A
RET M
JP EPex
; ªãàá®à ¢¯à ¢®
EPright:ld b,(ix+8) ; ç¨á«® 梥â­. ¯®«¥© ¯® Y
xor a
add a,(ix+7) ; ç¨á«® 梥â­. ¯®«¥© ¯® X
djnz $-3
ld c,a
ld l,(ix+12) ; hl= ¤à¥á ­ ç «ì­®£® 梥â 
ld h,(ix+13)
ld a,(hl) ; ­ ç. 梥â
and (ix+9) ; ¬ áª  梥⮢
bit 7,(ix+9)
jr z,$+6
rrca
rrca
rrca
rrca
inc a
cp c
ret nc
EPex: call ResPalCurs
bit 7,(ix+9)
jr z,$+6
RLCA
RLCA
RLCA
RLCA
LD C,A
LD A,(IX+9)
CPL
LD B,A
LD A,(HL)
AND B
OR C
LD (HL),A
CALL SetPalCurs
LD HL,what
LD (HL),evMessage
INC HL
LD (HL),msNewColor
INC HL
LD A,(IX+12)
LD (HL),A
INC HL
LD A,(IX+13)
LD (HL),A
call TransMessUp
jp get_fire
; ‘®¡ë⨥ - ¬ë誠
EPmouse:LD E,(HL) ; X coord
INC HL
LD D,(HL) ; Y coord
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 ; >
LD A,D
CP (IX+4) ; Yo pos list box
RET C
CP (IX+5) ; Yi pos list box
RET NC
BIT 7,(IX+1) ; sel or nosel
PUSH DE
CALL Z,SetPalBox ; ¢ë¤¥«¨âì ®¡ê¥ªâ
POP DE
LD HL,EPexit
PUSH HL
LD L,(IX+12)
LD H,(IX+13)
LD A,E
CP (IX+2)
RET Z
INC A
CP (IX+3)
RET Z
SUB (IX+2)
SUB 2
LD C,A
LD A,D
CP (IX+4) ; Yo pos list box
RET Z
INC A
CP (IX+5) ; Yi pos list box
RET Z
SUB (IX+4)
SUB 2
SRL A
JR Z,EPmous1
LD B,A
SUB A
ADD A,(IX+7)
DJNZ $-3
EPmous1:LD E,A
LD A,C
LD B,-1
INC B
sub 3 ; ¬¨­ãá è £ ¯® £®à¨§.
JR NC,$-3
LD A,B
ADD A,E
LD B,A
BIT 7,(IX+9)
JR Z,$+6
RLCA
RLCA
RLCA
RLCA
LD C,A
LD A,(HL)
AND (IX+9)
CP C
RET Z
LD A,B
JP EPex
; ‘®¡ë⨥ - ®¡ëç­ë¥ ª« ¢¨è¨
EPkeys: ld a,(hl) ;+1 what
bit 7,(ix+1) ; sel or nosel
ret nz ; ®¡ê¥ªâ 㦥 ¢ë¤¥«¥­
cp 9 ; Tab
jr z,SetPalBox ; ¢ë¤¥«¨âì ®¡ê¥ªâ
inc hl
ld a,(hl) ;+2 what ᪥­-ª®¤
cp (ix+10) ; hot-¡ãª¢ 
ret nz
SetPalBox:
call MoveObj ; ®¡ê¥ªâ ¢ ­ ç «® â ¡«¨æë
call ResDialInv ; Reset previos invert
ld ix,DialTab+5 ; â ¡«¨æ  ®¡ê¥ªâ®¢
ld e,(ix+2) ; Xo
inc e
ld d,(ix+4) ; Y
ld a,(ix+6) ; Xi
sub e
ld c,a ; è¨à¨­  ¢ë¤¥«¥­¨ï
call SetDialInv
EPexit: ld hl,what ; ¯®«¥ ᮡëâ¨ï
ld (hl),evNothing
ret
;-------------------------------------------------
; ‘¡à®á¨âì ªãàá®à ¯ «¨âàë
;-------------------------------------------------
ResPalCurs:
PUSH IY
PUSH IX
PUSH HL
PUSH AF
PUSH IX
POP IY
LD IX,DialData ; â ¡«¨æ  ®á­. ¤¨ «. ®ª­ 
LD L,(IY+12) ; hl= ¤à¥á ­ ç «ì­®£® 梥â 
LD H,(IY+13)
LD A,(HL) ; ­ ç. 梥â
AND (IY+9) ; ¬ áª  ¨§ ®¯¨á â¥«ï
BIT 7,(IY+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
LD L,A ; 梥â
LD B,-1
INC B
SUB (IY+7)
JR NC,$-4
ADD A,(IY+7)
LD C,A
ADD A,A ;1+1=2
ADD A,C ;2+1=3 £®à¨§. è £
inc a
LD C,A
LD A,B
ADD A,A ;1+1=2 ¢¥àâ. è £
INC A
LD B,A
PUSH BC
LD A,(IY+2)
SUB (IX+0)
INC A
ADD A,C
LD C,A
LD A,(IY+4)
SUB (IX+1)
INC A
ADD A,B
LD B,A
CALL GetPutA
IN A,(SLOT3)
PUSH AF
LD A,(page_dial_screen)
OUT (SLOT3),A
LD A,"Û" ; ᨬ¢®« § â¨à ­¨ï
LD (DE),A
INC DE
LD A,L
LD (DE),A ; 梥â
POP AF
OUT (SLOT3),A
POP BC
LD A,C
ADD A,(IY+2)
INC A
LD E,A
LD A,B
ADD A,(IY+4)
INC A
LD D,A
LD A,D
CP 31
JR NC,RPalCr
LD A,E
CP 80
JR NC,RPalCr
LD C,84h ; ãáâ. ªãàá®à
PUSH HL
RST 08h
POP DE ; e= âਡãâ
LD A,"Û" ; ᨬ¢®« § â¨à ­¨ï
LD BC,0181h ; ®¤¨­ ᨬ¢®« á  âਡã⮬
RST 08h
RPalCr: POP AF
POP HL
POP IX
POP IY
RET
;-------------------------------------------------
; ‚뤥«¨âì ªãàá®à ¯ «¨âàë
;-------------------------------------------------
SetPalCurs:
PUSH IY
PUSH IX
PUSH HL
PUSH IX
POP IY
LD IX,DialData ; â ¡«¨æ  ®á­. ¤¨ «. ®ª­ 
LD L,(IY+12) ;  ¤à¥á ⥪. 梥â 
LD H,(IY+13)
LD A,(HL)
AND (IY+9)
BIT 7,(IY+9)
JR Z,$+6
RRCA
RRCA
RRCA
RRCA
LD B,-1
INC B
SUB (IY+7)
JR NC,$-4
ADD A,(IY+7)
LD C,A
ADD A,A ;1+1=2
ADD A,C ;2+1=3 £®à¨§. è £
inc a
LD C,A
LD A,B
ADD A,A ;1+1=2 ¢¥àâ. è £
INC A
LD B,A
PUSH BC
LD A,(IY+2)
SUB (IX+0)
INC A
ADD A,C
LD C,A
LD A,(IY+4)
SUB (IX+1)
INC A
ADD A,B
LD B,A
CALL GetPutA
IN A,(SLOT3)
PUSH AF
LD A,(page_dial_screen)
OUT (SLOT3),A
LD A,"*" ; ªãàá®à ¯ «¨âàë
LD (DE),A
INC DE
LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
LD (DE),A
POP AF
OUT (SLOT3),A
POP BC
LD A,C
ADD A,(IY+2)
INC A
LD E,A
LD A,B
ADD A,(IY+4)
INC A
LD D,A
LD A,D
CP 31
JR NC,SPalCr
LD A,E
CP 80
JR NC,SPalCr
LD C,84h ; ãáâ. ªãàá®à
RST 08h
LD A,(color_array+24) ; 梥⠤¨ «. ®ª­ 
LD E,A
LD A,"*" ; ªãàá®à ¯ «¨âàë
LD BC,0181h ; 1 ᨬ¢®« á  âਡã⮬
RST 08h
SPalCr: POP HL
POP IX
POP IY
RET
;-----------------------------------------------------------
; ‚뤥«¨âì § £®«®¢®ª ®¡ê¥ªâ®¢ ~List Box~, ~Pallete Box~
;-----------------------------------------------------------
PLstBoxI:
ld e,(ix+2) ; Xo
inc e
ld d,(ix+4) ; Y
ld a,(ix+6) ; Xi
sub e
ld c,a ; è¨à¨­  ¢ë¤¥«¥­¨ï
call SetDialInv ; ¢ë¤¥«¨âì § £®«®¢®ª
jp StLstBoxI ; 㪠§ â¥«ì ListBox- 
;-----------------------------------------------------------
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ  ~Resident1~
;-----------------------------------------------------------
EResident1:
LD HL,what ; ¯®«¥ ᮡë⨩
LD A,(HL)
INC HL
CP evCommand
JR NZ,ERes1
LD A,(HL) ;+1
DEC HL
CP cmSelect
RET NZ
LD (HL),evNothing
RET
;
ERes1: CP evMessage
RET NZ
LD A,(HL) ;+1 what
CP msNewElem
RET NZ
LD (HL),msNewList
INC HL
PUSH HL
LD L,(HL) ;+2 what ­®¬¥à ᯨ᪠ (1..6)
LD H,0
ADD HL,HL ;1+1=2
ADD HL,HL ;2+2=4
LD DE,ItemTab ; â ¡«¨æ 
ADD HL,DE
LD E,(HL) ; de=ItemList1..6
INC HL
LD D,(HL)
INC HL
LD C,(HL) ; bc=ColList1..6
INC HL
LD B,(HL)
POP HL
LD (HL),E
INC HL
LD (HL),D
LD (AdrCol+1),BC ; ⥪.  ¤à¥á ¢ ¬ áᨢ¥ 梥⮢
RET
;-------------------------------------------------
; Ž¡à ¡®â稪 ᮡë⨩ ®¡ê¥ªâ  ~Resident1~
;-------------------------------------------------
EResident2:
LD HL,what
LD A,(HL)
INC HL
CP evCommand
JR NZ,ERes2
LD A,(HL)
DEC HL
CP cmSelect
RET NZ
LD (HL),evNothing
RET
;
ERes2: CP evMessage
RET NZ
LD A,(HL)
CP msNewElem
RET NZ
LD (HL),msNewColor
INC HL
LD C,(HL) ; ­®¬¥à ᯨ᪠ 1..6
LD B,0
EX DE,HL
AdrCol: LD HL,0 ; ⥪.  ¤à¥á ¢ ¬ áᨢ¥ 梥⮢
ADD HL,BC ;1+1=2
;ADD HL,BC;? ;2+1=3 ã¡à âì
EX DE,HL
LD (HL),E
INC HL
LD (HL),D
RET