CMOUSE EQU 1BH DMOUSE EQU 1AH VSIZEX EQU 256 ;X SIZE SCREEN VSIZEY EQU 256 ;Y SIZE SCREEN INTERUPT: CALL READ_M CALL C,MCORECT RET ;READING MOUSE ; HL - X COORD ; DE - Y COORD ; A - BUTTONS ; D0 - LEFT ; D1 - RIGHT MS_READ: LD HL,(PIX_X) LD DE,(PIX_Y) LD A,(MB) RET ;INITIALIZING COM PORT MS_INIT: DI LD A,85 OUT (10H),A LD A,45 OUT (10H),A LD A,0 OUT (CMOUSE),A LD A,1 OUT (CMOUSE),A LD A,0 OUT (CMOUSE),A LD A,3 OUT (CMOUSE),A LD A,41H OUT (CMOUSE),A LD A,4 OUT (CMOUSE),A LD A,47H OUT (CMOUSE),A LD A,5 OUT (CMOUSE),A LD A,0E0H OUT (CMOUSE),A EI RET READ_M: IN A,(CMOUSE) RRCA RET NC IN A,(DMOUSE) LD L,A BIT 6,A CCF RET Z TST_01: IN A,(CMOUSE) RRCA JP NC,TST_01 IN A,(DMOUSE) LD E,A BIT 6,A CCF RET NZ TST_02: IN A,(CMOUSE) RRCA JP NC,TST_02 IN A,(DMOUSE) LD D,A BIT 6,A CCF RET NZ LD A,E AND 03FH LD E,A LD A,L AND 003H RRCA RRCA OR E LD E,A LD A,D AND 03FH LD D,A LD A,L AND 00CH RRCA RRCA RRCA RRCA OR D LD D,A LD A,L RLCA RLCA RLCA RES 6,A JR NC,STBU SET 6,A STBU: RLCA RLCA AND 03H LD (MB),A LD A,E LD (MX),A LD A,D LD (MY),A SCF RET MCORECT: LD HL,(PIX_X) LD DE,(MX) LD D,0 BIT 7,E JP NZ,DECX ADD HL,DE LD (PIX_X),HL EX DE,HL LD HL,VSIZEX-1 AND A SBC HL,DE JP NC,YCOO LD HL,VSIZEX-1 LD (PIX_X),HL JP YCOO DECX: LD A,E NEG LD E,A AND A SBC HL,DE LD (PIX_X),HL JP NC,YCOO LD HL,0 LD (PIX_X),HL YCOO: LD HL,(PIX_Y) LD DE,(MY) LD D,0 BIT 7,E JP NZ,DECY ADD HL,DE LD (PIX_Y),HL EX DE,HL LD HL,VSIZEY-1 AND A SBC HL,DE RET NC LD HL,VSIZEY-1 LD (PIX_Y),HL RET DECY: LD A,E NEG LD E,A AND A SBC HL,DE LD (PIX_Y),HL RET NC LD HL,0 LD (PIX_Y),HL RET PIX_X: DEFW 128 PIX_Y: DEFW 128 MX: DEFB 00 MY: DEFB 00 MB: DEFB 00