
	PAGE

;********************************************************
;*							*
;*		キー入力テスト 初期設定			*
;*							*
;********************************************************

KEY_TEST_INIT

		CALL	LCDC_OFF

		BGCLR	$00,VBK_1		; BGアトリビュートクリア
		BGCLR	SPACE,VBK_0		; BG CHRコードセット
		BGSET	KEYBG,VBK_0

		CALL	KEY_OBJ_INIT

		VECTOR	VBLK,KEY_TEST_VBLK_INT

		NEXT_MAIN	KEY_TEST

		LD	HL,IE_BUF		; キー入力割り込み OFF
		RES	IE_PORT_BIT,(HL)
		CALL	IE_SET

		XOR	A			; 割り込みカウンタ
		LD	(R0),A

		CALL	LCDC_ON

		RET


KEY_OBJ_INIT
		LD	HL,OBJRAM
		LD	C,8
		LD	B,7

_10		LD	A,B
		PUSH	HL
		LD_ARRAY	KEYTEST_OBJ_YPOS	; Y Pos
		POP	HL
		LD	(HLI),A
		LD	A,B
		PUSH	HL
		LD_ARRAY	KEYTEST_OBJ_XPOS	; X Pos
		POP	HL
		LD	(HLI),A
		LD	A,SPACE				; CHR No.
		LD	(HLI),A
		LD	A,$00				; ATRB
		LD	(HLI),A

		DEC	B
		DEC	C
		JR	NZ,_10
		RET


			      ;  D   U   L   R   SE  ST  B   A
KEYTEST_OBJ_YPOS	DEFB	$64,$44,$54,$54,$54,$54,$54,$54
KEYTEST_OBJ_XPOS	DEFB	$24,$24,$14,$34,$4C,$64,$7C,$94


;********************************************************
;*							*
;*		キー入力テスト キー入力割り込み		*
;*							*
;********************************************************

KEY_TEST_PORT_INT
		PUSH	AF

		LD	A,(R0)
		INC	A
		LD	(R0),A

		POP	AF
		RETI


;********************************************************
;*							*
;*		キー入力テスト				*
;*							*
;********************************************************

KEY_TEST
		LD	A,(TRG1)
		BIT	ST_KEY_BIT,A		; キー入力割り込み ON/OFF
		JR	Z,_10

		LD	A,(IE_BUF)
		XOR	IE_PORT
		LD	(IE_BUF),A
		CALL	IE_SET

_10		LD	HL,OBJRAM +2
		LD	E,4
		LD	D,0

		LD	A,(CNT1)
		LD	B,A

		BIT	A_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	B_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	ST_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	SE_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	R_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	L_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	U_KEY_BIT,B
		CALL	KEY_TEST_BIT

		BIT	D_KEY_BIT,B
		CALL	KEY_TEST_BIT

;--------------------------------------------------------

		LD	A,A_KEY | B_KEY
		CP	B
		RET	NZ

		LD	HL,IE_BUF		; キー入力割り込み OFF
		RES	IE_PORT_BIT,(HL)
		CALL	IE_SET

		NEXT_MAIN	SET_BG_TITLE
		RET


KEY_TEST_BIT
		JR	Z,_10
		LD	A,$03			; CHR No.
		JR	_11
_10		LD	A,SPACE
_11		LD	(HL),A
		ADD	HL,DE			; HL += 4
		RET


;********************************************************
;*							*
;*		キー入力テスト V-BLANK割り込み		*
;*							*
;********************************************************

KEY_TEST_VBLK_DSP_INT		=	$99F2
KEY_TEST_VBLK_DSP_COUNT		=	$9A11
		
KEY_TEST_VBLK_INT
		PUSH	AF
		PUSH	BC
		PUSH	DE
		PUSH	HL

		LD	A,FONT_0
		LD	HL,IE_BUF
		BIT	IE_PORT_BIT,(HL)
		JR	Z,_10
		INC	A
_10		LD	HL,KEY_TEST_VBLK_DSP_INT
		LD	(HL),A

		LD	A,(R0)
		LD	BC,KEY_TEST_VBLK_DSP_COUNT
		CALL	GET_NUM

;--------------------------------------------------------

		LD	HL,VBCOUNT
		INC	(HL)

		LD	A,1
		LD	(VBLK_FLG),A

		POP	HL
		POP	DE
		POP	BC
		POP	AF
		RETI


;********************************************************

	END
