CHK_MAIN_LEFT:
	.db	0,0,24*8,13*16
	.dw	CHK_LEMOUSE_SCR

	.db	192,7,255,64+7
	.dw	CHK_LEMOUSE_RAD

	.db	24*8,7*16,255,212
	.dw	CHK_LEMOUSE_MENU
CHK_MAIN_RIGHT:
	.db	0,0,24*8,13*16
	.dw	CHK_RIMOUSE_SCR

	.db	192,7,255,64+7
	.dw	CHK_RIMOUSE_RAD

	.db	24*8,7*16,255,212
	.dw	CHK_RIMOUSE_MENU

CHK_MOUSE_LEFT:
	LD	DE,(MOUSEY)
	LD	HL,#CHK_MAIN_LEFT
	LD	B,#3
	JP	CHK_BUTTON
CHK_MOUSE_RIGHT:
	LD	DE,(MOUSEY)
	LD	HL,#CHK_MAIN_RIGHT
	LD	B,#3
	JP	CHK_BUTTON


;=;;=;;========================================================

CHK_LEMOUSE_SCR:
	LD	HL,(ADR)
	INC	HL		;2VELD LAYER
	INC	HL		;2TNK LAYER
	LD	A,E		; E=Y
	SRL	A
	SRL	A
	SRL	A
	LD	B,A
	AND	#0xFE
	ADD	H
	LD	H,A

	LD	A,D
	SRL	A
	LD	C,A
	AND	#0x7C
	LD	E,A
	LD	D,#0
	ADD	HL,DE

	LD	A,(HL)
	OR	A
	JR	NZ,CHK_LEMOUSE_TNK		; TOT HIER IS HET GOED !!!

	;LD	A,(SECECTED_ITEM)
	;OR	A
	;JP	Z,CHK_MMSEL

	SRL	B
	LD	A,(VIEW_Y)
	ADD	A,B
	LD	E,A

	SRL	C
	SRL	C
	LD	A,(VIEW_X)
	SLA	A
	ADD	A,C
	LD	D,A

	LD	B,#64
	LD	IY,#MSEL_COR_TAB
	LD	HL,#SECECTED_ITEM
CHK_LEMOUSE_MOVE_LP:
	DEC	B
	LD	A,B
	OR	A
	RET	Z

	LD	A,(HL)
	INC	HL
	OR	A
	JR	Z,CHK_LEMOUSE_MOVE_LP

	EXX
	CALL	A_TO_IX
	EXX

	LD	A,D
	ADD	0(IY)
	LD	2(IX),A
	LD	A,E
	ADD	1(IY)
	LD	3(IX),A		; MOVE TANK

	INC	IY
	INC	IY
	JR	CHK_LEMOUSE_MOVE_LP	



;==========


CHK_LEMOUSE_TNK:
	LD	C,A
	LD	A,(KEYS_TAB+6); CHK OP SHIFT
	LD	B,#64
	LD	HL,#SECECTED_ITEM-1
	BIT	0,A
	JR	NZ,CHK_LEMOUSE_TNK_SEL

	LD	A,C
	AND	#0b11000000
	RET	NZ		; GEEN EIGEN COLOR 

CHK_LEMOUSE_TNK_LP:
	INC	HL
	DEC	B			; MET SHIFT
	LD	A,B
	OR	A
	RET	Z			; GEEN PLEK IN DE TAB

	LD	A,(HL)
	CP	C
	JR	Z,CHK_LEMOUSE_TNK_DIMUL ; DIT BEN IK ZELF

	OR	A
	JR	NZ,CHK_LEMOUSE_TNK_LP

	LD	(HL),C
	JR	CHK_LEMOUSE_TNK_MUL		; FOUND MYSELF A PLACE	


; MET SHIFT OFTEWIJL MUTILBLE

CHK_LEMOUSE_TNK_SEL:
	LD	A,C	; NIEUWE TNK
	AND	#0b11000000
	JP	NZ,CHK_LEMOUSE_TNK_ATT	
CHK_LEMOUSE_TNK_SEL_LP:
	DEC	B
	LD	A,B
	OR	A
	JR	Z,CHK_LEMOUSE_TNK_SEL_END	; LEEG

	LD	A,(HL)
	LD	(HL),#0
	INC	HL
	OR	A
	JR	Z,CHK_LEMOUSE_TNK_SEL_LP

	EXX
	CALL	A_TO_IX
	EXX

	RES	0,9(IX)		; DESELTED ALL TANKS
	JR	CHK_LEMOUSE_TNK_SEL

CHK_LEMOUSE_TNK_SEL_END:
	LD	A,C
	LD	(SECECTED_ITEM),A	; NIEUWE TANK !!
CHK_LEMOUSE_TNK_MUL:
	LD	A,C
	CALL	A_TO_IX
	SET	0,9(IX)

	LD	HL,#MOVE_SP
	CALL	TYPE_SP0
	LD	A,#1
	LD	(CUR_TYPE_SP0),A

	CALL	COLOR_WHITE
	EI
	HALT
	HALT
	HALT
	CALL	COLOR_BLACK
	RET


;---

CHK_LEMOUSE_TNK_ATT:
	DEC	B
	LD	A,B
	OR	A
	RET	Z

	LD	A,(HL)
	INC	HL
	OR	A
	JR	Z,CHK_LEMOUSE_TNK_ATT

	EXX
	CALL	A_TO_IX
	EXX

	LD	8(IX),C		; QUAKE NR ( DE LUL )
	SET	7,9(IX)		; ATT ALL TANKS
	JR	CHK_LEMOUSE_TNK_SEL


CHK_LEMOUSE_TNK_DIMUL:		; TANKS DESELSECTEN MET SHIFT
	EXX
	CALL	A_TO_IX
	EXX
	BIT	0,9(IX)
	RET	Z
	LD	(HL),#0
	RES	0,9(IX)
	RET

MSEL_START_COR:
	.db	0,0

CHK_MMSEL:
	LD	DE,(MOUSEY)
	LD	(MSEL_START_COR),DE

	RET


	NOP		; 
SECECTED_ITEM:
	.ds	64		; MSEL LIJN

CHK_LEMOUSE_RAD:
	LD	HL,#0x4000

	LD	A,D	; X
	SUB	#192
	CP	#51
	JR	C,CHK_LEMOUSE_RAD_X
	LD	A,#51			;52
CHK_LEMOUSE_RAD_X:
	LD	D,A
	LD	(VIEW_X),A
	LD	B,#0
	SLA	A
	SLA	A
	SLA	A
	RL	B
	LD	C,A
	ADD	HL,BC

	LD	A,D
	ADD	A,#192
	LD	B,A

	LD	A,E
	SUB	#7
	CP	#64-14
	JR	C,CHK_LEMOUSE_RAD_Y
	LD	A,#64-14
CHK_LEMOUSE_RAD_Y:
	LD	(VIEW_Y),A
	LD	D,A
	SLA	D
	LD	E,#0
	ADD	HL,DE

	LD	(ADR),HL
	ADD	A,#8
	LD	C,A
	JP	PUTSPRITE1

CHK_LEMOUSE_MENU:
	LD	A,(FIRE_BUTTONS)
	BIT	5,A
	RET	NZ
	JP	EXIT_DOME

CHK_RIMOUSE_SCR:
	XOR	A
	LD	(CUR_TYPE_SP0),A
	LD	(MSEL_START_COR),A
	LD	(MSEL_START_COR+1),A
	LD	HL,#CURSOR_SP
	CALL	TYPE_SP0

	LD	B,#64
	LD	HL,#SECECTED_ITEM
CHK_RIMOUSE_SCR_LP:
	DEC	B
	LD	A,B
	OR	A
	RET	Z

	LD	A,(HL)
	LD	(HL),#0
	INC	HL
	OR	A
	JR	Z,CHK_RIMOUSE_SCR_LP

	EXX
	CALL	A_TO_IX
	EXX

	RES	0,9(IX)
	JR	CHK_RIMOUSE_SCR_LP


CHK_RIMOUSE_RAD:
	JP	A0
CHK_RIMOUSE_MENU:
	RET

;===============================================================================
CHK_XY:
	LD	A,#255
	EX	AF,AF
	LD	A,#255		; MOET SNELLER ( XAND A )??
SCRL:
	LD	DE,(MOUSEY)

	LD	A,E
	CP	#202
	JP	NC,SCRL_D

	CP	#2
	JP	C,SCRL_U

	LD	A,D
	CP	#246
	JR	NC,SCRL_R

	CP	#2
	JP	C,SCRL_L

	LD	A,(KEYS_TAB+8)
	BIT	7,A
	JR	Z,SCRL_R
	BIT	6,A
	JP	Z,SCRL_D
	BIT	5,A
	JP	Z,SCRL_U
	BIT	4,A
	JR	Z,SCRL_L
SCRL_RET:
	EX	AF,AF
	OR	A
	RET	NZ

	LD	A,(CUR_TYPE_SP0)
	LD	HL,#CURSOR_SP
	OR	A
	JP	Z,TYPE_SP0

	LD	HL,#MOVE_SP
	CP	#1
	JP	Z,TYPE_SP0

	CALL	COLOR_WHITE
	HALT
	HALT
	HALT
	HALT
	HALT
	HALT
	HALT
	HALT
	RET	

SCRL_R:
	LD	A,(VIEW_X)
	CP	#52
	JR	Z,SCRL_RET
	INC	A
	LD	(VIEW_X),A

	ADD	A,#192
	LD	B,A
	LD	A,(VIEW_Y)
	ADD	A,#8
	LD	C,A
	CALL	PUTSPRITE1

	LD	HL,#RIGHT_SP
	CALL	TYPE_SP0
	LD	HL,#0
	LD	(MSEL_START_COR),HL

	LD	HL,(ADR)
	LD	B,#0
	LD	C,#8
	ADD	HL,BC
	LD	(ADR),HL

	CALL	BUILD
	XOR	A
	EX	AF,AF
	JP	SCRL



SCRL_L:
	LD	A,(VIEW_X)
	CP	#1
	JP	Z,SCRL_RET
	DEC	A
	LD	(VIEW_X),A
	ADD	A,#192
	LD	B,A
	LD	A,(VIEW_Y)
	ADD	A,#8
	LD	C,A
	CALL	PUTSPRITE1

	LD	HL,#LEFT_SP
	CALL	TYPE_SP0
	LD	HL,#0
	LD	(MSEL_START_COR),HL

	LD	HL,(ADR)
	LD	B,#0
	LD	C,#8
	XOR	A
	SBC	HL,BC
	LD	(ADR),HL

	CALL	BUILD
	XOR	A
	EX	AF,AF
	JP	SCRL
SCRL_D:
	LD	A,(VIEW_Y)
	CP	#63-13	;???
	JP	Z,SCRL_RET
	INC	A
	LD	(VIEW_Y),A
	ADD	A,#8
	LD	C,A
	LD	A,(VIEW_X)
	ADD	A,#192
	LD	B,A
	CALL	PUTSPRITE1

	LD	HL,#DOWN_SP
	CALL	TYPE_SP0
	LD	HL,#0
	LD	(MSEL_START_COR),HL

	LD	HL,(ADR)
	INC	H
	INC	H
	LD	(ADR),HL

	CALL	BUILD
	XOR	A
	EX	AF,AF
	JP	SCRL

SCRL_U:
	LD	A,(VIEW_Y)
	CP	#1	;???
	JP	Z,SCRL_RET
	DEC	A
	LD	(VIEW_Y),A
	ADD	A,#8
	LD	C,A
	LD	A,(VIEW_X)
	ADD	A,#192
	LD	B,A
	CALL	PUTSPRITE1

	LD	HL,#UP_SP
	CALL	TYPE_SP0
	LD	HL,#0
	LD	(MSEL_START_COR),HL

	LD	HL,(ADR)
	DEC	H
	DEC	H
	LD	(ADR),HL

	CALL	BUILD
	XOR	A
	EX	AF,AF
	JP	SCRL

FIRE_BUTTONS:	.db	0
EXIT_STACK:	.dw	0
MSX_TYPE:	.db	0
CUR_TYPE_SP0:	.db	0
INT_DOME:	.dw	I_INTERRUPT
INT_DOS:	.dw	0	; DEZE WORDT INGEVULD   

MOUSE_OFF:	.db	0
MOUSE_USE:	.db	0
MOUSE_PORT:	.db	0
MOUSE_WAIT1:	.db	0
MOUSE_WAIT2:	.db	0

MOUSEY:	.db	40	; Raad eens !
MOUSEX:	.db	40	; X coor. van cursor/muis

VIEW_X:	.db	0
VIEW_Y:	.db	0

CURSOR_SP:
	.db	0b11111111,0,0,0	; MAX 32 * 32 PUNTJES  
	.db	0b10000001,0,0,0
	.db	0b10000010,0,0,0
	.db	0b10000100,0,0,0
	.db	0b10001000,0,0,0
	.db	0b10010000,0,0,0
	.db	0b10100000,0,0,0
	.db	0b11000000,0,0,0

LEFT_SP:
	.db	0b00010000,0,0,0
	.db	0b00110000,0,0,0
	.db	0b01110000,0,0,0
	.db	0b11111111,0,0,0
	.db	0b11111111,0,0,0
	.db	0b01110000,0,0,0
	.db	0b00110000,0,0,0
	.db	0b00010000,0,0,0
RIGHT_SP:
	.db	0b00001000,0,0,0
	.db	0b00001100,0,0,0
	.db	0b00001110,0,0,0
	.db	0b11111111,0,0,0
	.db	0b11111111,0,0,0
	.db	0b00001110,0,0,0
	.db	0b00001100,0,0,0
	.db	0b00001000,0,0,0
UP_SP:
	.db	0b00011000,0,0,0
	.db	0b00111100,0,0,0
	.db	0b01111110,0,0,0
	.db	0b11111111,0,0,0
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
DOWN_SP:
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
	.db	0b00011000,0,0,0
	.db	0b11111111,0,0,0
	.db	0b01111110,0,0,0
	.db	0b00111100,0,0,0
	.db	0b00011000,0,0,0
MOVE_SP:
	.db	0b00111100,0,0,0
	.db	0b01000010,0,0,0
	.db	0b10000001,0,0,0
	.db	0b10011001,0,0,0
	.db	0b10011001,0,0,0
	.db	0b10000001,0,0,0
	.db	0b01000010,0,0,0
	.db	0b00111100,0,0,0

MSEL_COR_TAB:
	.db	0,0,1,0,0,1,1,1,2,0,2,1,0,2,1,2
	.db	2,2,3,0,3,1,3,2,0,3,1,3,2,3,3,3
	.db	4,0,4,1,4,2,4,3,0,4,1,4,2,4,3,4
	.db	4,4,5,0,5,1,5,2,5,3,5,4,0,5,1,5
	.db	2,5,3,5,4,5,5,5,6,0,6,1,6,2,6,3
	.db	6,4,6,5,0,6,1,6,2,6,3,6,4,6,5,6
	.db	6,6,7,0,7,1,7,2,7,3,7,4,7,5,7,6
	.db	0,7,1,7,2,7,3,7,4,7,5,7,6,7,7,7

	.db	8,0,8,1,8,2,8,3,8,4,8,5,8,6,8,7
	.db	0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8,8,8

RADAR_SP:
	.db	0b11111111,0b11111111,255,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0
	.db	0b10000000,0b00000000,1,0	; MAX 32 * 32 PUNTJES
	.db	0b11111111,0b11111111,255,0


SP0_CMD:	.db	36,17	; REG 36 , 17 BYTES
	.dw	768	; DX
	.dw	1023	; DY
	.dw	32	; NX  
	.dw	1	; NY  
	.db	0,12	; 0,OPRATIE     
	.dw	0xFFFF	; COLOR MASK     
	.db	0,0	; COLOR     
	.db	0,0	;     
	.db	16	; OPCODE    

SP1_CMD:	.db	36,17	; REG 36 , 17 BYTES
	.dw	896	; DX
	.dw	1023	; DY
	.dw	52	; NX
	.dw	1	; NY   
	.db	0,12	; 0,OPRATIE      
	.dw	0xFFFF	; COLOR MASK      
	.db	0,0	; COLOR      
	.db	0,0	;      
	.db	16	; OPCODE     



; DIT IS CODE OM JE SCREERM MEE TE BEKIJKEN


A0:
	IN	A,(0x65)
	AND	#64
	JR	NZ,A0
A1:
	IN	A,(0x65)
	AND	#64
	JR	Z,A1

	LD	A,#18
	OUT	(0x64),A
	LD	A,#1
	OUT	(0x63),A
	XOR	A
	OUT	(0x63),A

	LD	A,(SELECT-1)
	LD	B,A
	AND	#0xF0
	LD	C,A

	LD	A,B
	SLA	A
	SLA	A
	SLA	A
	AND	#0x78
	LD	B,A

	INC	C
	CALL	PUTSPRITE1

	EI
	HALT
	HALT
	HALT
	HALT
	CALL	SELECT

A2:
	IN	A,(0x65)
	AND	#64
	JR	NZ,A2
A3:
	IN	A,(0x65)
	AND	#64
	JR	Z,A3

	LD	A,#18
	OUT	(0x64),A
	XOR	A
	OUT	(0x63),A
	LD	A,(PAGE)
	OUT	(0x63),A

	LD	A,(VIEW_Y)
	LD	C,A
	LD	A,(VIEW_X)
	ADD	A,#192
	LD	B,A
	CALL	PUTSPRITE1

	EI
	HALT
	HALT
	HALT
	HALT
	HALT
	HALT

	LD	A,#255
	LD	(FIRE_BUTTONS),A

	RET


	.db	0
SELECT:
	EI
	HALT
	LD	A,(FIRE_BUTTONS)
	BIT	5,A
	RET	Z
	BIT	4,A
	JR	NZ,SELECT

	LD	DE,(MOUSEY)	; E=Y

	LD	A,D
	SRL	A
	SRL	A
	SRL	A
	AND	#0b00001111
	LD	B,A

	LD	A,E
	AND	#0xF0
	OR	B
	LD	(SELECT-1),A

	LD	A,D
	AND	#0x78	; DON'Y USE HISTET BIT X>256
	LD	B,A

	LD	A,E
	AND	#0xF0
	LD	C,A

	INC	C
	CALL	PUTSPRITE1

	JR	SELECT