Rev 764 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
;LAST UPDATE; 03.05.2019 savelij
;
SAVE2X2 LD HL,FLAGS
BIT B_VIDEO_MODE,(HL)
RET NZ
LD HL,(ADR_REST)
LD DE,MOUSE_BUFF
LD B,8
SAVE2X21 LD A,(HL)
LD (DE),A
INC DE
INC L
LD A,(HL)
LD (DE),A
INC DE
DEC L
CALL INC_H
DJNZ SAVE2X21
RET
;
REST2X2 LD HL,FLAGS
BIT B_VIDEO_MODE,(HL)
RET NZ
LD HL,(ADR_REST)
LD DE,MOUSE_BUFF
LD B,8
REST2X21 LD A,(DE)
LD (HL),A
INC DE
INC L
LD A,(DE)
LD (HL),A
INC DE
DEC L
CALL INC_H
DJNZ REST2X21
RET
DETECTMOUSE LD HL,FLAGS
LD BC,0XFBDF
LD E,0X20
EI
HALT
IN D,(C) ;1. X
SETMOU1 IN A,(C)
CP D
JR NZ,SETMOU2
DEC E
JR NZ,SETMOU1 ;2.KEYS<>X
DEC B
IN A,(C)
CP D
JR Z,SETMOU2 ;3.KEYS&7=7(LION17)
CPL
AND 7
SET B_MOUSE_PRESENT,(HL)
RET Z
SETMOU2 RES B_MOUSE_PRESENT,(HL)
SCF
RET
MOUSE LD HL,FLAGS
BIT B_VIDEO_MODE,(HL)
RET NZ
LD HL,(ARXY)
LD DE,(MOUPOS) ;D=Y , E=X
LD BC,0XFBDF
IN A,(C) ;
X
LD (MOUPOS),A
SUB E
JR Z,MOUNX
JP P,MOUPX
ADD A,L
JR C,$+3
XOR A
LD L,A
JR MOUNX
MOUPX ADD A,L
JR C,$+6
CP 0XF9
JR C,$+4
LD A,0XF9
LD L,A
MOUNX LD BC,0XFFDF ;
Y
IN A,(C)
LD (MOUPOS+1),A
SUB D
JR Z,MOUNY
NEG
JP P,MOUPY
ADD A,H
JR C,$+3
XOR A
LD H,A
JR MOUNY
MOUPY ADD A,H
JR C,$+6
CP 0XB8
JR C,$+4
LD A,0XB8
LD H,A
MOUNY LD (ARXY),HL
RET
MOUOPT LD H,(IX+1)
LD L,(IX+0)
LD DE,(ARXY)
LD B,3
SRL D
SRL E
DJNZ $-4
LD A,E
CP L
RET C ;
LD A,L
ADD A,(IX+3)
DEC A
CP E
RET C ;
LD A,D
INC H
CP H
RET C ;
LD A,H
ADD A,(IX+2)
SUB 3
CP D
RET C ;
;
LD A,(IX+_NUM_KOL_H)
AND A
JR NZ,.L1
OR (IX+_NUM_KOL_L)
JR Z,.L1
;
- 2
PUSH HL
LD L,A
LD H,(IX+_NUM_KOL_H)
LD A,D
SUB (IX+_Y_COORD)
LD C,A
LD B,0
AND A
SBC HL,BC
POP HL
RET C
.L1 LD A,D
SUB H
LD C,A
LD L,(IX+8)
LD H,(IX+9)
BIT 7,(IX+7)
JR Z,MOUOPT1
LD B,0
LD C,(HL)
INC HL
LD E,(HL)
INC HL
LD D,(HL)
EX DE,HL
SBC HL,BC
LD C,A
ADD HL,BC
EX DE,HL
LD (HL),D
DEC HL
LD (HL),E
DEC HL
LD (HL),A
JP COLOR_CURSOR
MOUOPT1 LD B,0
LD D,B
LD E,(IX+7)
SBC HL,DE
ADD HL,BC
LD (IX+7),C
LD (IX+8),L
LD (IX+9),H
JP COLOR_CURSOR
DRAW_MOUSE LD BC,(ARXY)
LD L,B
LD H,0
ADD HL,HL
LD DE,BUFTSC
ADD HL,DE
LD A,C
RRCA
RRCA
RRCA
AND 0X1F
ADD A,(HL)
INC HL
LD H,(HL)
LD L,A
LD (ADR_REST),HL
PUSH HL
CALL SAVE2X2
LD A,(_MORG)
INC A
LD HL,FLAGS
CP 0X0C
JR NZ,_MORG3
LD A,M_CURSOR_NUM
XOR (HL)
LD (HL),A
XOR A
_MORG3 LD (_MORG),A
LD A,(ARXY)
AND 7
CPL
ADD A,9
LD C,A
LD A,(FLAGS)
AND M_CURSOR_NUM
LD HL,SPRAR
JR Z,_MORG2
LD HL,SPRAR2
_MORG2 LD B,8
POP DE
PRAR0 PUSH BC
LD B,C
LD C,(HL)
INC HL
PUSH HL
LD L,(HL)
EX DE,HL
LD A,0XFF
LD D,0
PRAR1 SCF
RL C
RLA
SLA E
RL D
DJNZ PRAR1
AND (HL)
OR D
LD (HL),A
INC L
LD A,(HL)
AND C
OR E
LD (HL),A
DEC L
CALL INC_H
EX DE,HL
POP HL
INC HL
POP BC
DJNZ PRAR0
RET
;
OPMSPL LD E,(IX+0X10)
LD D,(IX+0X11)
LD A,D
OR E
RET Z ;
PUSH IX
PUSH DE
POP IX
LD HL,(ARXY) ;H=Y, L=X
SRL H
SRL H
SRL H
SRL L
SRL L
SRL L ;HL=HL/8
NXTPOS2 LD A,(IX+0)
INC A
JR Z,ENDWI
LD A,L
CP (IX+1)
JR C,NXTPOS1 ;
LD A,(IX+1)
ADD A,(IX+4)
DEC A
CP L
JR C,NXTPOS1 ;
LD A,H
CP (IX+2)
JR C,NXTPOS1 ;
LD A,(IX+2)
ADD A,(IX+3)
DEC A
CP H
JR C,NXTPOS1 ;
LD A,(IX+5) ;
ENDWI POP IX ;
RET ;
NXTPOS1 LD DE,6 ;
ADD IX,DE ;
JR NXTPOS2