;-------------------------------------	
KEY_TEST
	;di
	xor 	a	
	ld 	(U_PRESSED),a
	ld 	(D_PRESSED),a
	ld 	(L_PRESSED),a
	ld 	(R_PRESSED),a
	ld 	(F_PRESSED),a

	; 
	ld	a,(IS_KEMPSTON)
	and	a
	jr	z,KT_F
	in	a,(31)
	ld	c,a
	ld	a,1
	rr	c
	jr	nc,no_kr
	ld 	(R_PRESSED),a
no_kr	rr	c
	jr	nc,no_kl
	ld 	(L_PRESSED),a
no_kl	rr	c
	jr	nc,no_ku
	ld 	(D_PRESSED),a
no_ku	rr	c
	jr	nc,no_kd
	ld 	(U_PRESSED),a
no_kd	rr	c
	jr	nc,KT_F
	ld 	(F_PRESSED),a

	; 
KT_F	ld 	a,(F_PORT)
	in 	a,(254)
F_BIT	bit 	0,a
	jr 	nz,KT_L
	ld 	a,1
	ld 	(F_PRESSED),a

KT_L	ld 	a,(L_PORT)
	in 	a,(254)
L_BIT	bit 	0,a
	jr 	nz,KT_D
	ld 	a,1
	ld 	(L_PRESSED),a

KT_D	ld 	a,(D_PORT)
	in 	a,(254)
D_BIT	bit 	1,a
	jr 	nz,KT_R
	ld 	a,1
	ld 	(D_PRESSED),a

KT_R	ld 	a,(R_PORT)
	in 	a,(254)
R_BIT	bit 	2,a
	jr 	nz,KT_U
	ld 	a,1
	ld 	(R_PRESSED),a

KT_U	ld 	a,(U_PORT)
	in 	a,(254)
U_BIT	bit 	1,a
	ret 	nz	
	ld 	a,1
	ld 	(U_PRESSED),a
	;ei
	ret
	
U_PRESSED	DEFB	0
D_PRESSED	DEFB	0	
L_PRESSED	DEFB	0	
R_PRESSED	DEFB	0	
F_PRESSED	DEFB	0	
U_PORT		DEFB	#FB	;    
D_PORT		DEFB	#FD	;  
L_PORT		DEFB	#FD
R_PORT		DEFB	#FD
F_PORT		DEFB	#BF
IS_KEMPSTON	DEFB	0

;--------------------------
WAIT_RELEASE_KEYS
	LD	HL,KEY_PORTS

	LD	B,8			;8 
WRK_NP	LD	A,(HL)
	IN	A,(254)
	AND	31			; 5 (5   )
	CP	31
	JR	NZ,WAIT_RELEASE_KEYS	; .
	INC	HL			; 
	DJNZ	WRK_NP

	ld	a,(IS_KEMPSTON)
	and	a
	ret	z

wrk_kj	in	a,(31)
	and	31
	jr	nz,wrk_kj

	RET	;    

;---------------------------
WAIT_PRESS_KEY
	LD	HL,KEY_PORTS
	LD	B,8	;8 
		
WPK_NP	LD	A,(HL)
	IN	A,(254)


	ld	c,a
	LD	A,#FE
	CP	(HL)
	ld	a,c
	JR	NZ,WAKP_0
	OR	1		;CAPS SHIFT -  
WAKP_0	
	LD	C,5	;5 
	LD	DE,BIT_HALFCODE
NXT_BIT	RRA
	RET	NC		; .  (HL) ,  (DE)   BIT
	INC	DE
	DEC	C
	JR	NZ,NXT_BIT

	INC	HL
	DJNZ	WPK_NP
	JR	WAIT_PRESS_KEY	;    

;---------------------------
WAIT_PRESS_KEY_OR_JOY
	LD	HL,KEY_PORTS
	LD	B,8	;8 
		
WPKJ_NP	LD	A,(HL)
	IN	A,(254)
	ld	c,a
	LD	A,#FE
	CP	(HL)
	ld	a,c
	JR	NZ,WPKJ_0
	OR	1		;CAPS SHIFT -  
WPKJ_0	
	LD	C,5	;5 
	LD	DE,BIT_HALFCODE
NXT_BKJ	RRA
	RET	NC		; .  (HL) ,  (DE)   BIT
	INC	DE
	DEC	C
	JR	NZ,NXT_BKJ

	INC	HL
	DJNZ	WPKJ_NP

	ld	a,(IS_KEMPSTON)
	and	a
	JR	z,WAIT_PRESS_KEY_OR_JOY

	in	a,(31)
	and	31
	ret	nz

	JR	WAIT_PRESS_KEY_OR_JOY	;    

;---------------------------
IS_ANY_KEY
	LD	HL,KEY_PORTS
	LD	B,8			;8 
IAK_NP	LD	A,(HL)
	IN	A,(254)
	AND	31			; 5 (5   )
	XOR	31
	RET	NZ			; 
	INC	HL			; 
	DJNZ	IAK_NP
	RET				;    

;--------------------------------
KEY_PORTS	DEFB	#7F,#BF,#DF,#EF,#F7,#FB,#FD,#FE		; 8  
BIT_HALFCODE	DEFB	#47,#4F,#57,#5F,#67

BIT_0		EQU	#47	;   BIT 0,A  BIT 4,A
BIT_1		EQU	#4F
BIT_2		EQU	#57
BIT_3		EQU	#5F
BIT_4		EQU	#67











