
	PAGE

;********************************************************
;*							*
;*		LCDテスト 初期設定			*
;*							*
;********************************************************

LCD_TEST_INIT
		CALL	LCDC_OFF

		OBJCLR				; OBJクリア

		XOR	A
		LD	(R3),A			; LCD表示パターン No.保存用

		VECTOR	VBLK,VBLK_INT		; V-BLANK割り込みベクタセット

		NEXT_MAIN	FLICKER		; 初期画面 (フリッカ調整画面)

		LD	A,LCDC_BG_ON
		LD	(LCDC_BUF),A
		CALL	LCDC_ON

		RET


;********************************************************
;*							*
;*		LCDテスト				*
;*							*
;********************************************************

LCD_TEST
		LD	A,(TRG1)
		LD	B,A

		BIT	A_KEY_BIT,B		; パターンNo.++
		JR	Z,_20
		LD	A,(R3)
		INC	A
		CP	PATTERN_LAST_NUM +1
		JR	NZ,_10
		XOR	A
_10		LD	(R3),A
		JR	_30

_20		BIT	B_KEY_BIT,B		; パターンNo.--
		JR	Z,_40
		LD	A,(R3)
		DEC	A
		CP	$FF
		JR	NZ,_10
		LD	A,PATTERN_LAST_NUM
_21		LD	(R3),A

_30		LDE_ARRAY	VIEW_PATTERN
		XOR	A
		CALL	SET_MAIN_FUNC

;--------------------------------------------------------

_40		LD	A,(CNT1)
		CP	A_KEY | B_KEY
		RET	NZ

		CALL	VBLK_WAIT
		PLTSET	MAIN_PLT,BCPS

		LD	A,LCDC_START | LCDC_OBJ_ON | LCDC_BG_ON
		LD	(LCDC_BUF),A

		NEXT_MAIN	SET_BG_TITLE
		RET


VIEW_PATTERN
		DW	FLICKER
		DW	RASTER_BLACK
		DW	RASTER_WHITE
		DW	RASTER_GREEN
		DW	RASTER_BLUE
		DW	RASTER_RED
		DW	RASTER_GREY_1
		DW	RASTER_GREY_2
		DW	RASTER_GREY_3
		DW	RASTER_GREY_4
		DW	RASTER_GREY_5
		DW	RASTER_GREY_6
		DW	RASTER_GREY_7
		DW	RASTER_GREY_8
		DW	GRADATION_H16_GREY
		DW	GRADATION_H16_GREEN
		DW	GRADATION_H16_BLUE
		DW	GRADATION_H16_RED
		DW	GRADATION_H32_GREY_1
		DW	GRADATION_H32_GREY_2
		DW	GRADATION_V32_GREY
		DW	GRADATION_V32_GREEN
		DW	GRADATION_V32_BLUE
		DW	GRADATION_V32_RED
		DW	STRIPE_V
		DW	STRIPE_H
		DW	WINDOW_BLACK
		DW	WINDOW_WHITE
		DW	BAR_COLOR
		DW	PATTERN_COLOR

PATTERN_LAST_NUM	=	29


;********************************************************
;*							*
;*		LCD表示パターン				*
;*							*
;********************************************************

FLICKER						; フリッカ調整
		CALL	VBLK_WAIT
		PLTSET	TEST_PLT,BCPS

		MCLR	WRAMH,$240,$11
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		BGSET	H16_GRADATION_ATRB,VBK_1
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_BLACK					; 黒べた
		MCLR	WRAMH,$240,$00
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		MCLR	WRAMH,$240,$01
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_WHITE					; 白べた
		MCLR	WRAMH,$240,$01
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREEN					; 緑べた
		MCLR	WRAMH,$240,$02
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_BLUE					; 青べた
		MCLR	WRAMH,$240,$03
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_RED					; 赤べた
		MCLR	WRAMH,$240,$04
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		MCLR	WRAMH,$240,$01
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_1					; べた画面 8階調
		MCLR	WRAMH,$240,$00
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		MCLR	WRAMH,$240,$02
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_2
		MCLR	WRAMH,$240,$01
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_3
		MCLR	WRAMH,$240,$02
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_4
		MCLR	WRAMH,$240,$03
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_5
		MCLR	WRAMH,$240,$04
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_6
		MCLR	WRAMH,$240,$05
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_7
		MCLR	WRAMH,$240,$06
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


RASTER_GREY_8
		MCLR	WRAMH,$240,$02
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		CALL	VBLK_WAIT
		PLTSET	TEST_PLT,BCPS

		MCLR	WRAMH,$240,$07
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H16_GREY				; 白黒 横16階調
		CALL	VBLK_WAIT
		PLTSET	GREY_PLT,BCPS

		BGSET	H16_GRADATION_ATRB,VBK_1
		CALL	SET_SCREEN

		BGSET	H16_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H16_GREEN				; 緑 横16階調
		CALL	VBLK_WAIT
		PLTSET	GREEN_PLT,BCPS

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H16_BLUE				; 青 横16階調
		CALL	VBLK_WAIT
		PLTSET	BLUE_PLT,BCPS

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H16_RED				; 赤 横16階調
		CALL	VBLK_WAIT
		PLTSET	RED_PLT,BCPS

		BGSET	H16_GRADATION_ATRB,VBK_1
		CALL	SET_SCREEN

		BGSET	H16_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H32_GREY_1				; 白黒 横16階調(0〜15)
		CALL	VBLK_WAIT
		PLTSET	GREY_PLT,BCPS

		BGSET	H32_GRADATION_ATRB_1,VBK_1
		CALL	SET_SCREEN

		BGSET	H32_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_H32_GREY_2				; 白黒 横16階調(16〜31)
		BGSET	H32_GRADATION_ATRB_2,VBK_1
		CALL	SET_SCREEN

		BGSET	H32_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_V32_GREY				; 白黒 縦32階調
		CALL	VBLK_WAIT
		PLTSET	GREY_PLT,BCPS

		BGSET	V32_GRADATION_ATRB,VBK_1
		CALL	SET_SCREEN

		BGSET	V32_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_V32_GREEN				; 緑 縦32階調
		CALL	VBLK_WAIT
		PLTSET	GREEN_PLT,BCPS

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_V32_BLUE				; 青 縦32階調
		CALL	VBLK_WAIT
		PLTSET	BLUE_PLT,BCPS

		NEXT_MAIN	LCD_TEST
		RET


GRADATION_V32_RED				; 赤 縦32階調
		CALL	VBLK_WAIT
		PLTSET	RED_PLT,BCPS

		BGSET	V32_GRADATION_ATRB,VBK_1
		CALL	SET_SCREEN

		BGSET	V32_GRADATION,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


STRIPE_V					; 縦ストライプ
		MCLR	WRAMH,$240,$14
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		CALL	VBLK_WAIT
		PLTSET	TEST_PLT,BCPS

		MCLR	WRAMH,$240,$07
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET

STRIPE_H					; 横ストライプ
		MCLR	WRAMH,$240,$07
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		MCLR	WRAMH,$240,$11
		LD	A,VBK_0
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


WINDOW_BLACK					; 黒ウィンドウ
		MCLR	WRAMH,$240,$00
		BGSET	BLACK_WINDOW,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


WINDOW_WHITE					; 白ウィンドウ
		CALL	VBLK_WAIT
		PLTSET	TEST_PLT,BCPS

		MCLR	WRAMH,$240,$03
		BGSET	WHITE_WINDOW,VBK_0
		CALL	SET_SCREEN

		MCLR	WRAMH,$240,$07
		LD	A,VBK_1
		LD	(VBK),A
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


BAR_COLOR					; カラーバー
		CALL	VBLK_WAIT
		PLTSET	MAIN_PLT,BCPS

		MCLR	WRAMH,$240,$03
		BGSET	COLOR_BAR,VBK_0
		CALL	SET_SCREEN

		BGSET	COLOR_BAR_ATRB,VBK_1
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


PATTERN_COLOR					; カラーパターン
		CALL	VBLK_WAIT
		PLTSET	DEMO_PLT,BCPS

		BGSET	COLOR_PATTERN_ATRB,VBK_1
		CALL	SET_SCREEN

		BGSET	COLOR_PATTERN,VBK_0
		CALL	SET_SCREEN

		NEXT_MAIN	LCD_TEST
		RET


;--------------------------------------------------------

VBLK_WAIT
		LD	A,(LY)
		CP	145
		JR	NZ,VBLK_WAIT
		RET


SET_SCREEN
		LD	A,$D0
		LD	(HDMA1),A
		LD	A,$00
		LD	(HDMA2),A
		LD	A,$98
		LD	(HDMA3),A
		LD	A,$00
		LD	(HDMA4),A

		CALL	VBLK_WAIT

		LD	A,$30
		LD	(HDMA5),A
		RET


;********************************************************

	END
