;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: initial					*
;*	file name	: ys_init					*
;*									*
;************************************************************************
;
;
		SALL
;
		include		ys_header.inc
		include		ys_unit.h
		include		ys_color.h
		include		ys_msg.h
		include		ys_presno.h
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	GMCHRST,GMCOLST,GMMDST
		GLB	MPCHRST,MPCOLST
		GLB	HMPCHRST,HMPCOLSET
		GLB	CHRSET,COLSET,DBLTELESA,DBLCOLST
		GLB	DIVDTST,M_DMA_BFST,M_DMA_BFST_N,UNCOMPRES,UNCOMPRES_X
		GLB	VRAMDX_ST,VRAMDX_C_ST,VRAMDX_L_ST,VRAMDX_L_C_ST
		GLB	VRAMDX_H_ST,VRAMDX_H_C_ST
		GLB	TLCHR,DM_00_CHR,DM_01_CHR,BONUS_1_CHR,END_CHR
		GLB	TLCOL,DM_00_COL,DM_01_COL,BONUS_1_COL
		GLB	MP00,GM00,GM01,GM02,GM03,GM04,GM05,GM06,GM07,GM08
		GLB	GM09,GM0A,GM0B,GM0C,GM0D,GM0E,GM0F,GM10
		GLB	DM01,BTMP,HMPMD,BONUS1,GMMD7
		GLB	GMCHR
;
		GLB	BG1CHRBK,BG1COLBK
		GLB	PL_COLBK
;;;;K;;;;		GLB	MP_M7B3_COLBK,MP_BTMP_COLBK,MP_M7_CHRBK
		GLB	HMPCHRST_SCR,HMPCHRST_BGCHR
		GLB	OBJCHRBK
;
		GLB	MINICHRST,MINICOLSET
;
		GLB	OBJCHRBK
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< ys_rpro >------------------------------------------------
		EXT	CHIPON
;
;-------------< ys_unit >------------------------------------------------
		EXT	UNDTADD,UNDATA
;
;-------------< ys_data >------------------------------------------------
		EXT	DIVDAT
;
;-------------< ys_chr >-------------------------------------------------
		EXT	ADDSTART
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
;;;;		EQU
;
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
;
		EXTEND
;
;
		MEM8
		IDX8
;
Group_0		GROUP	Init_pro
Init_pro	SECT	REL
;
;
;************************************************************************
;*		キャラクターセットデータ				*
;************************************************************************
;
		MEM8
		IDX8
;
;------------------------------------------------------------------------
;-		キャラクター ＶＲＡＭ 配置データ			-
;------------------------------------------------------------------------
CHRTBL		EQU	$
;
;-------------- ゲームプレイ−１ ----------------------------------------
GMCHAR		EQU	$
		BYTE	CHR3E-CHR10		  ;[ BG1,2 main character    ( 7800-7FFF ) ]
		WORD	7800H+8000H,1000H
		BYTE	CHR32M-CHR10		  ;[		 "           ( 1200-13FF ) ]
		WORD	1200H+8000H,0400H
		BYTE	CHR5BB-CHR10		  ;[		 "           ( 1500-17FF ) ]
		WORD	1500H+8000H,0600H
		BYTE	CHR58-CHR10		  ;[ OBJ main character	     ( 4000-4FFF ) ]
		WORD	4000H+8000H,2000H
		BYTE	CHRE9A			  ;[ meter character set     ( 6000-63FF ) ]
		WORD	6000H
;
		BYTE	(WORK13-WORK10)+0F0H	  ;[ BG2 change character set( 1800-1FFF ) ]
		WORD	1800H+8000H,1000H
		BYTE	(WORK14-WORK10)+0F0H	  ;[		 "           ( 2000-27FF ) ]
		WORD	2000H+8000H,1000H
;
		BYTE	(WORK10-WORK10)+0F0H	  ;[ BG1 change character set( 0000-07FF ) ]
		WORD	0000H
		BYTE	(WORK11-WORK10)+0F0H	  ;[		 "           ( 0800-0FFF ) ]
		WORD	0800H
		BYTE	(WORK12-WORK10)+0F0H	  ;[		 "           ( 7000-77FF ) ]
		WORD	7000H
;
		BYTE	(WORK17-WORK10)+0F0H	  ;[ OBJ change character set( 5000-51FF ) ]
		WORD	5000H+8000H,0400H
		BYTE	(WORK18-WORK10)+0F0H	  ;[		 "           ( 5200-53FF ) ]
		WORD	5200H+8000H,0400H
		BYTE	(WORK19-WORK10)+0F0H	  ;[		 "           ( 5400-55FF ) ]
		WORD	5400H+8000H,0400H
		BYTE	(WORK1A-WORK10)+0F0H	  ;[		 "           ( 5600-57FF ) ]
		WORD	5600H+8000H,0400H
		BYTE	(WORK1B-WORK10)+0F0H	  ;[		 "           ( 5800-59FF ) ]
		WORD	5800H+8000H,0400H
		BYTE	(WORK1C-WORK10)+0F0H	  ;[		 "           ( 5A00-5BFF ) ]
		WORD	5A00H+8000H,0400H
;
		BYTE	(WORK15-WORK10)+0F0H	  ;[ BG3 change character set( 2800-2BFF ) ]
		WORD	2800H
		BYTE	(WORK16-WORK10)+0F0H	  ;[		 "           ( 2C00-2FFF ) ]
		WORD	2C00H
;
		HEX	FF	;end code
;
;-------------- マップ --------------------------------------------------
MPCHAR		EQU	$
		BYTE	(WORK10-WORK10)+0F0H	;[ ＢＧ３背景キャラクター  ( 5C00-5FFF ) ]
		WORD	3400H
		BYTE	CHR26B			;[ タイトルロゴキャラクター( 3800-3BFF ) ]
		WORD	3800H
		BYTE	CHR5AA-CHR10		;[ カーソルキャラクター    ( 5C00-5FFF ) ]
		WORD	5C00H+8000H,0800H
		BYTE	CHR5AA-CHR10		;[ カーソルキャラクター    ( 7C00-7FFF ) ]
		WORD	7C00H+8000H,0800H
;
		BYTE	CHR5AB-CHR10		;[ ホルダーキャラクター    ( 3C00-3FFF ) ]
		WORD	3C00H+8000H,0800H	;[ 入れ替え用 ]
;
		BYTE	CHR78			;[ モード７キャラクター    ( 0000-1FFF ) ]
		WORD	0000H
;
		HEX	FF	;end code
;
;-------------- タイトル ------------------------------------------------
TLCHAR		EQU	$
		BYTE	CHR58-CHR10		  ;[ ＯＢＪキャラクター	     ( 4000H-4FFF ) ]
		WORD	4000H+8000H,2000H
;
		HEX	FF	;end code
;
;-------------- 死神デモ ------------------------------------------------
DM_00_CHAR	EQU	$
		BYTE	CHR30-CHR10		  ;[ ＯＢＪキャラクター	     ( 4000-47FF ) ]
		WORD	4000H+8000H,1000H
		BYTE	CHR31-CHR10		  ;[		”	     ( 4800-4FFF ) ]
		WORD	4800H+8000H,1000H
;
		HEX	FF	;end code
;
;-------------- ミュージカル --------------------------------------------
DM_01_CHAR	EQU	$
		BYTE	CHR75B			  ;[ ＢＧ３枠キャラクター    ( 7400-77FF ) ]
		WORD	7800H
		BYTE	CHRD0-CHR10		  ;[ ＢＧ背景キャラクター    ( 0000-0FFF ) ]
		WORD	0000H+8000H,2000H
		BYTE	CHRD2-CHR10		  ;[	     ”		     ( 1000-1FFF ) ]
		WORD	1000H+8000H,2000H
		BYTE	CHRD6-CHR10		  ;[	     ”		     ( 2000-2FFF ) ]
		WORD	2000H+8000H,2000H
		BYTE	CHRDE-CHR10		  ;[	     ”		     ( 3000-3FFF ) ]
		WORD	3000H+8000H,2000H
		BYTE	CHRD8-CHR10		  ;[ ＯＢＪキャラクター	     ( 4000-4FFF ) ]
		WORD	4000H+8000H,2000H
		BYTE	CHRDA			  ;[	     ”		     ( 5000-5FFF ) ]
		WORD	5000H
		BYTE	B3OPDM			  ;[ ＢＧ３枠スクリーン	     ( 7800-7BFF ) ]
		WORD	7400H
		BYTE	B1OPDM0			  ;[ ロゴスクリーン	     ( 6000-63FF ) ]
		WORD	6000H
		BYTE	B1OPDM1			  ;[ 第一幕背景スクリーン    ( 6800-6BFF ) ]
		WORD	6800H
;
		HEX	FF	;end code
;
;-------------- 横スクロールマップ --------------------------------------
HMAP_CHR	EQU	$
		BYTE	(WORK10-WORK10)+0F0H	;[ＢＧ１ スクリーン ]
		WORD	0000H
		BYTE	(WORK11-WORK10)+0F0H	;[ＢＧ２ スクリーン ]
		WORD	0800H
		BYTE	(WORK12-WORK10)+0F0H	;[ＢＧ３ スクリーン ]
		WORD	1400H
;
		BYTE	CHR5AB-CHR10		;[ ホルダーキャラクター ]
		WORD	3800H+8000H,0800H
		BYTE	CHR5BA-CHR10
		WORD	3C00H+8000H,0800H
;
		BYTE	CHRECB			;[ ＢＧ３ キャラクター ]
		WORD	1000H
;
		BYTE	CHRDF			;[コンフィグキャラクター]
		WORD	3000H
;
		BYTE	(WORK13-WORK10)+0F0H	;[ ＢＧ１,２ キャラクター ]
		WORD	4000H+8000H,0800H
		BYTE	(WORK14-WORK10)+0F0H
		WORD	4400H+8000H,0800H
		BYTE	(WORK15-WORK10)+0F0H
		WORD	4800H+8000H,0800H
		BYTE	(WORK16-WORK10)+0F0H
		WORD	4C00H+8000H,0800H
		BYTE	(WORK17-WORK10)+0F0H
		WORD	5000H+8000H,0800H
		BYTE	(WORK18-WORK10)+0F0H
		WORD	5400H+8000H,0800H
		BYTE	(WORK19-WORK10)+0F0H
		WORD	5800H+8000H,0800H
		BYTE	(WORK1A-WORK10)+0F0H
		WORD	5C00H+8000H,0800H
;
		BYTE	CHRF3-CHR10		;[ ＯＢＪキャラクター ]
		WORD	6000H+8000H,1000H
;;;;;		BYTE	CHRF4-CHR10
;;;;;		WORD	6800H+8000H,1000H
		BYTE	CHRF0-CHR10
		WORD	7000H+8000H,1000H
		BYTE	CHR5AA-CHR10		  ;[ カーソルキャラクター ]
		WORD	7C00H+8000H,0800H
;
		HEX	FF	;end code
;
;-------------- ボーナスステージ（１） ----------------------------------
BONUS_1_CHAR	EQU	$
		BYTE	CHR38A			;[ BG1 character	( 7000-73FF ) ]
		WORD	7000H
		BYTE	CHR38B			;[	   "            ( 7400-77FF ) ]
		WORD	7400H
		BYTE	CHR39-CHR10		;[ BG2 character	( 7800-7FFF ) ]
		WORD	7800H+8000H,1000H
		BYTE	CHR3A-CHR10		;[ BG2 character	( 1000-17FF ) ]
		WORD	1000H+8000H,1000H
		BYTE	CHR3B-CHR10		;[ BG2 character	( 1800-1FFF ) ]
		WORD	1800H+8000H,1000H
		BYTE	CHR26A			;[ BG3 character	( 2800-2BFF ) ]
		WORD	2800H
		BYTE	CHRE8B			;[	   "            ( 2C00-2FFF ) ]
		WORD	2C00H
		BYTE	CHR58-CHR10		;[ OBJ main character	( 4000-4FFF ) ]
		WORD	4000H+8000H,2000H
		BYTE	CHR33-CHR10		;[ OBJ main character	( 5000-57FF ) ]
		WORD	5000H+8000H,1000H
;
		BYTE	(WORK10-WORK10)+0F0H	;[ＢＧ１　スクリーン	( 6800-6FFF ) ]
		WORD	6800H
		BYTE	(WORK12-WORK10)+0F0H	;[ＢＧ２　スクリーン	( 3800-3FFF ) ]
		WORD	3800H
		BYTE	(WORK14-WORK10)+0F0H	;[ＢＧ３　スクリーン	( 2800-2FFF ) ]
		WORD	3400H
;
		HEX	FF	;end code
;
;-------------- ミニ ゲーム ---------------------------------------------
MINI_CHAR	EQU	$
		BYTE	CHRC1			; ＢＧ１ キャラクター
		WORD	7000H
		BYTE	CHR3E-CHR10		; ＢＧ 常駐キャラクター
		WORD	7800H+8000H,1000H
		BYTE	CHR5E			; ＢＧ１ キャラクター
		WORD	0000H
		BYTE	CHR5F
		WORD	0800H
;
		BYTE	(WORK10-WORK10)+0F0H	; ＢＧ２ キャラクター
		WORD	1800H+8000H,1000H
		BYTE	(WORK11-WORK10)+0F0H
		WORD	2000H+8000H,1000H
;
		BYTE	CHRE9B			; ＢＧ３ キャラクター
		WORD	2800H
		BYTE	CHRE8B
		WORD	2C00H
;
		BYTE	CHR58-CHR10		; ＯＢＪ 常駐キャラクター
		WORD	4000H+8000H,2000H
		BYTE	CHR5D
		WORD	5000H
		BYTE	CHR4DA-CHR10
		WORD	5800H+8000H,0400H
;
		BYTE	(WORK12-WORK10)+0F0H	; ＢＧ１　スクリーン
		WORD	6800H
		BYTE	(WORK13-WORK10)+0F0H	; ＢＧ２　スクリーン
		WORD	3800H
;;;;K;;;;		BYTE	(WORK14-WORK10)+0F0H	; ＢＧ３　スクリーン
;;;;K;;;;		WORD	3400H
;
		HEX	FF	;end code
;
;-------------- モード７用 ＶＲＡＭレイアウト -------------------
GMMODE7		EQU	$
		BYTE	(WORK10-WORK10)+0F0H	  ;[ モード７キャラクター    ( 0000-1FFF ) ]
		WORD	0000H
		BYTE	(WORK11-WORK10)+0F0H	  ;[		"            ( 2000-3FFF ) ]
		WORD	1000H
		BYTE	(WORK12-WORK10)+0F0H	  ;[ モード７キャラクター    ( 0000-1FFF ) ]
		WORD	2000H
		BYTE	(WORK13-WORK10)+0F0H	  ;[		"            ( 2000-3FFF ) ]
		WORD	3000H
		BYTE	(WORK14-WORK10)+0F0H	  ;[ モード７スクリーン	   ( 0000-1FFF ) ]
		WORD	0000H
;
		BYTE	CHR58-CHR10		  ;[ OBJ main character	     ( 4000-4FFF ) ]
		WORD	4000H+8000H,2000H
		BYTE	CHRE9A			  ;[ meter character set     ( 6000-63FF ) ]
		WORD	6000H
;
		BYTE	(WORK15-WORK10)+0F0H	  ;[ OBJ change character set( 5000-51FF ) ]
		WORD	5000H+8000H,0400H
		BYTE	(WORK16-WORK10)+0F0H	  ;[		 "           ( 5200-53FF ) ]
		WORD	5200H+8000H,0400H
		BYTE	(WORK17-WORK10)+0F0H	  ;[		 "           ( 5400-55FF ) ]
		WORD	5400H+8000H,0400H
		BYTE	(WORK18-WORK10)+0F0H	  ;[		 "           ( 5600-57FF ) ]
		WORD	5600H+8000H,0400H
		BYTE	(WORK19-WORK10)+0F0H	  ;[		 "           ( 5800-59FF ) ]
		WORD	5800H+8000H,0400H
		BYTE	(WORK1A-WORK10)+0F0H	  ;[		 "           ( 5A00-5BFF ) ]
		WORD	5A00H+8000H,0400H
;
		HEX	FF	;end code
;
;-------------- ダブルテレサ用 ------------------------------------------
DBLTLCHAR	EQU	$
		BYTE	CHR25B
		WORD	7000H
		BYTE	CHR27A
		WORD	7400H
		BYTE	CHR27A
		WORD	7800H
		BYTE	CHR58-CHR10		;[ OBJ main character	     ( 4000-4FFF ) ]
		WORD	4000H+8000H,2000H
		BYTE	CHRE9A			;[ meter character set	   ( 6000-63FF ) ]
		WORD	6000H
;
		BYTE	MODE0
		WORD	2800H			;[ BG2 screen ]
		BYTE	MODE0
		WORD	3000H			;[ BG3 screen ]
		BYTE	MODE0
		WORD	3800H			;[ BG4 screen ]
;
		BYTE	CHRE7B-CHR10		;[ OBJ change character set( 5000-51FF ) ]
		WORD	5000H+8000H,0400H
		BYTE	CHR48C-CHR10		;[		 "           ( 5200-53FF ) ]
		WORD	5200H+8000H,0400H
		BYTE	CHR4ED-CHR10		;[		 "           ( 5400-55FF ) ]
		WORD	5400H+8000H,0400H
		BYTE	CHR40A-CHR10		;[		 "           ( 5600-57FF ) ]
		WORD	5600H+8000H,0400H
		BYTE	CHR40A-CHR10		;[		 "           ( 5800-59FF ) ]
		WORD	5800H+8000H,0400H
		BYTE	CHR43D-CHR10		;[		 "           ( 5A00-5BFF ) ]
		WORD	5A00H+8000H,0400H
;
		HEX	FF	;end code
;
;-------------- エンディングビットマップ --------------------------------
END_CHAR	EQU	$
		BYTE	CHR114-CHR10		;[ ＢＧ１キャラクター	   ( 5400H-5BFF ) ]
		WORD	5400H+8000H,1000H
		BYTE	No_1			;[ ＢＧスクリーン	   ( 5C00H-5FFF ) ]
		WORD	5C00H
;
		HEX	FF	;end code
;
;
;
GMCHR		EQU	GMCHAR-CHRTBL
MPCHR		EQU	MPCHAR-CHRTBL
TLCHR		EQU	TLCHAR-CHRTBL
DM_00_CHR	EQU	DM_00_CHAR-CHRTBL
DM_01_CHR	EQU	DM_01_CHAR-CHRTBL
HMPCHR		EQU	HMAP_CHR-CHRTBL
BONUS_1_CHR	EQU	BONUS_1_CHAR-CHRTBL
MINICHR		EQU	MINI_CHAR-CHRTBL
GMMD7		EQU	GMMODE7-CHRTBL
DBLTL		EQU	DBLTLCHAR-CHRTBL
END_CHR		EQU	END_CHAR-CHRTBL
;
;------------------------------------------------------------------------
;-		ゲームプレイキャラクターセット				-
;------------------------------------------------------------------------
;
;----------------------------------------------------------------
;-		ゲームプレイ キャラクターバンクデータ		-
;----------------------------------------------------------------
BG1CHRBK	EQU	$
;			 [0]   [1]   [2]
		BYTE	CHR00,CHR01,CHRC0	  ;[0:地下]
		BYTE	CHR02,CHR03,CHRC1	  ;[1:草]
		BYTE	CHR08,CHR09,CHRC4	  ;[2:水中]
		BYTE	CHR0A,CHR0B,CHRC5	  ;[3:溶岩]
		BYTE	CHR04,CHR05,CHRC2	  ;[4:雪]
		BYTE	CHR06,CHR07,CHRC3	  ;[5:ジャングル]
		BYTE	CHR0C,CHR0D,CHRC6	  ;[6:カベ]
		BYTE	CHR0E,CHR0F,CHRC7	  ;[7:花]
		BYTE	CHRA0,CHRA1,CHRC0	  ;[8:地下’]
		BYTE	CHRA2,CHRA3,CHRC1	  ;[9:草’]
		BYTE	CHRA8,CHRA9,CHRC6	  ;[A:水中’]
		BYTE	CHRAA,CHRAB,CHRC5	  ;[B:溶岩’]
		BYTE	CHRA4,CHRA5,CHRC2	  ;[C:フラワー]
		BYTE	CHRA6,CHRA7,CHRC7	  ;[D:バブル’]
		BYTE	CHRAC,CHRAD,CHRC6	  ;[E:カベ’]
		BYTE	CHRAE,CHRAF,CHRC7	  ;[F:花’]
;
WD6CHRBK	EQU	$
		BYTE	CHR00,CHR01,CHRC0	  ;[0:地下]
		BYTE	CHR115,CHR116,CHR117	  ;[1:草]
		BYTE	CHR08,CHR09,CHRC4	  ;[2:水中]
		BYTE	CHR0A,CHR0B,CHRC5	  ;[3:溶岩]
		BYTE	CHR04,CHR05,CHRC2	  ;[4:雪]
		BYTE	CHR06,CHR07,CHRC3	  ;[5:ジャングル]
		BYTE	CHR0C,CHR0D,CHRC6	  ;[6:カベ]
		BYTE	CHR0E,CHR0F,CHRC7	  ;[7:花]
		BYTE	CHRA0,CHRA1,CHRC0	  ;[8:地下’]
		BYTE	CHRA2,CHRA3,CHRC1	  ;[9:草’]
		BYTE	CHRA8,CHRA9,CHRC6	  ;[A:水中’]
		BYTE	CHRAA,CHRAB,CHRC5	  ;[B:溶岩’]
		BYTE	CHRA4,CHRA5,CHRC2	  ;[C:フラワー]
		BYTE	CHRA6,CHRA7,CHRC7	  ;[D:バブル’]
		BYTE	CHRAC,CHRAD,CHRC6	  ;[E:カベ’]
		BYTE	CHRAE,CHRAF,CHRC7	  ;[F:花’]
;
;
BG2CHRBK	EQU	$
;			    [0]		[1]
		BYTE	CHR3C-CHR10,CHR3D-CHR10	  ;[ 0:地下滝]
		BYTE	CHR18-CHR10,CHR10A-CHR10  ;[ 1:月]
		BYTE	CHR12-CHR10,CHR13-CHR10	  ;[ 2:水中]
		BYTE	CHR10-CHR10,CHR11-CHR10	  ;[ 3:溶岩]
		BYTE	CHR10-CHR10,CHR11-CHR10	  ;[ 4:雪]
		BYTE	CHRB0-CHR10,CHRB7-CHR10	  ;[ 5:ＲＥＤ ＷＯＯＤＳ]
		BYTE	CHR1C-CHR10,CHRF4-CHR10	  ;[ 6:カベ]
		BYTE	CHR1A-CHR10,CHR1B-CHR10	  ;[ 7:パステル２]
		BYTE	CHR16-CHR10,CHR17-CHR10	  ;[ 8:森]
		BYTE	CHRB0-CHR10,CHRB1-CHR10	  ;[ 9:遠近両用]
		BYTE	CHRB2-CHR10,CHR1E-CHR10	  ;[ A:ハチ滝]
		BYTE	CHR14-CHR10,CHRB3-CHR10	  ;[ B:ワンワンドスン]
		BYTE	CHRB4-CHR10,CHRB5-CHR10	  ;[ C:ジャングル]
		BYTE	CHRB6-CHR10,CHR10B-CHR10  ;[ D:スター]
		BYTE	CHRB8-CHR10,CHRB7-CHR10	  ;[ E:グルグル]
		BYTE	CHRBA-CHR10,CHRBB-CHR10	  ;[ F:フジ山]
		BYTE	CHRB0-CHR10,CHRB1-CHR10	  ;[10:遠近両用の遠景]
		BYTE	CHR10-CHR10,CHR15-CHR10	  ;[11:]
		BYTE	CHR10-CHR10,CHR15-CHR10	  ;[12:空]
		BYTE	CHRBC-CHR10,CHRBD-CHR10	  ;[13:地下いわ]
		BYTE	CHRB9-CHR10,CHRBA-CHR10	  ;[14:万次郎]
		BYTE	CHRBE-CHR10,CHRBF-CHR10	  ;[15:岩山]
		BYTE	CHR108-CHR10,CHR109-CHR10 ;[16:ＢＧ２敵]
		BYTE	CHR18-CHR10,CHR19-CHR10	  ;[17:モード２画面切り替えコース]
		BYTE	CHR1D-CHR10,CHRB7-CHR10	  ;[18:ＮＩＧＨＴ]
;;;;K;;;;		BYTE	CHR1E-CHR10,CHR10B-CHR10  ;[19:ハチ城]
		BYTE	CHR1E-CHR10,CHRF4-CHR10	  ;[19:ハチ城]
		BYTE	CHRBE-CHR10,CHRBF-CHR10	  ;[1A:岩山２]
		BYTE	CHRBE-CHR10,CHRBF-CHR10	  ;[1B:黒ベタ]
		BYTE	CHR19-CHR10,CHR19-CHR10	  ;[1C:ハチパステル]
		BYTE	CHR10C-CHR10,CHR10D-CHR10 ;[1D:たこやき山]
		BYTE	CHRB3-CHR10,CHRB4-CHR10	  ;[1E:杉林]
		BYTE	CHR10E-CHR10,CHR10F-CHR10 ;[1F:クッパの部屋]
BG3CHRBK	EQU	$
;			 [0]	[1]
		BYTE	CHRE8A,CHRE8B		;[0:無し]
		BYTE	CHR22A,CHR22B		;[1:水中（部分スクロール）]
		BYTE	CHR23A,CHR22B		;[2:ＢＧ３敵（カベ、オバケｅｔｃ）]
		BYTE	CHR24A,CHR24A		;[3:パステル]
		BYTE	CHREAA,CHREAB		;[4:ＢＧ３雲]
		BYTE	CHR23A,CHR22B		;[5:ＢＧ３敵（横回転ポリゴン）]
		BYTE	CHR23A,CHR22B		;[6:	 ”   （ボルト）]
		BYTE	CHR23A,CHR22B		;[7:竜巻]
		BYTE	CHR23A,CHR22B		;[8:砂嵐]
		BYTE	CHR21B,CHR21B		;[9:バブル]
;;;;		    BYTE    CHR22A,CHR21A	      ;[A:モグラ]
		BYTE	CHR21A,CHRE8B		;[A:モグラ]
		BYTE	CHR23A,CHR22B		;[B:eleveter test]
		BYTE	CHR25A,CHR20B		;[C:森]
		BYTE	CHR20A,CHR20B		;[D:雪山]
		BYTE	CHR76A,CHR76B		;[E:ジャングル]
		BYTE	CHR77A,CHR77B		;[F:フジ山]
		BYTE	CHRE8A,CHRE8B		;[10:雲その２]
		BYTE	CHR20A,CHR101A		;[11:カメボス]
		BYTE	CHR22B,CHR23B		;[12:ＮＩＧＨＴ]
		BYTE	CHRE8B,CHRE8B		;[13:水上アスレチック]
		BYTE	CHREAA,CHREAB		;[14:木の葉]
		BYTE	CHREBA,CHREAB		;[15:地下]
		BYTE	CHREFA,CHREFB		;[16:ＢＧ３ワンワン]
		BYTE	CHREBB,CHREBB		;[17:万次郎のカベ]
		BYTE	CHR25B,CHREBB		;[18:ハチ城]
		BYTE	CHREAA,CHREAB		;[19:雪]
		BYTE	CHREAA,CHREAB		;[1A:阿呆鳥の群れ]
		BYTE	CHR24A,CHR23B		;[1B:ＦＬＯＷＥＲ]
		BYTE	CHR22A,CHR22A		;[1C:マスクウィンドゥ]
		BYTE	CHRE8B,CHRE8B		;[1D:水上アスレチック]
		BYTE	CHR24B,CHR24B		;[1E:月]
		BYTE	CHRE8A,CHRE8B		;[1F:カメックの魔法]
		BYTE	CHR100A,CHR24A		;[20:ハチパステル]
		BYTE	CHREAA,CHREAB		;[21:胃壁]
		BYTE	CHR100B,CHRE8B		;[22:ハチ滝]
		BYTE	CHR24B,CHR101A		;[23:ハチ夕日]
		BYTE	CHR101B,CHRE8B		;[24:ゴッホ星空]
		BYTE	CHR102A,CHR102A		;[25:ボス部屋]
		BYTE	CHR102B,CHR23B		;[26:ボスフラッシュ効果]
		BYTE	CHR103A,CHREAB		;[27:森その２]
		BYTE	CHR100B,CHR100B		;[28:スター]
		BYTE	CHREDA,CHREDB		;[29:万次郎の雲]
		BYTE	CHR24B,CHR24B		;[2A:固定月]
		BYTE	CHREDA,CHREDB		;[2B:万次郎の雲その２]
		BYTE	CHR103B,CHR100B		;[2C:霧]
		BYTE	CHR103B,CHR100B		;[2D:霧ラスターなし]
		BYTE	CHREDA,CHREDB		;[2E:万次郎の雲その３]
		BYTE	CHREEA,CHREDB		;]2F:ハチフジ]
;
;
OBJCHRBK	EQU	$
;			     [0]          [1]          [2]          [3]          [4]          [5]
		BYTE	CHR41C-CHR10,CHR41D-CHR10,CHR44A-CHR10,CHR44B-CHR10,CHRE5A-CHR10,CHR43D-CHR10 ;[00]
		BYTE	CHR41C-CHR10,CHR41D-CHR10,CHRE5A-CHR10,CHR40C-CHR10,CHR45D-CHR10,CHR43D-CHR10 ;[01]
		BYTE	CHR41B-CHR10,CHR44C-CHR10,CHR47A-CHR10,CHR49C-CHR10,CHR4DD-CHR10,CHR43D-CHR10 ;[02]
		BYTE	CHR45A-CHR10,CHRE5A-CHR10,CHR47B-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[03]
		BYTE	CHR4ED-CHR10,CHRE5A-CHR10,CHRE5B-CHR10,CHR41B-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[04]
		BYTE	CHR4EB-CHR10,CHR49C-CHR10,CHR4DD-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[05]
		BYTE	CHR47A-CHR10,CHR44A-CHR10,CHR44B-CHR10,CHR48C-CHR10,CHR44D-CHR10,CHR8FD-CHR10 ;[06]
		BYTE	CHR4CA-CHR10,CHR47A-CHR10,CHR40C-CHR10,CHR8FD-CHR10,CHR45D-CHR10,CHR4FD-CHR10 ;[07]
		BYTE	CHR8EA-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[08]
		BYTE	CHR4DC-CHR10,CHR8FD-CHR10,CHR45B-CHR10,CHR45D-CHR10,CHR4BD-CHR10,CHR43D-CHR10 ;[09]
		BYTE	CHR4ED-CHR10,CHR4FB-CHR10,CHRE4D-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR45B-CHR10 ;[0A]
		BYTE	CHR4ED-CHR10,CHR8FD-CHR10,CHR48C-CHR10,CHR4FB-CHR10,CHR4CA-CHR10,CHR40C-CHR10 ;[0B]
		BYTE	CHR48C-CHR10,CHR49B-CHR10,CHR41B-CHR10,CHR8FD-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[0C]
		BYTE	CHR42D-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[0D]
		BYTE	CHR45A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[0E]
		BYTE	CHR47A-CHR10,CHR4FB-CHR10,CHR47C-CHR10,CHR40C-CHR10,CHRE4C-CHR10,CHR43D-CHR10 ;[0F]
;
		BYTE	CHR48A-CHR10,CHR48B-CHR10,CHR45D-CHR10,CHR4ED-CHR10,CHR8FD-CHR10,CHR43D-CHR10 ;[10]
		BYTE	CHRE5C-CHR10,CHRE5D-CHR10,CHR40C-CHR10,CHR42A-CHR10,CHR42B-CHR10,CHR42D-CHR10 ;[11]
		BYTE	CHR40C-CHR10,CHR42D-CHR10,CHR4AA-CHR10,CHR4AB-CHR10,CHR4DB-CHR10,CHR43D-CHR10 ;[12]
		BYTE	CHRE4A-CHR10,CHRE4B-CHR10,CHRE4C-CHR10,CHR42D-CHR10,CHR8EA-CHR10,CHR43D-CHR10 ;[13]
		BYTE	CHR41B-CHR10,CHR47B-CHR10,CHR47D-CHR10,CHR4AA-CHR10,CHR4AB-CHR10,CHR40A-CHR10 ;[14]
		BYTE	CHR43B-CHR10,CHR46D-CHR10,CHR4DA-CHR10,CHR48D-CHR10,CHR40A-CHR10,CHR45C-CHR10 ;[15]
		BYTE	CHR4DA-CHR10,CHR40C-CHR10,CHR4DD-CHR10,CHR4BA-CHR10,CHR8FD-CHR10,CHR43D-CHR10 ;[16]
		BYTE	CHR42A-CHR10,CHR42B-CHR10,CHR4AD-CHR10,CHRE5C-CHR10,CHR40A-CHR10,CHR45C-CHR10 ;[17]
		BYTE	CHR4AA-CHR10,CHR4AB-CHR10,CHR47C-CHR10,CHR47D-CHR10,CHR40C-CHR10,CHR4FD-CHR10 ;[18]
		BYTE	CHRE5C-CHR10,CHR40D-CHR10,CHR8FD-CHR10,CHR4DA-CHR10,CHR40C-CHR10,CHR45C-CHR10 ;[19]
		BYTE	CHRE5C-CHR10,CHR40D-CHR10,CHR49C-CHR10,CHR4BA-CHR10,CHR4DA-CHR10,CHR45C-CHR10 ;[1A]
		BYTE	CHR4ED-CHR10,CHR40D-CHR10,CHRE5C-CHR10,CHR4DA-CHR10,CHR4DD-CHR10,CHR40A-CHR10 ;[1B]
		BYTE	CHR47A-CHR10,CHRE6B-CHR10,CHR41B-CHR10,CHRE4C-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[1C]
		BYTE	CHR47D-CHR10,CHR40D-CHR10,CHR46D-CHR10,CHR40B-CHR10,CHRE6B-CHR10,CHR45C-CHR10 ;[1D]
		BYTE	CHR8FD-CHR10,CHR40A-CHR10,CHR4DD-CHR10,CHRE5B-CHR10,CHRE5C-CHR10,CHR45C-CHR10 ;[1E]
		BYTE	CHR44A-CHR10,CHRE6B-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[1F]
;
		BYTE	CHR43B-CHR10,CHR49A-CHR10,CHR40A-CHR10,CHR48D-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[20]
		BYTE	CHR42D-CHR10,CHR44B-CHR10,CHR4BB-CHR10,CHRE6C-CHR10,CHR47A-CHR10,CHR41B-CHR10 ;[21]
		BYTE	CHR4DD-CHR10,CHRE5D-CHR10,CHR4BC-CHR10,CHRE6D-CHR10,CHR40C-CHR10,CHRE5C-CHR10 ;[22]
		BYTE	CHR4BC-CHR10,CHR40C-CHR10,CHRE6D-CHR10,CHR43C-CHR10,CHRE5C-CHR10,CHR8FD-CHR10 ;[23]
		BYTE	CHR40C-CHR10,CHR4AD-CHR10,CHR41B-CHR10,CHR8FD-CHR10,CHR8EA-CHR10,CHR43D-CHR10 ;[24]
		BYTE	CHR4CD-CHR10,CHR8EA-CHR10,CHR4BC-CHR10,CHR41B-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[25]
		BYTE	CHR43C-CHR10,CHRE5C-CHR10,CHR47C-CHR10,CHR4DA-CHR10,CHR47A-CHR10,CHR4DD-CHR10 ;[26]
		BYTE	CHR40A-CHR10,CHR40A-CHR10,CHR44D-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[27]
		BYTE	CHR4AD-CHR10,CHR46D-CHR10,CHR4EC-CHR10,CHRE6C-CHR10,CHR41B-CHR10,CHR40C-CHR10 ;[28]
		BYTE	CHR4EC-CHR10,CHR4FC-CHR10,CHR46D-CHR10,CHR48D-CHR10,CHR8FD-CHR10,CHRE6C-CHR10 ;[29]
		BYTE	CHR46D-CHR10,CHR49D-CHR10,CHR41B-CHR10,CHRE6C-CHR10,CHRE4C-CHR10,CHR40C-CHR10 ;[2A]
		BYTE	CHR46A-CHR10,CHR46B-CHR10,CHR46C-CHR10,CHR49D-CHR10,CHR4CC-CHR10,CHR4EC-CHR10 ;[2B]
		BYTE	CHRE6C-CHR10,CHR41A-CHR10,CHR49D-CHR10,CHR41B-CHR10,CHR40C-CHR10,CHR43D-CHR10 ;[2C]
		BYTE	CHR4ED-CHR10,CHR41A-CHR10,CHR43C-CHR10,CHRE5C-CHR10,CHR8FD-CHR10,CHRE4C-CHR10 ;[2D]
		BYTE	CHRE6C-CHR10,CHR4CC-CHR10,CHR49D-CHR10,CHR49C-CHR10,CHRE7C-CHR10,CHR43D-CHR10 ;[2E]
		BYTE	CHR45B-CHR10,CHRE4C-CHR10,CHRE4D-CHR10,CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[2F]
;
		BYTE	CHR43B-CHR10,CHRE6D-CHR10,CHR4BD-CHR10,CHR110B-CHR10,CHR40C-CHR10,CHR41B-CHR10 ;[30]
		BYTE	CHRE5D-CHR10,CHR4BC-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR4ED-CHR10,CHR8EA-CHR10 ;[31]
		BYTE	CHR8FD-CHR10,CHR48C-CHR10,CHRE5C-CHR10,CHR49B-CHR10,CHR4BD-CHR10,CHR110B-CHR10 ;[32]
		BYTE	CHR4EB-CHR10,CHR40A-CHR10,CHR40C-CHR10,CHR4ED-CHR10,CHR45D-CHR10,CHR4FD-CHR10 ;[33]
		BYTE	CHR4AA-CHR10,CHR4AB-CHR10,CHR4ED-CHR10,CHR41B-CHR10,CHR49D-CHR10,CHR40A-CHR10 ;[34]
		BYTE	CHR44A-CHR10,CHR44B-CHR10,CHR43D-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHRE4D-CHR10 ;[35]
		BYTE	CHR4ED-CHR10,CHR41B-CHR10,CHR43B-CHR10,CHR44A-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[36]
		BYTE	CHR4DB-CHR10,CHR44B-CHR10,CHR4BB-CHR10,CHR4EA-CHR10,CHRE5C-CHR10,CHR4DD-CHR10 ;[37]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR47C-CHR10,CHR8FD-CHR10,CHRE5C-CHR10,CHR4DD-CHR10 ;[38]
		BYTE	CHR49C-CHR10,CHR43D-CHR10,CHR45D-CHR10,CHR4DA-CHR10,CHR40C-CHR10,CHR4FD-CHR10 ;[39]
		BYTE	CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR4DA-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[3A]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR43A-CHR10,CHR4EA-CHR10,CHR4FA-CHR10,CHR43D-CHR10 ;[3B]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR43A-CHR10,CHR4EA-CHR10,CHR45D-CHR10,CHR43D-CHR10 ;[3C]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR41B-CHR10,CHR43D-CHR10,CHR45D-CHR10,CHR4DD-CHR10 ;[3D]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR45B-CHR10,CHR41A-CHR10,CHR8FD-CHR10,CHR43D-CHR10 ;[3E]
		BYTE	CHR43D-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR4EB-CHR10,CHR40B-CHR10,CHR41B-CHR10 ;[3F]
;
		BYTE	CHR45D-CHR10,CHR49C-CHR10,CHR41B-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[40]
		BYTE	CHR49D-CHR10,CHR46D-CHR10,CHR47D-CHR10,CHR8FD-CHR10,CHR41B-CHR10,CHR43D-CHR10 ;[41]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR42C-CHR10,CHR4BD-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[42]
		BYTE	CHR41B-CHR10,CHRE4C-CHR10,CHR4BD-CHR10,CHR4DA-CHR10,CHRE4D-CHR10,CHR4BB-CHR10 ;[43]
		BYTE	CHR48A-CHR10,CHR48B-CHR10,CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[44]
		BYTE	CHR41B-CHR10,CHR40A-CHR10,CHR47C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[45]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR47B-CHR10,CHR4EC-CHR10,CHR8FD-CHR10,CHR43D-CHR10 ;[46]
		BYTE	CHR49B-CHR10,CHR48C-CHR10,CHRE7A-CHR10,CHR40C-CHR10,CHR4BB-CHR10,CHRE5C-CHR10 ;[47]
		BYTE	CHR45D-CHR10,CHR46D-CHR10,CHR8FD-CHR10,CHR4EC-CHR10,CHR4ED-CHR10,CHR41B-CHR10 ;[48]
		BYTE	CHR45A-CHR10,CHR41B-CHR10,CHR4BD-CHR10,CHR42C-CHR10,CHRE5A-CHR10,CHR43D-CHR10 ;[49]
		BYTE	CHR4FC-CHR10,CHR4EC-CHR10,CHRE5A-CHR10,CHR41B-CHR10,CHR4BC-CHR10,CHR43D-CHR10 ;[4A]
		BYTE	CHRE5C-CHR10,CHRE6D-CHR10,CHR45C-CHR10,CHR8FD-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[4B]
		BYTE	CHRE5A-CHR10,CHR43D-CHR10,CHR8FD-CHR10,CHR43A-CHR10,CHR4BD-CHR10,CHR4CB-CHR10 ;[4C]
		BYTE	CHR4ED-CHR10,CHR45B-CHR10,CHR4FC-CHR10,CHRE6C-CHR10,CHR44C-CHR10,CHR4FD-CHR10 ;[4D]
		BYTE	CHRE5A-CHR10,CHR42C-CHR10,CHR40C-CHR10,CHR43D-CHR10,CHR4BD-CHR10,CHR4CB-CHR10 ;[4E]
		BYTE	CHR43B-CHR10,CHR42D-CHR10,CHR47C-CHR10,CHR4BD-CHR10,CHR44A-CHR10,CHR43D-CHR10 ;[4F]
;
		BYTE	CHR41B-CHR10,CHR47A-CHR10,CHR4DA-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[50]
		BYTE	CHR4CD-CHR10,CHR41B-CHR10,CHR4ED-CHR10,CHR43C-CHR10,CHRE5C-CHR10,CHR8FD-CHR10 ;[51]
		BYTE	CHR45A-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[52]
		BYTE	CHR46D-CHR10,CHR47D-CHR10,CHR49D-CHR10,CHR42D-CHR10,CHRE6C-CHR10,CHR43D-CHR10 ;[53]
		BYTE	CHRE6C-CHR10,CHR42D-CHR10,CHR47A-CHR10,CHR49D-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[54]
		BYTE	CHR4DA-CHR10,CHR4AC-CHR10,CHR40A-CHR10,CHR48D-CHR10,CHR4BC-CHR10,CHR43D-CHR10 ;[55]
		BYTE	CHRE4D-CHR10,CHR41A-CHR10,CHR47A-CHR10,CHR48D-CHR10,CHR42D-CHR10,CHR4BC-CHR10 ;[56]
		BYTE	CHR4AA-CHR10,CHR4AB-CHR10,CHR4AC-CHR10,CHR8EA-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[57]
		BYTE	CHRE6C-CHR10,CHR4AD-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR41B-CHR10,CHR43D-CHR10 ;[58]
		BYTE	CHR44A-CHR10,CHR44B-CHR10,CHR47C-CHR10,CHR8EA-CHR10,CHR8EC-CHR10,CHRE5A-CHR10 ;[59]
		BYTE	CHR4ED-CHR10,CHR45D-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[5A]
		BYTE	CHR46D-CHR10,CHR49A-CHR10,CHR40C-CHR10,CHR48D-CHR10,CHR44B-CHR10,CHR4BB-CHR10 ;[5B]
		BYTE	CHR44A-CHR10,CHR44B-CHR10,CHRE5A-CHR10,CHRE6B-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[5C]
		BYTE	CHR42C-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[5D]
		BYTE	CHR40A-CHR10,CHR47A-CHR10,CHR45D-CHR10,CHR43D-CHR10,CHRE7A-CHR10,CHR4FD-CHR10 ;[5E]
		BYTE	CHR49C-CHR10,CHR48A-CHR10,CHR48B-CHR10,CHR47B-CHR10,CHR47A-CHR10,CHR40A-CHR10 ;[5F]
;
		BYTE	CHR45B-CHR10,CHR8FC-CHR10,CHRE5D-CHR10,CHR8EA-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[60]
		BYTE	CHR8EB-CHR10,CHR8EC-CHR10,CHR40A-CHR10,CHR8EA-CHR10,CHR4BB-CHR10,CHR41B-CHR10 ;[61]
		BYTE	CHR4FB-CHR10,CHRE4C-CHR10,CHRE4D-CHR10,CHR42C-CHR10,CHR40C-CHR10,CHR43D-CHR10 ;[62]
		BYTE	CHR40B-CHR10,CHR8FD-CHR10,CHR43D-CHR10,CHR40C-CHR10,CHR41B-CHR10,CHRE4D-CHR10 ;[63]
		BYTE	CHR4ED-CHR10,CHRE4C-CHR10,CHRE5B-CHR10,CHR4AD-CHR10,CHR8FD-CHR10,CHR47B-CHR10 ;[64]
		BYTE	CHR8FB-CHR10,CHR8ED-CHR10,CHR8FA-CHR10,CHR43D-CHR10,CHR8EA-CHR10,CHR40A-CHR10 ;[65]
		BYTE	CHR4ED-CHR10,CHR8EA-CHR10,CHR110A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR41B-CHR10 ;[66]
		BYTE	CHRE6A-CHR10,CHR48C-CHR10,CHR4DA-CHR10,CHR4EB-CHR10,CHR8FD-CHR10,CHR4AC-CHR10 ;[67]
		BYTE	CHRE7C-CHR10,CHR8EA-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[68]
		BYTE	CHR40A-CHR10,CHR41A-CHR10,CHR4EA-CHR10,CHR41B-CHR10,CHR8FD-CHR10,CHR43D-CHR10 ;[69]
		BYTE	CHRE4D-CHR10,CHR4AC-CHR10,CHR4CC-CHR10,CHR4FA-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[6A]
		BYTE	CHR40C-CHR10,CHR43D-CHR10,CHR4AC-CHR10,CHR44A-CHR10,CHR8FD-CHR10,CHR4DA-CHR10 ;[6B]
		BYTE	CHR4AD-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR4FC-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[6C]
		BYTE	CHR4ED-CHR10,CHR42D-CHR10,CHR8FD-CHR10,CHR41B-CHR10,CHR43D-CHR10,CHR40C-CHR10 ;[6D]
		BYTE	CHRE4D-CHR10,CHR47B-CHR10,CHR8FD-CHR10,CHR43D-CHR10,CHR40C-CHR10,CHR40A-CHR10 ;[6E]
		BYTE	CHR4AD-CHR10,CHR8EA-CHR10,CHR41B-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[6F]
;
		BYTE	CHR41B-CHR10,CHRE6C-CHR10,CHR49D-CHR10,CHR4EB-CHR10,CHR49A-CHR10,CHR40C-CHR10 ;[70]
		BYTE	CHR4EB-CHR10,CHR8FD-CHR10,CHRE4D-CHR10,CHR40C-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[71]
		BYTE	CHR47A-CHR10,CHR40C-CHR10,CHR47C-CHR10,CHR43C-CHR10,CHRE5C-CHR10,CHR43D-CHR10 ;[72]
		BYTE	CHR44B-CHR10,CHR4BB-CHR10,CHR41C-CHR10,CHR41D-CHR10,CHR40C-CHR10,CHR8FD-CHR10 ;[73]
		BYTE	CHR41C-CHR10,CHR41D-CHR10,CHR45B-CHR10,CHR40C-CHR10,CHRE4D-CHR10,CHR4BB-CHR10 ;[74]
		BYTE	CHR43B-CHR10,CHR46D-CHR10,CHR49D-CHR10,CHR4EC-CHR10,CHRE6C-CHR10,CHRE7C-CHR10 ;[75]
		BYTE	CHR40C-CHR10,CHR8FD-CHR10,CHR44C-CHR10,CHR44D-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[76]
		BYTE	CHR8EA-CHR10,CHR8EC-CHR10,CHRE6B-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[77]
		BYTE	CHR42A-CHR10,CHR42B-CHR10,CHR4AD-CHR10,CHRE5C-CHR10,CHR40A-CHR10,CHR45C-CHR10 ;[78]
		BYTE	CHRE7B-CHR10,CHR48C-CHR10,CHR4ED-CHR10,CHR40A-CHR10,CHR40A-CHR10,CHR43D-CHR10 ;[79]
		BYTE	CHR4EC-CHR10,CHR8FD-CHR10,CHR49D-CHR10,CHR4CC-CHR10,CHRE6C-CHR10,CHR47B-CHR10 ;[7A]
		BYTE	CHR111A-CHR10,CHR111B-CHR10,CHR111C-CHR10,CHR111D-CHR10,CHRE7B-CHR10,CHR8EA-CHR10 ;[7B]
		BYTE	CHR4ED-CHR10,CHR4BB-CHR10,CHR4FB-CHR10,CHR4BD-CHR10,CHR40C-CHR10,CHR43D-CHR10 ;[7C]
		BYTE	CHR43B-CHR10,CHR44B-CHR10,CHR4BB-CHR10,CHR40C-CHR10,CHR42D-CHR10,CHR43D-CHR10 ;[7D]
		BYTE	CHR43B-CHR10,CHR8FD-CHR10,CHR40C-CHR10,CHR45D-CHR10,CHR40A-CHR10,CHR40A-CHR10 ;[7E]
		BYTE	CHR40C-CHR10,CHR4AD-CHR10,CHR41B-CHR10,CHR8FD-CHR10,CHR4BA-CHR10,CHR43D-CHR10 ;[7F]
;
;
;
;
;
;
;
GMCHRST		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		MI16
;
;-------------- ＢＧ１キャラクターセット --------------------------------
		LDA	BG1TYP		;x3
		ASL	A
;;;;		CLC
		ADC	BG1TYP
		TAY
		LDA	!MPTYPE
		CMP	#(00006-1)*2
		BNE	GMCHRST_000
		LDA	WD6CHRBK,Y
		STA	<WORK10
		LDA	WD6CHRBK+1,Y
		STA	<WORK11
		BRA	GMCHRST_100
GMCHRST_000	EQU	$
		LDA	!BG1CHRBK,Y
		STA	<WORK10
		LDA	!BG1CHRBK+1,Y
		STA	<WORK11
;
;-------------- ＢＧ２キャラクターセット --------------------------------
GMCHRST_100	EQU	$
		LDA	BG2TYP		;x2
		ASL	A
		TAY
		LDA	!BG2CHRBK,Y
		STA	<WORK13
;
;-------------- ＢＧ３キャラクターセット --------------------------------
		LDA	BG3TYP		;x2
		ASL	A
		TAY
		LDA	!BG3CHRBK,Y
		STA	<WORK15
;
;-------------- ＯＢＪキャラクターセット --------------------------------
		LDA	OBJTYP		;x6
		ASL	A
;;;;		    CLC
		ADC	OBJTYP
		ASL	A
		TAY
		LDA	!OBJCHRBK,Y
		STA	OBJCHR_BNK	;敵キャラクターバンク１、２セット
		STA	<WORK17
		LDA	!OBJCHRBK+2,Y
		STA	OBJCHR_BNK+2	;敵キャラクターバンク３、４セット
		STA	<WORK19
		LDA	!OBJCHRBK+4,Y
		STA	OBJCHR_BNK+4	;敵キャラクターバンク５、６セット
		STA	<WORK1B
;
		M8
;
		LDY	#GMCHR		;(Y) <-- character index
;
;-------------- キャラクターセット --------------------------------------
GMCS030		EQU	$
		LDA	#WOB7CHR/400H
		STA	CIPSCB		;bitmap screen address set
		LDA	#00111101B
		STA	CIPSCR		;bitmap 4 bit mode set
;
GMCS032		EQU	$
		LDA	!CHRTBL,Y	;(A) <-- chara bank
		CMP	#0F0H
		BCC	GMCS040		;direct set ? ( yes:GMCS040 )
;
		CMP	#0FFH
		BEQ	GMCS050		;end ? ( yes:GMCS050 )
;
		SEC
		SBC	#0F0H
;
		M16
;
		AND	#00FFH
		TAX
;
		M8
;
		LDA	<WORK10,X	;(A) <-- chara bank
GMCS040		EQU	$
		LDX	!CHRTBL+1,Y	;(X) <-- VRAM address
		JSR	CHRSUB
		INY
		INY
		INY
		BRA	GMCS032
;
GMCS050		EQU	$
;
		I8
;
		PLB
		RTL
;
;------------------------------------------------------------------------
;-		マップキャラクターセット				-
;------------------------------------------------------------------------
;
;----------------------------------------------------------------
;-		マップキャラクターバンクデータ			-
;----------------------------------------------------------------
MPCHRST		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
;-------------- ＢＧ３背景キャラクター ------------------------------
		LDA	#CHR103B	;地下
		STA	<WORK10
		LDA	!TITLEFG
		CMP	#080H
		BEQ	MPCHRST_100
		LDA	!WLD6_FLG
		BNE	MPCHRST_100
		LDA	#CHR27B		;地上
		STA	<WORK10
;
MPCHRST_100	EQU	$
		I16
;
		LDY	#MPCHR		;(Y) <-- character index
		JMP	GMCS030
;
;------------------------------------------------------------------------
;-		キャラクターセット					-
;-			(Y) <-- キャラクター配置データポインター	-
;------------------------------------------------------------------------
;
		MEM8
		IDX16
;
CHRSET		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		JMP	GMCS030
;
;------------------------------------------------------------------------
;-		横スクロールマップキャラクター ＆ スクリーン セット	-
;------------------------------------------------------------------------
HMPCHRST_SCR	EQU	$	; スクリーン
		BYTE	MP1B1,MP1B2,MP1B3,000H	; 1 world
		BYTE	MP2B1,MP2B2,MP2B3,000H	; 2 world
		BYTE	MP3B1,MP3B2,MP3B3,000H	; 3 world
		BYTE	MP4B1,MP4B2,MP4B3,000H	; 4 world
		BYTE	MP5B1,MP5B2,MP5B3,000H	; 5 world
		BYTE	MP6B1,MP6B2,MP6B3,000H	; 6 world
;
HMPCHRST_BGCHR	EQU	$	; ＢＧ１,２キャラクター
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 1 world
		BYTE	CHRFEA-CHR10,CHRFEB-CHR10,CHRFFA-CHR10,CHRFFB-CHR10	;
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 2 world
		BYTE	CHRFEA-CHR10,CHRFEB-CHR10,CHRFFA-CHR10,CHRFFB-CHR10	;
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 3 world
		BYTE	CHRFEA-CHR10,CHRFEB-CHR10,CHRFFA-CHR10,CHRFFB-CHR10	;
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 4 world
		BYTE	CHRFEA-CHR10,CHRFEB-CHR10,CHRFFA-CHR10,CHRFFB-CHR10	;
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 5 world
		BYTE	CHRFEA-CHR10,CHRFEB-CHR10,CHRFFA-CHR10,CHRFFB-CHR10	;
		BYTE	CHRFCA-CHR10,CHRFCB-CHR10,CHRFDA-CHR10,CHRFDB-CHR10	; 6 world
		BYTE	CHRFAA-CHR10,CHRFAB-CHR10,CHRFBA-CHR10,CHRFBB-CHR10	;
;
;
		MEM8
		IDX8
HMPCHRST	EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
;-------------- スクリーン セット ---------------------------------------
		LDA	!MPTYPE
		ASL	A
		TAY
		LDA	HMPCHRST_SCR+0,Y
		STA	<WORK10
		LDA	HMPCHRST_SCR+1,Y
		STA	<WORK11
		LDA	HMPCHRST_SCR+2,Y
		STA	<WORK12
;
;-------------- ＢＧ１,２キャラクター セット ----------------------------
		LDA	!MPTYPE
		ASL	A
		ASL	A
		TAY
		LDX	#000H
HMPCHRST_210	EQU	$
		LDA	HMPCHRST_BGCHR,Y
		STA	<WORK13,X
		INY
		INX
		CPX	#008
		BCC	HMPCHRST_210
;
		I16			; index 16bit mode
		LDY	#HMPCHR
		JMP	GMCS030
;
;
;----------------------------------------------------------------
;-	ミニ ゲーム キャラクター ＆ スクリーン セット		-
;----------------------------------------------------------------
MINIB2CHR_DAT0	EQU	$
		BYTE	CHR14-CHR10,CHR14-CHR10,CHR14-CHR10
		BYTE	CHRB2-CHR10,CHR14-CHR10,CHR14-CHR10
		BYTE	CHR14-CHR10,CHRB0-CHR10,CHR14-CHR10
		BYTE	CHR1C-CHR10,CHR1C-CHR10,CHR14-CHR10
;
MINIB2CHR_DAT1	EQU	$
		BYTE	CHR14-CHR10,CHR14-CHR10,CHR14-CHR10
		BYTE	CHRB3-CHR10,CHR14-CHR10,CHR14-CHR10
		BYTE	CHR14-CHR10,CHRB1-CHR10,CHR15-CHR10
		BYTE	CHR14-CHR10,CHR14-CHR10,CHR14-CHR10
;
MINIB1SCR_DAT	EQU	$
		BYTE	MIN11,MIN11,MIN11
		BYTE	MIN11,MIN12,MIN13
		BYTE	MIN13,MIN15,MIN16
		BYTE	MIN14,MIN14,MIN11
;
MINIB2SCR_DAT	EQU	$
		BYTE	MIN21,MIN21,MIN21
		BYTE	MIN2B1,MIN21,MIN21
		BYTE	MIN21,MIN25,MIN26
		BYTE	MIN21,MIN21,MIN21
;
;
		MEM8
		IDX8
MINICHRST	EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
;--------------- キャラクター セット ----------------------------
		LDA	MINIB2CHR_DAT0,Y
		STA	<WORK10
		LDA	MINIB2CHR_DAT1,Y
		STA	<WORK11
;
;---------------- スクリーン セット ------------------------------
		LDA	MINIB1SCR_DAT,Y
		STA	<WORK12
		LDA	MINIB2SCR_DAT,Y
		STA	<WORK13
;
;--------------- ＯＢＪキャラクターセット -----------------------
		LDA	#CHR4DA-CHR10
		STA	OBJCHR_BNK+4	;敵キャラクターバンク５セット
		LDA	#0FFH
		STA	OBJCHR_BNK	;敵キャラクターバンク１セット
		STA	OBJCHR_BNK+1	;敵キャラクターバンク２セット
		STA	OBJCHR_BNK+2	;敵キャラクターバンク３セット
		STA	OBJCHR_BNK+3	;敵キャラクターバンク４セット
		STA	OBJCHR_BNK+5	;敵キャラクターバンク６セット
;
;
		I16			; index 16bit mode
		LDY	#MINICHR
		JMP	GMCS030
;
;------------------------------------------------------------------------
;-		ダブルテレサ キャラクターセット				-
;------------------------------------------------------------------------
		IDX8
DBLTELESA	EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		LDX	#GM0B
		JSL	>GMMDST
		LDA	#038H
		STA	210AH
;
;-------------- ＯＢＪキャラクターセット --------------------------------
		LDA	#CHRE7B-CHR10
		STA	!OBJCHR_BNK+0	;敵キャラクターバンク２セット
		LDA	#CHR48C-CHR10
		STA	!OBJCHR_BNK+1	;敵キャラクターバンク３セット
		LDA	#CHR4ED-CHR10
		STA	!OBJCHR_BNK+2	;敵キャラクターバンク４セット
		LDA	#CHR40A-CHR10
		STA	!OBJCHR_BNK+3	;敵キャラクターバンク５セット
		LDA	#CHR40A-CHR10
		STA	!OBJCHR_BNK+4	;敵キャラクターバンク６セット
		LDA	#CHR43D-CHR10
		STA	!OBJCHR_BNK+5	;敵キャラクターバンク６セット
;
		I16			; index 16bit mode
		LDY	#DBLTL		;(Y) <-- character index
		JMP	GMCS030
;
;****************************************************************
;*		character buffer set & DMA			*
;*			in  : (A) <-- chara bank		*
;*			      (X) <-- VRAM address		*
;*			[ from memory-8,index-16 bit mode !! ]	*
;****************************************************************
;
		MEM8
		IDX16
;
CHRSUB		EQU	$
		STX	<WORKE		;(WKE,F) <-- VRAM address set
;
		M16
;
		AND	#00FFH		;x3
		STA	<WORKC		;(WKC,D) <-- chara bank
		ASL	A
;;;;		CLC
		ADC	<WORKC
		TAX
;
;-------------- press data convert ----------------------
		LDA	<WORKE
		BPL	CHRSB000	;画像圧縮？ ( no:CHRSB000 )
;
;-------------- 画像圧縮データ解凍 ----------------------
		LDA	!CHRTBL+3,Y
		STA	<WORKA		;(WKA,B) <-- number of byte
		INY
		INY
		PHY			;(Y) save
;
		ASL	A		;x4
		ASL	A		;
		XBA
		AND	#00FFH
		STA	R3		;(R3) <-- pless data line
;
		LDA	>ADDSTART+((NO_PRES+CHR10)*3),X
		STA	R1		;(R1)  <-- pless data address(L,H)
		LDA	>ADDSTART+((NO_PRES+CHR10)*3)+2,X
		AND	#00FFH
		STA	R0		;(R0)  <--	    "        (B)
;
		I8
;
		M_CHIP	DEF_CHR
;
		I16
;
		LDY	<WORKA		;(Y) <-- number of byte
;
		M8
;
		BRA	CHRSB002
;
		MEM16
;
;-------------- どろぼう圧縮データ解凍 ------------------
CHRSB000	EQU	$
		PHY			;(Y) save
;
		LDA	>ADDSTART+(NO_PRES*3),X
		STA	R9		;(R9)  <-- pless data address(L,H)
		LDA	>ADDSTART+(NO_PRES*3)+2,X
		AND	#00FFH
		STA	R4		;(R4)  <--	    "        (B)
		LDA	#WOB7CHR
		STA	R10		;(R10) <-- data store address
;
		I8
;
		M_CHIP	DT_UNCOMPRESS
;
		I16
;
		LDA	R10
		SEC
		SBC	#WOB7CHR
		TAY			;(Y) <-- number of byte
;
		M8
;
		LDA	<WORKC
		CMP	#CHR78
		BCS	CHRSB010	;mode 7 chara ? ( yes:CHRSB010 )
;
;-------------- character DMA set -----------------------
CHRSB002	EQU	$
		LDA	#10000000B	;inc mode set
		STA	2115H
		LDX	<WORKE		;VRAM address set
		STX	2116H
;
		LDX	#00000001B+(18H*100H)	;DMA paramer & B bus address set
		STX	4300H
		LDX	#WOB7CHR		;A bus address(L,H) set
		STX	4302H
		LDA	#BANK WOB7CHR		;	"     (B) set
		STA	4304H
		STY	4305H			;number of byte set
		LDA	#00000001B
		STA	420BH			;DMA "ON" !!
;
		PLY			;(Y) load
		RTS
;
;-------------- mode 7 character DMA set ----------------
CHRSB010	EQU	$
		LDX	#000
		CMP	#CHRCEA
		BEQ	CHRSB015
		CMP	#CHRCEB
		BEQ	CHRSB015
		INX
		INX
		CMP	#CHRCFA
		BEQ	CHRSB015
		CMP	#CHRCFB
		BEQ	CHRSB015
		INX
		INX
		CMP	#M7TORIBOSS
		BEQ	CHRSB015
		INX
		INX
CHRSB015	EQU	$
		M16			; memory 16bit mode
		TYA
		STA	<WORK0		;loop no
		ASL	A
		PHA			;number of byte save
		M8			; memory 8bit mode
;
		PHB			;(DBR) save
		LDA	#BANK WORKBF
		PHA
		PLB
		M16			; memory 16bit mode
		JSR	(MODE7_CNV,X)
		M8			; memory 8bit mode
		PLB
;
		PLY			;(Y) <- 転送バイト数
;
		LDA	<WORK0
		BEQ	CHRSB019
		STA	2115H		;inc mode set
		LDX	<WORKE
		STX	2116H		;VRAM address set
;
		LDX	<WORK2		;DMA paramer & B bus address set
		STX	4300H
		LDX	#WORKBF			;A bus address(L,H) set
		STX	4302H
		LDA	#BANK WORKBF		;	"     (B) set
		STA	4304H
		STY	4305H			;number of byte set
		LDA	#00000001B
		STA	420BH			;DMA "ON" !!
;
CHRSB019	EQU	$
		PLY			;(Y) load
		RTS
;
MODE7_CNV	EQU	$
		WORD	MODE7_CNV_CHR,MODE7_CNV_ATR,MODE7_CNV_SCR
		WORD	MODE7_CNV_CHR
;
		MEM16
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+							+
;+		モード７　データ変換			+
;+				キャラクター		+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MODE7_CNV_CHR	EQU	$
		LDX	#00		;(X) <-- from data pointer
		LDY	#00		;(Y) <-- to	    "
MD7_CHR_LOP	EQU	$
		LDA	>WOB7CHR,X
		PHA
		AND	#0000FH
		STA	!WORKBF,Y
		INY
		PLA
		AND	#000F0H
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		STA	!WORKBF,Y
		INX
		INY
		DEC	<WORK0
		BNE	MD7_CHR_LOP
;
		LDA	#10000000B	;inc mode set
		STA	<WORK0
		LDA	#00000000B+(19H*100H)
		STA	<WORK2		;DMA paramer & B bus address set
		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+							+
;+		モード７　データ変換			+
;+				キャラクター		+
;+				(アトリビュート付き)	+
;+				in			+
;+				wrk0 : ループカウンター +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MODE7_ATR_DT0	EQU	$
		HEX	000,000,000,000,000,000,000,000,000,000,010,010,010,010,010,010
		HEX	010,020,020,020,020,020,020,030,030,030,030,030,030,030,030,030
		HEX	030,030,030,030,030,030,030,030,030,030,030,030,030,030,030,030
		HEX	030,030,030,030,030,030,030,030,030,030,030,030,030,030,030,030
;
MODE7_ATR_DT1	EQU	$
		HEX	030,030,030,030,040,040,040,040,040,040,040,040,040,040,040,040
		HEX	040,040,040,040,040,040,040,040,040,040,040,040,040,040,040,040
		HEX	040,040,040,040,040,040,040,040,040,040,040,040,040,040,040,040
		HEX	040,040,040,040,040,040,040,040,040,040,040,040,040,040,040,040
;
;
MODE7_CNV_ATR	EQU	$
		LDA	#BANK MODE7_ATR_DT0
		STA	<WORK4
		LDX	#MODE7_ATR_DT0
		LDA	<WORKC
		CMP	#CHRCFB
		BNE	MD7_ATR_SET
		LDX	#MODE7_ATR_DT1
;
MD7_ATR_SET	EQU	$
		STX	<WORK2
		LDX	#00		;(X) <-- from data pointer
		TXY			;(Y) <-- to	    "
		LDA	#00020H
		STA	<WORK6
MD7_ATR_LOP	EQU	$
		LDA	>WOB7CHR,X
		AND	#000FFH
		PHA
		AND	#0000FH
		ORA	[<WORK2]
		STA	!WORKBF,Y
		INY
		PLA
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		ORA	[<WORK2]
		STA	!WORKBF,Y
		INY
		INX
		DEC	<WORK6
		BNE	MD7_ATR_PAS
		LDA	#00020H
		STA	<WORK6
		INC	<WORK2
MD7_ATR_PAS	EQU	$
		DEC	<WORK0
		BNE	MD7_ATR_LOP
;
		LDA	#10000000B	;inc mode set
		STA	<WORK0
		LDA	#00000000B+(19H*100H)
		STA	<WORK2		;DMA paramer & B bus address set
		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+							+
;+		モード７　データ変換			+
;+				スクリーン		+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MODE7_CNV_SCR	EQU	$
		PHB
		PHK
		PLB
		I8			; index 8bit mode
		LDX	#00000000B
		STX	2115H		;inc mode set
		LDX	#BANK WOB7CHR	;A bus bank address set
		STX	4304H
		LDA	#00000000B+(18H*100H)
		STA	4300H		;DMA paramer & B bus address set
		LDA	#WOB7CHR
		STA	<WORK0
		LDX	#040H
		LDY	#00000001B
;
MD7_SCR_ST_LP	EQU	$
		LDA	<WORKE
		STA	2116H		;VRAM address set
		LDA	<WORK0		;A bus address(L,H) set
		STA	4302H
		LDA	#00020H*2
		STA	4305H		;number of byte set
		STY	420BH		;DMA "ON" !!
;
		LDA	<WORKE
		CLC
		ADC	#00020H*4
		STA	<WORKE
		LDA	<WORK0
		CLC
		ADC	#00020H*2
		STA	<WORK0
		DEX
		BNE	MD7_SCR_ST_LP
;
		I16			; index 16bit mode
		PLB
		RTS
;
		MEM8
;
;
;****************************************************************
;*								*
;*		圧縮データ解凍					*
;*			入力：					*
;*				(A) <-- データＮｏ．		*
;*				(X) <-- 解凍先アドレス		*
;*								*
;*			出力：					*
;*				(A) <-- 解凍データバイト数	*
;*								*
;*			使用ＲＡＭ：（ＣＣＷＯＲＫ０）		*
;*								*
;****************************************************************
;
		MEM16
		IDX16
;
UNCOMPRES_X	EQU	$
		LDX	#WOB7CHR+1000H	;(X) <-- 解凍先アドレス
;
UNCOMPRES	EQU	$
		STA	CCWORK0
		ASL	A
;;;;		CLC
		ADC	CCWORK0
;
		STX	CCWORK0		;(CWK0) <-- 解凍先アドレス
		STX	R10		;(R10)	<--	  ”
;
		TAX
;
;-------------- press data convert ----------------------
		LDA	>ADDSTART+(NO_PRES*3),X
		STA	R9		;(R9)  <-- pless data address(L,H)
		LDA	>ADDSTART+(NO_PRES*3)+2,X
		AND	#00FFH
		STA	R4		;(R4)  <--	    "        (B)
;
		I8
;
		M_CHIP	DT_UNCOMPRESS
;
		I16
;
		LDA	R10
		SEC
		SBC	CCWORK0		;(A) <-- number of byte
		RTL
;
;************************************************************************
;*		カラーセット						*
;************************************************************************
;
		MEM8
		IDX8
;
;------------------------------------------------------------------------
;-		カラー配置 データ					-
;------------------------------------------------------------------------
COLTBL		EQU	$
;		WORD	(color data pointer)
;		BYTE	(start pos),(X wide)+(Y wide*10H)
;
;-------------- ゲームプレイ --------------------------------------------
GMCOLR		EQU	$
		WORD	BG1_MAIN_COL		;BG1 main color
		BYTE	011H,0BH+(03H*10H)
		WORD	OBJ_MAIN_COL		;OBJ main color
		BYTE	081H,0FH+(05H*10H)
;
		WORD	(WORK10-WORK10)+8000H	;nuki color
		BYTE	000H,01H+(01H*10H)
		WORD	(WORK16-WORK10)+8000H	;BG3 sub color
		BYTE	001H,0FH+(01H*10H)
		WORD	(WORK12-WORK10)+8000H	;BG1 sub color
		BYTE	041H,0FH+(02H*10H)
		WORD	(WORK1A-WORK10)+8000H	;      "
		BYTE	01CH,04H+(03H*10H)
		WORD	(WORK14-WORK10)+8000H	;BG2 sub color
		BYTE	061H,0FH+(02H*10H)
		WORD	(WORK18-WORK10)+8000H	;OBJ sub color
		BYTE	0E1H,0FH+(02H*10H)
		WORD	(WORK1C-WORK10)+8000H	;プレイヤーカラー
		BYTE	0D1H,0FH+(01H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- マップ --------------------------------------------------
MPCOLR		EQU	$
		WORD	MAP_AICON_COL		;ＢＧアイコンカラー
		BYTE	031H,0FH+(04H*10H)
		WORD	TITLE_COL		;タイトルカラー
		BYTE	021H,0FH+(01H*10H)
		WORD	MAP_AICON_COL		;ＯＢＪアイコンカラー
		BYTE	0B1H,0FH+(04H*10H)
;
		WORD	(WORK10-WORK10)+8000H	;ぬきカラー
		BYTE	000H,01H+(01H*10H)
		WORD	(WORK12-WORK10)+8000H	;モード７用地形カラー
		BYTE	001H,0FH+(02H*10H)
		WORD	(WORK14-WORK10)+8000H	;ビットマップＯＢＪカラー
		BYTE	0F1H,0FH+(01H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- タイトル ------------------------------------------------
TLCOLR		EQU	$
		WORD	NUKI_COL		;ぬきカラー
		BYTE	000H,01H+(01H*10H)
		WORD	OBJ_MAIN_COL		;ＯＢＪカラー
		BYTE	081H,0FH+(01H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- 死神デモ ------------------------------------------------
DM_00_COLR
		WORD	HEIHO_DEMO_COL		;ＯＢＪカラー
		BYTE	0E1H,0FH+(02H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- ミュージカル --------------------------------------------
DM_01_COLR	EQU	$
;;;;		    WORD    MSCL_COL_NUK	    ;ぬきカラー
		WORD	MSCL_COL_BG3		;ぬきカラー
		BYTE	000H,01H+(01H*10H)
		WORD	MSCL_COL_BG3		;ＢＧ３枠カラー
		BYTE	001H,0FH+(02H*10H)
		WORD	MSCL_COL_1_SKY0		;ＢＧ空カラー
		BYTE	021H,0FH+(01H*10H)
		WORD	MSCL_COL_1_SEA0		;ＢＧ海カラー
		BYTE	031H,0FH+(01H*10H)
		WORD	MSCL_COL_0_ROGO		;ＢＧ”ｎｉｎｔｅｎｄｏ”ロゴカラー
		BYTE	041H,0FH+(03H*10H)
		WORD	MSCL_COL_1_OBJ0		;ＯＢＪカラー（コウノトリ）
		BYTE	081H,0FH+(01H*10H)
		WORD	MSCL_COL_OBJ_1		;ＯＢＪカラー
		BYTE	091H,0FH+(07H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- 横スクロールマップ ------------------------------
HMAP_COLR	EQU	$
		WORD	(WORK10-WORK10)+8000H	;ぬきカラー
		BYTE	000H,01H+(01H*10H)
;
		WORD	(WORK12-WORK10)+8000H	;ＢＧマップ カラー
		BYTE	001H,0FH+(01H*10H)
		WORD	(WORK14-WORK10)+8000H
		BYTE	011H,0FH+(01H*10H)
		WORD	(WORK16-WORK10)+8000H
		BYTE	021H,0FH+(01H*10H)
		WORD	(WORK18-WORK10)+8000H
		BYTE	071H,0FH+(01H*10H)
;
		WORD	MAP_AICON_COL		;ＢＧアイコンカラー
		BYTE	031H,0FH+(04H*10H)
;
		WORD	MAP_AICON_COL		;ＯＢＪアイコンカラー
		BYTE	081H,0FH+(04H*10H)
;
		WORD	HMAP_OBJ_COL		;ＯＢＪ常駐カラー
		BYTE	0C1H,0FH+(02H*10H)
;
		WORD	MAP_OBJ_COL_0		;ＯＢＪ入れ替えカラー
		BYTE	0E1H,0FH+(02H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- ボーナスステージ（１）-----------------------------------
BONUS_1_COLR	EQU	$
		WORD	BNS_BG_NUKI
		BYTE	000H,01H+(01H*10H)
;
		WORD	(WORK10-WORK10)+8000H	;BG3 sub color
		BYTE	001H,0FH+(03H*10H)
		WORD	(WORK12-WORK10)+8000H	;BG1 sub color
		BYTE	071H,0FH+(01H*10H)
;
		WORD	OBJ_MAIN_COL		;OBJ main color
		BYTE	081H,0FH+(06H*10H)
;
		WORD	(WORK14-WORK10)+8000H	; BG icon color
		BYTE	031H,0FH+(04H*10H)
;
		WORD	(WORK16-WORK10)+8000H	; OBJ icon color
		BYTE	091H,0FH+(04H*10H)
;
		WORD	BNS_ICN_COLSB
		BYTE	051H,0FH+(01H*10H)
		WORD	BNS_ICN_COLSB
		BYTE	0B1H,0FH+(01H*10H)
;
		WORD	(WORK18-WORK10)+8000H	;プレーヤーカラー
		BYTE	0D1H,0FH+(01H*10H)
;
		WORD	OBJ_MAIN_COL
		BYTE	0E1H,0FH+(02H*10H)
;
		WORD	OBJ_MAIN_COL+00FH*6
		BYTE	0E1H,0FH+(01H*10H)
;
		WORD	0FFFFH	;end code
;
;--------------- ミニ ゲーム ------------------------------------
MINI_COLR	EQU	$
		WORD	BG3_SUB_B_COL		; ＢＧ３ カラー
		BYTE	001H,0FH+(01H*10H)
;
		WORD	BG1_MAIN_COL		; ＢＧ常駐カラー
		BYTE	011H,0BH+(03H*10H)
;
		WORD	MINI_COL_0		; ＢＧ カラー
		BYTE	041H,0FH+(04H*10H)
;
		WORD	OBJ_MAIN_COL		; ＯＢＪ常駐カラー
		BYTE	081H,0FH+(06H*10H)
;
		WORD	(WORK10-WORK10)+8000H	;プレーヤーカラー
		BYTE	0D1H,0FH+(01H*10H)
;
		WORD	0FFFFH	;end code
;
;-------------- ダブルテレサ用 ------------------------------------------
DBLTLCOL	EQU	$
		WORD	DBLTELE_COL
		BYTE	001H,0FH+(08H*10H)
;
		WORD	OBJ_MAIN_COL		;OBJ main color
		BYTE	081H,0FH+(05H*10H)	;
;
		WORD	(WORK10-WORK10)+8000H	;プレイヤーカラー
		BYTE	0D1H,0FH+(01H*10H)
;
		WORD	(WORK12-WORK10)+8000H	;OBJ sub color
		BYTE	0E1H,0FH+(02H*10H)
;
		WORD	0FFFFH	;end code
;
;
;
GMCOL		EQU	GMCOLR-COLTBL
MPCOL		EQU	MPCOLR-COLTBL
TLCOL		EQU	TLCOLR-COLTBL
DM_00_COL	EQU	DM_00_COLR-COLTBL
DM_01_COL	EQU	DM_01_COLR-COLTBL
HMPCOL		EQU	HMAP_COLR-COLTBL
BONUS_1_COL	EQU	BONUS_1_COLR-COLTBL
MINI_COL	EQU	MINI_COLR-COLTBL
DBLTLCL		EQU	DBLTLCOL-COLTBL
;
;------------------------------------------------------------------------
;-		ゲームプレイカラーセット				-
;------------------------------------------------------------------------
;
;----------------------------------------------------------------
;-		ゲームプレイカラーバンクデータ			-
;----------------------------------------------------------------
BG1COLBK	EQU	$
		WORD	BG1_SUB_0_COL	;[0:地下]
		WORD	BG1_SUB_1_COL	;[1:草]
		WORD	BG1_SUB_2_COL	;[2:水中]
		WORD	BG1_SUB_3_COL	;[3:溶岩]
		WORD	BG1_SUB_4_COL	;[4:雪]
		WORD	BG1_SUB_5_COL	;[5:ジャングル]
		WORD	BG1_SUB_6_COL	;[6:カベ]
		WORD	BG1_SUB_7_COL	;[7:花]
		WORD	BG1_SUB_8_COL	;[8:]
		WORD	BG1_SUB_9_COL	;[9:フラワー]
		WORD	BG1_SUB_A_COL	;[A:]
		WORD	BG1_SUB_B_COL	;[B:ドカン]
		WORD	BG1_SUB_C_COL	;[C:]
		WORD	BG1_SUB_D_COL	;[D:空]
		WORD	BG1_SUB_E_COL	;[E:]
		WORD	BG1_SUB_F_COL	;[F:]
		WORD	BG1_SUB_10_COL	;[10:]
		WORD	BG1_SUB_11_COL	;[11:]
		WORD	BG1_SUB_12_COL	;[12:]
		WORD	BG1_SUB_13_COL	;[13:]
		WORD	BG1_SUB_14_COL	;[14:]
		WORD	BG1_SUB_15_COL	;[15:]
		WORD	BG1_SUB_16_COL	;[16:]
		WORD	BG1_SUB_17_COL	;[17:]
		WORD	BG1_SUB_18_COL	;[18:]
		WORD	BG1_SUB_19_COL	;[19:]
		WORD	BG1_SUB_1A_COL	;[1A:]
		WORD	BG1_SUB_1B_COL	;[1B:]
		WORD	BG1_SUB_1C_COL	;[1C:]
		WORD	BG1_SUB_1D_COL	;[1D:]
		WORD	BG1_SUB_1E_COL	;[1E:]
		WORD	BG1_SUB_1F_COL	;[1F:]
;
WD6COLBK	EQU	$
		WORD	BG1_SUB_0_COL	;[0:地下]
		WORD	BG1_SUB_10_COL	;[1:草]
		WORD	BG1_SUB_2_COL	;[2:水中]
		WORD	BG1_SUB_3_COL	;[3:溶岩]
		WORD	BG1_SUB_4_COL	;[4:雪]
		WORD	BG1_SUB_5_COL	;[5:ジャングル]
		WORD	BG1_SUB_6_COL	;[6:カベ]
		WORD	BG1_SUB_7_COL	;[7:花]
		WORD	BG1_SUB_8_COL	;[8:]
		WORD	BG1_SUB_9_COL	;[9:フラワー]
		WORD	BG1_SUB_A_COL	;[A:]
		WORD	BG1_SUB_B_COL	;[B:ドカン]
		WORD	BG1_SUB_C_COL	;[C:]
		WORD	BG1_SUB_D_COL	;[D:空]
		WORD	BG1_SUB_E_COL	;[E:]
		WORD	BG1_SUB_F_COL	;[F:]
		WORD	BG1_SUB_10_COL	;[10:]
		WORD	BG1_SUB_11_COL	;[11:]
		WORD	BG1_SUB_12_COL	;[12:]
		WORD	BG1_SUB_13_COL	;[13:]
		WORD	BG1_SUB_14_COL	;[14:]
		WORD	BG1_SUB_15_COL	;[15:]
		WORD	BG1_SUB_16_COL	;[16:]
		WORD	BG1_SUB_17_COL	;[17:]
		WORD	BG1_SUB_18_COL	;[18:]
		WORD	BG1_SUB_19_COL	;[19:]
		WORD	BG1_SUB_1A_COL	;[1A:]
		WORD	BG1_SUB_1B_COL	;[1B:]
		WORD	BG1_SUB_1C_COL	;[1C:]
		WORD	BG1_SUB_1D_COL	;[1D:]
		WORD	BG1_SUB_1E_COL	;[1E:]
		WORD	BG1_SUB_1F_COL	;[1F:]
;
BG2COLBK	EQU	$
		WORD	BG2_SUB_7_COL	;[ 0:ハチ城];;;;;地下]
		WORD	BG2_SUB_4_COL	;[ 1:草]
		WORD	BG2_SUB_1_COL	;[ 2:水中]
		WORD	BG2_SUB_0_COL	;[ 3:溶岩]
		WORD	BG2_SUB_3_COL	;[ 4:雪]
		WORD	BG2_SUB_2_COL	;[ 5:ＲＥＤ ＷＯＯＤＳ]
		WORD	BG2_SUB_6_COL	;[ 6:カベ]
		WORD	BG2_SUB_5_COL	;[ 7:パステル２]
		WORD	BG2_SUB_8_COL	;[ 8:森]
		WORD	BG2_SUB_A_COL	;[ 9:遠近両用]
		WORD	BG2_SUB_B_COL	;[ A:ハチ滝]
		WORD	BG2_SUB_C_COL	;[ B:ワンワンドスン]
		WORD	BG2_SUB_D_COL	;[ C:ジャングル]
		WORD	BG2_SUB_E_COL	;[ D:マルペケ]
		WORD	BG2_SUB_F_COL	;[ E:グルグル]
		WORD	BG2_SUB_10_COL	;[ F:フジ山]
		WORD	BG2_SUB_A_COL	;[10:]
		WORD	BG2_SUB_0_COL	;[11:雪山カラー違い]
		WORD	BG2_SUB_2_COL	;[12:空]
		WORD	BG2_SUB_11_COL	;[13:地下いわ]
		WORD	BG2_SUB_12_COL	;[14:万次郎]
		WORD	BG2_SUB_13_COL	;[15:岩山]
		WORD	BG2_SUB_17_COL	;[16:特殊コース（ひみつ）]
		WORD	BG2_SUB_17_COL	;[17:モード２画面切り替えコース , 月その２]
		WORD	BG2_SUB_14_COL	;[18:ＮＩＧＨＴ]
		WORD	BG2_SUB_15_COL	;[19:ドカン]
		WORD	BG2_SUB_16_COL	;[1A:ハチパステル]
		WORD	BG2_SUB_19_COL	;[1B:たこやき山]
		WORD	BG2_SUB_18_COL	;[1C:ハチ朝日]
		WORD	BG2_SUB_1A_COL	;[1D:杉林]
		WORD	BG2_SUB_1B_COL	;[1E:グルグル２]
		WORD	BG2_SUB_1C_COL	;[1F:クッパの部屋]
		WORD	BG2_SUB_20_COL	;[20:地下滝 水]
		WORD	BG2_SUB_21_COL	;[21:地下滝 溶岩]
		WORD	BG2_SUB_22_COL	;[22:]
		WORD	BG2_SUB_23_COL	;[23:]
		WORD	BG2_SUB_24_COL	;[24:]
		WORD	BG2_SUB_25_COL	;[25:]
		WORD	BG2_SUB_26_COL	;[26:]
		WORD	BG2_SUB_27_COL	;[27:]
		WORD	BG2_SUB_28_COL	;[28:]
		WORD	BG2_SUB_29_COL	;[29:]
		WORD	BG2_SUB_2A_COL	;[2A:]
		WORD	BG2_SUB_2B_COL	;[2B:]
		WORD	BG2_SUB_2C_COL	;[2C:水墨画 赤]
		WORD	BG2_SUB_2D_COL	;[2D:水墨画 紫]
		WORD	BG2_SUB_2E_COL	;[2E:]
		WORD	BG2_SUB_2F_COL	;[2F:]
		WORD	BG2_SUB_30_COL	;[30:]
		WORD	BG2_SUB_31_COL	;[31:]
		WORD	BG2_SUB_32_COL	;[32:]
		WORD	BG2_SUB_33_COL	;[33:]
		WORD	BG2_SUB_34_COL	;[34:]
		WORD	BG2_SUB_35_COL	;[35:]
		WORD	BG2_SUB_36_COL	;[36:]
		WORD	BG2_SUB_37_COL	;[37:]
		WORD	BG2_SUB_38_COL	;[38:]
		WORD	BG2_SUB_39_COL	;[39:]
		WORD	BG2_SUB_3A_COL	;[3A:]
		WORD	BG2_SUB_3B_COL	;[3B:]
		WORD	BG2_SUB_3C_COL	;[3C:]
		WORD	BG2_SUB_3D_COL	;[3D:]
		WORD	BG2_SUB_3E_COL	;[3E:]
		WORD	BG2_SUB_3F_COL	;[3F:]
BG3COLBK	EQU	$
		WORD	BG3_SUB_0_COL	;[00:雪山]
		WORD	BG3_SUB_1_COL	;[01:草トンネルマスク]
		WORD	BG3_SUB_2_COL	;[02:水中]
		WORD	BG3_SUB_3_COL	;[03:スライム]
		WORD	BG3_SUB_4_COL	;[04:カベ，万次郎のカベ,胃壁]
		WORD	BG3_SUB_5_COL	;[05:バブル泡]
		WORD	BG3_SUB_6_COL	;[06:パステル]
		WORD	BG3_SUB_7_COL	;[07:パステル２、ジャングル,森その２]
		WORD	BG3_SUB_C_COL	;[08:地下]
		WORD	BG3_SUB_9_COL	;[09:フジ山]
		WORD	BG3_SUB_A_COL	;[0A:雲その２]
		WORD	BG3_SUB_B_COL	;[0B:ＮＩＧＨＴ，ハチ城]
		WORD	BG3_SUB_8_COL	;[0C:森]
		WORD	BG3_SUB_D_COL	;[0D:]
		WORD	BG3_SUB_E_COL	;[0E:ＢＧ３ワンワン]
		WORD	BG3_SUB_F_COL	;[0F:水上アスレチック]
		WORD	BG3_SUB_10_COL	;[10]
		WORD	BG3_SUB_11_COL	;[11:ハチ城]
		WORD	BG3_SUB_12_COL	;[12]
		WORD	BG3_SUB_13_COL	;[13:ＦＬＯＷＥＲ]
		WORD	BG3_SUB_14_COL	;[14:雪降り始め用]
		WORD	BG3_SUB_15_COL	;[15]
		WORD	BG3_SUB_16_COL	;[16]
		WORD	BG3_SUB_17_COL	;[17]
		WORD	BG3_SUB_18_COL	;[18:枯れ木]
		WORD	BG3_SUB_19_COL	;[19:ハチパステル]
		WORD	BG3_SUB_1A_COL	;[1A]
		WORD	BG3_SUB_1B_COL	;[1B:ハチ滝]
		WORD	BG3_SUB_1C_COL	;[1C:ハチ夕日]
		WORD	BG3_SUB_1D_COL	;[1D:ハチ朝日]
		WORD	BG3_SUB_1E_COL	;[1E:ゴッホ星空]
		WORD	BG3_SUB_1F_COL	;[1F:ボス部屋]
		WORD	BG3_SUB_20_COL	;[20:]
		WORD	BG3_SUB_21_COL	;[21:万次郎の雲(上密)]
		WORD	BG3_SUB_22_COL	;[22:万次郎の雲(下密)]
		WORD	BG3_SUB_23_COL	;[23:]
		WORD	BG3_SUB_24_COL	;[24:]
		WORD	BG3_SUB_25_COL	;[25:]
		WORD	BG3_SUB_26_COL	;[26:]
		WORD	BG3_SUB_27_COL	;[27:]
		WORD	BG3_SUB_28_COL	;[28:]
		WORD	BG3_SUB_29_COL	;[29:]
		WORD	BG3_SUB_2A_COL	;[2A:]
		WORD	BG3_SUB_2B_COL	;[2B:霧 普通]
		WORD	BG3_SUB_2C_COL	;[2C:霧 出てくる]
		WORD	BG3_SUB_2D_COL	;[2D:霧 黄色]
		WORD	BG3_SUB_2E_COL	;[2E:]
		WORD	BG3_SUB_2F_COL	;[2F:]
		WORD	BG3_SUB_30_COL	;[30:]
		WORD	BG3_SUB_31_COL	;[31:]
		WORD	BG3_SUB_32_COL	;[32:]
		WORD	BG3_SUB_33_COL	;[33:]
		WORD	BG3_SUB_34_COL	;[34:]
		WORD	BG3_SUB_35_COL	;[35:]
		WORD	BG3_SUB_36_COL	;[36:]
		WORD	BG3_SUB_37_COL	;[37:]
		WORD	BG3_SUB_38_COL	;[38:]
		WORD	BG3_SUB_39_COL	;[39:]
		WORD	BG3_SUB_3A_COL	;[3A:]
		WORD	BG3_SUB_3B_COL	;[3B:]
		WORD	BG3_SUB_3C_COL	;[3C:]
		WORD	BG3_SUB_3D_COL	;[3D:]
		WORD	BG3_SUB_3E_COL	;[3E:]
		WORD	BG3_SUB_3F_COL	;[3F:]
OBJCOLBK	EQU	$
		WORD	OBJ_SUB_0_COL	;[0:地下]
		WORD	OBJ_SUB_1_COL	;[1:草]
		WORD	OBJ_SUB_2_COL	;[2:水中]
		WORD	OBJ_SUB_3_COL	;[3:溶岩]
		WORD	OBJ_SUB_4_COL	;[4:雪]
		WORD	OBJ_SUB_5_COL	;[5:バブル]
		WORD	OBJ_SUB_6_COL	;[6:カベ]
		WORD	OBJ_SUB_7_COL	;[7:花]
		WORD	OBJ_SUB_8_COL	;[8:草]
		WORD	OBJ_SUB_9_COL	;[9:草]
		WORD	OBJ_SUB_A_COL	;[A:草]
		WORD	OBJ_SUB_B_COL	;[B:草]
		WORD	OBJ_SUB_C_COL	;[C:草]
		WORD	OBJ_SUB_D_COL	;[D:草]
		WORD	OBJ_SUB_E_COL	;[E:草]
		WORD	OBJ_SUB_F_COL	;[F:草]
PL_COLBK	EQU	$
		WORD	PLAY_0_COL	;[0]
		WORD	PLAY_1_COL	;[1]
		WORD	PLAY_2_COL	;[2]
		WORD	PLAY_3_COL	;[3]
		WORD	PLAY_4_COL	;[4]
		WORD	PLAY_5_COL	;[5]
		WORD	PLAY_6_COL	;[6]
		WORD	PLAY_7_COL	;[7]
;
GMCOLST		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		MI16
;
;-------------- ヌキカラーセット ----------------------------------------
		LDA	NUKINO		;nuki color x2
		ASL	A
;;;;		CLC
		ADC	#NUKI_COL
		STA	<WORK10
;
;-------------- ＢＧ１カラーセット --------------------------------------
		LDA	BG1COL		;x2
		ASL	A
		TAY
		LDA	!MPTYPE
		CMP	#(00006-1)*2
		BNE	GMCOLST_000
		LDA	WD6COLBK,Y
		BRA	GMCOLST_050
GMCOLST_000	EQU	$
		LDA	!BG1COLBK,Y
GMCOLST_050	EQU	$
		STA	<WORK12
		CLC
		ADC	#(0FH*2)*2
		STA	<WORK1A
;
;-------------- ＢＧ２カラーセット --------------------------------------
		LDA	BG2COL		;x2
		ASL	A
		TAY
		LDA	!BG2COLBK,Y
		STA	<WORK14
;
;-------------- ＢＧ３カラーセット --------------------------------------
		LDA	BG3COL		;x2
		ASL	A
		TAY
		LDA	!BG3COLBK,Y
		STA	<WORK16
;
;-------------- ＯＢＪカラーセット --------------------------------------
		LDA	OBJCOL		;x2
		ASL	A
		TAY
		LDA	!OBJCOLBK,Y
		STA	<WORK18
;
;-------------- プレイヤーカラーセット ----------------------------------
		LDA	P_COLOR		;x2
		ASL	A
		TAY
		LDA	!PL_COLBK,Y
		STA	<WORK1C
;
		LDX	#GMCOL		;(X) <-- color index
;
;-------------- カラーセット --------------------------------------------
GMCOL020	EQU	$
		LDA	#COL_ADDRESS
		STA	<WORK0
		LDA	#COL_ADDRESS/100H
		STA	<WORK1		;(WK0,1,3) <-- color data address
;
GMCOL030	EQU	$
		LDA	!COLTBL,X
		BPL	GMCOL040	;direct set ? ( yes:GMCS040 )
;
		CMP	#0FFFFH
		BEQ	GMCOL070	;end ? ( yes:GMCOL070 )
;
		AND	#7FFFH
		TAY
		LDA	WORK10,Y
GMCOL040	EQU	$
		TAY			;(Y) <-- color data pointer
		LDA	!COLTBL+3,X
		AND	#0FH
		STA	<WORK3		;(WK3,4) <-- X wide
		LDA	!COLTBL+3,X
		AND	#0F0H
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		STA	<WORK5		;(WK5,6) <-- Y wide
		LDA	!COLTBL+2,X
		AND	#00FFH
		ASL	A
		STA	<WORK7		;(WK7,8) <-- color buffer start pos
;
		PHX			;(X) save
;
GMCOL050	EQU	$
		TAX			;(X) <-- color buffer start pos
		LDA	<WORK3
		STA	<WORK9		;(WK9,A) <-- X wide
GMCOL060	EQU	$
		LDA	[<WORK0],Y
		STA	>DATACOL,X
		STA	>MOTOCOL,X
		INY
		INY
		INX
		INX
		DEC	<WORK9
		BNE	GMCOL060
;
		LDA	<WORK7
		CLC
		ADC	#020H
		STA	<WORK7
		DEC	<WORK5
		BNE	GMCOL050
;
		PLX			;(X) load
;
		INX
		INX
		INX
		INX
		BRA	GMCOL030
;
GMCOL070	EQU	$
;
		MI8
;
		PLB
		RTL
;
;------------------------------------------------------------------------
;-		マップカラーセット					-
;------------------------------------------------------------------------
;
;----------------------------------------------------------------
;-		マップカラーバンクデータ			-
;----------------------------------------------------------------
MP_M7B3_COLBK	EQU	$
		WORD	MAP_M7B3_COL_0	;[0:地上]
		WORD	MAP_M7B3_COL_1	;[1:地下]
;
MP_BTMP_COLBK	EQU	$
		WORD	MAP_BTMP_COL_0	;[0:地上]
		WORD	MAP_BTMP_COL_1	;[1:地下]
;
MPCOLST		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		M16			; memory 16bit mode
;
;-------------- ヌキカラーセット ----------------------------------------
		LDA	MP_M7B3_COLBK,X
		STA	<WORK10
;
;-------------- モード７、ＢＧ３用カラーセット --------------------------
		INC	A		;+2
		INC	A		;
		STA	<WORK12
;
;-------------- ビットマップカラーセット --------------------------------
		LDA	MP_BTMP_COLBK,X
		STA	<WORK14
;
		I16				; index 16bit mode
		LDX	#MPCOL		;(X) <-- color index
		JMP	GMCOL020
;
;------------------------------------------------------------------------
;-		カラーセット						-
;-			in  : (X) <-- カラー配置データポインター	-
;------------------------------------------------------------------------
;
		MEM16
		IDX16
;
COLSET		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		JMP	GMCOL020
;
;------------------------------------------------------------------------
;-		横スクロールマップカラーセット				-
;------------------------------------------------------------------------
HMPCOLSET_NUKI	EQU	$	; ヌキカラー
		WORD	HMP_NKCL_0	; 1 world
		WORD	HMP_NKCL_1	; 2 world
		WORD	HMP_NKCL_2	; 3 world
		WORD	HMP_NKCL_3	; 4 world
		WORD	HMP_NKCL_4	; 5 world
		WORD	HMP_NKCL_5	; 6 world
;
HMPCOLSET_DAT0	EQU	$	; ＢＧ入れ替えカラーセット
		WORD	MAP_COL_00,MAP_COL_01	; 1 world
		WORD	MAP_COL_02,MAP_COL_03
		WORD	MAP_COL_10,MAP_COL_11	; 2 world
		WORD	MAP_COL_12,MAP_COL_13
		WORD	MAP_COL_20,MAP_COL_21	; 3 world
		WORD	MAP_COL_22,MAP_COL_23
		WORD	MAP_COL_30,MAP_COL_31	; 4 world
		WORD	MAP_COL_32,MAP_COL_33
		WORD	MAP_COL_40,MAP_COL_41	; 5 world
		WORD	MAP_COL_42,MAP_COL_43
		WORD	MAP_COL_50,MAP_COL_51	; 6 world
		WORD	MAP_COL_52,MAP_COL_53
;
		MEM16
		IDX16
HMPCOLSET	EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		LDX	MPTYPE
;
;-------------- ヌキカラーセット ----------------------------------------
		LDA	HMPCOLSET_NUKI,X
		STA	<WORK10
;
;-------------- ＢＧ入れ替えカラーセット --------------------------------
		TXA
		ASL	A
		ASL	A
		TAX
		LDA	HMPCOLSET_DAT0+00,X
		STA	<WORK12
		LDA	HMPCOLSET_DAT0+02,X
		STA	<WORK14
		LDA	HMPCOLSET_DAT0+04,X
		STA	<WORK16
		LDA	HMPCOLSET_DAT0+06,X
		STA	<WORK18
;
		LDX	#HMPCOL
		JMP	GMCOL020
;
;
;------------------------------------------------------------------------
;-		ミニ ゲーム カラーセット				-
;------------------------------------------------------------------------
		MEM16
		IDX16
MINICOLSET	EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
;------------------------------------ TEST
		LDA	#07F94H
		STA	!NUKCOL
		LDA	#00000H
		STA	>DATACOL
;------------------------------------ TEST
;
		LDA	!P_COLOR
		ASL	A
		TAX
		LDA	PL_COLBK,X
		STA	<WORK10
;
		LDX	#MINI_COL
		JMP	GMCOL020
		MEM8
		IDX8
;
;------------------------------------------------------------------------
;-		ダブルテレサ用カラーセット				-
;------------------------------------------------------------------------
DBLCOLST	EQU	$
		PHB		;(DBR) save
		PHK		;(DBR) <-- (PBR)
		PLB
;
		MI16		; memory , index 16bit mode
;
;-------------- プレイヤーカラーセット ----------------------------------
		LDA	!P_COLOR
		ASL	A
		TAY
		LDA	PL_COLBK,Y
		STA	<WORK10
;
;-------------- ＯＢＪカラーセット --------------------------------------
		LDA	OBJCOL		;x2
		ASL	A
		TAY
		LDA	!OBJCOLBK,Y
		STA	<WORK12
;
		LDX	#DBLTLCL
		JMP	GMCOL020
		MEM8
		IDX8
;
;************************************************************************
;*									*
;*		画面モードセット					*
;*			入力：						*
;*				(X) <-- 画面モードタイプＮｏ．		*
;*									*
;************************************************************************
GMMDIN		EQU	$
MPD00		WORD	MPMD00-GMMDDT	;[マップ]
GMD00		WORD	GMMD00-GMMDDT	;[汎用タイプ]
GMD01		WORD	GMMD01-GMMDDT	;[地下、雪コースなど（基本タイプ）]
GMD02		WORD	GMMD02-GMMDDT	;[モグラＢＧ３マスクコース]
GMD03		WORD	GMMD03-GMMDDT	;[水中コース]
GMD04		WORD	GMMD04-GMMDDT	;[溶岩コース]
GMD05		WORD	GMMD05-GMMDDT	;[バブルコース]
GMD06		WORD	GMMD06-GMMDDT	;[カベコース]
GMD07		WORD	GMMD07-GMMDDT	;[森のこもれびコース]
GMD08		WORD	GMMD08-GMMDDT	;[穴ジュゲム、アホー鳥ＢＧ３コース]
GMD09		WORD	GMMD09-GMMDDT	;[雪降りコース]
GMD0A		WORD	GMMD0A-GMMDDT	;[ボス　モード７用]
GMD0B		WORD	GMMD0B-GMMDDT	;[モード０  ダブル テレサ用]
GMD0C		WORD	GMMD0C-GMMDDT	;[ドカン]
GMD0D		WORD	GMMD0D-GMMDDT	;[ＢＧ２敵]
GMD0E		WORD	GMMD0E-GMMDDT	;[ＢＧ２敵ゲロゲーロの胃袋]
GMD0F		WORD	GMMD0F-GMMDDT	;[ＢＧ３マスク]
GMD10		WORD	GMMD10-GMMDDT	;[雪だんだんやむコース]
;
DMD01		WORD	DMMD01-GMMDDT	;[ミュージカル]
;
BTMPM		WORD	BTMPMD-GMMDDT	;[bitmap( 256 color )]
;
HMAPMOD		WORD	HMAPMODE-GMMDDT ;[横スクロールマップ]
;
BONUS_1		WORD	BONUSMOD-GMMDDT ;[ボーナスステージ]
;
MP00		EQU	MPD00-GMMDIN
GM00		EQU	GMD00-GMMDIN
GM01		EQU	GMD01-GMMDIN
GM02		EQU	GMD02-GMMDIN
GM03		EQU	GMD03-GMMDIN
GM04		EQU	GMD04-GMMDIN
GM05		EQU	GMD05-GMMDIN
GM06		EQU	GMD06-GMMDIN
GM07		EQU	GMD07-GMMDIN
GM08		EQU	GMD08-GMMDIN
GM09		EQU	GMD09-GMMDIN
GM0A		EQU	GMD0A-GMMDIN
GM0B		EQU	GMD0B-GMMDIN
GM0C		EQU	GMD0C-GMMDIN
GM0D		EQU	GMD0D-GMMDIN
GM0E		EQU	GMD0E-GMMDIN
GM0F		EQU	GMD0F-GMMDIN
GM10		EQU	GMD10-GMMDIN
;
DM01		EQU	DMD01-GMMDIN
;
BTMP		EQU	BTMPM-GMMDIN
;
HMPMD		EQU	HMAPMOD-GMMDIN
;
BONUS1		EQU	BONUS_1-GMMDIN
;
;
PPUREG		EQU	$	;[21??H]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
		BYTE	05H,	  07H,	    08H,      09H,	0BH,	  0CH,	    23H,      24H
		BYTE	25H,	  2CH,	    2DH,      2EH,	2FH,	  30H,	    31H
;
GMMDDT		EQU	$
;
;------------------------------------------------------------------------
;-		マップ							-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
MPMD00		BYTE	006H,	  000H,	    00AH,     00011101B,0
		BYTE	00010000B,03CH,	    03CH,     03CH,	00100010B,00100010B,00110010B,00000000B
		BYTE	00000000B,00010011B,00000000B,00000000B,00000000B,00000000B,00111111B
;
;------------------------------------------------------------------------
;-		汎用タイプ						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD00		BYTE	000H,	  000H,	    016H,     00111101B,0
		BYTE	00000001B,070H,	    074H,     078H,	00000000B,00000110B,00000000B,00000000B
		BYTE	00000000B,00010011B,00000000B,00000000B,00000000B,00000000B,00000000B
;
;------------------------------------------------------------------------
;-		地下、雪コースなど（基本タイプ）			-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD01		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010111B,00000000B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		モグラＢＧ３マスクコース				-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD02		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010100B,00000011B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		水中コース						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD03		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010011B,00000100B,00000000B,00000000B,00100010B,10110011B
;
;------------------------------------------------------------------------
;-		溶岩コース						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD04		BYTE	004H,	  000H,	    016H,     00111101B,1
		BYTE	00100010B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010001B,00000010B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		バブルコース						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD05		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010011B,00010100B,00000000B,00000000B,00100010B,01110010B
;
;------------------------------------------------------------------------
;-		カベコース						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD06		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010101B,00000010B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		森のこもれびコース					-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD07		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
;;;;K;;;;		BYTE	00000000B,00010111B,00000100B,00000000B,00000000B,00100010B,00100010B
		BYTE	00000000B,00010101B,00000010B,00000000B,00000000B,00100010B,00100100B
;
;------------------------------------------------------------------------
;-		穴ジュゲム、アホー鳥ＢＧ３コース			-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD08		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010001B,00000110B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		雪降りコース						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD09		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010011B,00000000B,00000000B,00000000B,00100010B,00100000B
;
;
;------------------------------------------------------------------------
;-		ボス　モード７用					-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD0A		BYTE	00AH,	  000H,	    016H,     00111101B,1
		BYTE	00000111B,000H,	    000H,     000H,	00000000B,00000000B,00000000B,00000000B
		BYTE	00000000B,00010001B,00000100B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		モード０  ダブル テレサ用				-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
GMMD0B		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	00000000B,069H,	    028H,     030H,	01110111B,01110111B,00000000B,00000000B
		BYTE	00000000B,00011111B,00000000B,00000000B,00000000B,00000010B,00100000B
;
;------------------------------------------------------------------------
;-		ドカン							-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD0C		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010001B,00000110B,00000000B,00000000B,00100010B,00100000B
;
;
;------------------------------------------------------------------------
;-		ＢＧ２敵						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD0D		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010101B,00000000B,00000000B,00000000B,00100010B,00100000B
;
;------------------------------------------------------------------------
;-		ＢＧ２敵ゲロゲーロの胃袋				-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD0E		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01011001B,03AH,	    069H,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00000101B,00010010B,00000000B,00000000B,00100010B,01000101B
;
;------------------------------------------------------------------------
;-		ＢＧ３マスク						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD0F		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00010011B,00000100B,00000000B,00000000B,00100010B,10110011B
;
;------------------------------------------------------------------------
;-		雪だんだんやむコース					-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
GMMD10		BYTE	002H,	  000H,	    016H,     00111101B,1
		BYTE	01101001B,069H,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	00000000B,00000100B,00010011B,00000000B,00000000B,00100010B,00100100B
;
;
;------------------------------------------------------------------------
;-		ミュージカル						-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
DMMD01		BYTE	008H,	  002H,	    016H,     00111101B,1
		BYTE	00001001B,061H,	    069H,     074H,	00000000B,01110111B,00000000B,00110000B
		BYTE	00000000B,00010101B,00000010B,00001010B,00000010B,00000010B,00100000B
;
;
;
;
;------------------------------------------------------------------------
;-		横スクロールマップ					-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
HMAPMODE	BYTE	00CH,	  000H,	    016H,     00011101B,0
		BYTE	001H,	  01CH,	    01CH,     015H,	00100010B,00000001B,00110010B,00000000B
		BYTE	10000000B,00010111B,00000000B,00000000B,00000000B,00010000B,00000000B
;
;
;
;
;------------------------------------------------------------------------
;-		ボーナスステージ（１）					-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
BONUSMOD	BYTE	00EH,	  006H,	    016H,     00111101B,1
		BYTE	01000001B,06AH,	    03AH,     034H,	01110111B,00000010B,00000000B,00000000B
		BYTE	10100000B,00010111B,00000000B,00010000B,00000000B,00100000B,10010100B
;
;
;
;
;
;------------------------------------------------------------------------
;-		エンディング２５６カラービットマップテスト		-
;------------------------------------------------------------------------
;			[NMITYP]  [IRQTYP]  [CIPSCB]  [CIPSCR]	[nuki change]
;			[BGMODE]  [BG1SCF]  [BG2SCF]  [BG3SCF]	[BG12CH]  [BG34CH]  [WIND23]  [WIND24]
;			[WIND25]  [MANSEL]  [SUBSEL]  [WMANSL]	[WSUBSL]  [WIND30]  [SUBADF]
;
BTMPMD		BYTE	008H,	  004H,	    007H,     00011011B,0
		BYTE	00000011B,050H,	    05CH,     000H,	01010000B,00000000B,00000000B,00000000B
		BYTE	00000000B,00010011B,00000000B,00000000B,00000000B,00000000B,00000000B
;
;
;
;
		MEM8
		IDX8
;
GMMDST		EQU	$
		PHB			;(DBR) save
		PHK			;(DBR) <-- (PBR)
		PLB
;
		I16
;
		LDY	!GMMDIN,X	;(Y) <-- game mode data pointer
;
;-------------- game mode RAM set ---------------------------------------
		LDA	!GMMDDT,Y	;NMI type no. set
		STA	NMITYP
		LDA	!GMMDDT+1,Y	;IRQ type no. set
		STA	IRQTYP
		LDA	!GMMDDT+2,Y	;chip screen base set
		STA	CIPSCB
		LDA	!GMMDDT+3,Y	;     "      size mode set
		STA	CIPSCR
		LDA	!GMMDDT+4,Y
		BEQ	GMDS000		;nuki color change ? ( no:GMDS000 )
;
;-------------- nuki color change -------------------------------
;
		M16
;
		LDA	>DATACOL
		STA	NUKCOL
		STA	>DATACOL+(10H*2)	;nuki color back_up
		STA	>MOTOCOL+(10H*2)
		LDA	#00
		STA	>DATACOL
		STA	>MOTOCOL
;
		M8
;
GMDS000		EQU	$
		LDX	#00
GMDS010		EQU	$
		LDA	!GMMDDT+5,Y
		STA	GMMDRM,X
		INY
		INX
		CPX	#GMMDNO
		BCC	GMDS010
;
		STZ	HD420C		;H-DMA "OFF"
		STZ	210AH
;
;-------------- PPU Reg. set --------------------------------------------
		LDY	#2100H		;(WK0,1) <-- PPU Reg. address
		STY	<WORK
;
		I8
;
		LDX	#GMMDNO-1
GMDS020		EQU	$
		LDY	!PPUREG,X
		LDA	GMMDRM,X
		STA	(<WORK),Y
		DEX
		BPL	GMDS020
;
		M16
;
		STZ	WLOGIC		;window logic set
		STZ	212AH
;
		M8
;
		LDA	#00000010B	;OBJ intial set
		STA	OBJSEL
		STA	2101H
		STZ	2133H		;display intial set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		割り算データセット					*
;*									*
;************************************************************************
DIVDTST		EQU	$
;
		MI16			; memory 16bit mode !!
;
		PHB
		LDY	#DIVBUF
		LDX	#DIVDAT
		LDA	#0200H*2-1
		MVN	#BANK DIVDAT,#BANK DIVBUF
		PLB
;
		MI8			; memory 8bit mode !!
;
		RTL
;
;************************************************************************
;*									*
;*		メモリ転送バッファセット				*
;*									*
;*			呼出し方法：					*
;*					JSL	>M_DMA_BFST		*
;*					LWORD	(転送先アドレス)	*
;*					LWORD	(転送元アドレス)	*
;*					WORD	(転送バイト数)		*
;*									*
;*			注） ＤＢＲは呼出し側のバンクであること。	*
;*									*
;************************************************************************
;
M_DMA_BFST	EQU	$
		PHP			;(P) save
;
		MI16
;
		LDX	M_DMA_BUF	;(X) <-- メモリ転送バッファポインター
		LDA	<2,S		;(Y) <-- パラメータアドレス
		TAY
		LDA	7,Y		;転送バイト数セット
		STA	M_DMA_BUF+2,X
		LDA	1,Y		;転送先、元アドレスセット
		STA	M_DMA_BUF+4,X
		LDA	3,Y
		STA	M_DMA_BUF+6,X
		LDA	5,Y
		STA	M_DMA_BUF+8,X
		LDA	#00
		STA	M_DMA_BUF+10,X	;終了コードセット
		TXA
		CLC
		ADC	#8
		STA	M_DMA_BUF
		TYA
		CLC
		ADC	#8
		STA	<2,S
;
		PLP			;(P) load
		RTL
;
;************************************************************************
;*									*
;*		メモリ転送バッファセット（転送バイト数可変）		*
;*									*
;*			呼出し方法：   （Ａ）← 転送バイト数		*
;*					JSL	>M_DMA_BFST		*
;*					LWORD	(転送先アドレス)	*
;*					LWORD	(転送元アドレス)	*
;*									*
;*			注） ＤＢＲは呼出し側のバンクであること。	*
;*									*
;************************************************************************
;
		MEM16
;
M_DMA_BFST_N	EQU	$
		PHP			;(P) save
;
		I16
;
		LDX	M_DMA_BUF	;(X) <-- メモリ転送バッファポインター
		STA	M_DMA_BUF+2,X	;転送バイト数セット
		LDA	<2,S		;(Y) <-- パラメータアドレス
		TAY
		LDA	1,Y		;転送先、元アドレスセット
		STA	M_DMA_BUF+4,X
		LDA	3,Y
		STA	M_DMA_BUF+6,X
		LDA	5,Y
		STA	M_DMA_BUF+8,X
		LDA	#00
		STA	M_DMA_BUF+10,X	;終了コードセット
		TXA
		CLC
		ADC	#8
		STA	M_DMA_BUF
		TYA
		CLC
		ADC	#6
		STA	<2,S
;
		PLP			;(P) load
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸセット（Ｌ，Ｈ）				*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送元アドレス（Ｌ，Ｈ）*
;*			       （ＷＫ１、２）←	      ”      （Ｂ）	*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#10000000B+(00000001B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#18H
		STA	4,X		;B bus address set
		LDA	WORK1-1
		STA	6,X		;A bus address(B) set
		PLA
		STA	5,X		;      "      (L,H) set
		TXA
		CLC
		ADC	#12
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸ固定データセット（Ｌ，Ｈ）			*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送データ		*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_C_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX			;set data save
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#10000000B+(00001001B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#18H
		STA	4,X		;B bus address set
		LDA	#VRAMDX/100H
		STA	6,X		;A bus address(B) set
		TXA
		CLC
		ADC	#12
		STA	5,X		;A bus address(L,H) set
		TXA
		CLC
		ADC	#13
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
		PLA
		STA	12,X		;set data set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸセット（Ｌ）				*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送元アドレス（Ｌ，Ｈ）*
;*			       （ＷＫ１、２）←	      ”      （Ｂ）	*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_L_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#00000000B+(00000000B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#18H
		STA	4,X		;B bus address set
		LDA	WORK1-1
		STA	6,X		;A bus address(B) set
		PLA
		STA	5,X		;      "      (L,H) set
		TXA
		CLC
		ADC	#12
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸ固定データセット（Ｌ）			*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送データ		*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_L_C_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX			;set data save
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#00000000B+(00001000B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#18H
		STA	4,X		;B bus address set
		LDA	#VRAMDX/100H
		STA	6,X		;A bus address(B) set
		TXA
		CLC
		ADC	#12
		STA	5,X		;A bus address(L,H) set
		TXA
		CLC
		ADC	#13
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
		PLA
		STA	12,X		;set data set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸセット（Ｈ）				*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送元アドレス（Ｌ，Ｈ）*
;*			       （ＷＫ１、２）←	      ”      （Ｂ）	*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_H_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#10000000B+(00000000B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#19H
		STA	4,X		;B bus address set
		LDA	WORK1-1
		STA	6,X		;A bus address(B) set
		PLA
		STA	5,X		;      "      (L,H) set
		TXA
		CLC
		ADC	#12
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
;
		PLB
		RTL
;
;************************************************************************
;*									*
;*		ＶＲＡＭＤＸ固定データセット（Ｈ）			*
;*									*
;*			呼出し方法：					*
;*			       （Ｙ）	     ← ＶＲＡＭアドレス	*
;*			       （Ａ）	     ← 転送バイト数		*
;*			       （Ｘ）	     ← 転送データ		*
;*									*
;************************************************************************
;
		MEM16
		IDX16
;
VRAMDX_H_C_ST	EQU	$
		PHB			;(DBR) save
		PEA	VRAMDX/100H	;(DBR) <-- VRAMDX(B)
		PLB
		PLB
;
		PHX			;set data save
;
		LDX	VRAMDX		;(X) <-- VRAMDX set pointer
		STA	8,X		;number of byte set
		TYA
		STA	0,X		;VRAM address set
		LDA	#10000000B+(00001000B*100H)
		STA	2,X		;VRAM address inc mode & DMA parameter set
		LDA	#19H
		STA	4,X		;B bus address set
		LDA	#VRAMDX/100H
		STA	6,X		;A bus address(B) set
		TXA
		CLC
		ADC	#12
		STA	5,X		;A bus address(L,H) set
		TXA
		CLC
		ADC	#13
		STA	10,X		;next data address set
		STA	VRAMDX		;end address set
		PLA
		STA	12,X		;set data set
;
		PLB
		RTL
;
		MEM8
		IDX8
;
;
;
;
;
		END
