mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
1047 lines
25 KiB
NASM
Executable File
1047 lines
25 KiB
NASM
Executable File
;-----------------------------------------------------------
|
||
; <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
|