;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: enemy sub.1					*
;*	file name	: ys_koopa					*
;*									*
;************************************************************************
;
;
		SALL
;
		include		ys_header.inc
		include		ys_unit.h
		include		ys_pld.h
		include		ys_color.h
		include		ys_presno.h
		include		ys_ename.h
		include		../union/ys_bgcheck.h
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	KOOPAIN,KAMC3IN,FWAVEIN,KPBLKIN
		GLB	KPBKGIN,KPBOMIN,KPFIRIN,KPEXBIN
;
		GLB	KOOPAMV,KAMC3MV,FWAVEMV,KPBLKMV
		GLB	KPBKGMV,KPBOMMV,KPFIRMV,KPEXBMV
;
		GLB	KOOPANS
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< sy_main >------------------------------------------------
		EXT	BLNKON,SOUND_TR_2
		EXT	D_00,GMIN
		EXT	SOUND_3_ON
;
		EXT	DMIN
;
;-------------< sy_rpro >------------------------------------------------
		EXT	JSRSUB
		EXT	CHIPON
		EXT	CHIPON_RAM_READ
;
;-------------< sy_play >------------------------------------------------
		EXT	EBSTAT
		EXT	PFAL,PSTP,PMOV
		EXT	PFLP,PSHT,PDEM,PRET,PEND
		EXT	PUSHTM,PUSHPT
;
;-------------< sy_bgsc >------------------------------------------------
		EXT	BGCG,TGTM,KPCL
		EXT	UNITCHG
;
;-------------< sy_enmy >------------------------------------------------
		EXT	ENEMY,ENINSB
		EXT	ENMOVE,ENCLEAR,ENCLEAR_NORETN,DISPCK0,DISPCK1,DISPCK2,DISPCK3
		EXT	ENINSR,ENINSR_I,ENINSR2,ENINSR2_I,EEXCHK,EEYCHK,EEXYCK,ESTATST
		EXT	PLFLST_2
		EXT	SCOREST
		EXT	ENMDCK,XSDOWN,EPCRCK,MUKEOR,XSPEOR,MKEOR2,PLFLST
		EXT	EGGSET,EGG_SP_CHECK,EGG_OPTION,EGGKILL_ALL
		EXT	SHOT_EN_KILL,SHOT_EN_KILL_S
		EXT	EXIST_CHECK,EXIST_CHECK_S,NON_EXIST_SET,NON_EXIST_SET2
		EXT	ENDEATH_SET,EGG_PLCROSS
;
		EXT	PL_1UP_SET,PL_3UP_SET,PL_UP_SET,BEAT_P_SET
;
		EXT	EINIT,EFAIL,ECHNG,EMOVE,EEATM,ENOSE,EBABL,EFALL
;
		EXT	EATMXS,NOSWT
;
		EXT	ENFAIL0
;
		EXT	EN_XYMOVE,EN_XYMOVE2,EN_TIMER
		EXT	TIMKN_CHANGE
;
		EXT	FSMK0_SET2,FSMK0_SET3
;
		EXT	TROBJ_SR_2x2,TROBJ_SR_4x4,TROBJ_SR_8x8,TROBJ_SR_8x4
		EXT	TROBJ_SR_2x2_CL,TROBJ_SR_4x4_CL,TROBJ_SR_8x8_CL
		EXT	TROBJ_SR_8x4_CL
		EXT	TROBJ_OAM_8x4
		EXT	TROBJ_OAM_2x2,TROBJ_OAM_4x4,TROBJ_OAM_8x8,TROBJ_OAM_8H8
		EXT	TROBJ_OAM_2x2_I,TROBJ_OAM_4x4_I,TROBJ_OAM_8x8_I
		EXT	TROBJ_CLEAR,TROBJ_CANCEL
		EXT	TROBJ_PLOT_X,TROBJ_PLOT_Y
;
;-------------< ys_enmy3 >------------------------------------------------
		EXT	BSCLW_SET_PLSET,BOSS_EN_CHANGE,TO_PLDEMO
		EXT	QAROW_SET_CK_2,MID_POINT_SAVE
		EXT	MID_POINT_SAVE
;
;-------------< sy_enmy5 >------------------------------------------------
		EXT	CURTAIN_SET
;
;-------------< ys_enmy8 >------------------------------------------------
		EXT	BGBR0_SET
;
;-------------< sy_hajime-chan >------------------------------------------------
		EXT	BABYM_MOVE2
;
;-------------< sy_exst >------------------------------------------------
		EXT	EXINSR
;
		EXT	KPSMK_P
;
;-------------< sy_init >------------------------------------------------
		EXT	M_DMA_BFST,UNCOMPRES,UNCOMPRES_X,VRAMDX_H_ST,VRAMDX_ST
		EXT	VRAMDX_L_C_ST
		EXT	VRAMDX_L_ST
;
;-------------< ys_char >-------------------------------------------------
		EXT	ADDSTART
;
;-------------< ys_msgdt >-------------------------------------------------
		EXT	BS6_MSG,BS6_MSG_1,BS6_MSG_2,BS6_MSG_3
;
;-------------< ys_game >--------------------------------------------------
		EXT	HDMAP5,HDMAPD5,HDMAP6,HDMAPD6
		EXT	HDMAPD5_NO
;
;-------------< ys_save >--------------------------------------------------
		EXT	SVDTSV
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
BABY_INDEX	EQU	00H
;
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
		EXTEND
;
		MEM16
		IDX8
;
		DPAGE	EN0RAM
;
Group_D		GROUP	Koopa_pro
Koopa_pro	SECT	REL
;
;************************************************************************
;*		initial ( クッパ )					*
;************************************************************************
KOOPAIN		EQU	$			;-- koopain --
		RTL
;
;************************************************************************
;*		move	( クッパ )					*
;************************************************************************
;		ENWRK0
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4
;		ENWRK6	キャラパターンスタートインデックス
;		ENWRK8	キャラパターンエンドインデックス
;		ENWRKA	シーケンス繰り返し回数
;		ENWRKC	キャラパターンスタートインデックス
;
;		ENTIM0	ストップタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2
;		ENTIM3	プレイヤーチェックロックタイマー
;
;		KOOPADEMO	デモフラグ
;		KOOPAIDX	ROUTINEINDEX
;		KPLDWCNT	ルックダウンカウンター
;		KOOPADMG	ダメージカウンター
;		FWAVELK0	床波発生ロックフラグ（プレイヤー）
;		FWAVELK1	床波発生ロックフラグ（クッパ）
;
KOOPA_SUB	EQU	$
KOOPA_00	EQU	$
		WORD	KOOPA_SUB00
KOOPA_10	EQU	$
		WORD	KOOPA_SUB10		;ジャンプキャラセット
KOOPA_11	EQU	$
		WORD	KOOPA_SUB11		;ジャンプチェック＆空中回転
KOOPA_12	EQU	$
		WORD	KOOPA_SUB12		;着地チェック
KOOPA_20	EQU	$
		WORD	KOOPA_SUB20		;目ぱち
KOOPA_21	EQU	$
		WORD	KOOPA_SUB21		;立ち上がり１
KOOPA_22	EQU	$
		WORD	KOOPA_SUB22		;立ち上がり２
KOOPA_50	EQU	$
		WORD	KOOPA_SUB50		;ひしゃげる
KOOPA_51	EQU	$
		WORD	KOOPA_SUB51		;ひしゃげる（立ち上がる）
KOOPA_60	EQU	$
		WORD	KOOPA_SUB60		;バウンド（振り落とされ）
KOOPA_70	EQU	$
		WORD	KOOPA_SUB70		;回転（ダメージ）
KOOPA_71	EQU	$
		WORD	KOOPA_SUB71		;着地（ダメージ）
KOOPA_72	EQU	$
		WORD	KOOPA_SUB72		;起き上がり（ダメージ）
KOOPA_73	EQU	$
		WORD	KOOPA_SUB73		;立ち上がり（ダメージ）
KOOPA_80	EQU	$
		WORD	KOOPA_SUB80		;ハーフデモ（波床クリア待ち＆プレイヤーチェック＆カメック再セット）
KOOPA_81	EQU	$
		WORD	KOOPA_SUB81		;ハーフデモ（カメック退場チェック＆カラーフェード）
KOOPA_82	EQU	$
		WORD	KOOPA_SUB82		;ハーフデモ（起き上がる）
KOOPA_83	EQU	$
		WORD	KOOPA_SUB83		;ハーフデモ（カラー白に）
KOOPA_90	EQU	$
		WORD	KOOPA_SUB90		;オープニングデモ
KOOPA_91	EQU	$
		WORD	KOOPA_SUB91		;オープニングデモ（２回目以降プレイヤーチェック）
KOOPA_92	EQU	$
		WORD	KOOPA_SUB92		;オープニングデモ（２回目以降プレイヤーチェック２）
KOOPA_93	EQU	$
		WORD	KOOPA_SUB93		;オープニングデモ（２回目以降）
KOOPA_A0	EQU	$
		WORD	KOOPA_WINDOW		;大クッパウィンドウセット
KOOPA_A1	EQU	$
		WORD	KOOPA_CHRST		;大クッパキャラクターセット
KOOPA_A2	EQU	$
		WORD	KOOPA_SCRCL		;大クッパモード７スクリーンクリアー＆カラーセット＆ｅｔｃ
KOOPA_A3	EQU	$
		WORD	KOOPA_FADE		;大クッパフェードイン
;
KOOPA_A4	EQU	$
		WORD	KOOPA_START		;大クッパ登場
KOOPA_A5	WORD	KOOPA_BLOCK		;落下ブロックセット
		WORD	KOOPA_MOVE		;大クッパ処理
		WORD	KOOPA_FIRE		;ファイヤーショット
KOOPA_A6	WORD	KOOPA_FAIL		;ヤラレ処理
;
KOOPA_A7	WORD	KPCLR_CHRST		;大クッパクリアーデモキャラクターセット
		WORD	KOOPA_FADE		;大クッパフェードイン
;
KOOPA_B0	EQU	$
		WORD	KPCLR_MOVE0		;大クッパクリアーデモ
KOOPA_B1	EQU	$
		WORD	KPCLR_MOVE1		;大クッパクリアーデモ
KOOPA_B2	EQU	$
		WORD	KPCLR_MOVE2		;大クッパクリアーデモ
KOOPA_C0	EQU	$
		WORD	LUIGI_CHRST		;ルイージ救出デモキャラクターセット
		WORD	ENMSG_SET		;エンディングメッセージセット
		WORD	ENMSG_DISP		;エンディングメッセージ表示
;
;
KOOPA_RMODE00	EQU	(KOOPA_00-KOOPA_00)/2
KOOPA_RMODE10	EQU	(KOOPA_10-KOOPA_00)/2
KOOPA_RMODE11	EQU	(KOOPA_11-KOOPA_00)/2
KOOPA_RMODE12	EQU	(KOOPA_12-KOOPA_00)/2
KOOPA_RMODE20	EQU	(KOOPA_20-KOOPA_00)/2
KOOPA_RMODE21	EQU	(KOOPA_21-KOOPA_00)/2
KOOPA_RMODE22	EQU	(KOOPA_22-KOOPA_00)/2
KOOPA_RMODE50	EQU	(KOOPA_50-KOOPA_00)/2
KOOPA_RMODE51	EQU	(KOOPA_51-KOOPA_00)/2
KOOPA_RMODE60	EQU	(KOOPA_60-KOOPA_00)/2
KOOPA_RMODE70	EQU	(KOOPA_70-KOOPA_00)/2
KOOPA_RMODE71	EQU	(KOOPA_71-KOOPA_00)/2
KOOPA_RMODE72	EQU	(KOOPA_72-KOOPA_00)/2
KOOPA_RMODE73	EQU	(KOOPA_73-KOOPA_00)/2
KOOPA_RMODE80	EQU	(KOOPA_80-KOOPA_00)/2
KOOPA_RMODE81	EQU	(KOOPA_81-KOOPA_00)/2
KOOPA_RMODE82	EQU	(KOOPA_82-KOOPA_00)/2
KOOPA_RMODE83	EQU	(KOOPA_83-KOOPA_00)/2
KOOPA_RMODE90	EQU	(KOOPA_90-KOOPA_00)/2
KOOPA_RMODE91	EQU	(KOOPA_91-KOOPA_00)/2
KOOPA_RMODE92	EQU	(KOOPA_92-KOOPA_00)/2
KOOPA_RMODE93	EQU	(KOOPA_93-KOOPA_00)/2
KOOPA_RMODEA0	EQU	(KOOPA_A0-KOOPA_00)/2
KOOPA_RMODEA1	EQU	(KOOPA_A1-KOOPA_00)/2
KOOPA_RMODEA2	EQU	(KOOPA_A2-KOOPA_00)/2
KOOPA_RMODEA3	EQU	(KOOPA_A3-KOOPA_00)/2
KOOPA_RMODEA4	EQU	(KOOPA_A4-KOOPA_00)/2
KOOPA_RMODEA5	EQU	(KOOPA_A5-KOOPA_00)/2
KOOPA_RMODEA6	EQU	(KOOPA_A6-KOOPA_00)/2
KOOPA_RMODEA7	EQU	(KOOPA_A7-KOOPA_00)/2
KOOPA_RMODEB0	EQU	(KOOPA_B0-KOOPA_00)/2
KOOPA_RMODEB1	EQU	(KOOPA_B1-KOOPA_00)/2
KOOPA_RMODEB2	EQU	(KOOPA_B2-KOOPA_00)/2
KOOPA_RMODEC0	EQU	(KOOPA_C0-KOOPA_00)/2
;
KOOPAMV		EQU	$			;-- koopamv --
		LDY	<ENWRK2,X		;ルイージデモ中 ?
		CPY	#KOOPA_RMODEC0		;
		BPL	KOOPAMV0020		; yes: KOOPAMV0020
		CPY	#KOOPA_RMODEB0		;大クッパクリアデモ中 ?
		BPL	KOOPAMV0040		; yes: KOOPAMV0040
		CPY	#KOOPA_RMODEA0		;大クッパｍｏｖｅ ?
		BMI	KOOPAMV0040		;  no: KOOPAMV0040

KOOPAMV0020	EQU	$
		JMP	KOOPAMV2		; yes: KOOPAMV2

KOOPAMV0040	EQU	$
		JSR	KOOPA_OAM_SET

		LDY	<ENWRK2,X		;大クッパクリアデモ中 ?
		CPY	#KOOPA_RMODEB0		;
		BPL	KOOPAMV2		; yes: KOOPAMV2

		JSR	KOOPA_PLDOSN_CK

		LDY	<ENWRK2,X		;デモ中 ?
		CPY	#KOOPA_RMODE90		;
		BPL	KOOPAMV0100		; yes: KOOPAMV0100
;
;skip_0		 EQU	 $
;		 RTL
;
		CPY	#KOOPA_RMODE81		;カメックデモ中 ?
		BPL	KOOPAMV0080		; yes: KOOPAMV0080
;
		LDY	#022H			;モード２に
		CPY	BGMODE
		BEQ	KOOPAMV0060

		STY	BGMODE			;
		LDY	#004
		STY	NMITYP
		LDA	SCCV1
		ORA	#02000H
		STA	BG2OFV

KOOPAMV0060	EQU	$
		M_CHIP	KUPPA_DOSUN
		LDX	<ENINDX
		BRA	KOOPAMV0090
;
KOOPAMV0080	EQU	$
		LDY	#069H			;モード１に
		STY	BGMODE			;
		LDY	#002
		STY	NMITYP
		LDA	#00017H
		LDY	MSGMOD			;メッセージ出てる ?
		BNE	KOOPAMV0088		; yes: KOOPAMV0088

		LDA	#00413H

KOOPAMV0088	EQU	$
		STA	MANSEL

KOOPAMV0090	EQU	$
		JSL	>ENMDCK
		BRA	KOOPAMV0300

KOOPAMV0100	EQU	$
		LDA	ENSTFG
		ORA	BIRIBIRI
		ORA	ITEMNO
		BEQ	KOOPAMV0300

		JSL	>EN_XYMOVE2
		JSL	>EN_TIMER

KOOPAMV0300	EQU	$
		LDY	<ENWRK2,X
;		CPY	#KOOPA_RMODE80
		CPY	#KOOPA_RMODE70
		BPL	KOOPAMV0400

		JSR	KOOPA_PLCHK
		JSR	KOOPA_ENCHK
		BRA	KOOPAMV0400

KOOPAMV2	EQU	$
		LDA	#00010001B
		STA	OBJ_BG_FG
;
		JSL	>ENMDCK

KOOPAMV0400	EQU	$
		TXY
		LDA	<ENWRK2,X
		ASL	A
		TAX
		JSR	(KOOPA_SUB,X)

		RTL
;
KOOPA_OAM_SET	EQU	$
		LDA	ENOAML,X
		BMI	KOOPA_O_SET0800
		LDY	ENYUSN,X
		BMI	KOOPA_O_SET0800

		LDA	ENDSXL,X		;R1 <- ENDSXL
		STA	R1			;
		LDA	ENDSYL,X		;R2 <- ENDSYL
		STA	R2			;
		LDA	ENCHPT,X		;R3 <- キャラパターンナンバー
		STA	R3			;
		LDA	ENOAML,X		;R4 <- ＯＡＭセットアドレス
		STA	R4			;
		LDA	ENMUKI,X		;R8 <- キャラ向き
		STA	R8			;
		TXA				;R10 <- 敵のインデックス
		STA	R10			;
		LDA	#0000BH			;R12 <- キャラクターデータ数
		STA	R12			;
		LDA	#KOOPA_CHAR		;R14 <- ＯＡＭセットデータアドレス
		STA	R14			;
		LDA	#BANK KOOPA_CHAR	;R0 <- ＯＡＭセットデータアドレス
		STA	R0			;
		M_CHIP	M_OAMSET_SB
		LDX	<ENINDX

KOOPA_O_SET0800 EQU	$

		RTS
;
FWAVE_XREV	EQU	$
		WORD	00008H,0FFE8H
FWAVE_XSPD	EQU	$
		WORD	0FD00H,00300H
;
KOOPA_PLDOSN_CK EQU	$
		LDY	PLDOSN			;プレイヤーどすんした ?
		BEQ	KOOPA_PD_CK0800		;  no: KOOPA_PD_CK0800

		LDA	PLBGCR			;地面に着いてる ?
		AND	#0000000000000111B	;
		BEQ	KOOPA_PD_CK0800		;  no: KOOPA_PD_CK0800

		LDY	FWAVELK0		;床波発生させる ?
		BNE	KOOPA_PD_CK0900		;  no: KOOPA_PD_CK0900

		INC	FWAVELK0		;床波発生ロックフラグ（プレイヤー）セット

		STZ	<EWORKA			;敵チェックロックタイマーセット
		LDA	#00010H			;プレイヤーチェックロックタイマーセット
		STA	<EWORKC			;
		LDA	PCENTX
		STA	<EWORK2
		JSR	FWAVE_SET
		RTS

KOOPA_PD_CK0800 EQU	$
		STZ	FWAVELK0		;床波発生ロックフラグ（プレイヤー）クリア

KOOPA_PD_CK0900 EQU	$

		RTS
;
FWAVE_SET	EQU	$
		LDA	#00002
		STA	<EWORK0
		STZ	<EWORK6

		LDY	#000
FWAVE_SET0100	EQU	$
		STY	<EWORK6
		LDY	<EWORK0
		LDA	<EWORK2
		CLC
		ADC	!FWAVE_XREV,Y
		STA	<EWORK2
		LDA	!FWAVE_XSPD,Y
		STA	<EWORK4

		TXA
		SEC
		SBC	#00004
		TAY
		LDA	#FWAVE
		JSL	>ENINSR2_I
		BCC	FWAVE_SET0800

		LDA	<EWORK2
		STA	ENXPSL,Y
		LDA	#007B8H			;床の位置セット
		STA	ENYPSL,Y		;
		LDA	<EWORK4
		STA	ENXSPD,Y
		LDA	<EWORK0
		STA	ENMUKI,Y
		LDA	<EWORKA
		STA	ENTIM2,Y
		LDA	<EWORKC
		STA	ENTIM3,Y
		LDA	<EWORK6			;兄弟波の ROUTINE INDEX セット
		STA	ENWRK6,Y		;

		DEC	<EWORK0
		DEC	<EWORK0
		BPL	FWAVE_SET0100

		TYA				;兄弟波の ROUTINE INDEX セット
		LDY	<EWORK6			;
		STA	ENWRK6,Y		;

FWAVE_SET0800	EQU	$
KOOPA_PLCHK0000 EQU	$

		RTS
;
KOOPA_PLCHK	EQU	$
		LDA	ENTIM3,X		;プレイヤーチェックロック ?
		BNE	KOOPA_PLCHK0000		; yes: KOOPA_PLCHK0000

		LDY	ECRSFG,X		;プレイヤーと衝突した ?
		BPL	KOOPA_PLCHK0000		;  no: KOOPA_PLCHK0000

		LDA	EPWIDY,X		;プレイヤー上から衝突してきた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF8H			;
		BCC	KOOPA_PLCHK1000		;  no: KOOPA_PLCHK1000
						;
		LDY	PLYSPD+1		;プレイヤーに踏まれた ?
		BMI	KOOPA_PLCHK0000		;
		LDY	PLJUMP			;
		BEQ	KOOPA_PLCHK0000		;  no: KOOPA_PLCHK0000

		STZ	PLDOSN
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#0F931H
		STA	PLYSPD
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#0FA00H
		STA	PLYSPD
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#P006
		STA	PLJUMP

		LDA	#0001CH			;［Ｓ］
		JSL	>SOUND_3_ON

		LDY	<ENWRK2,X		;踏まれない ?
		CPY	#KOOPA_RMODE70		;
		BPL	KOOPA_PLCHK0000		; yes: KOOPA_PLCHK0000

		STZ	ENXSPD,X
		STZ	ENYSPD,X
		LDA	#0002EH
		STA	ENCHPT,X
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00006H
		STA	ENTIM1,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00008H
		STA	ENTIM1,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#K_PRESS_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_PRESS_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		LDY	#KOOPA_RMODE50
		STY	<ENWRK2,X

		RTS

KOOPA_PLCHK1000 EQU	$
		LDY	<ENWRK2,X		;どすん中 ?
		CPY	#KOOPA_RMODE12		;
		BEQ	KOOPA_PLCHK1100		; yes: KOOPA_PLCHK1100

		JSL	>PLFLST
		RTS

KOOPA_PLCHK1100 EQU	$
		LDA	BABYNO			;赤ちゃん乗ってる ?
		BPL	KOOPA_PLCHK1500		;  no: KOOPA_PLCHK1500

		JSL	>BABYM_MOVE2
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00033H			;プレイヤーチェックロックタイマーセット
		STA	ENTIM3+BABY_INDEX	;
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00040H			;プレイヤーチェックロックタイマーセット
		STA	ENTIM3+BABY_INDEX	;
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

KOOPA_PLCHK1500 EQU	$
		LDA	#ENOSE
		STA	ENMODE,X
		TXA
		STA	NOSEIDX

		STZ	KPLDWCNT		;ルックダウンカウンタークリア
		STZ	<ENWRK0,X		;ふりふりカウンタークリア

		LDA	#08000H			;敵のせ情報フラグセット
		STA	ENMYNSFG

		LDA	#0FFFFH			;ほかのもんはプレイヤーに乗れなくする
		STA	ONENFG			;

		LDA	#00020H			;赤ちゃんアイテムフラグクリアタイマーセット
		STA	BABYITCLR		;

		LDA	#0008BH			;［Ｓ］
		JSL	>SOUND_3_ON		;

KOOPA_ENCHK0000 EQU	$

		RTS
;
KOOPA_ENCHK	EQU	$
		LDY	ECRSFG,X
		DEY
		BMI	KOOPA_ENCHK0000

		LDA	ENMODE,Y
		CMP	#EMOVE
		BNE	KOOPA_ENCHK0000
		LDA	ENSHOT,Y
		BEQ	KOOPA_ENCHK0000

		LDA	ENXSPD,Y
		STA	<EWORK0
		TYX
		JSL	>SHOT_EN_KILL

		LDY	<ENWRK2,X		;ショットした物あたらない ?
		CPY	#KOOPA_RMODE50		;
		BPL	KOOPA_ENCHK0000		; yes: KOOPA_ENCHK0000

 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00091H
		LDY	<EWORK0+1
		BPL	KOOPA_ENCHK0300

		LDA	#-00091H

KOOPA_ENCHK0300 EQU	$
		STA	ENXSPD,X
		STA	ENXMAX,X
		LDA	#00050H
		STA	ENGPOW,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00080H
		LDY	<EWORK0+1
		BPL	KOOPA_ENCHK0300

		LDA	#0FF80H

KOOPA_ENCHK0300 EQU	$
		STA	ENXSPD,X
		STA	ENXMAX,X
		LDA	#00040H
		STA	ENGPOW,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

KOOPA_BOUND	EQU	$
		STZ	<ENCONT,X		;リバウンドカウンタークリア
		LDA	#00026H
		STA	ENCHPT,X
		STZ	ENTIM1,X

KOOPA_REBOUND	EQU	$
		LDA	#K_DMG0_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_DMG0_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		LDY	#KOOPA_RMODE60
		STY	<ENWRK2,X

		RTS
;
KOOPA_SUB00	EQU	$
		TYX

		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X

		LDA	ENTIM1,X
		BNE	KOOPA_SUB00800

		INC	<ENWRK2,X

KOOPA_JUMP_INIT EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	EPWIDX,X
		STA	R0
		LDA	#-00883H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		STA	ENXSPD,X
		LDA	#0F6ECH
		STA	ENYSPD,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	EPWIDX,X
		STA	R0
		LDA	#-00780H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		STA	ENXSPD,X
		LDA	#0F800H
		STA	ENYSPD,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#K_JUMP_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_JUMP_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;

KOOPA_SUB00800	EQU	$

		RTS
;
KOOPA_SUB10	EQU	$
		JSR	K_CHPT_SET		;ジャンプポーズ終わり ?
		BCC	KOOPA_SUB10800		;  no: KOOPA_SUB10800

		LDA	#K_ROLL_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_ROLL_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

KOOPA_SUB10800	EQU	$

		RTS
;
KOOPA_SUB11	EQU	$
		TYX

		LDY	ENYSPD+1,X		;上昇中 ?
		BMI	KOOPA_SUB11800		; yes: KOOPA_SUB11800

		LDY	ENGPOW,X
		BEQ	KOOPA_SUB11300

		LDA	#0008BH			;［Ｓ］
		JSL	>SOUND_3_ON

KOOPA_SUB11300	EQU	$
		STZ	ENYSPD,X
		STZ	ENGPOW,X
		STZ	ENXSPD,X

		TXY
		JSR	K_CHPT_SET		;空中回転終わり ?
		BCC	KOOPA_SUB11800		;  no: KOOPA_SUB11800

		STZ	FWAVELK1
		LDA	#00800H
		STA	ENYSPD,X
		STZ	ENGPOW,X
		LDA	#K_DOSUN2_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_DOSUN2_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

KOOPA_SUB11800	EQU	$

		RTS
;
KOOPA_SUB12	EQU	$
		TYX

		LDA	ENCBFG,X		;着地した ?
		AND	#00001			;
		BNE	KOOPA_SUB12300		; yes: KOOPA_SUB12300

		LDA	FRCNT2
		AND	#00003
		BNE	KOOPA_SUB12200

		LDA	#DUST0
		JSL	>EXINSR
		LDA	<RANDM0
		AND	#0000FH
		SEC
		SBC	#00007H
		CLC
		ADC	ENXPSL,X
		STA	EXXPSL,Y
		LDA	ENYPSL,X
		STA	EXYPSL,Y
		LDA	#00004
		STA	EXWRK0,Y
		LDA	#00006
		STA	EXTIM0,Y

KOOPA_SUB12200	EQU	$

		RTS

KOOPA_SUB12300	EQU	$
		LDY	FWAVELK1		;初めて地面に着いた ?
		BNE	KOOPA_SUB12500		;  no: KOOPA_SUB12500

		INC	FWAVELK1
		LDA	#00040H
		STA	TILTCT

		LDA	#DOSN0
		JSL	>EXINSR
		LDA	ENXPSL,X
		STA	EXXPSL,Y
		LDA	ENYPSL,X
		STA	EXYPSL,Y
		LDA	#00002H
		STA	EXTIM0,Y
		LDA	#0000BH
		STA	EXWRK0,Y

		LDA	#00010H			;敵チェックロックタイマーセット
		STA	<EWORKA			;
		STZ	<EWORKC			;プレイヤーチェックロックタイマーセット
		LDA	ECENTX,X
		STA	<EWORK2
		JSR	FWAVE_SET

KOOPA_SUB12500	EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00050H
		STA	ENGPOW,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00040H
		STA	ENGPOW,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		TXY
		JSR	K_CHPT_SET		;どすん終わり ?
		BCC	KOOPA_SUB12800		;  no: KOOPA_SUB12800
;;;;;;;;		BCS	KOOPA_COMEBACK		; yes: KOOPA_COMEBACK
;;;;;;;;
;;;;;;;;		LDY	ENCHPT,X
;;;;;;;;		BNE	KOOPA_SUB12800

;		JSR	 KOOPA_FWAVE_CHK	 ;床波近づいてる ?
;		BCC	 KOOPA_SUB12800		 ;  no: KOOPA_SUB12800

KOOPA_COMEBACK	EQU	$
;		LDA	#00010H
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00003H
		STA	ENTIM1,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00004H
		STA	ENTIM1,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#K_MPATI0_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_MPATI0_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		LDY	#KOOPA_RMODE20
		STY	<ENWRK2,X

KOOPA_SUB12800	EQU	$

		RTS
;
KOOPA_SUB20	EQU	$
		JSR	K_CHPT_SET		;目ぱち終わり ?
		BCS	KOOPA_SUB20500		; yes: KOOPA_SUB20500

		JSR	KOOPA_FWAVE_CHK		;床波が迫ってる ?
		BCC	KOOPA_SUB20800		;  no: KOOPA_SUB20800

KOOPA_SUB20500	EQU	$
		LDA	#K_STAND0_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_STAND0_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

KOOPA_SUB20800	EQU	$

		RTS
;
KOOPA_FWAVE_CHK EQU	$
		LDY	PLDOSN			;プレイヤーどすん中 ?
		BEQ	KOOPA_F_CHK0500		;  no: KOOPA_F_CHK0500

		LDA	PLBGCR			;プレイヤー着地してる ?
		AND	#0000000000000111B	;
		BNE	KOOPA_F_CHK0500		; yes: KOOPA_F_CHK0500

		LDA	EPWIDX,X		;プレイヤー近くにいる ?
		CLC				;
		ADC	#00038H			;
		CMP	#00070H			;
		BCC	KOOPA_F_CHK0700		; yes: KOOPA_F_CHK0700

KOOPA_F_CHK0500 EQU	$
		TXA				;床波いる ?
		STA	R1			;
		LDA	#FWAVE			;
		STA	R14			;
		M_CHIP	TARGET_SEARCH		;
		LDX	<ENINDX			;
		LDY	R1			;
		BMI	KOOPA_F_CHK0800		;  no: KOOPA_F_CHK0800

		LDA	ECENTX,Y		;近くにいる ?
		SEC				;
		SBC	ECENTX,X		;
		STA	<EWORK0			;
		CLC				;
		ADC	#00038H			;
		CMP	#00070H			;
		BCS	KOOPA_F_CHK0800		;  no: KOOPA_F_CHK0800

		LDA	ENXSPD,Y		;近づいてきてる ?
		EOR	<EWORK0			;
		BPL	KOOPA_F_CHK0800		;  no: KOOPA_F_CHK0800

KOOPA_F_CHK0700 EQU	$
		SEC
		RTS

KOOPA_F_CHK0800 EQU	$
		CLC
		RTS
;
KOOPA_SUB21	EQU	$
		JSR	K_CHPT_SET		;立ち上がるパターン終わり ?
		BCS	KOOPA_SUB21500		; yes: KOOPA_SUB21500

		LDY	ENCHPT,X
		CPY	#009
		BNE	KOOPA_SUB21800

		JSR	KOOPA_FWAVE_CHK		;床波近づいてる ?
		BCC	KOOPA_SUB21800		;  no: KOOPA_SUB21800

;;;;;;;;		LDY	ENCHPT,X
;;;;;;;;		CPY	#009
;;;;;;;;		BNE	KOOPA_SUB21A00
		BRA	KOOPA_SUB21A00

KOOPA_SUB21500	EQU	$
		LDA	#0FC00H
		STA	ENYSPD,X
		LDA	#K_STAND1_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_STAND1_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

KOOPA_SUB21800	EQU	$

		RTS
;
KOOPA_SUB22	EQU	$
		TYX

		LDA	ENCBFG,X		;地面に着いた ?
		AND	#00001			;
		BEQ	KOOPA_SUB22800		;  no: KOOPA_SUB22800

		JSR	K_CHPT_SET		;立ち上がるパターン終わり ?
		BCS	KOOPA_SUB22500		; yes: KOOPA_SUB22500

		LDY	ENCHPT,X
		CPY	#00CH
		BNE	KOOPA_SUB22800

		JSR	KOOPA_FWAVE_CHK		;床波近づいてる ?
		BCC	KOOPA_SUB22800		;  no: KOOPA_SUB22800

;;;;;;;;		LDY	ENCHPT,X
;;;;;;;;		CPY	#00CH
;;;;;;;;		BEQ	KOOPA_SUB22500

KOOPA_SUB21A00	EQU	 $
		LDA	 #00001
		STA	 ENTIM1,X
		RTS

KOOPA_SUB22500	EQU	$
		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X
		LDA	#00002H
		STA	ENTIM1,X
		STZ	<ENWRK2,X

KOOPA_SUB22800	EQU	$
KOOPA_SUB50000	EQU	$
KOOPA_SUB60000	EQU	$

		RTS
;
KOOPA_SUB50	EQU	$
		TYX

		LDA	ENCBFG,X		;着地 ?
		AND	#00001			;
		BEQ	KOOPA_SUB50000		;  no: KOOPA_SUB50000

		JSR	K_CHPT_SET		;ひしゃげ終わった ?
;;;;;;;;		BCC	KOOPA_SUB50000		;  no: KOOPA_SUB50000
		BCS	KOOPA_SUB50800		; yes: KOOPA_SUB50800

		LDY	ENCHPT,X
		BNE	KOOPA_SUB50000

 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDY	ENTIM1,X
		CPY	#00CH
		BPL	KOOPA_SUB50000
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDY	ENTIM1,X
		CPY	#010H
		BPL	KOOPA_SUB50000
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		JSR	KOOPA_FWAVE_CHK		;床波近づいてる ?
		BCC	KOOPA_SUB50000		;  no: KOOPA_SUB50000

KOOPA_SUB50800	EQU	$
		JMP	KOOPA_TO_STAND3
;
KOOPA_SUB51	EQU	$
		JSR	K_CHPT_SET
		BCC	KOOPA_SUB51000
		JMP	KOOPA_QUICKJUMP
;
KOOPA_SUB60	EQU	$
		TYX

		LDY	ENYSPD+1,X		;上昇中 ?
		BMI	KOOPA_SUB60000		; yes: KOOPA_SUB60000

		LDA	ENCBFG,X		;着地 ?
		AND	#00001			;
		BNE	KOOPA_SUB60100		; yes: KOOPA_SUB60100

		LDA	#00027H
		STA	ENCHPT,X

KOOPA_SUB51000	EQU	$
		RTS

KOOPA_SUB60100	EQU	$
		JSR	KOOPA_TO_STOP

		JSR	KOOPA_SMK0_SET

		TXY
		JSR	K_CHPT_SET		;バウンド終わり ?
		BCC	KOOPA_SUB60000		;  no: KOOPA_SUB60000

		INC	<ENCONT,X		;リバウンド終わる ?
		LDY	<ENCONT,X		;
		CPY	#003			;
		BMI	KOOPA_SUB60500		;  no: KOOPA_SUB60500

		STZ	ENXSPD,X
		JMP	KOOPA_COMEBACK

KOOPA_SUB60500	EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#0FEDEH
		STA	ENYSPD,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#0FF00H
		STA	ENYSPD,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#00027H
		STA	ENCHPT,X
		LDA	ENXMAX,X
		CMP	#08000H
		ROR	A
		STA	ENXSPD,X
		STA	ENXMAX,X
		JMP	KOOPA_REBOUND
;
KOOPA_TO_STOP	EQU	$
		LDA	ENXSPD,X
		STA	R0
		LDA	#00010H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	ENXSPD,X
		SEC
		SBC	R0
		STA	ENXSPD,X

		RTS
;
KOOPA_SMK0_SET	EQU	$
		LDA	FRCNT2
		AND	#00007H
		BNE	KOOPA_S_SET0800

		LDA	#0001FH			;［Ｓ］
		JSL	>SOUND_3_ON

		LDA	#0FFC0H
		LDY	ENXSPD+1,X
		BMI	KOOPA_S_SET0100

		LDA	#00040H

KOOPA_S_SET0100 EQU	$
		STA	<EWORK0

		LDA	#SMK01
		JSL	>EXINSR
;
		LDA	<RANDM0
		AND	#00007H
		SEC
		SBC	#00004H
		CLC
		ADC	ENXPSL,X
		STA	EXXPSL,Y
		LDA	ENYPSL,X
		CLC
		ADC	#00010H
		STA	EXYPSL,Y
		LDA	#00008H
		STA	EXTIM0,Y
		LDA	#00003
		STA	EXWRK0,Y
		LDA	<EWORK0
		STA	EXXSPD,Y
		LDA	#0FF80H
		STA	EXYSPD,Y
		LDA	EPXMUK,X
		AND	#000FFH
		EOR	#00002
		STA	EXMUKI,Y

KOOPA_S_SET0800 EQU	$

		RTS
;
KOOPA_SUB70	EQU	$
		JSR	K_CHPT_SET

		LDA	ENCBFG,X		;着地した ?
		AND	#00001H			;
		BEQ	KOOPA_SUB70800		;  no: KOOPA_SUB70800

		JSR	KOOPA_TO_STOP

		LDY	ENCHPT,X		;チェックしていいパターン ?
		CPY	#00FH			;
		BNE	KOOPA_SUB70800		;  no: KOOPA_SUB70800

		LDA	#00034H			;［Ｓ］
		JSL	>SOUND_3_ON
		JSR	KOOPA_TO_BOTE

KOOPA_SUB70800	EQU	$
		BRA	KOOPA_FLASH
;
KOOPA_SUB71	EQU	$
		TYX

		JSR	KOOPA_TO_STOP

		TXY
		JSR	K_CHPT_SET
		BCC	KOOPA_SUB71800

		STZ	ENXSPD,X

		INC	KOOPADMG		;クッパ最後のダメージ ?
		LDY	KOOPADMG		;
		CPY	#003			;
		BMI	KOOPA_SUB71500		;  no: KOOPA_SUB71500

		JSR	KOOPA_COL_RET
		LDY	#KOOPA_RMODE80		;
		STY	<ENWRK2,X		;

		RTS

KOOPA_SUB71500	EQU	$
		JSR	KOOPA_TO_STAND2

KOOPA_SUB71800	EQU	$
		JSR	KOOPA_SMK0_SET

KOOPA_SUB72000	EQU	$
KOOPA_SUB73000	EQU	$
KOOPA_FLASH	EQU	$
		LDA	FRCNT2
		AND	#00002
		BNE	KOOPA_FLASH1000

KOOPA_COL_RET	EQU	$
		LDX	#00EH*2
KOOPA_FLASH0100 EQU	$
		LDA	>MOTOCOL+(0EH*10H)*2,X
		STA	>DATACOL+(0EH*10H)*2,X
		DEX
		DEX
		BNE	KOOPA_FLASH0100

		LDX	<ENINDX
		RTS

KOOPA_FLASH1000 EQU	$
		LDX	#00EH*2
KOOPA_FLASH1100 EQU	$
		LDA	>COL_ADDRESS+OBJ_SUB_B_COL+0FH*2-2,X
		STA	>DATACOL+(0EH*10H)*2,X
		DEX
		DEX
		BNE	KOOPA_FLASH1100

		LDX	<ENINDX
		RTS
;
KOOPA_SUB72	EQU	$
		JSR	K_CHPT_SET
		BCC	KOOPA_SUB72000

KOOPA_TO_STAND3 EQU	$
		LDA	#00002H
		STA	ENTIM1,X
		LDA	#K_STAND3_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_STAND3_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;

		INC	<ENWRK2,X

		RTS
;
KOOPA_SUB73	EQU	$
		JSR	K_CHPT_SET
		BCC	KOOPA_SUB73000

		JSR	KOOPA_COL_RET

KOOPA_QUICKJUMP EQU	$
		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X
		LDY	#KOOPA_RMODE10
		STY	<ENWRK2,X
		JMP	KOOPA_JUMP_INIT
;
KOOPA_SUB80	EQU	$
		TYX

		LDA	#FWAVE			;床波いなくなった ?
		STA	R4			;
		INC	A			;
		STA	R5			;
		M_CHIP	TARGET_COUNTER		;
		LDX	<ENINDX			;
		LDY	R6			;
		BNE	KOOPA_SUB80800		;  no: KOOPA_SUB80800

		LDA	EPWIDX,X		;プレイヤー近くにいる ?
		CLC				;
		ADC	#00080H			;
		CMP	#00100H			;
		BCS	KOOPA_SUB80800		;  no: KOOPA_SUB80800

		LDY	BABYNO+1		;赤ちゃん連れてる ?
		BPL	KOOPA_SUB80800		;  no: KOOPA_SUB80800

		LDA	#KAMC2
		JSL	>ENINSR_I
		BCC	KOOPA_SUB80800

		LDA	#00010H
		STA	ENXPSL,Y

		INC	BOSS_START
;
		JSL	>CURTAIN_SET
;
		LDX	<ENINDX
		INC	<ENWRK2,X

KOOPA_SUB80800	EQU	$

		RTS
;
KOOPA_SUB81	EQU	$
		TYX

		LDY	BOSS_START		;カメック退場した ?
		BPL	KOOPA_SUB81800		;  no: KOOPA_SUB81800

		PHB
		I16			;index 16bit mode
		LDX	#MOTOCOL
		LDY	#CHNGCOL
		LDA	#00200H-1
		MVN	#BANK MOTOCOL,#BANK CHNGCOL
		I8			; index 8bit mode
		PLB
;
		LDX	#(010H*1)*2		;クッパの変更後カラーセット
;		LDA	#07FFFH			;
		LDA	#00000H			;
KOOPA_SUB81500	EQU	$			;
		STA	>CHNGCOL+(10H*0EH)*2-2,X
		DEX				;
		DEX				;
		BNE	KOOPA_SUB81500		;

		LDX	<ENINDX
		LDA	#0000BH			;［Ｓ］
		STA	SOUND_0

KOOPA_TO_STAND2 EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00026H
		STA	ENTIM1,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00030H
		STA	ENTIM1,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		LDA	#K_STAND2_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_STAND2_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;

		INC	<ENWRK2,X

KOOPA_SUB81800	EQU	$

		RTS
;
KOOPA_SUB82	EQU	$
		JSR	K_CHPT_SET		;起き上がった ?
		BCC	KOOPA_SUB82800		;  no: KOOPA_SUB82800

		STZ	BOSS_START
		STZ	ENMUKI,X
		LDA	#00000
		STA	>CLFDCNT
		STZ	<ENCONT,X
		INC	<ENWRK2,X

KOOPA_SUB82800	EQU	$

		RTS
;
KOOPA_SUB83	EQU	$
		TYX

		LDA	FRCNT2
		AND	#00003
		BNE	KOOPA_SUB83800

		LDA	>CLFDCNT		;フェード終わった ?
		CMP	#00020H			;
		BMI	KOOPA_SUB83100		;  no: KOOPA_SUB83100
;
		LDA	#048H
		STA	<ENWRK0,X
;
;;;;		    LDA	    #07FFFH
;;;;		    STA	    NUKCOL

		INC	GOAL_BOSS_CLEAR
;
		LDY	#KOOPA_RMODEA0
		STY	<ENWRK2,X
;
KOOPA_SUB83050	EQU	$
		RTS

KOOPA_SUB83100	EQU	$
		CMP	#00010H
		BMI	KOOPA_SUB83700

		LDY	<ENCONT,X
		BNE	KOOPA_SUB83700
;
;-------------- クッパスタート落下ブロックセット ------------------------
		LDA	#KPBLK		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
		BCC	KOOPA_SUB83800	;      ”    ？ ( no:KOOPA_SUB83800 )
;
		LDA	#02H		;クッパスタート落下ブロックモードセット
		STA	ENWRKC,Y
		STA	<ENCONT,X
;
KOOPA_SUB83700	EQU	$
		LDA	#MOTOCOL		;カラーフェード
		STA	>MOTOADR		;
		LDA	#CHNGCOL		;
		STA	>CHNGADR		;
		M_CHIP	COLFADE			;
		LDX	<ENINDX			;

KOOPA_SUB83800	EQU	$

		RTS
;
KOOPA_S90_SUB	EQU	$
K_CH		EQU	$
		WORD	K_CHPT_SET		;キャラ転送
K_TT		EQU	$
		WORD	K_TILTCT_SET		;TILTCTセット
K_MS0		EQU	$
		WORD	K_MSG_SET		;メッセージセット
K_MS1		EQU	$
		WORD	K_MSG_TR_CHK		;メッセージ転送（送り）チェック
K_MS2		EQU	$
		WORD	K_MSG_CR_CHK		;メッセージクロスチェック
K_MS3		EQU	$
		WORD	K_MSG_OP_CHK		;メッセージオープンチェック
K_MS4		EQU	$
		WORD	K_MSG_LOCK		;メッセージのキーロック
K_MS5		EQU	$
		WORD	K_MSG_FREE		;メッセージのキー解除
K_FIN		EQU	$
		WORD	K_FLAG_INC		;KOOPADEMO INC.
K_FCK		EQU	$
		WORD	K_FLAG_CHK		;KOOPADEMOチェック
K_SP0		EQU	$
		WORD	K_SPD_SET		;スピードセット
K_JP0		EQU	$
		WORD	K_JUMP_CHK		;ジャンプ位置チェック
K_JP1		EQU	$
		WORD	K_JUMP_CHK2		;ジャンプ位置チェック２
K_JP2		EQU	$
		WORD	K_JUMP_CHK3		;ジャンプ位置チェック３
K_STP		EQU	$
		WORD	K_STOP_SET		;ストップ
;
KOOPA_IDX_ADD	EQU	$
;			[K_CHPT]
		HEX	00A
;			[K_TILT]
		HEX	004
;			[K_MS_S] [K_MS_T] [K_MS_C] [K_MS_O] [K_MS_L] [K_MS_F]
		HEX	004,	 002,	  002,	   002,	    002,     002
;			[K_F_IN] [K_F_CK]
		HEX	002,	 004
;			[K_SP_S] [K_JP_C] [K_JP_2] [K_JP_3]
		HEX	00A,	 002,	  002,	   002
;			[K_STOP]
		HEX	004
;
K_CHPT		EQU	(K_CH-KOOPA_S90_SUB)
K_TILT		EQU	(K_TT-KOOPA_S90_SUB)
K_MS_S		EQU	(K_MS0-KOOPA_S90_SUB)
K_MS_T		EQU	(K_MS1-KOOPA_S90_SUB)
K_MS_C		EQU	(K_MS2-KOOPA_S90_SUB)
K_MS_O		EQU	(K_MS3-KOOPA_S90_SUB)
K_MS_L		EQU	(K_MS4-KOOPA_S90_SUB)
K_MS_F		EQU	(K_MS5-KOOPA_S90_SUB)
K_F_IN		EQU	(K_FIN-KOOPA_S90_SUB)
K_F_CK		EQU	(K_FCK-KOOPA_S90_SUB)
K_SP_S		EQU	(K_SP0-KOOPA_S90_SUB)
K_JP_C		EQU	(K_JP0-KOOPA_S90_SUB)
K_JP_2		EQU	(K_JP1-KOOPA_S90_SUB)
K_JP_3		EQU	(K_JP2-KOOPA_S90_SUB)
K_STOP		EQU	(K_STP-KOOPA_S90_SUB)
;
;K_CHPT		[MODE],スタートインデックス,エンドインデックス,シーケンス回数,スタートインデックス
;K_TILT		[MODE],揺れ時間
;K_MS_S		[MODE],メッセージナンバー
;K_MS_T		[MODE]
;K_MS_C		[MODE]
;K_MS_O		[MODE]
;K_MS_L		[MODE]
;K_MS_F		[MODE]
;K_F_IN		[MODE]
;K_F_CK		[MODE],チェックナンバー
;K_SP_S		[MODE],Ｘスピード,Ｙスピード,Ｇ　ＭＡＸ,Ｇ　ＰＯＷ
;K_JP_C		[MODE]
;K_JP_2		[MODE]
;K_JP_3		[MODE]
;K_STOP		[MODE],ストップタイマー
;
KOOPA_DEMO_PROG EQU	$
		WORD	K_MS_C							;メッセージクロスチェック
		WORD	K_TILT,00040H						;TILTCTセット
		WORD	K_CHPT,K_AKUBI0_ST,K_AKUBI0_ED,00001H,K_AKUBI0_ST	;あくび
		WORD	K_CHPT,K_AKUBI1_ST,K_AKUBI1_ED,00010H,K_AKUBI1_ST	;あくび
		WORD	K_CHPT,K_AKUBI2_ST,K_AKUBI2_ED,00001H,K_AKUBI2_ST	;あくび
		WORD	K_CHPT,K_MPATI0_ST,K_MPATI0_ED,00002H,K_MPATI0_ST	;目パチ
		WORD	K_F_IN							;KOOPADEMO INC.
		WORD	K_MS_O							;メッセージオープンチェック
		WORD	K_MS_C							;メッセージクロスチェック
		WORD	K_MS_S,BS6_MSG_2					;メッセージセット
		WORD	K_MS_L							;メッセージのキーロック
		WORD	K_CHPT,K_KPAKU0_ST,K_KPAKU0_ED,00003H,K_KPAKU0_ST	;口パク
		WORD	K_CHPT,K_MPATI0_ST,K_MPATI0_ED,00002H,K_MPATI0_ST	;目パチ
		WORD	K_MS_F							;メッセージのキー解除
		WORD	K_MS_C							;メッセージクロスチェック
		WORD	K_CHPT,K_STAND0_ST,K_STAND0_ED,00001H,K_STAND0_ST	;立ち上がる
		WORD	K_SP_S,00000H,0FC00H,00800H,00080H			;スピードセット
		WORD	K_JP_3							;ジャンプ位置チェック
		WORD	K_CHPT,K_STAND1_ST,K_STAND1_ED,00001H,K_STAND1_ST	;立ち上がる２
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		WORD	K_SP_S,0FD40H,0F900H,00400H,00040H			;スピードセット
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		WORD	K_SP_S,0FDC0H,0F900H,00400H,00040H			;スピードセット
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************
K_D_JP		EQU	$
		WORD	K_CHPT,K_JUMP_ST,K_JUMP_ED,00001H,K_JUMP_ST		;ジャンプポーズ
		WORD	K_JP_C							;ジャンプ位置チェック
		WORD	K_CHPT,K_ROLL_ST,K_ROLL_ED,00001H,K_ROLL_ST		;空中回転
		WORD	K_SP_S,00000H,00800H,00400H,00000H			;スピードセット
		WORD	K_JP_2							;着地チェック
		WORD	K_CHPT,K_DOSUN_ST,K_DOSUN_ED,00001H,K_DOSUN_ST		;どすん
		WORD	K_SP_S,00000H,0FC00H,00800H,00080H			;スピードセット
		WORD	K_JP_C							;ジャンプ位置チェック
		WORD	K_CHPT,K_ROLL_ST,K_ROLL_ED,00001H,K_ROLL_ST		;空中回転
		WORD	K_SP_S,00000H,00800H,00400H,00000H			;スピードセット
		WORD	K_JP_2							;着地チェック
		WORD	K_CHPT,K_DOSUN_ST,K_DOSUN_ED,00001H,K_DOSUN_ST		;どすん
		WORD	K_SP_S,00000H,0FC00H,00800H,00080H			;スピードセット
		WORD	K_JP_C							;ジャンプ位置チェック
		WORD	K_CHPT,K_ROLL_ST,K_ROLL_ED,00001H,K_ROLL_ST		;空中回転
		WORD	K_SP_S,00000H,00800H,00400H,00000H			;スピードセット
		WORD	K_JP_2							;着地チェック
		WORD	K_CHPT,K_DOSUN_ST,K_DOSUN_ED,00001H,K_DOSUN_ST		;どすん
		WORD	K_F_IN							;KOOPADEMO INC.
		WORD	K_CHPT,K_KICK_ST,K_KICK_ED,00001H,K_KICK_ST		;キック
		WORD	K_F_CK,00003H						;KOOPADEMOチェック
		WORD	K_MS_S,BS6_MSG_3					;メッセージセット
K_D_RETRY	EQU	$
		WORD	K_MS_L							;メッセージのキーロック
		WORD	K_CHPT,K_SHOCK_ST,K_SHOCK_ED,00001H,K_SHOCK_ST		;驚き
		WORD	K_STOP,00010H						;ストップ
		WORD	K_SP_S,0FFE0H,00000H,00400H,00040H			;スピードセット
		WORD	K_CHPT,K_WALK_ST,K_WALK_ED,00003H,K_WALK_ST		;にじり寄り
		WORD	K_SP_S,00000H,00000H,00400H,00040H			;スピードセット
		WORD	K_MS_F							;メッセージのキー解除
		WORD	K_MS_T							;メッセージ送り待ち
		WORD	K_MS_L							;メッセージのキーロック
		WORD	K_CHPT,K_KPAKU1_ST,K_KPAKU1_ED,00003H,K_KPAKU1_ST	;口パク
		WORD	K_CHPT,K_MPATI1_ST,K_MPATI1_ED,00002H,K_MPATI1_ST	;目パチ
		WORD	K_STOP,00010H						;ストップ
		WORD	K_SP_S,0FFE0H,00000H,00400H,00040H			;スピードセット
		WORD	K_CHPT,K_WALK_ST,K_WALK_ED,00003H,K_WALK_ST		;にじり寄り
		WORD	K_SP_S,00000H,00000H,00400H,00040H			;スピードセット
		WORD	K_MS_F							;メッセージのキー解除
		WORD	K_MS_T							;メッセージ送り待ち
		WORD	K_MS_L							;メッセージのキーロック
		WORD	K_CHPT,K_KPAKU1_ST,K_KPAKU1_ED,00003H,K_KPAKU1_ST	;口パク
		WORD	K_MS_F							;メッセージのキー解除
		WORD	K_MS_C							;メッセージクロスチェック
		WORD	0FFFFH
;
K_DEMO_JUMP	EQU	(K_D_JP-KOOPA_DEMO_PROG)
K_DEMO_RETRY	EQU	(K_D_RETRY-KOOPA_DEMO_PROG)
;
;
;		ENWRK0	プログラムインデックス
;		ENWRK2	USE
;		ENWRK4	ROUTINE INDEX
;
;
KOOPA_SUB90	EQU	$
KOOPA_SUB93	EQU	$
		TYX
;
;
skip_1		EQU	$
;		 BRA	 KOOPA_SUB90100
		BRA	KOOPA_SUB90300
;
;
;
;
KOOPA_SUB90100	EQU	$
		LDA	#048H
		STA	<ENWRK0,X
;
		LDA	#07FFFH
		STA	NUKCOL

		LDA	ESCCH1
		CLC
		ADC	#00080H
		STA	ENXPSL,X
		LDA	ESCCV1
		CLC
		ADC	#00080H
		STA	ENYPSL,X
;
		LDY	#KOOPA_RMODEA0
		STY	<ENWRK2,X

		RTS
;
;
;
;
KOOPA_SUB90300	EQU	$
		LDA	<ENWRK4,X
		TAX
		JSR	(KOOPA_S90_SUB,X)
		BCC	KOOPA_SUB90800

		I16
		LDY	<ENWRK0,X		;デモ終わり ?
		LDA	!KOOPA_DEMO_PROG,Y	;
		BPL	KOOPA_SUB90500		;  no: KOOPA_SUB90500

		I8
		STZ	ATSCRL_H		;スクロールＯＮ
		STZ	PLMODE

		LDA	#0000CH			;［Ｓ］
		STA	SOUND_0
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#00500H
		STA	ENGMAX,X
		LDA	#00050H
		STA	ENGPOW,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00400H
		STA	ENGMAX,X
		LDA	#00040H
		STA	ENGPOW,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************

		STZ	<ENWRK2,X

		LDX	#00EH*2
KOOPA_SUB90400	EQU	$
		LDA	>DATACOL+(0EH*10H)*2,X
		STA	>MOTOCOL+(0EH*10H)*2,X
		DEX
		DEX
		BNE	KOOPA_SUB90400

		LDX	<ENINDX
		RTS

		IDX16
KOOPA_SUB90500	EQU	$
		STA	<ENWRK4,X
		PHA
		LDA	!KOOPA_DEMO_PROG+2,Y
		STA	ENWRK6,X
		LDA	!KOOPA_DEMO_PROG+4,Y
		STA	ENWRK8,X
		LDA	!KOOPA_DEMO_PROG+6,Y
		STA	ENWRKA,X
		LDA	!KOOPA_DEMO_PROG+8,Y
		STA	ENWRKC,X
		PLA
		LSR	A
		TAY
		LDA	!KOOPA_IDX_ADD,Y
		AND	#000FFH
		CLC
		ADC	<ENWRK0,X
		STA	<ENWRK0,X
		I8

KOOPA_SUB90800	EQU	$

		RTS
;
K_CHPT_DATA	EQU	$-1
;あくび
SEQ_00		EQU	$
		HEX	02,03,04,05
;あくび
SEQ_01		EQU	$
		HEX	06,07
;あくび
SEQ_02		EQU	$
		HEX	05,04,03,02,00
;目パチ（座って）
SEQ_1		EQU	$
		HEX	01,00,01,00
;口パク（座って）
SEQ_2		EQU	$
		HEX	02,03,02,00
;立ち上がり
SEQ_30		EQU	$
		HEX	08,09
;立ち上がり２
SEQ_31		EQU	$
		HEX	0B,0C
;ジャンプ
SEQ_4		EQU	$
		HEX	0B,09,0A
;空中回転
SEQ_5		EQU	$
		HEX	0E,0F,10,11,12,13,09,14
;どすん
SEQ_6		EQU	$
		HEX	15,08,00
;にじり寄り
SEQ_7		EQU	$
		HEX	1A,1B
;口パク（指差し）
SEQ_8		EQU	$
		HEX	1E,1F,1E,1C
;目パチ（指差し）
SEQ_9		EQU	$
		HEX	1D,1C,1D,1C
;キック
SEQ_A		EQU	$
		HEX	16,17,18,19,17,0B,0C
;驚き
SEQ_B		EQU	$
		HEX	1A,0C,1A,0C,1A
;踏まれて潰れる
SEQ_C		EQU	$
		HEX	08,00
;バウンド
SEQ_D		EQU	$
		HEX	08,00
;きょろきょろ
SEQ_E		EQU	$
		HEX	22,23,22,23,22,24,25,24
;回転（ダメージ）
SEQ_F		EQU	$
		HEX	09,13,12,11,10,0F,0E
;着地（ダメージ）
SEQ_10		EQU	$
		HEX	28,29,2A,2B,2A,2B,2A,2B
;起き上がり（ダメージ）
SEQ_11		EQU	$
		HEX	2C,2D,0E,08,00
;どすん（ゲーム中）
SEQ_12		EQU	$
		HEX	15,08,00
;立ち上がり（ダメージ）
SEQ_13		EQU	$
		HEX	08,0B,0C
;
SEQ_14		EQU	$
;
K_TIM1_DATA	EQU	$-1
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
;あくび
		HEX	03,03,03,03
;あくび
		HEX	02,02
;あくび
		HEX	03,03,03,03,0C
;目パチ（座って）
		HEX	03,03,03,03
;口パク（座って）
		HEX	02,05,02,05
;立ち上がり
		HEX	06,01
;立ち上がり２
		HEX	06,0C
;ジャンプ
		HEX	06,06,0C
;空中回転
		HEX	02,02,02,02,02,02,02,0C
;どすん
		HEX	03,03,03
;にじり寄り
		HEX	06,06
;口パク（指差し）
		HEX	02,05,02,05
;目パチ（指差し）
		HEX	03,03,03,03
;キック
		HEX	0C,02,02,13,02,03,01
;驚き
		HEX	0A,0A,03,03,0C
;踏まれて潰れる
		HEX	03,40
;バウンド
		HEX	06,01
;きょろきょろ
		HEX	1A,03,03,03,1A,02,0C,02
;回転（ダメージ）
		HEX	02,02,02,02,02,02,02
;着地（ダメージ）
		HEX	02,02,02,02,02,03,03,0C
;起き上がり（ダメージ）
		HEX	03,03,03,06,0C
;どすん（ゲーム中）
		HEX	03,03,1A
;立ち上がり（ダメージ）
		HEX	02,02,02
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
;あくび
		HEX	04,04,04,04
;あくび
		HEX	02,02
;あくび
		HEX	04,04,04,04,10
;目パチ（座って）
		HEX	04,04,04,04
;口パク（座って）
		HEX	02,06,02,06
;立ち上がり
		HEX	08,01
;立ち上がり２
		HEX	08,10
;ジャンプ
		HEX	08,08,10
;空中回転
		HEX	02,02,02,02,02,02,02,10
;どすん
		HEX	04,04,04
;にじり寄り
		HEX	08,08
;口パク（指差し）
		HEX	02,06,02,06
;目パチ（指差し）
		HEX	04,04,04,04
;キック
		HEX	10,02,02,18,02,04,01
;驚き
		HEX	0C,0C,04,04,10
;踏まれて潰れる
		HEX	04,50
;バウンド
		HEX	08,01
;きょろきょろ
		HEX	20,04,04,04,20,02,10,02
;回転（ダメージ）
		HEX	02,02,02,02,02,02,02
;着地（ダメージ）
		HEX	02,02,02,02,02,04,04,10
;起き上がり（ダメージ）
		HEX	04,04,04,08,10
;どすん（ゲーム中）
		HEX	04,04,20
;立ち上がり（ダメージ）
		HEX	02,02,02
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************
;
K_AKUBI0_ST	EQU	(SEQ_00-K_CHPT_DATA-1)
K_AKUBI0_ED	EQU	(SEQ_01-K_CHPT_DATA-1)
K_AKUBI1_ST	EQU	(SEQ_01-K_CHPT_DATA-1)
K_AKUBI1_ED	EQU	(SEQ_02-K_CHPT_DATA-1)
K_AKUBI2_ST	EQU	(SEQ_02-K_CHPT_DATA-1)
K_AKUBI2_ED	EQU	(SEQ_1-K_CHPT_DATA-1)
K_MPATI0_ST	EQU	(SEQ_1-K_CHPT_DATA-1)
K_MPATI0_ED	EQU	(SEQ_2-K_CHPT_DATA-1)
K_KPAKU0_ST	EQU	(SEQ_2-K_CHPT_DATA-1)
K_KPAKU0_ED	EQU	(SEQ_30-K_CHPT_DATA-1)
K_STAND0_ST	EQU	(SEQ_30-K_CHPT_DATA-1)
K_STAND0_ED	EQU	(SEQ_31-K_CHPT_DATA-1)
K_STAND1_ST	EQU	(SEQ_31-K_CHPT_DATA-1)
K_STAND1_ED	EQU	(SEQ_4-K_CHPT_DATA-1)
K_JUMP_ST	EQU	(SEQ_4-K_CHPT_DATA-1)
K_JUMP_ED	EQU	(SEQ_5-K_CHPT_DATA-1)
K_ROLL_ST	EQU	(SEQ_5-K_CHPT_DATA-1)
K_ROLL_ED	EQU	(SEQ_6-K_CHPT_DATA-1)
K_DOSUN_ST	EQU	(SEQ_6-K_CHPT_DATA-1)
K_DOSUN_ED	EQU	(SEQ_7-K_CHPT_DATA-1)
K_WALK_ST	EQU	(SEQ_7-K_CHPT_DATA-1)
K_WALK_ED	EQU	(SEQ_8-K_CHPT_DATA-1)
K_KPAKU1_ST	EQU	(SEQ_8-K_CHPT_DATA-1)
K_KPAKU1_ED	EQU	(SEQ_9-K_CHPT_DATA-1)
K_MPATI1_ST	EQU	(SEQ_9-K_CHPT_DATA-1)
K_MPATI1_ED	EQU	(SEQ_A-K_CHPT_DATA-1)
K_KICK_ST	EQU	(SEQ_A-K_CHPT_DATA-1)
K_KICK_ED	EQU	(SEQ_B-K_CHPT_DATA-1)
K_SHOCK_ST	EQU	(SEQ_B-K_CHPT_DATA-1)
K_SHOCK_ED	EQU	(SEQ_C-K_CHPT_DATA-1)
K_PRESS_ST	EQU	(SEQ_C-K_CHPT_DATA-1)
K_PRESS_ED	EQU	(SEQ_D-K_CHPT_DATA-1)
K_DMG0_ST	EQU	(SEQ_D-K_CHPT_DATA-1)
K_DMG0_ED	EQU	(SEQ_E-K_CHPT_DATA-1)
K_KYORO_ST	EQU	(SEQ_E-K_CHPT_DATA-1)
K_KYORO_ED	EQU	(SEQ_F-K_CHPT_DATA-1)
K_GORO_ST	EQU	(SEQ_F-K_CHPT_DATA-1)
K_GORO_ED	EQU	(SEQ_10-K_CHPT_DATA-1)
K_BOTE_ST	EQU	(SEQ_10-K_CHPT_DATA-1)
K_BOTE_ED	EQU	(SEQ_11-K_CHPT_DATA-1)
K_STAND2_ST	EQU	(SEQ_11-K_CHPT_DATA-1)
K_STAND2_ED	EQU	(SEQ_12-K_CHPT_DATA-1)
K_DOSUN2_ST	EQU	(SEQ_12-K_CHPT_DATA-1)
K_DOSUN2_ED	EQU	(SEQ_13-K_CHPT_DATA-1)
K_STAND3_ST	EQU	(SEQ_13-K_CHPT_DATA-1)
K_STAND3_ED	EQU	(SEQ_14-K_CHPT_DATA-1)
;
K_CHPT_SET	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	K_CHPT_SET0800

		LDA	ENWRK6,X		;パターンチェンジ終わり ?
		CMP	ENWRK8,X		;
		BMI	K_CHPT_SET0500		;  no: K_CHPT_SET0500

		DEC	ENWRKA,X		;まだ、このシーケンスをする ?
		BEQ	K_CHPT_SET1000		; yes: K_CHPT_SET1000

		LDA	ENWRKC,X

K_CHPT_SET0500	EQU	$
		INC	A
		STA	ENWRK6,X
		TAY
		LDA	!K_TIM1_DATA,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!K_CHPT_DATA,Y
		AND	#000FFH
		STA	ENCHPT,X

		CPY	#K_AKUBI0_ED+1		;あくびしてる ?
		BPL	K_CHPT_SET0600		;  no: K_CHPT_SET0600

		CMP	#00002			;サウンドセットポーズ ?
		BNE	K_CHPT_SET0800		;  no: K_CHPT_SET0800

		LDA	#0008DH			;［Ｓ］
		JSL	>SOUND_3_ON
		BRA	K_CHPT_SET0800

K_CHPT_SET0600	EQU	$
		CPY	#K_KPAKU0_ST		;座って口ぱく ?
		BMI	K_CHPT_SET0800		;
		CPY	#K_KPAKU0_ED+1		;
		BPL	K_CHPT_SET0700		;  no: K_CHPT_SET0700

		CMP	#00003			;サウンドセットポーズ ?
		BNE	K_CHPT_SET0800		;  no: K_CHPT_SET0800
		BRA	K_CHPT_SET0780		; yes: K_CHPT_SET0780

K_CHPT_SET0700	EQU	$
		CPY	#K_KPAKU1_ST		;口ぱく ?
		BMI	K_CHPT_SET0800		;
		CPY	#K_KPAKU1_ED+1		;
		BPL	K_CHPT_SET0800		;  no: K_CHPT_SET0800

		CMP	#0001FH			;サウンドセットポーズ ?
		BNE	K_CHPT_SET0800		;  no: K_CHPT_SET0800

K_CHPT_SET0780	EQU	$
		LDA	#0008CH			;［Ｓ］
		JSL	>SOUND_3_ON

K_CHPT_SET0800	EQU	$
		CLC
		RTS
;
K_TILTCT_SET	EQU	$
		TYX

		LDA	ENWRK6,X
		STA	TILTCT

K_CHPT_SET1000	EQU	$
		SEC
		RTS
;
K_MSG_SET	EQU	$
		TYX

		LDA	ENWRK6,X
		STA	>MSG_NO
		INC	MSGMOD

K_MSG_OP_CHK000 EQU	$
K_MSG_TR_CHK000 EQU	$
K_MSG_CR_CHK000 EQU	$
		SEC
		RTS
;
K_MSG_OP_CHK	EQU	$
		TYX
		LDA	MSGMOD			;メッセージ出された ?
		BNE	K_MSG_OP_CHK000		; yes: K_MSG_OP_CHK000

		CLC
		RTS
;
K_MSG_TR_CHK	EQU	$
		TYX
		LDA	>MSG_NO+3
		TAY
		CPY	#012H
		BEQ	K_MSG_TR_CHK000		; yes: K_MSG_TR_CHK000

		CLC
		RTS
;
K_MSG_CR_CHK	EQU	$
		TYX
		LDA	MSGMOD
		BEQ	K_MSG_CR_CHK000

		CLC
		RTS
;
K_FLAG_INC	EQU	$
		TYX

		INC	KOOPADEMO

K_FLAG_CHK0000	EQU	$
		SEC
		RTS
;
K_FLAG_CHK	EQU	$
		TYX

		LDY	ENWRK6,X
		CPY	KOOPADEMO
		BEQ	K_FLAG_CHK0000

K_JUMP_CHK0000	EQU	$
K_JUMP_CHK2000	EQU	$
K_JUMP_CHK3000	EQU	$
		CLC
		RTS
;
K_JUMP_CHK	EQU	$
		TYX

		LDA	ENGPOW,X		;ジャンプの頂上付近 ?
		CLC				;
		ADC	ENYSPD,X		;
		BMI	K_JUMP_CHK0000		;  no: J_JUMP_CHK0000

		LDA	#0008BH			;［Ｓ］
		JSL	>SOUND_3_ON

		STZ	ENXSPD,X
		STZ	ENYSPD,X
		STZ	ENGPOW,X

		SEC
		RTS
;
K_JUMP_CHK2	EQU	$
		TYX

		LDA	ENCBFG,X		;着地した ?
		AND	#00001			;
		BEQ	K_JUMP_CHK2000		;  no: K_JUMP_CHK2000

		LDA	#00020H
		STA	TILTCT
		ASL	A
		STA	ENGPOW,X
		LDA	#00023H		;［Ｓ］
		JSL	>SOUND_3_ON

		SEC
		RTS
;
K_JUMP_CHK3	EQU	$
		TYX

		LDY	ENYSPD+1,X
		BMI	K_JUMP_CHK3000

		LDA	#0077DH
		CMP	ENYPSL,X
		BPL	K_JUMP_CHK3000

		STA	ENYPSL,X
		STZ	ENYSPD,X
		STZ	ENGPOW,X

		SEC
		RTS
;
K_SPD_SET	EQU	$
		TYX

		LDA	ENWRK6,X
		STA	ENXSPD,X
		LDA	ENWRK8,X
		STA	ENYSPD,X
		LDA	ENWRKA,X
		STA	ENGMAX,X
		LDA	ENWRKC,X
		STA	ENGPOW,X

		SEC
		RTS
;
K_MSG_LOCK	EQU	$
		TYX
		STY	MSG_LOCK
		SEC
		RTS
;
K_MSG_FREE	EQU	$
		TYX
		STZ	MSG_LOCK

K_STOP_SET0000	EQU	$
		SEC
		RTS
;
K_STOP_SET	EQU	$
		TYX

		DEC	ENWRK6,X
		BEQ	K_STOP_SET0000

		CLC
		RTS
;
;------------------------------------------------------------------------
;-		クッパウィンドウセット					-
;------------------------------------------------------------------------
KOOPA_WINDOW_DT EQU	$
		HEX	6C
		HEX	58,5A, 5A,5B	;[00]
		HEX	56,59, 59,5C	;[01]
		HEX	55,58, 58,5C	;[02]
		HEX	54,58, 58,5C	;[03]
		HEX	53,57, 57,5C	;[04]
		HEX	52,57, 57,5C	;[05]
		HEX	51,56, 56,5C	;[06]
		HEX	50,56, 56,5C	;[07]
		HEX	3E,3F, 50,64	;[08]
		HEX	3D,40, 4F,65	;[09]
		HEX	3D,41, 4E,65	;[0A]
		HEX	3C,42, 4D,65	;[0B]
		HEX	3B,44, 4D,64	;[0C]
		HEX	3B,45, 4C,64	;[0D]
		HEX	3A,44, 4B,63	;[0E]
		HEX	2F,43, 4B,62	;[0F]
		HEX	2C,41, 4A,61	;[10]
		HEX	2A,43, 4A,60	;[11]
		HEX	28,45, 49,5F	;[12]
		HEX	27,45, 45,60	;[13]
		HEX	25,44, 44,62	;[14]
		HEX	24,43, 43,63	;[15]
		HEX	23,43, 43,64	;[16]
		HEX	22,43, 43,65	;[17]
		HEX	22,43, 43,66	;[18]
		HEX	21,43, 43,66	;[19]
		HEX	15,43, 43,66	;[1A]
		HEX	11,43, 43,65	;[1B]
		HEX	0E,43, 43,58	;[1C]
		HEX	0C,43, 43,50	;[1D]
		HEX	0B,43, 43,50	;[1E]
		HEX	09,43, 43,51	;[1F]
		HEX	08,43, 43,52	;[20]
		HEX	07,43, 43,52	;[21]
		HEX	06,43, 43,53	;[22]
		HEX	05,43, 43,53	;[23]
		HEX	05,54, 69,6B	;[24]
		HEX	04,54, 67,6B	;[25]
		HEX	03,55, 66,6B	;[26]
		HEX	03,55, 64,6B	;[27]
		HEX	02,55, 62,6B	;[28]
		HEX	02,56, 61,6B	;[29]
		HEX	02,56, 5F,6B	;[2A]
		HEX	01,56, 5E,6B	;[2B]
		HEX	01,59, 5C,6B	;[2C]
		HEX	01,43, 43,6B	;[2D]
		HEX	00,43, 43,6B	;[2E]
		HEX	00,43, 43,6B	;[2F]
		HEX	00,43, 43,6B	;[30]
		HEX	00,43, 43,6B	;[31]
		HEX	00,43, 43,6B	;[32]
		HEX	00,43, 43,6B	;[33]
		HEX	00,43, 43,6B	;[34]
		HEX	00,44, 44,6B	;[35]
		HEX	00,44, 44,6B	;[36]
		HEX	00,45, 45,6B	;[37]
		HEX	01,46, 46,6C	;[38]
		HEX	01,47, 47,6C	;[39]
		HEX	02,48, 48,6D	;[3A]
		HEX	02,49, 49,6E	;[3B]
		HEX	03,4A, 4A,6E	;[3C]
		HEX	04,4B, 4B,6F	;[3D]
		HEX	04,4C, 4C,7F	;[3E]
		HEX	05,4D, 4D,7F	;[3F]
		HEX	06,4E, 4E,7F	;[40]
		HEX	08,4F, 4F,7E	;[41]
		HEX	09,50, 50,7D	;[42]
		HEX	0B,51, 51,7C	;[43]
		HEX	0E,51, 51,7B	;[44]
		HEX	21,52, 52,7B	;[45]
		HEX	22,52, 52,7A	;[46]
		HEX	24,52, 52,79	;[47]
		HEX	28,52, 52,78	;[48]
		HEX	2E,53, 53,77	;[49]
		HEX	2F,53, 53,76	;[4A]
		HEX	30,53, 53,76	;[4B]
		HEX	2D,53, 53,76	;[4C]
		HEX	2C,53, 53,76	;[4D]
		HEX	2C,53, 53,76	;[4E]
		HEX	2C,53, 53,77	;[4F]
		HEX	25,53, 53,79	;[50]
		HEX	24,53, 53,79	;[51]
		HEX	24,53, 53,7A	;[52]
		HEX	24,53, 53,7A	;[53]
		HEX	24,53, 53,7A	;[54]
		HEX	24,53, 53,7A	;[55]
		HEX	24,53, 53,7A	;[56]
		HEX	24,53, 53,7A	;[57]
		HEX	24,53, 53,7A	;[58]
		HEX	25,53, 53,7A	;[59]
		HEX	25,53, 53,7A	;[5A]
		HEX	25,53, 53,79	;[5B]
		HEX	26,53, 53,79	;[5C]
		HEX	26,53, 53,78	;[5D]
		HEX	27,53, 53,77	;[5E]
		HEX	28,53, 53,76	;[5F]
		HEX	28,53, 53,75	;[60]
		HEX	29,53, 53,73	;[61]
		HEX	2A,53, 53,70	;[62]
		HEX	2B,53, 53,6F	;[63]
		HEX	2C,53, 53,6F	;[64]
		HEX	2D,41, 49,6E	;[65]
		HEX	2E,41, 4A,6D	;[66]
		HEX	2F,40, 4B,6C	;[67]
		HEX	30,40, 4C,6B	;[68]
		HEX	31,3F, 4E,6A	;[69]
		HEX	33,3E, 51,68	;[6A]
		HEX	36,3C, 5A,65	;[6B]
;
KOOPA_WINDOW	EQU	$
		TYX
;
		LDA	#BANK KOOPA_WINDOW_DT
		STA	R0		;(R0) <-- window data address(B)
		LDA	#KOOPA_WINDOW_DT
		STA	R5		;(R5) <--	   "         (L,H)

		LDA	#047H
		STA	R1		;(R1) <--      "      center X pos
		LDA	#050H
		STA	R2		;(R2) <--	  "          Y  "
		LDA	ENDSXL,X	;
		CLC
		ADC	#00006
;;;;;;;;		LDA	#080H
		STA	R3		;(R3) <--    "   display center X pos
		LDA	ENDSYL,X
		CLC
		ADC	#00004H
;;;;;;;;		LDA	#070H
		STA	R4		;(R4) <--	    "           Y  "
		LDA	<ENWRK0,X
		STA	R6		;(R6) <-- zoom flag
;
		LDX	#BANK SPWINDOW
		LDA	#SPWINDOW
		JSL	>CHIPON
;
		JSL	>M_DMA_BFST
		LWORD	WINDBUF		;転送先アドレス
		LWORD	WINDBF		;転送元アドレス
		WORD	(0D2H*4)	;転送バイト数
;
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CLC
		ADC	#010H
		STA	<ENWRK0,X
		CMP	#1000H		;(C) set
;
		LDA	#00010111B+(00000000B*000H)
		LDY	#10101010B
		BCC	KOOPA_WIND_0050 ;ウィンドウ最大？ ( no:KOOPA_WIND_0050 )
;
		INC	<ENWRK2,X
;
		JSL	>EGGKILL_ALL	;タマゴはずす
;
;;ひみつ;;		  JSR	  KOOPA_CHR_SET
;
		LDY	#0
		TYA			;[ LDA #0 ]
		STY	FADNO		;フェードＮｏ．初期セット
;
;-------------- window PPU set ----------------------------------
KOOPA_WIND_0050 EQU	$
		STA	MANSEL		;[ & SUBSEL ]
		STA	WMANSL		;[ & WSUBSL ]
;
		STY	WIND23
		STY	WIND24
		STY	WIND25
;
		LDA	#00100000B
		TSB	HD420C		;H-DMA "ON" !!
		RTS
;
;------------------------------------------------------------------------
;-		大クッパキャラクターセット				-
;------------------------------------------------------------------------
KOOPA_CHR_VRAD	EQU	$
		WORD	5000H, 5800H, 7000H  ;, 7800H
		WORD	0000H, 1000H, 2000H, 3000H
KOOPA_CHR_BANK	EQU	$
		WORD	CHRF7, CHRF5A,CHRF6  ;, CHRF6
		WORD	CHR7AA,CHR7AB,CHR7BA,CHR7BB
KOOPA_CHR_NO	EQU	(KOOPA_CHR_BANK-KOOPA_CHR_VRAD)/2
;
KOOPA_CHRST	EQU	$
;
;----------------------------------------------------------------
;-		サウンドプログラム転送				-
;----------------------------------------------------------------
		PHD			;(D) save
		LDA	#WORK		;(D) <-- WORK
		TCD
;
		DPAGE	WORK
;
		M8
;
		JSL	>BLNKON
		LDX	#0CH		;(X) <-- サウンドプログラム転送テーブルＮｏ．
		JSL	>SOUND_TR_2
		LDA	#01H		;[♪]
		STA	<SOUND_0
		STA	GM_SOUND_0
		LDA	#10110001B	;ＮＭＩ，ＩＲＱ”ＯＮ”
		STA	4200H
;
		M16
;
		PLD			;(D) load
;
		DPAGE	EN0RAM
;
;----------------------------------------------------------------
;-		キャラクターセット				-
;----------------------------------------------------------------
		LDX	<ENINDX
		LDA	#PSTP
		STA	PLMODE
;
		LDA	ESCCH1
		CMP	#0200H
		BCS	KOOPA_CHRST_020 ;ＢＧ書き換え終了？ ( yes:KOOPA_CHRST_020 )
;
		LDY	#01H		;(Y) <-- 自動スクロールセット
;;;;		    CLC
		ADC	#010H
		CMP	#0200H
		BCC	KOOPA_CHRST_010
;
		LDA	#0240H		;プレイヤーＸ座標セット
		STA	PLXPSL
		LDA	#0200H		;最小スクロールカウンターＨセット
		STA	PLSCRL_MINX
		DEY			;[ LDY #0 ] (Y) <-- 自動スクロールリセット
KOOPA_CHRST_010 EQU	$
		STY	ATSCRL_H
		STA	ATSCRL_SCCH1
		LDA	#0280H		;最大スクロールカウンターＨセット
		STA	PLSCRL_MAXX
		RTS
;
KOOPA_CHRST_020 EQU	$
;
		I16
;
		LDA	#0800H		;(EWK0,1) <-- 最大転送バイト数
		STA	<EWORK0
;
		LDA	CHNG_CHR_BYTE
		BEQ	KOOPA_CHRST_030 ;圧縮データの解凍？ ( yes:KOOPA_CHRST_030 )
		JMP	KOOPA_CHRST_100
;
KOOPA_CHRST_030 EQU	$
		LDA	CHNG_CHR_CNT
		CMP	#KOOPA_CHR_NO
		BCS	KOOPA_CHRST_031
		JMP	KOOPA_CHRST_050 ;キャラクターセット終了？ ( no:KOOPA_CHRST_050 )

KOOPA_CHRST_031 EQU	$
;
;-------------- キャラクターセット終了 ----------------------------------
		STZ	CHNG_CHR_VRAM	;スクリーンクリアースタートＶＲＡＭアドレスセット
;
		I8
;
;-------------- カラーセット --------------------------------------------
		LDX	#15*2-2
KOOPA_CHRST_040 EQU	$
		LDA	#00
;;;;		    LDA	    >COL_ADDRESS+KOOPA_M7_COL_0,X
		STA	>MOTOCOL+2,X
		STA	>DATACOL+2,X
		LDA	>COL_ADDRESS+KOOPA_BGOBJ_COL,X
		STA	>MOTOCOL+(80H+71H)*2,X
		STA	>DATACOL+(80H+71H)*2,X
		DEX
		DEX
		BPL	KOOPA_CHRST_040
;
;-------------- グラデーションカラーセット ------------------------------
		LDA	#BANK COL_ADDRESS+KOOPA_GRAD_COL
		STA	R0		;(R0)  <-- グラデーションカラーアドレス（Ｂ）
		LDA	#COL_ADDRESS+KOOPA_GRAD_COL
		STA	R14		;(R14) <-- グラデーションカラーアドレス（Ｌ，Ｈ）
		M_CHIP	KOOPA_GRADATION
;
		JSL	>M_DMA_BFST
		LWORD	NUKCOL_BF_B	;転送先アドレス
		LWORD	WOB7CHR		;転送元アドレス
		WORD	0D2H		;転送バイト数
;
		JSL	>M_DMA_BFST
		LWORD	NUKCOL_BF_RG	;転送先アドレス
		LWORD	WOB7CHR+0D2H	;転送元アドレス
		WORD	0D2H*2		;転送バイト数
;
		JSL	>M_DMA_BFST
		LWORD	HDMABUF3	;転送先アドレス
		LWORD	HDMABF0		;転送元アドレス
		WORD	0D2H*2		;転送バイト数
;
		LDX	#0D2H
		LDA	#00
KOOPA_CHRST_045 EQU	$
		STA	>HDMABUF+0D2H-2,X
		DEX
		DEX
		BNE	KOOPA_CHRST_045
;
		LDX	<ENINDX
		INC	<ENWRK2,X
		LDA	#PDEM
		STA	PLMODE
		STZ	MANSEL		;[ & SUBSEL ]
		LDY	#0
		STY	HD420C
		RTS
;
		IDX16
;
KOOPA_CHRST_050 EQU	$
		ASL	A
		TAY
		LDA	#WOB7CHR+1000H
		STA	CHNG_CHR_DTAD	;転送元アドレスセット
		LDA	!KOOPA_CHR_VRAD,Y
		STA	CHNG_CHR_VRAM	;転送先ＶＲＡＭアドレスセット
;
;-------------- 圧縮データの解凍 ----------------------------------------
		LDX	#WOB7CHR+1000H	;(X) <-- 圧縮データ格納アドレスセット
		CMP	#4000H
		BCS	KOOPA_CHRST_060 ;モード７キャラクター？ ( no:KOOPA_CHRST_060 )
		LDX	#WOB7CHR+1800H	;(X) <-- 圧縮データ格納アドレスセット
KOOPA_CHRST_060 EQU	$
		LDA	!KOOPA_CHR_BANK,Y ;(A) <-- キャラクターバンク
		JSL	>UNCOMPRES
;
		STA	CHNG_CHR_BYTE	;解凍データバイト数セット
		INC	CHNG_CHR_CNT	;カウンターＵＰ
;
		LDX	CHNG_CHR_VRAM
		CPX	#4000H
		BCS	KOOPA_CHRST_100 ;モード７キャラクター？ ( no:KOOPA_CHRST_100 )
;
;-------------- モード７キャラクター８ビット変換 ----------------
;
		I8
;
		STA	R12		;(R12) <-- 変換バイト数
		M_CHIP	M7_CHR_CNV
;
		I16
;
		ASL	CHNG_CHR_BYTE	;解凍データバイト数セット（×２）
		LDA	CHNG_CHR_BYTE
KOOPA_CHRST_100 EQU	$
		SEC
		SBC	#0800H
		BCS	KOOPA_CHRST_150 ;解凍データ終り？ ( no:KOOPA_CHRST_150 )
;
;;;;		    CLC
		ADC	#0800H
		STA	<EWORK0		;(EWK0,1) <-- 転送バイト数
		LDA	#00
KOOPA_CHRST_150 EQU	$
		STA	CHNG_CHR_BYTE	;余りの解凍データバイト数セット
;
		LDX	CHNG_CHR_DTAD	;(X) <----- 転送元アドレス（Ｌ，Ｈ）
		TXA
		CLC
		ADC	<EWORK0
		STA	CHNG_CHR_DTAD	;次の転送元アドレスセット
		LDA	#BANK WOB7CHR
		STA	WORK1		;(WK1,2) <-- 転送元アドレス（Ｂ）
		LDY	CHNG_CHR_VRAM	;(Y) <----- ＶＲＡＭアドレス
;
		LDA	<EWORK0		;(A) <-- 転送バイト数
		CPY	#4000H
		BCS	KOOPA_CHRST_200 ;モード７キャラクター？ ( no:KOOPA_CHRST_200 )
;
;-------------- モード７キャラクター転送 ------------------------
		JSL	>VRAMDX_H_ST
		BRA	KOOPA_CHRST_250
;
;-------------- ノーマルモードキャラクター転送 ------------------
KOOPA_CHRST_200 EQU	$
		JSL	>VRAMDX_ST
		LSR	<EWORK0		;(A) <-- ＶＲＡＭアドレス加算データ／２
;
KOOPA_CHRST_250 EQU	$
		LDA	<EWORK0		;(A) <-- ＶＲＡＭアドレス加算データ
		CLC
		ADC	CHNG_CHR_VRAM
		STA	CHNG_CHR_VRAM	;次のＶＲＡＭアドレスセット
;
		I8
;
		LDX	<ENINDX
		RTS
;
;------------------------------------------------------------------------
;-		大クッパモード７スクリーンクリアー＆カラーセット＆ｅｔｃ-
;------------------------------------------------------------------------
;
;-------------- ＢＧモード切り替えＨ−ＤＭＡデータ ----------------------
KOOPA_HDMA_PR	EQU	$
		BYTE	00000000B	;DMA control parameter
		BYTE	05H		;    B bus address
		BYTE	LOW  HDMABUF	;    A	    "     (L)
		BYTE	HIGH HDMABUF	;	    "     (H)
		BYTE	BANK HDMABUF	;	    "     (B)
KOOPA_HDMA_PR_E EQU	$
KOOPA_HDMA_D0	EQU	$
		BYTE	70H		;line no.
		BYTE	07H		;   BG mode 7
		BYTE	3BH		;line no.
		BYTE	07H		;   BG mode 7
		BYTE	01H		;line no.
		BYTE	49H		;   BG mode 1
		HEX	00		;end code
KOOPA_HDMA_D0_E EQU	$
;
KOOPA_HDMA_D1	EQU	$
		BYTE	70H		;line no.
		BYTE	00H,11H		;   BG1,OBJ
		BYTE	3BH		;line no.
		BYTE	00H,11H		;   BG1,OBJ
		BYTE	01H		;line no.
		BYTE	00H,12H		;   BG2,OBJ
		HEX	00		;end code
KOOPA_HDMA_D1_E EQU	$
;
;-------------- ヌキカラーグラデーションＨ−ＤＭＡデータ ----------------
KOOPA_GRADR_PR	EQU	$
		BYTE	01000000B	;DMA control parameter
		BYTE	21H		;    B bus address
		BYTE	LOW  HDMAPR1	;    A	    "     (L)
		BYTE	HIGH HDMAPR1	;	    "     (H)
		BYTE	BANK HDMAPR1	;	    "     (B)
;
KOOPA_GRADR_DT	EQU	$
		BYTE	69H+80H		;line no.
		WORD	HDMABUF+0D2H
		BYTE	69H+80H		;line no.
		WORD	HDMABUF+0D2H+69H
		HEX	00		;end code
;
KOOPA_GRCOL_PR	EQU	$
		BYTE	01000010B	;DMA control parameter
		BYTE	22H		;    B bus address
		BYTE	LOW  HDMAPR2	;    A	    "     (L)
		BYTE	HIGH HDMAPR2	;	    "     (H)
		BYTE	BANK HDMAPR2	;	    "     (B)
;
KOOPA_GRCOL_DT	EQU	$
		BYTE	69H+80H		;line no.
		WORD	HDMABUF3
		BYTE	69H+80H		;line no.
		WORD	HDMABUF3+(69H*2)
		HEX	00		;end code
;
;-------------- 遠景雲セットデータ --------------------------------------
BGKM_INIT_XPS	EQU	$
		WORD	0000H,00C0H
BGKM_INIT_YPS	EQU	$
		WORD	0068H,0008H
BGKM_INIT_XSP	EQU	$
		WORD	0020H,0040H
;
KOOPA_SCRCL	EQU	$
		LDA	CHNG_CHR_VRAM
		CMP	#04000H
		BCS	KOOPA_SCRCL_050 ;スクリーンクリアー終了？ ( yes:KOOPA_SCRCL_050 )
;
;-------------- スクリーンクリアー --------------------------------------
;
		I16
;
		TAY			;(Y) <-- ＶＲＡＭアドレス
;;;;		    CLC
		ADC	#0800H
		STA	CHNG_CHR_VRAM
		LDA	#0800H		;(A) <-- 転送バイト数
		LDX	#0FFH		;(X) <-- 転送データ
		JSL	>VRAMDX_L_C_ST
;
		I8
;
		LDX	<ENINDX
		RTS
;
;-------------- ＢＧモード切り替えＨ−ＤＭＡセット ----------------------
KOOPA_SCRCL_050 EQU	$
;
		M8
;
		LDX	#KOOPA_HDMA_PR_E-KOOPA_HDMA_PR-1
KOOPA_SCRCL_150 EQU	$
		LDA	!KOOPA_HDMA_PR,X
		STA	4370H,X
		LDA	!KOOPA_GRADR_PR,X
		STA	4330H,X
		LDA	!KOOPA_GRCOL_PR,X
		STA	4340H,X
		LDA	>HDMAP5,X	;グラデーションカラー
		STA	4320H,X
		LDA	>HDMAP6,X	;	  ”
		STA	4310H,X
		DEX
		BPL	KOOPA_SCRCL_150
		LDA	#BANK NUKCOL_BF_RG
		STA	4327H
		STA	4317H
		LDX	#KOOPA_HDMA_D1_E-KOOPA_HDMA_D1-1
KOOPA_SCRCL_200 EQU	$
		LDA	!KOOPA_HDMA_D0,X
		STA	>HDMABUF,X
		LDA	!KOOPA_HDMA_D1,X
		STA	>HDMABUF2,X
		DEX
		BPL	KOOPA_SCRCL_200
		LDX	#HDMAPD5_NO-1
KOOPA_SCRCL_250 EQU	$
		LDA	!KOOPA_GRADR_DT,X
		STA	>HDMAPR1,X
		LDA	!KOOPA_GRCOL_DT,X
		STA	>HDMAPR2,X
		LDA	>HDMAPD5,X
		STA	>HDMAPR3,X
		LDA	>HDMAPD6,X
		STA	>HDMAPR4,X
		DEX
		BPL	KOOPA_SCRCL_250
;
		LDA	#11000110B	;グラデーションＨ−ＤＭＡ”ＯＮ”
		STA	HD420C
;
;-------------- モード７用パラメータセット ------------------------------
;
		M16
;
		LDA	#0700H		;クッパＺ座標セット
		STA	KOOPA_Z
 IF  JPN | NES ;**** 日本 or NES 対応 [1995/6/30] ****************
		LDA	#0A00H		;クッパＹ座標セット
 ELSE	       ;**** PAL 対応 [1995/7/20] ************************
		LDA	#0940H		;クッパＹ座標セット
 ENDIF
		STA	KOOPA_Y
		LDA	#02C0H		;クッパＸ座標セット
		STA	KOOPA_X
		LDA	#0200H
		STA	M7X		;回転の中心Ｘ
		LDA	#0210H
		STA	M7Y		;回転の中心Ｙ
;
		I8
;
;-------------- 遠景ＯＢＪセット ----------------------------------------
		LDA	#BG_00		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR		;敵エリア確保
		BCC	KOOPA_INIT_0100 ;     ”     ？ ( no:KOOPA_INIT_0100 )
;
		LDA	#080H
		STA	ENXPSL,Y
;;;;		    LDA	    #080H
		STA	ENYPSL,Y
		LDA	#1111100000000001B
		STA	ENMOD2,Y
;;;;		    LDA	    #01H
		STA	ENWRK0,Y
;
		M8
;
		LDA	#ESCCH4-ESCCH1
		STA	ENDORE,Y
;
		M16
;
;-------------- 遠景雲セット --------------------------------------------
		LDX	#(2-1)*2
KOOPA_INIT_0050 EQU	$
		LDA	#BGKM0		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
		BCC	KOOPA_INIT_0100 ;     ”     ？ ( no:KOOPA_INIT_0100 )
;
		LDA	SCCH2
		CLC
		ADC	!BGKM_INIT_XPS,X
		STA	ENXPSL,Y
		LDA	SCCV2
		CLC
		ADC	!BGKM_INIT_YPS,X
		STA	ENYPSL,Y
		LDA	!BGKM_INIT_XSP,X
		STA	ENXSPD,Y
		CPX	#0
		BNE	KOOPA_INIT_0060 ;（小）？ ( no:KOOPA_INIT_0060 )
;
		LDA	#2
		STA	ENCHPT,Y
		LDA	#0010000000000001B
		STA	ENMOD2,Y
KOOPA_INIT_0060 EQU	$
		DEX
		DEX
		BPL	KOOPA_INIT_0050
;
KOOPA_INIT_0100 EQU	$
		LDX	<ENINDX
;
;-------------- クッパスタート落下ブロックセット ------------------------
		LDA	#KPBLK		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
		BCC	KOOPA_INIT_0150 ;      ”    ？ ( no:KOOPA_INIT_0150 )
;
		LDA	#02H		;クッパスタート落下ブロックモードセット
		STA	ENWRKC,Y
;
KOOPA_INIT_0150 EQU	$
;;;;		    JSR	    OBJ_BG_FG_ST
;
		LDY	#0AH		;ＮＭＩタイプＮｏ．セット
		STY	NMITYP
		LDY	#69H		;ＢＧ２スクリーンベース変更（ＢＧ２←ＢＧ１）
		STY	BG2SCF
;
		LDA	#0FH		;スクロールタイプ変更
		STA	SCRLNO
;
		LDA	#2		;大クッパパターンＮｏ．初期セット
		STA	ENCHPT,X
 IF  JPN | NES ;**** 日本 or NES 対応 [1995/6/30] ****************
		LDA	#0180H		;大クッパ登場までのウェイトタイマーセット
 ELSE	       ;**** PAL 対応 [1995/7/20] ************************
		LDA	#0000H		;大クッパ登場までのウェイトタイマーセット
 ENDIF
		STA	ENTIM0,X
		LDA	#080H		;大クッパダッシュカウンターリセット
		STA	ENWRK8,X
		STZ	ENWRKC,X	;大クッパが勝利した時のＢＧ書き換えカウンターリセット
;
		LDA	#00010010B*100H ;ＢＧ２表示
		STA	MANSEL		;[ & SUBSEL ]
;
		STZ	PLMODE		;プレイヤー自由に
		STZ	GOAL_BOSS_CLEAR ;ポーズＯＫに
;
KOOPA_FADE_INIT EQU	$
		INC	<ENWRK2,X
		STZ	<ENWRK0,X	;フェード倍率初期セット
;
		LDA	MANSEL		;[ & SUBSEL ]
		STA	WMANSL		;[ & WSUBSL ]
		LDY	#00000000B
		STY	WIND25
		LDY	#00100010B
		STY	WIND30
		LDY	#00100000B	;加算
		STY	SUBADF
		LDA	#00100000B
		TRB	HD420C		;H-DMA "ON" !!
		RTS
;
;------------------------------------------------------------------------
;-		大クッパカラーフェードイン				-
;------------------------------------------------------------------------
KOOPA_FADE	EQU	$
		TYX
;
		LDA	#7FFFH
		STA	R1		;(R1) <-- 元カラー
		STZ	R2		;(R2) <-- 先カラー
		LDA	<ENWRK0,X
		STA	R6		;(R6) <-- 倍率
		CLC
		ADC	#01H
		STA	<ENWRK0,X
		CMP	#0100H
		BCC	KOOPA_FADE_0050 ;フェード終了？ ( no:KOOPA_FADE_0050 )
;
		INC	<ENWRK2,X
KOOPA_FADE_0050 EQU	$
		M_CHIP	COL_MORF
		LDX	<ENINDX
;
		LDA	R3		;フェードカラーセット
		LDY	GOAL_BOSS_CLEAR
		BNE	KOOPA_FADE_0100 ;カラーフェード？ ( yes:KOOPA_FADE_0100 )
;
;-------------- コントラストフェード ------------------------------------
		LSR	A
		LSR	A
		LSR	A
		XBA
		AND	#0FH
		EOR	#0FH
		TAY
		STY	FADNO
;
;;;;OBJ_BG_FG_ST    EQU	    $
;;;;		    LDA	    #00010001B*100H
;;;;		    STA	    OBJ_BG_FG
		RTS
;
;-------------- カラーフェード ------------------------------------------
KOOPA_FADE_0100 EQU	$
		STA	>DATACOL
		RTS
;
;------------------------------------------------------------------------
;-		大クッパ登場						-
;------------------------------------------------------------------------
KP_START_SND_TM EQU	$
		HEX	30,40,20,10
;
KOOPA_START	EQU	$
		TYX
;
		JSR	KOOPA_PATN
;
;-------------- カラーフェード ------------------------------------------
		LDA	#0750H+((0100H+020H)*2)
		SEC
		SBC	KOOPA_Y
		BPL	KOOPA_START_000
		LDA	#00
KOOPA_START_000 EQU	$
		LSR	A
		CMP	#0100H
		BMI	KOOPA_START_002
		LDA	#0100H
KOOPA_START_002 EQU	$
		STA	R6		;(R6) <-- 倍率
		LDA	#COL_ADDRESS+KOOPA_M7_COL_0
		STA	R14		;(R14) <-- 先カラーデータアドレス（Ｌ，Ｈ）
		LDA	#BANK COL_ADDRESS+KOOPA_M7_COL_0
		STA	R0		;(R0) <-- 先カラーデータアドレス（Ｂ）
		LDA	#01H
		STA	R8		;(R8) <-- カラーポインター（０〜ＦＦ）
		LDA	#15
		STA	R12		;(R12) <-- カラー数
		M_CHIP	COL_MORF_B
		LDX	<ENINDX
;
		LDA	ENTIM0,X
		BNE	KOOPA_START_100 ;ウェイト？ ( yes:KOOPA_START_100 )
;
		LDA	<FRCNT2		;地震セット
		AND	#0FH
		ORA	#40H
		STA	TILTCT
;
		LDA	KOOPA_Y
		SEC
		SBC	#1
		STA	KOOPA_Y
		CMP	#0750H
		BPL	KOOPA_START_010 ;出た？ ( no:KOOPA_START_010 )
;
		STA	ENWRKA,X	;基準Ｙ座標セット
		LDX	#(15-1)*2
KOOPA_START_004 EQU	$
		LDA	>COL_ADDRESS+KOOPA_M7_COL_0,X
		STA	>MOTOCOL+2,X
		STA	>DATACOL+2,X
		DEX
		DEX
		BPL	KOOPA_START_004
		LDX	<ENINDX
;
;-------------- 落下ブロックセットへ ------------------------------------
KOOPA_TO_BLOCK	EQU	$
		LDA	#KOOPA_RMODEA5
		STA	ENWRK2,X
;
		LDA	#KP_BLK_P	;落下ブロックパターンカウンターセット
		STA	<ENWRK4,X
		STZ	ENTIM3,X	;落下ブロックセットウェイトタイマーセット
		RTS
;
KOOPA_START_010 EQU	$
		CMP	#0900H
		BPL	KOOPA_START_050 ;大クッパモード”ＯＮ”？ ( no:KOOPA_START_050 )
;
		LDA	#01		;大クッパモード”ＯＮ”
		STA	KOOPA_FG
KOOPA_START_050 EQU	$
		LDA	ENTIM1,X
		BNE	KOOPA_START_100 ;サウンドセット？ ( no:KOOPA_START_100 )
;
		LDA	#048H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	<RANDM0
		AND	#03H
		TAY
		LDA	!KP_START_SND_TM,Y
		AND	#00FFH
		STA	ENTIM1,X
;
KOOPA_START_100 EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		落下ブロックセット					-
;------------------------------------------------------------------------
KP_BLOCK_PT	EQU	$
		WORD	   2,	4,   6,	  4,   2
KP_BLOCK_TM	EQU	$
		WORD	0E0H,004H,130H,004H,080H
KP_BLK_P	EQU	(KP_BLOCK_TM-KP_BLOCK_PT)/2
;
KOOPA_BLOCK	EQU	$
		TYX
;
		JSR	KOOPA_PATN
		LDY	KOOPA_BLKNO
		CPY	#4*2
		BCC	KOOPA_BLOCK_010 ;セットＯＫ？ ( no:KOOPA_BLOCK_010 )
;
		JSR	FKPBM_SET	;風船爆弾セット
KOOPA_BLOCK_010 EQU	$
		LDA	ENTIM3,X
		BNE	KOOPA_BLOCK_100 ;パターン切り替え？ ( no:KOOPA_BLOCK_100 )
;
		DEC	<ENWRK4,X
		BPL	KOOPA_BLOCK_050 ;セット終了？ ( no:KOOPA_BLOCK_050 )
;
;-------------- 大クッパ処理へ ------------------------------------------
		INC	<ENWRK2,X
		LDA	#0100H		;ファイヤーショットまでのタイマーセット
		STA	ENTIM2,X
		RTS
;
KOOPA_BLOCK_050 EQU	$
		LDA	<ENWRK4,X
		ASL	A
		TAY
		LDA	!KP_BLOCK_TM,Y	;パターン切り替えタイマーセット
		STA	ENTIM3,X
		LDA	!KP_BLOCK_PT,Y	;パターンＮｏ．セット
		STA	ENCHPT,X
		CMP	#6
		BNE	KOOPA_BLOCK_100 ;落下ブロックセット？ ( no:KOOPA_BLOCK_100 )
;
;-------------- 落下ブロックセット --------------------------------------
		LDA	#091H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#KPBLK		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリ確保
;;;;		    BCC	    KOOPA_BLOCK_100 ;	  ”   ？ ( no:KOOPA_BLOCK_100 )
;
KOOPA_BLOCK_100 EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		ファイヤーショットセット				-
;------------------------------------------------------------------------
KP_FIRE_PT	EQU	$
		HEX	 2, 4, 5, 4, 2, 4, 5, 4, 2, 4, 5, 4, 2
KP_FIRE_TM	EQU	$
		HEX	04,04,60,04,40,04,60,04,40,04,60,04,04
KP_FIR_P	EQU	KP_FIRE_TM-KP_FIRE_PT
;
KOOPA_FIRE	EQU	$
		TYX
;
		JSR	KOOPA_PATN
		JSR	FKPBM_SET	;風船爆弾セット
;
		LDA	ENTIM3,X
		BEQ	KOOPA_FIRE_030	;パターン切り替え？ ( yes:KOOPA_FIRE_030 )
;
;-------------- ターゲットセット ----------------------------------------
KPF_P_SET	EQU	$
		LDY	ENCHPT,X
		CPY	#5
		BNE	KOOPA_FIRE_000	;口開けてる？ ( no:KOOPA_FIRE_000 )
;
		CMP	#020H
		BCC	KOOPA_FIRE_000	;ターゲットセットＯＫ？ ( no:KOOPA_FIRE_FFF )
		BNE	KOOPA_FIRE_FFF	;ファイヤーショット？ ( no:KOOPA_FIRE_FFF )
;
;-------------- ファイヤーショット ------------------------------
		JSR	KPFIR_SET
		LDA	#030H		;ターゲットカウンター初期セット
		STA	ENWRK6,X
		RTS
;
KOOPA_FIRE_FFF	EQU	$
		LDA	#01H		;(A) <-- ターゲット表示タイマー
KPF_P_SET_2	EQU	$
		PHA			;(A) save
;
		LDA	#KPF_P		;(A) <-- 効果Ｎｏ．
		JSL	>EXINSR		;効果エリア確保
;
		LDA	PCENTX		;Ｘ座標セット
		SEC
		SBC	#8
		STA	EXXPSL,Y
		LDA	PCENTY		;Ｙ座標セット
		SEC
		SBC	#08H
		STA	EXYPSL,Y
;
		PLA			;(A) load
		STA	EXTIM0,Y
		LDA	ENWRK6,X	;ターゲットサイズセット
		STA	EXWRK0,Y
		CMP	#010H
		BCC	KOOPA_FIRE_010
		SEC
		SBC	#4
		STA	ENWRK6,X
KOOPA_FIRE_000	EQU	$
		RTS
;
KOOPA_FIRE_010	EQU	$
		LDA	<FRCNT2
		AND	#07H
		BNE	KOOPA_FIRE_020	;サウンドセット？ ( no:KOOPA_FIRE_020 )
;
		PHY			;(Y) save
;
		LDA	#063H		;[♪]
		JSL	>SOUND_3_ON
;
		PLY			;(Y) load
;
KOOPA_FIRE_020	EQU	$
		LDA	<FRCNT2		;カラー点滅
		AND	#04H
		LSR	A
;;;		   CLC
		ADC	EXCLOR,Y
		STA	EXCLOR,Y
		RTS
;
;-------------- パターン切り替え ----------------------------------------
KOOPA_FIRE_030	EQU	$
		DEC	<ENWRK4,X
		BPL	KOOPA_FIRE_050	;セット終了？ ( no:KOOPA_FIRE_050 )
;
;-------------- 大クッパ処理へ ----------------------------------
		DEC	<ENWRK2,X
		LDA	#0100H		;次のファイヤーショットまでのタイマーセット
		STA	ENTIM2,X
		RTS
;
KOOPA_FIRE_050	EQU	$
		LDY	<ENWRK4,X
		LDA	!KP_FIRE_TM,Y	;パターン切り替えタイマーセット
		AND	#00FFH
		STA	ENTIM3,X
		LDA	!KP_FIRE_PT,Y	;パターンＮｏ．セット
		AND	#00FFH
		STA	ENCHPT,X
		CMP	#5
		BNE	KOOPA_FIRE_060	;口開けサウンドセット？ ( no:KOOPA_FIRE_060 )
;
		LDA	#091H		;[♪]
		JSL	>SOUND_3_ON
;
KOOPA_FIRE_060	EQU	$
		JMP	KPF_P_SET
;
;------------------------------------------------------------------------
;-		ファイヤーショット					-
;------------------------------------------------------------------------
KPFIR_SET	EQU	$
		LDA	#010H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#010H		;(A) <-- ターゲット表示タイマー
		JSR	KPF_P_SET_2
;
		LDA	EXXPSL,Y
		STA	<EWORK0		;(EWK0,1) <-- ターゲットＸ座標
		LDA	EXYPSL,Y
		STA	<EWORK2		;(EWK2,3) <-- ターゲットＹ座標
;
		LDA	#KPFIR		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリ確保
		BCS	KPFIR_SET_0050	;     ”   ？ ( no:KPFIR_SET_0050 )
		JMP	KPF_P_SET
;
KPFIR_SET_0050	EQU	$
		LDA	KOOPA_X		;基準Ｘ座標セット
		SEC
		SBC	#8
		STA	ENWRKC,Y
		CLC
		ADC	KOOPA_Z
		SEC			;[ −基準Ｚ座標 ]
		SBC	#0100H		;
		STA	ENXPSL,Y
		LDA	KOOPA_Y		;Ｙ座標セット
		SEC
		SBC	#050H
		STA	ENYPSL,Y
;
		STY	<EWORK4		;(EWK4,5) <-- ファイヤーインデックス
;
		LDA	<EWORK0
		STA	R1		;(R1) <-- 目標Ｘ座標
		LDA	#0100H
		STA	R2		;(R2) <-- 目標Ｚ座標
		LDA	ENWRKC,Y
		STA	R3		;(R3) <-- 現在Ｘ座標
		LDA	KOOPA_Z
		STA	R4		;(R4) <-- 現在Ｚ座標
		CLC
		ADC	#0300H
		ASL	A
		STA	<EWORK6		;(EK6,7) <-- サーチスピード
		STA	R6		;(R6)	 <-- サーチスピード
		M_CHIP	SEARCH_SPEED
;
		LDX	<EWORK4
		LDA	R1
		STA	<ENCONT,X	;ショットＸスピードセット
		LDA	R2
		STA	ENXSPD,X	;Ｚスピードセット
;
		LDA	<EWORK2
		STA	R1		;(R1) <-- 目標Ｙ座標
		LDA	#0100H
		STA	R2		;(R2) <-- 目標Ｚ座標
		LDA	ENYPSL,X
		STA	R3		;(R3) <-- 現在Ｙ座標
		LDA	KOOPA_Z
		STA	<ENWRK2,X	;ファイヤーＺ座標初期セット
		STA	R4		;(R4) <-- 現在Ｚ座標
		LDA	<EWORK6
		STA	R6		;(R6) <-- サーチスピード
		M_CHIP	SEARCH_SPEED
		LDX	<EWORK4
;
		LDA	R1
		STA	ENYSPD,X	;ショットＹスピードセット
		LDX	<ENINDX
		RTS
;
;----------------------------------------------------------------
;-		風船爆弾セット					-
;----------------------------------------------------------------
FKPBM_SET_X	EQU	$
; ENMUKI -->		 [0]	[2]
		WORD	00120H,0FFD0H
;
FKPBM_SET	EQU	$
		LDA	ENTIM1,X
		BNE	FKPBM_SET_0050	;セットＯＫ？ ( no:FKPBM_SET_0050 )
;
		M_CHIP	KPBOM_CHECK
		LDX	<ENINDX
;
		LDA	R1
		BNE	FKPBM_SET_0050	;セットＯＫ？ ( no:FKPBM_SET_0050 )
;
		LDA	#FKPBM		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
		BCC	FKPBM_SET_0050	;      ”    ？ ( no:FKPBM_SET_0050 )
;
		LDA	<RANDM0		;セット向きセット
		AND	#02H
		STA	ENMUKI,Y
		TAX
		LDA	SCCH1		;Ｘ座標セット
		CLC
		ADC	!FKPBM_SET_X,X
		STA	ENXPSL,Y
		LDA	#0770H		;Ｙ座標セット
		STA	ENYPSL,Y
;
		LDX	<ENINDX
		LDA	#0100H
		STA	ENTIM1,X
;
FKPBM_SET_0050	EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		ヤラレ処理						-
;------------------------------------------------------------------------
KOOPA_FAIL	EQU	$
		TYX
;
		JSR	KOOPA_PATN
		JSR	FKPBM_SET	;風船爆弾セット
;
		LDA	#06H		;パターンＮｏ．セット
		STA	ENCHPT,X
;
		LDA	<FRCNT2
		AND	#08H
		BEQ	KOOPA_FAIL_100	;フラッシング？ ( no:KOOPA_FAIL_100 )
;
		LDX	#(15-1)*2
KOOPA_FAIL_050	EQU	$
		LDA	>COL_ADDRESS+KOOPA_FAIL_COL,X
		STA	>DATACOL+2,X
		DEX
		DEX
		BPL	KOOPA_FAIL_050
		LDX	<ENINDX
;
KOOPA_FAIL_100	EQU	$
		LDY	KOOPA_CRSNO	;(Y) <-- ダメージ回数
		LDA	ENTIM3,X
		BEQ	KOOPA_FAIL_250	;セット終了？ ( yes:KOOPA_FAIL_250 )
;
		CPY	#7
		BEQ	KOOPA_FAIL_200	;む・・む・・無念？ ( yes:KOOPA_FAIL_200 )
;
;-------------- ”オットット” ------------------------------------------
		LDA	KOOPA_Z		;押される！！
		CLC
		ADC	#4
		STA	KOOPA_Z
		LDA	KOOPA_Y
		CLC
		ADC	ENMOVY,X
		CMP	ENWRKA,X
		BMI	KOOPA_FAIL_150	;着地？ ( no:KOOPA_FAIL_150 )
;
;-------------- 地響きセット --------------------------------------------
		LDA	#047H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#08H		;地震セット
		STA	TILTCT
;
		LDA	#0F800H		;ジャンプセット
		STA	ENYSPD,X
		LDA	#0100H		;重力セット
		STA	ENGPOW,X
		LDA	#0800H		;最大Ｙスピードセット
		STA	ENGMAX,X
		LDA	ENWRKA,X	;Ｙ座標補正
KOOPA_FAIL_150	EQU	$
		STA	KOOPA_Y
KOOPA_FAIL_200	EQU	$
		RTS
;
KOOPA_FAIL_250	EQU	$
		CPY	#7
		BEQ	KOOPA_FAIL_350	;む・・む・・無念？ ( yes:KOOPA_FAIL_350 )
;
		CPY	#3
		BNE	KOOPA_FAIL_300	;３回目のダメージ？ ( no:KOOPA_FAIL_300 )
;
;-------------- 落下ブロックセットへ ------------------------------------
		JMP	KOOPA_TO_BLOCK
;
;-------------- 大クッパ処理へ ------------------------------------------
KOOPA_FAIL_300	EQU	$
		DEC	<ENWRK2,X
		DEC	<ENWRK2,X
		RTS
;
;-------------- や・・や・・やられた〜！！ ------------------------------
KOOPA_FAIL_350	EQU	$
;
;============== ６Ｗ−８クリアー！！ ====================================
		JSR	W6_8_CLEAR
;
		JSL	>BOSS_EN_CHANGE
;
		LDA	#KOOPA_RMODEA7
		STA	<ENWRK2,X
		LDA	#0200H
		STA	ENTIM0,X
;
		LDA	HD420C		;ヌキカラーグラデーションへ切り替え
		EOR	#00011110B
		STA	HD420C
		STZ	NUKCOL
;
		LDA	#BSCLW		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR		;敵エリア確保
		BCC	KOOPA_FAIL_400	;     ”     ？ ( no:KOOPA_FAIL_400 )
;
		LDA	#0200H		;Ｘ座標セット
;;;;		    SEC
		SBC	SCCH3
		STA	ENDSXL,Y
		CLC
		ADC	SCCH1
		STA	ENXPSL,Y
		LDA	#0200H		;Ｙ座標セット
		SEC
		SBC	SCCV3
		STA	ENDSYL,Y
		CLC
		ADC	SCCV1
		STA	ENYPSL,Y
		LDA	#611FH		;元カラーセット
		STA	ENWRK4,Y
;
		LDA	#08H		;ウィンドウ回数セット
		STA	ENCONT,Y
		LDA	#0800H		;ウィンドウ半径拡大スピード初期セット
		STA	ENWRK8,Y
		LDA	#0FFFFH		;サウンドセットキャンセル！！
		STA	ENTIM0,Y
;
		LDA	#074H		 ;[♪]
		JSL	>SOUND_3_ON
;
KOOPA_FAIL_400	EQU	$
		JSL	>BSCLW_SET_PLSET
		RTS
;
;------------------------------------------------------------------------
;-		大クッパ処理						-
;------------------------------------------------------------------------
KP_WALK_PT	EQU	$
		HEX	0, 2, 3, 1, 3, 2
KP_WALK_TM	EQU	$
		HEX	40,08,08,40,08,08
KP_WALK_P	EQU	KP_WALK_TM-KP_WALK_PT
;
KP_WALK_DASH_Z	EQU	$
; KOOPA_CRSNO -->	 [0]   [1]   [2]   [3]	 [4]   [5]   [6]
		WORD	0700H,0680H,0600H,0400H,0300H,0200H,0000H
;
KOOPA_MOVE	EQU	$
		TYX
;
		JSR	KOOPA_PATN
		JSR	FKPBM_SET	;風船爆弾セット
;
		LDA	ENTIM3,X
		BEQ	KOOPA_MOVE_0010 ;パターン切り替え？ ( yes:KOOPA_MOVE_0010 )
		JMP	KOOPA_MOVE_0100
;
KOOPA_MOVE_0010 EQU	$
		LDY	<ENWRK4,X
		INY
		CPY	#KP_WALK_P
		BCC	KOOPA_MOVE_0050
		LDY	#0
KOOPA_MOVE_0050 EQU	$
		TYA
		STA	<ENWRK4,X
;
		LDA	KOOPA_CRSNO
		ASL	A
		TAX
		LDA	KOOPA_Z
		SEC
		SBC	!KP_WALK_DASH_Z,X
		ASL	A		;(C) <-- (N)
		LDX	!KP_WALK_TM,Y
		TXA			;(A) <-- パターン切り替えタイマーセット
		BCS	KOOPA_MOVE_0070 ;[ BMI ] クッパ遠いのでダッシュ？ ( no:KOOPA_MOVE_0070 )
;
;-------------- ダッシュ！！ --------------------------------------------
		STA	R0
;
		LDX	<ENINDX
		LDA	#02H		;ファイヤーショットキャンセル！！
		STA	ENTIM2,X
;
		LDA	ENWRK8,X
		STA	R6
		SEC
		SBC	#010H
		BPL	KOOPA_MOVE_0060
		LDA	#0
KOOPA_MOVE_0060 EQU	$
		STA	ENWRK8,X
		PHY			;(Y) save
		M_CHIP	MULTIPLY
		PLY			;(Y) load
		LDA	R0
		CMP	#04H
		BCS	KOOPA_MOVE_0070 ;最小タイマーオーバー？ ( no:KOOPA_MOVE_0070 )
;
		LDA	#04H
KOOPA_MOVE_0070 EQU	$
		LDX	<ENINDX
		STA	ENTIM3,X
		LDA	!KP_WALK_PT,Y	;パターンＮｏ．セット
		AND	#00FFH
		STA	ENCHPT,X
		LSR	A		;[ CMP #2 ]
		BNE	KOOPA_MOVE_0100 ;地響きセット？ ( no:KOOPA_MOVE_0100 )
;
;-------------- 地響きセット --------------------------------------------
		LDA	#047H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#020H		;地震セット
		STA	TILTCT
;
		LDA	KOOPA_Z		;Ｚ座標加算
		STA	<EWORK0
		SEC
		SBC	#020H
		STA	KOOPA_Z
		CMP	#0100H
		BPL	KOOPA_MOVE_0080 ;大クッパの勝利？ ( no:KOOPA_MOVE_0080 )
;
		CMP	#0100H-020H
		BMI	KOOPA_MOVE_0100 ;勝利の瞬間？ ( no:KOOPA_MOVE_0100 )
;
;-------------- ”ドカーン！！" ---------------------------------
		LDA	#081H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#0200H		;地震セット
		STA	TILTCT2
		BRA	KOOPA_MOVE_0100
;
KOOPA_MOVE_0080 EQU	$
		CMP	#0180H
		BMI	KOOPA_MOVE_0100 ;ファイヤーショットＯＫ？ ( no:KOOPA_MOVE_0100 )
;
;-------------- ファイヤーショットチェック ------------------------------
		LDA	ENTIM2,X
		BNE	KOOPA_MOVE_0100 ;ファイヤーショット？ ( no:KOOPA_MOVE_0100 )
;
;-------------- ファイヤーショットへ ----------------------------
		INC	<ENWRK2,X
		LDA	#KP_FIR_P
		STA	<ENWRK4,X
		LDA	#030H		;ターゲットカウンター初期セット
		STA	ENWRK6,X
		STZ	ENTIM1,X	;ターゲット表示無しタイマーリセット
;
;-------------- プレイヤー衝突チェック ----------------------------------
KOOPA_MOVE_0100 EQU	$
		LDA	KOOPA_Z
		CMP	#0100H
		BPL	KOOPA_MOVE_0150 ;プレイヤーに当たってる？ ( no:KOOPA_MOVE_0150 )
;
;-------------- 大クッパの勝利！！ ------------------------------
		JSL	>PLFLST
;
		LDY	ENWRKC,X
		CPY	#18H*4
		BCS	KOOPA_MOVE_0150 ;ＢＧ書き換え終了？ ( yes:KOOPA_MOVE_0150 )
;
;-------------- ＢＧ書き換え消去 ------------------------
		TYA
		BIT	#04H
		BEQ	KOOPA_MOVE_0110
		EOR	#0FFFFH
		INC	A
KOOPA_MOVE_0110 EQU	$
		ASL	A
		CLC
		ADC	#02C0H		;[ 02C0H : 中心Ｘ座標 ]
		STA	BGXPS1		;ＢＧ書き換えＸ座標セット
		TYA
		AND	#03H
		ASL	A
		ASL	A
		ASL	A
		ASL	A
;;;;		    CLC
		ADC	#07C0H		;[ 07C0H : 中心Ｙ座標 ]
		STA	BGYPS1		;ＢＧ書き換えＹ座標セット
		LDA	#BGCG
		STA	BGCGNO		;ＢＧ書き換えタイプセット
		LDA	#UT0000
		STA	BGUTNO		;ＢＧ書き換えユニットＮｏ．セット
		JSL	>UNITCHG
;
		JSL	>BGBR0_SET	;破片効果セット
		DEC	SOUND_3_P	;[ 破片効果サウンドキャンセル！！ ]
		LDA	#083H		;[♪]
		JSL	>SOUND_3_ON
;
		LDX	<ENINDX
		INC	ENWRKC,X	;ＢＧ書き換えカウンターｕｐ
;
KOOPA_MOVE_0150 EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		大クッパパターンセット					-
;------------------------------------------------------------------------
KOOPA_SCR_ADRS	EQU	$
		WORD	KOOPA_SCR_1,0	;[0]
		WORD	KOOPA_SCR_1,2	;[1]
		WORD	KOOPA_SCR_0,0	;[2]
		WORD	KOOPA_SCR_0,2	;[3]
		WORD	KOOPA_SCR_2,0	;[4]
		WORD	KOOPA_SCR_3,0	;[5]
		WORD	KOOPA_SCR_4,0	;[6]
KOOPA_PATN_YHS	EQU	$
		WORD	00010H		;[0]
		WORD	00010H		;[1]
		WORD	00000H		;[2]
		WORD	00000H		;[3]
		WORD	00000H		;[4]
		WORD	00000H		;[5]
		WORD	00000H		;[6]
KOOPA_PATN_XHS	EQU	$
		WORD	00010H		;[0]
		WORD	0FFF0H		;[1]
		WORD	00000H		;[2]
		WORD	00000H		;[3]
		WORD	00000H		;[4]
		WORD	00000H		;[5]
		WORD	00000H		;[6]
;
KOOPA_SCR_0	EQU	$
		HEX	FF,FF,FF,FF,FF,FF,ED,EE,EF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,FF,FF,FF,FD,FE,FF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,01,02,0C,0D,0E,0F,FF,04,05,FF,FF
		HEX	FF,FF,FF,11,12,1C,1D,1E,1F,13,14,15,FF,FF
		HEX	FF,FF,FF,21,28,2C,2D,2E,2F,29,24,25,FF,FF
		HEX	FF,FF,30,31,38,3C,3D,3E,3F,39,3A,35,25,FF
		HEX	FF,FF,40,41,42,4C,4D,4E,4F,43,44,45,FF,FF
		HEX	FF,FF,50,51,52,5C,5D,5E,5F,53,54,55,FF,FF
		HEX	FF,00,60,61,62,03,03,03,03,63,64,65,82,FF
		HEX	FF,10,70,71,72,03,03,03,03,73,74,75,92,FF
		HEX	FF,20,80,81,03,03,03,03,03,03,84,85,A2,FF
		HEX	FF,FF,90,91,03,03,03,03,03,03,94,95,FF,FF
;
KOOPA_SCR_1	EQU	$
		HEX	FF,FF,FF,FF,FF,FF,EA,EB,EC,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,FF,FF,FF,FA,FB,FC,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,07,08,0C,0D,0E,0F,FF,0A,0B,FF,FF
		HEX	FF,FF,FF,17,18,1C,1D,1E,1F,19,1A,1B,FF,FF
		HEX	FF,FF,FF,27,28,2C,2D,2E,2F,29,2A,2B,FF,FF
		HEX	FF,FF,36,37,38,3C,3D,3E,3F,39,3A,3B,99,FF
		HEX	FF,FF,46,47,48,4C,4D,4E,4F,49,4A,4B,A9,FF
		HEX	FF,06,56,57,58,5C,5D,5E,5F,59,5A,5B,FF,FF
		HEX	FF,16,66,67,68,03,03,03,03,69,6A,6B,FF,FF
		HEX	FF,26,76,77,78,03,03,03,03,79,7A,7B,88,FF
		HEX	FF,FF,86,87,03,03,03,03,03,89,8A,8B,98,FF
		HEX	FF,FF,90,91,03,03,03,03,03,03,9A,9B,FF,FF
;
KOOPA_SCR_2	EQU	$
		HEX	FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,FF,FF,FF,A0,B0,EF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,01,02,0C,0D,0E,0F,FF,04,05,FF,FF
		HEX	FF,FF,FF,11,12,83,2D,2E,34,13,14,15,FF,FF
		HEX	FF,FF,FF,21,28,3C,3D,3E,3F,29,24,25,FF,FF
		HEX	FF,FF,30,31,38,93,4D,4E,AB,39,3A,35,25,FF
		HEX	FF,FF,40,41,42,A3,CD,CE,BB,43,44,45,FF,FF
		HEX	FF,A4,22,23,52,DC,DD,DE,DF,53,A5,A6,A7,FF
		HEX	FF,B4,32,33,03,03,03,03,03,03,B5,B6,B7,FF
		HEX	FF,C4,96,97,03,03,03,03,03,03,C5,C6,C7,FF
		HEX	FF,FF,86,87,03,03,03,03,03,03,F5,F6,FF,FF
		HEX	FF,FF,90,91,03,03,03,03,03,03,94,95,FF,FF
;
KOOPA_SCR_3	EQU	$
		HEX	FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,FF,FF,6C,6D,6E,6F,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,01,02,7C,7D,7E,7F,FF,04,05,FF,FF
		HEX	FF,FF,FF,11,9D,8C,8D,8E,8F,9E,14,15,FF,FF
		HEX	FF,FF,FF,21,AD,9C,09,09,9F,AE,24,25,FF,FF
		HEX	FF,FF,30,31,BD,AC,09,09,AF,BE,3A,35,25,FF
		HEX	FF,FF,40,41,42,BC,09,09,BF,43,44,45,FF,FF
		HEX	FF,A4,22,23,52,CC,CD,CE,CF,53,A5,A6,A7,FF
		HEX	FF,B4,32,33,03,DC,DD,DE,DF,03,B5,B6,B7,FF
		HEX	FF,C4,96,97,03,03,03,03,03,03,C5,C6,C7,FF
		HEX	FF,FF,86,87,03,03,03,03,03,03,F5,F6,FF,FF
		HEX	FF,FF,90,91,03,03,03,03,03,03,94,95,FF,FF
;
KOOPA_SCR_4	EQU	$
		HEX	FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF
		HEX	FF,FF,FF,FF,FF,6C,6D,6E,6F,FF,FF,FF,FF,FF
		HEX	FF,A1,FF,01,02,7C,7D,7E,7F,FF,A8,05,AA,FF
		HEX	FF,B1,B2,B3,9D,8C,8D,8E,8F,9E,B8,B9,BA,FF
		HEX	C0,C1,C2,C3,AD,9C,09,09,9F,AE,C8,C9,CA,CB
		HEX	D0,D1,D2,D3,D4,AC,09,09,AF,D7,D8,D9,DA,DB
		HEX	FF,FF,E2,E3,E4,BC,09,09,BF,E7,E8,E9,FF,FF
		HEX	FF,FF,F2,F3,F4,CC,CD,CE,CF,F7,F8,F9,25,FF
		HEX	FF,FF,E0,E1,03,DC,DD,DE,DF,03,D5,D6,FF,FF
		HEX	FF,FF,F0,F1,03,03,03,03,03,03,E5,E6,FF,FF
		HEX	FF,FF,86,87,03,03,03,03,03,03,F5,F6,FF,FF
		HEX	FF,FF,90,91,03,03,03,03,03,03,94,95,FF,FF
;
KOOPA_PATN	EQU	$
		LDA	ENCHPT,X
		ASL	A
		ASL	A
		TAY
;
		I16
;
		LDA	!KOOPA_SCR_ADRS+2,Y
		STA	ENMUKI,X	;向きセット
;
		LDA	!KOOPA_SCR_ADRS,Y
		STA	<EWORK0		;(EWK0,1) <-- 転送元アドレス（Ｌ，Ｈ）
		LDA	#(32*4)*(32+(32-(12/2)))+32+(32-(14/2))
		STA	<EWORK2		;(EWK2,3) <-- ＶＲＡＭアドレス
		LDA	#BANK KOOPA_SCR_0
		STA	WORK1		;(WK1,2)  <-- 転送元アドレス（Ｂ）
;
		LDA	#12
		STA	<EWORK4		;(EWK4,5) <-- 縦サイズ
KOOPA_PATN_0050 EQU	$
		LDX	<EWORK0		;(X) <-- 転送元アドレス（Ｌ，Ｈ）
		TXA
		CLC
		ADC	#14
		STA	<EWORK0
		LDY	<EWORK2		;(Y) <-- ＶＲＡＭアドレス
		TYA
		CLC
		ADC	#32*4
		STA	<EWORK2
		LDA	#14
		JSL	>VRAMDX_L_ST
;
		DEC	<EWORK4
		BNE	KOOPA_PATN_0050
;
		I8
;
		LDX	<ENINDX
		LDA	KOOPA_Z
		STA	R1		;(R1) <-- クッパＺ座標
		LDA	ENCHPT,X
		ASL	A
		TAY
		LDA	KOOPA_Y
		CLC
		ADC	!KOOPA_PATN_YHS,Y
		CLC
		ADC	TILTAL
		STA	R2		;(R2) <-- クッパＹ座標
		LDA	KOOPA_X
		CLC
		ADC	!KOOPA_PATN_XHS,Y
		STA	R3		;(R3) <-- クッパＸ座標
		LDA	ENMUKI,X	;向きセット
		STA	R5		;(R5) <-- 向き
		LSR	A
		STA	M7SEL		;モード７反転フラグセット
		M_CHIP	KOOPA_3D_SET
;
		LDA	ESCCH3		;モード７スクロールカウンターセット
		STA	SCCH3
		LDA	ESCCV3
		STA	SCCV3
		LDA	R9		;モード７パラメータセット
		STA	M7A
		STZ	M7B
		STZ	M7C
		STA	M7D
;
;-------------- カラーフェード ------------------------------------------
		LDA	R6
		ASL	A
		SEC
		SBC	#048H
		BPL	KOOPA_PATN_0100
		LDA	#00
KOOPA_PATN_0100 EQU	$
		CMP	#0100H
		BMI	KOOPA_PATN_0150
		LDA	#0100H
KOOPA_PATN_0150 EQU	$
		STA	R6		;(R6) <-- 倍率
		LDA	#COL_ADDRESS+KOOPA_M7_COL_1
		STA	R14		;(R14) <-- 先カラーデータアドレス（Ｌ，Ｈ）
		LDA	#BANK COL_ADDRESS+KOOPA_M7_COL_1
		STA	R0		;(R0) <-- 先カラーデータアドレス（Ｂ）
		LDA	#01H
		STA	R8		;(R8) <-- カラーポインター（０〜ＦＦ）
		LDA	#15
		STA	R12		;(R12) <-- カラー数
		M_CHIP	COL_MORF_B
;
;;;;		    LDA	    #00010001B
;;;;		    STA	    OBJ_BG_FG
;
		LDX	<ENINDX
		LDA	KOOPA_CRSFG
		BEQ	KOOPA_PATN_0200 ;バクダン当てられた？ ( no:KOOPA_PATN_0200 )
;
		LDY	<ENWRK2,X
		CPY	#KOOPA_RMODEA6
		BCS	KOOPA_PATN_0200 ;ヤラレモード？ ( yes:KOOPA_PATN_0200 )
;
;;;;		    LDY	    ENCHPT,X
;;;;		    CPY	    #5
;;;;		    BCC	    KOOPA_PATN_0160 ;口開けてる？ ( no:KOOPA_PATN_0160 )
;
;-------------- ヤラレタ！！ --------------------------------------------
		INC	KOOPA_CRSNO	;ダメージ回数ｕｐ！！
		LDA	#080H		;大クッパダッシュカウンターリセット
		STA	ENWRK8,X
;
		LDA	#092H		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#KOOPA_RMODEA6
		STA	<ENWRK2,X
		LDA	#080H
		STA	ENTIM3,X
		PLA			;[ pull pull return !! ]
;
KOOPA_PATN_0160 EQU	$
		STZ	KOOPA_CRSFG
;
KOOPA_PATN_0200 EQU	$
		RTS
;
;
;
;
KOOPA_CHAR	EQU	$
		BYTE	0FAH,0F5H	;[00]
		HEX	05,0C,00
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	006H,00DH
		HEX	36,0C,00
		BYTE	002H,005H
		HEX	26,0C,00
		BYTE	0FAH,0F5H
		HEX	05,0C,02
		BYTE	0F2H,0FDH
		HEX	14,0C,02
		BYTE	006H,0F7H
		HEX	04,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
;
		BYTE	0FAH,0F5H	;[01]
		HEX	22,0C,00
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	006H,00DH
		HEX	36,0C,00
		BYTE	002H,005H
		HEX	26,0C,00
		BYTE	0FAH,0F5H
		HEX	22,0C,02
		BYTE	0F2H,0FDH
		HEX	14,0C,02
		BYTE	006H,0F7H
		HEX	04,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F2H,0F8H	;[02]
		HEX	37,0C,00
		BYTE	0FAH,000H
		HEX	68,0C,02
		BYTE	002H,0F8H
		HEX	39,0C,00
		BYTE	0F2H,0F8H
		HEX	37,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	006H,00DH
		HEX	36,0C,00
		BYTE	007H,0F9H
		HEX	07,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F3H,0F7H	;[03]
		HEX	37,0C,00
		BYTE	0FBH,0FFH
		HEX	48,0C,02
		BYTE	003H,0F7H
		HEX	39,0C,00
		BYTE	0F3H,0F7H
		HEX	37,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	006H,00DH
		HEX	36,0C,00
		BYTE	008H,0FAH
		HEX	07,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F4H,0F3H	;[04]
		HEX	45,0C,00
		BYTE	004H,0FAH
		HEX	57,0C,00
		BYTE	0F4H,0F3H
		HEX	45,0C,02
		BYTE	0FBH,0FEH
		HEX	66,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	006H,00DH
		HEX	36,0C,00
		BYTE	00BH,0FBH
		HEX	07,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F5H,0F1H	;[05]
		HEX	45,0C,00
		BYTE	0F5H,0F1H
		HEX	45,0C,02
		BYTE	005H,0F8H
		HEX	57,0C,00
		BYTE	0FCH,0FDH
		HEX	66,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	007H,00DH
		HEX	36,0C,00
		BYTE	00DH,0F9H
		HEX	07,0C,00
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	009H,006H
		HEX	0B,8C,02
		BYTE	001H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F7H,0EEH	;[06]
		HEX	45,0C,00
		BYTE	007H,0F6H
		HEX	57,0C,00
		BYTE	0FFH,0FEH
		HEX	66,0C,02
		BYTE	0F7H,0EEH
		HEX	45,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	007H,00DH
		HEX	36,0C,00
		BYTE	00FH,0F8H
		HEX	07,0C,00
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	009H,006H
		HEX	0B,8C,02
		BYTE	002H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F7H,0EEH	;[07]
		HEX	45,0C,00
		BYTE	0F7H,0EEH
		HEX	45,0C,02
		BYTE	007H,0F6H
		HEX	57,0C,00
		BYTE	0FFH,0FDH
		HEX	66,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	007H,00DH
		HEX	36,0C,00
		BYTE	00FH,0F7H
		HEX	04,0C,00
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	009H,006H
		HEX	0B,8C,02
		BYTE	002H,0FEH
		HEX	1A,8C,02
;
		BYTE	0F9H,0F9H	;[08]
		HEX	05,0C,00
		BYTE	001H,009H
		HEX	26,0C,00
		BYTE	0F9H,0F9H
		HEX	05,0C,02
		BYTE	0F1H,001H
		HEX	14,0C,02
		BYTE	00BH,00DH
		HEX	2D,0C,00
		BYTE	0FBH,00DH
		HEX	2C,0C,00
		BYTE	005H,00DH
		HEX	36,0C,00
		BYTE	004H,0FAH
		HEX	04,0C,00
		BYTE	000H,00FH
		HEX	0A,8C,00
		BYTE	008H,007H
		HEX	0B,8C,02
		BYTE	000H,0FFH
		HEX	1A,8C,02
;
		BYTE	00BH,006H	;[09]
		HEX	34,8C,00
		BYTE	003H,0FFH
		HEX	26,0C,00
		BYTE	0FBH,0EFH
		HEX	05,0C,02
		BYTE	0F3H,0F7H
		HEX	14,0C,02
		BYTE	008H,0F2H
		HEX	07,0C,00
		BYTE	000H,00AH
		HEX	0A,8C,00
		BYTE	008H,002H
		HEX	0B,8C,02
		BYTE	000H,0FAH
		HEX	1A,8C,02
		BYTE	00AH,00EH
		HEX	2D,8C,00
		BYTE	001H,00EH
		HEX	2C,8C,00
		BYTE	0FCH,006H
		HEX	36,0C,00
;
		BYTE	00CH,007H	;[0A]
		HEX	35,0C,00
		BYTE	00BH,00FH
		HEX	2D,0C,00
		BYTE	0FEH,00FH
		HEX	2C,0C,00
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	003H,006H
		HEX	26,0C,00
		BYTE	0F3H,0FEH
		HEX	14,0C,02
		BYTE	0FBH,0F6H
		HEX	05,0C,02
		BYTE	007H,0F8H
		HEX	04,0C,00
		BYTE	009H,006H
		HEX	0B,8C,02
		BYTE	001H,0FEH
		HEX	1A,8C,02
		BYTE	0FAH,008H
		HEX	35,4C,00
;
		BYTE	002H,006H	;[0B]
		HEX	26,0C,00
		BYTE	0FAH,0F6H
		HEX	05,0C,02
		BYTE	0F2H,0FEH
		HEX	14,0C,02
		BYTE	00AH,009H
		HEX	36,4C,00
		BYTE	006H,0F8H
		HEX	04,0C,00
		BYTE	00EH,00CH
		HEX	3C,4C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	0FDH,00CH
		HEX	3C,0C,00
		BYTE	0FAH,009H
		HEX	36,0C,00
;
		BYTE	002H,004H	;[0C]
		HEX	26,0C,00
		BYTE	0FAH,0F4H
		HEX	05,0C,02
		BYTE	0F2H,0FCH
		HEX	14,0C,02
		BYTE	009H,00AH
		HEX	36,4C,00
		BYTE	006H,0F6H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
		BYTE	0FDH,00AH
		HEX	36,0C,00
;
		BYTE	002H,004H	;[0D]
		HEX	26,0C,00
		BYTE	0FAH,0F4H
		HEX	22,0C,02
		BYTE	0F2H,0FCH
		HEX	14,0C,02
		BYTE	009H,00AH
		HEX	36,4C,00
		BYTE	006H,0F6H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
		BYTE	0FDH,00AH
		HEX	36,0C,00
;
		BYTE	008H,009H	;[0E]
		HEX	36,0C,00
		BYTE	00EH,00EH
		HEX	2D,4C,00
		BYTE	002H,007H
		HEX	29,0C,00
		BYTE	0FAH,0F7H
		HEX	08,0C,02
		BYTE	0F2H,0FFH
		HEX	17,0C,02
		BYTE	0FDH,0F4H
		HEX	54,0C,00
		BYTE	002H,00EH
		HEX	2C,0C,00
		BYTE	00AH,003H
		HEX	0B,8C,02
		BYTE	002H,0FBH
		HEX	1A,8C,02
		BYTE	0FDH,009H
		HEX	36,0C,00
		BYTE	002H,00BH
		HEX	0A,8C,00
;
		BYTE	009H,018H	;[0F]
		HEX	6C,CC,00
		BYTE	006H,0FEH
		HEX	2F,8C,00
		BYTE	0FEH,0FEH
		HEX	2E,8C,00
		BYTE	009H,005H
		HEX	34,0C,00
		BYTE	0F1H,010H
		HEX	07,4C,00
		BYTE	0F8H,00EH
		HEX	6A,0C,02
		BYTE	001H,010H
		HEX	6C,CC,02
		BYTE	006H,00EH
		HEX	0F,8C,00
		BYTE	0FEH,0FEH
		HEX	1E,8C,02
		BYTE	0F6H,006H
		HEX	0D,8C,02
		BYTE	00CH,005H
		HEX	2D,8C,00
;
		BYTE	009H,018H	;[10]
		HEX	7B,0C,00
		BYTE	0FFH,01DH
		HEX	04,CC,00
		BYTE	004H,006H
		HEX	36,8C,00
		BYTE	005H,010H
		HEX	5F,0C,00
		BYTE	0FDH,000H
		HEX	3E,0C,02
		BYTE	0F5H,008H
		HEX	4D,0C,02
		BYTE	0FFH,01DH
		HEX	04,CC,00
		BYTE	001H,010H
		HEX	6A,0C,02
		BYTE	009H,00DH
		HEX	6C,CC,02
		BYTE	008H,002H
		HEX	2D,0C,00
		BYTE	0FFH,002H
		HEX	2C,0C,00
;
		BYTE	0FFH,017H	;[11]
		HEX	2E,0C,00
		BYTE	00BH,01FH
		HEX	54,8C,00
		BYTE	003H,00AH
		HEX	34,4C,00
		BYTE	004H,005H
		HEX	2D,0C,00
		BYTE	00BH,01FH
		HEX	54,8C,00
		BYTE	0FBH,005H
		HEX	2C,0C,00
		BYTE	007H,007H
		HEX	0F,0C,00
		BYTE	0FFH,00FH
		HEX	1E,0C,02
		BYTE	0F7H,007H
		HEX	0D,0C,02
		BYTE	008H,00FH
		HEX	6E,0C,02
		BYTE	00BH,006H
		HEX	6C,4C,02
;
		BYTE	007H,01AH	;[12]
		HEX	3B,8C,00
		BYTE	006H,0FCH
		HEX	6C,0C,00
		BYTE	003H,00FH
		HEX	35,CC,00
		BYTE	0FAH,00BH
		HEX	2C,0C,00
		BYTE	003H,00BH
		HEX	2D,0C,00
		BYTE	0FFH,00AH
		HEX	5A,8C,00
		BYTE	0FFH,012H
		HEX	3A,8C,02
		BYTE	007H,00AH
		HEX	4B,8C,02
		BYTE	00AH,005H
		HEX	6E,0C,02
		BYTE	006H,0FCH
		HEX	6C,0C,02
		BYTE	014H,013H
		HEX	54,CC,00
;
		BYTE	006H,00AH	;[13]
		HEX	34,4C,00
		BYTE	00AH,005H
		HEX	26,0C,00
		BYTE	0FAH,0FDH
		HEX	14,0C,02
		BYTE	002H,0F5H
		HEX	05,0C,02
		BYTE	010H,0FFH
		HEX	04,8C,00
		BYTE	002H,006H
		HEX	0A,0C,00
		BYTE	0FBH,00EH
		HEX	2C,0C,00
		BYTE	004H,00EH
		HEX	2D,0C,00
		BYTE	002H,00EH
		HEX	1A,0C,02
		BYTE	00AH,006H
		HEX	0B,0C,02
		BYTE	0FDH,00AH
		HEX	34,4C,00
;
		BYTE	002H,007H	;[14]
		HEX	29,0C,00
		BYTE	0F2H,0FFH
		HEX	17,0C,02
		BYTE	0FAH,0F7H
		HEX	08,0C,02
		BYTE	002H,0F5H
		HEX	54,4C,00
		BYTE	002H,0F5H
		HEX	54,4C,00
		BYTE	00CH,00DH
		HEX	2D,0C,00
		BYTE	00CH,003H
		HEX	3D,0C,00
		BYTE	0FCH,00DH
		HEX	2C,0C,00
		BYTE	001H,0FEH
		HEX	1A,8C,02
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	009H,006H
		HEX	0B,8C,02
;
		BYTE	001H,00AH	;[15]
		HEX	29,0C,00
		BYTE	0F1H,002H
		HEX	17,0C,02
		BYTE	0F9H,0FAH
		HEX	08,0C,02
		BYTE	0FDH,0F7H
		HEX	54,0C,00
		BYTE	0FDH,0F7H
		HEX	54,0C,00
		BYTE	00CH,006H
		HEX	35,0C,00
		BYTE	0FBH,00BH
		HEX	2C,0C,00
		BYTE	00EH,00BH
		HEX	2D,0C,00
		BYTE	001H,0FEH
		HEX	1A,8C,02
		BYTE	001H,00EH
		HEX	0A,8C,00
		BYTE	009H,006H
		HEX	0B,8C,02
;
		BYTE	003H,009H	;[16]
		HEX	29,0C,00
		BYTE	0FBH,0F9H
		HEX	08,0C,02
		BYTE	0F3H,001H
		HEX	17,0C,02
		BYTE	00EH,004H
		HEX	35,0C,00
		BYTE	006H,0F9H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	002H,00AH
		HEX	5A,0C,00
		BYTE	00AH,002H
		HEX	4B,0C,02
		BYTE	002H,0FAH
		HEX	3A,0C,02
		BYTE	000H,00CH
		HEX	36,0C,00
		BYTE	011H,002H
		HEX	2C,CC,00
;
		BYTE	00CH,008H	;[17]
		HEX	34,8C,00
		BYTE	0FDH,00BH
		HEX	2C,0C,00
		BYTE	006H,000H
		HEX	26,0C,00
		BYTE	0FEH,0F0H
		HEX	05,0C,02
		BYTE	0F6H,0F8H
		HEX	14,0C,02
		BYTE	00AH,0F2H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	002H,00CH
		HEX	0A,8C,00
		BYTE	00AH,004H
		HEX	0B,8C,02
		BYTE	002H,0FCH
		HEX	1A,8C,02
		BYTE	0FBH,003H
		HEX	35,4C,00
;
		BYTE	005H,0EEH	;[18]
		HEX	05,0C,00
		BYTE	006H,006H
		HEX	35,CC,00
		BYTE	0FDH,004H
		HEX	2D,0C,00
		BYTE	00DH,0FEH
		HEX	26,0C,00
		BYTE	005H,0EEH
		HEX	05,0C,02
		BYTE	0FDH,0F6H
		HEX	14,0C,02
		BYTE	013H,0F4H
		HEX	07,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	004H,00CH
		HEX	0A,8C,00
		BYTE	00CH,004H
		HEX	0B,8C,02
		BYTE	004H,0FCH
		HEX	1A,8C,02
;
		BYTE	004H,0EEH	;[19]
		HEX	05,0C,00
		BYTE	007H,006H
		HEX	35,CC,00
		BYTE	0FDH,005H
		HEX	2D,0C,00
		BYTE	00CH,0FEH
		HEX	26,0C,00
		BYTE	004H,0EEH
		HEX	05,0C,02
		BYTE	0FCH,0F6H
		HEX	14,0C,02
		BYTE	012H,0F4H
		HEX	07,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	003H,00CH
		HEX	0A,8C,00
		BYTE	00BH,004H
		HEX	0B,8C,02
		BYTE	003H,0FCH
		HEX	1A,8C,02
;
		BYTE	0F0H,004H	;[1A]
		HEX	24,0C,00
		BYTE	0F8H,0F4H
		HEX	02,0C,02
		BYTE	0F8H,0FCH
		HEX	30,0C,02
		BYTE	00AH,009H
		HEX	34,8C,00
		BYTE	0F0H,0FCH
		HEX	14,0C,00
		BYTE	003H,0F4H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	0FFH,00DH
		HEX	0A,8C,00
		BYTE	007H,005H
		HEX	0B,8C,02
		BYTE	0FFH,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
;
		BYTE	0F1H,006H	;[1B]
		HEX	24,0C,00
		BYTE	0F9H,0F6H
		HEX	02,0C,02
		BYTE	0F9H,0FEH
		HEX	30,0C,02
		BYTE	00AH,007H
		HEX	35,0C,00
		BYTE	0F1H,0FEH
		HEX	14,0C,00
		BYTE	004H,0F6H
		HEX	04,0C,00
		BYTE	00EH,00CH
		HEX	3C,4C,00
		BYTE	0FFH,00EH
		HEX	0A,8C,00
		BYTE	007H,006H
		HEX	0B,8C,02
		BYTE	0FFH,0FEH
		HEX	1A,8C,02
		BYTE	0FCH,00CH
		HEX	3C,0C,00
;
		BYTE	002H,004H	;[1C]
		HEX	26,0C,00
		BYTE	0FAH,0F4H
		HEX	02,0C,02
		BYTE	0F2H,0FCH
		HEX	14,0C,02
		BYTE	0F8H,009H
		HEX	44,0C,00
		BYTE	009H,00AH
		HEX	36,4C,00
		BYTE	006H,0F6H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
;
		BYTE	002H,004H	;[1D]
		HEX	26,0C,00
		BYTE	0FAH,0F4H
		HEX	22,0C,02
		BYTE	0F2H,0FCH
		HEX	14,0C,02
		BYTE	0F8H,009H
		HEX	44,0C,00
		BYTE	009H,00AH
		HEX	36,4C,00
		BYTE	006H,0F6H
		HEX	04,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
;
		BYTE	0F9H,0F1H	;[1E]
		HEX	02,0C,02
		BYTE	0FAH,0FFH
		HEX	68,0C,02
		BYTE	0F2H,0F7H
		HEX	37,0C,02
		BYTE	0F8H,007H
		HEX	44,0C,00
		BYTE	009H,00AH
		HEX	36,4C,00
		BYTE	007H,0F8H
		HEX	07,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
;
		BYTE	0FAH,0F0H	;[1F]
		HEX	02,0C,02
		BYTE	0F3H,0F6H
		HEX	37,0C,02
		BYTE	0FBH,0FEH
		HEX	48,0C,02
		BYTE	0F8H,007H
		HEX	44,0C,00
		BYTE	009H,009H
		HEX	36,4C,00
		BYTE	009H,0F9H
		HEX	07,0C,00
		BYTE	00DH,00CH
		HEX	3C,4C,00
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3C,0C,00
;
		BYTE	0F3H,002H	;[20]
		HEX	24,0C,00
		BYTE	0FBH,0FAH
		HEX	42,0C,02
		BYTE	00AH,00DH
		HEX	2D,0C,00
		BYTE	003H,00AH
		HEX	3D,CC,00
		BYTE	0FBH,0F2H
		HEX	05,0C,02
		BYTE	0F3H,0FAH
		HEX	14,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	008H,0F5H
		HEX	04,0C,00
		BYTE	0FBH,00AH
		HEX	3D,CC,00
;
		BYTE	003H,00BH	;[21]
		HEX	3D,CC,00
		BYTE	0F9H,0FEH
		HEX	42,0C,02
		BYTE	0F1H,006H
		HEX	24,0C,00
		BYTE	00BH,00AH
		HEX	2D,0C,00
		BYTE	0F9H,0F6H
		HEX	05,0C,02
		BYTE	0F1H,0FEH
		HEX	14,0C,00
		BYTE	0FFH,010H
		HEX	0A,8C,00
		BYTE	007H,008H
		HEX	0B,8C,02
		BYTE	0FFH,000H
		HEX	1A,8C,02
		BYTE	005H,0F8H
		HEX	04,0C,00
		BYTE	0FAH,00BH
		HEX	3D,CC,00
;
		BYTE	0F5H,0FEH	;[22]
		HEX	24,0C,00
		BYTE	0FDH,0EEH
		HEX	02,0C,02
		BYTE	0FDH,0F6H
		HEX	30,0C,02
		BYTE	0F5H,0F6H
		HEX	14,0C,00
		BYTE	009H,00DH
		HEX	2D,0C,00
		BYTE	003H,00CH
		HEX	3D,CC,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3D,CC,00
		BYTE	009H,0F0H
		HEX	04,0C,00
;
		BYTE	0F5H,0FEH	;[23]
		HEX	24,0C,00
		BYTE	0FDH,0EEH
		HEX	22,0C,02
		BYTE	0FDH,0F6H
		HEX	30,0C,02
		BYTE	0F5H,0F6H
		HEX	14,0C,00
		BYTE	009H,00DH
		HEX	2D,0C,00
		BYTE	003H,00CH
		HEX	3D,CC,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3D,CC,00
		BYTE	009H,0F0H
		HEX	04,0C,00
;
		BYTE	0FAH,0F7H	;[24]
		HEX	6C,0C,02
		BYTE	0FFH,0FFH
		HEX	25,0C,00
		BYTE	007H,0FEH
		HEX	41,0C,00
		BYTE	0FFH,0EEH
		HEX	02,0C,02
		BYTE	009H,00DH
		HEX	2D,0C,00
		BYTE	003H,00CH
		HEX	3D,CC,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3D,CC,00
		BYTE	008H,0F0H
		HEX	07,0C,00
;
		BYTE	011H,0FEH	;[25]
		HEX	24,4C,00
		BYTE	011H,0F6H
		HEX	14,4C,00
		BYTE	001H,0EEH
		HEX	02,4C,02
		BYTE	001H,0F6H
		HEX	30,4C,02
		BYTE	009H,00DH
		HEX	2D,0C,00
		BYTE	003H,00CH
		HEX	3D,CC,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	0FEH,00CH
		HEX	3D,CC,00
		BYTE	0FDH,0F0H
		HEX	04,4C,00
;
		BYTE	007H,00AH	;[26]
		HEX	2D,0C,00
		BYTE	002H,004H
		HEX	3D,4C,00
		BYTE	0FDH,0FCH
		HEX	68,0C,02
		BYTE	0F5H,0FCH
		HEX	47,0C,00
		BYTE	0F5H,0F4H
		HEX	37,0C,00
		BYTE	0FDH,0F4H
		HEX	00,4C,02
		BYTE	0FAH,00AH
		HEX	2C,0C,00
		BYTE	000H,00EH
		HEX	0A,8C,00
		BYTE	008H,006H
		HEX	0B,8C,02
		BYTE	000H,0FEH
		HEX	1A,8C,02
		BYTE	003H,0EFH
		HEX	54,0C,00
;
		BYTE	0FCH,0F2H	;[27]
		HEX	10,0C,00
		BYTE	00BH,008H
		HEX	2D,0C,00
		BYTE	0FAH,008H
		HEX	2C,0C,00
		BYTE	006H,002H
		HEX	36,CC,00
		BYTE	004H,002H
		HEX	31,8C,00
		BYTE	0FCH,0F2H
		HEX	10,0C,02
		BYTE	0F4H,0FAH
		HEX	17,0C,02
		BYTE	000H,00DH
		HEX	0A,8C,00
		BYTE	008H,005H
		HEX	0B,8C,02
		BYTE	000H,0FDH
		HEX	1A,8C,02
		BYTE	003H,0F1H
		HEX	54,4C,00
;
		BYTE	0FCH,0FEH	;[28]
		HEX	10,0C,02
		BYTE	0F4H,006H
		HEX	17,0C,02
		BYTE	004H,00EH
		HEX	31,8C,00
		BYTE	0FFH,0FCH
		HEX	54,0C,00
		BYTE	00EH,004H
		HEX	3D,8C,00
		BYTE	00AH,005H
		HEX	5F,0C,00
		BYTE	002H,0F5H
		HEX	3E,0C,02
		BYTE	0FAH,0FDH
		HEX	4D,0C,02
		BYTE	0F8H,0FBH
		HEX	3D,4C,00
		BYTE	00CH,0F7H
		HEX	2D,0C,00
		BYTE	000H,0F4H
		HEX	2C,0C,00
;
		BYTE	010H,006H	;[29]
		HEX	3D,8C,00
		BYTE	0FCH,0FDH
		HEX	10,0C,02
		BYTE	0F4H,005H
		HEX	17,0C,02
		BYTE	004H,00DH
		HEX	31,8C,00
		BYTE	000H,0FBH
		HEX	54,4C,00
		BYTE	00CH,00AH
		HEX	0F,8C,00
		BYTE	004H,0FAH
		HEX	1E,8C,02
		BYTE	008H,0F8H
		HEX	2C,4C,00
		BYTE	012H,0FEH
		HEX	2D,0C,00
		BYTE	0FDH,0FBH
		HEX	3D,4C,00
		BYTE	0FCH,002H
		HEX	0D,8C,02
;
		BYTE	0FCH,0FCH	;[2A]
		HEX	10,0C,02
		BYTE	0F4H,004H
		HEX	17,0C,02
		BYTE	004H,00CH
		HEX	31,8C,00
		BYTE	001H,0FAH
		HEX	54,4C,00
		BYTE	001H,0FAH
		HEX	54,4C,00
		BYTE	00FH,00CH
		HEX	3D,8C,00
		BYTE	003H,00DH
		HEX	5A,0C,00
		BYTE	003H,0FDH
		HEX	3A,0C,02
		BYTE	00BH,005H
		HEX	4B,0C,02
		BYTE	00EH,000H
		HEX	2C,CC,00
		BYTE	017H,007H
		HEX	2D,8C,00
;
		BYTE	00BH,0FCH	;[2B]
		HEX	3B,0C,00
		BYTE	0FCH,0FDH
		HEX	10,0C,02
		BYTE	0F4H,005H
		HEX	17,0C,02
		BYTE	004H,00DH
		HEX	31,8C,00
		BYTE	002H,0FCH
		HEX	54,4C,00
		BYTE	002H,0FCH
		HEX	54,4C,00
		BYTE	00FH,00BH
		HEX	3D,8C,00
		BYTE	003H,00CH
		HEX	5A,0C,00
		BYTE	003H,0FCH
		HEX	3A,0C,02
		BYTE	00BH,004H
		HEX	4B,0C,02
		BYTE	016H,00CH
		HEX	2D,8C,00
;
		BYTE	0FCH,0FDH	;[2C]
		HEX	08,0C,02
		BYTE	0F4H,005H
		HEX	17,0C,02
		BYTE	004H,00DH
		HEX	29,0C,00
		BYTE	002H,0FCH
		HEX	54,4C,00
		BYTE	002H,0FAH
		HEX	3A,0C,00
		BYTE	00AH,00AH
		HEX	36,4C,00
		BYTE	002H,0FAH
		HEX	3A,0C,02
		BYTE	00AH,002H
		HEX	4B,0C,02
		BYTE	012H,00CH
		HEX	2D,CC,00
		BYTE	00AH,00CH
		HEX	2C,8C,00
		BYTE	002H,00AH
		HEX	5A,0C,00
;
		BYTE	0FBH,0FDH	;[2D]
		HEX	08,0C,02
		BYTE	0F3H,005H
		HEX	17,0C,02
		BYTE	003H,00DH
		HEX	29,0C,00
		BYTE	001H,0FCH
		HEX	54,4C,00
		BYTE	000H,0F8H
		HEX	3A,0C,00
		BYTE	008H,008H
		HEX	36,4C,00
		BYTE	000H,0F8H
		HEX	3A,0C,02
		BYTE	008H,000H
		HEX	4B,0C,02
		BYTE	00FH,00CH
		HEX	2D,CC,00
		BYTE	006H,00CH
		HEX	2C,8C,00
		BYTE	000H,008H
		HEX	5A,0C,00
;
		BYTE	0F8H,0FAH	;[2E]
		HEX	10,0C,00
		BYTE	000H,00AH
		HEX	29,0C,00
		BYTE	0F8H,0FAH
		HEX	10,0C,02
		BYTE	0F0H,002H
		HEX	17,0C,02
		BYTE	00CH,00DH
		HEX	2D,0C,00
		BYTE	0FAH,00DH
		HEX	2C,0C,00
		BYTE	005H,00DH
		HEX	36,0C,00
		BYTE	003H,0FBH
		HEX	04,0C,00
		BYTE	000H,00FH
		HEX	0A,8C,00
		BYTE	008H,007H
		HEX	0B,8C,02
		BYTE	000H,0FFH
		HEX	1A,8C,02
;
		BYTE	00CH,008H	;[2F]
		HEX	36,4C,00
		BYTE	0FAH,002H
		HEX	04,4C,00
		BYTE	0FAH,008H
		HEX	70,8C,00
		BYTE	0FAH,010H
		HEX	50,8C,02
		BYTE	002H,008H
		HEX	61,8C,02
		BYTE	003H,0FAH
		HEX	2E,8C,00
		BYTE	00BH,00AH
		HEX	0F,8C,00
		BYTE	003H,0FAH
		HEX	1E,8C,02
		BYTE	0FBH,002H
		HEX	0D,8C,02
		BYTE	00FH,004H
		HEX	2D,8C,00
		BYTE	00FH,004H
		HEX	2D,8C,00
;
;
;************************************************************************
;*		nose	( クッパ )					*
;************************************************************************
;ENWRK0 ふりふりカウンター
KOOPA_NS_XSPD	EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		WORD	0FDBBH,00245H
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		WORD	0FE00H,00200H
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************
;
KOOPANS		EQU	$			;-- koopans --
		LDA	PLXSPD			;プレイヤーじっとしてる ?
		BEQ	KOOPANS0100		; yes: KOOPANS0100

		STZ	KPLDWCNT

		CLC				;走ってる ?
		ADC	#00200H			;
		CMP	#00400H			;
		BCC	KOOPANS0600		;  no: KOOPANS0600

		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	KOOPANS0700		;  no: KOOPANS0700

		LDA	#00008H
		STA	ENTIM1,X
		INC	ENCHPT,X
		LDY	ENCHPT,X
		CPY	#021H
		BEQ	KOOPANS0700
		BRA	KOOPANS0600

KOOPANS0100	EQU	$
		LDA	PLSITD			;プレイヤーしゃがんでる ?
		BNE	KOOPANS0200		; yes: KOOPANS0200

		LDA	KEYC1L			;プレイヤーじっとしてる ?
		BNE	KOOPANS0600		;  no: KOOPANS0600

KOOPANS0200	EQU	$
		LDY	KPLDWCNT
		INY
		INY
		STY	KPLDWCNT
		BPL	KOOPANS0300

		LDY	#07FH
		STY	KPLDWCNT

KOOPANS0300	EQU	$
		CPY	#020H
		BCC	KOOPANS0600		;  no: KOOPANS0600

		TXY
		JSR	K_CHPT_SET
		BRA	KOOPANS0800

KOOPANS0600	EQU	$
		LDA	#00020H
		STA	ENCHPT,X

KOOPANS0700	EQU	$
		LDA	#K_KYORO_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		STA	ENWRKC,X		;
		LDA	#K_KYORO_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#0FFFFH			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;

KOOPANS0800	EQU	$
		LDA	KEYC1L
		AND	#00300H
		CMP	KEYWORK
		BEQ	KOOPANS1800
		STA	KEYWORK
		CMP	#00000
		BEQ	KOOPANS1800

		LDY	<ENWRK0,X		;はじめて ?
		BEQ	KOOPANS1500		; yes: KOOPANS1500

		LDA	ENTIM0,X
		BEQ	KOOPANS1500

		CPY	#005-1			;振り落とされる ?
		BPL	KOOPANS2500		; yes: KOOPANS2500

		INC	<ENWRK0,X
		BRA	KOOPANS1600

KOOPANS1500	EQU	$
		LDY	#001
		STY	<ENWRK0,X

KOOPANS1600	EQU	$
		LDA	#00040H
		STA	ENTIM0,X
		BRA	KOOPANS1900

KOOPANS1800	EQU	$
		LDA	ENTIM0,X
		BNE	KOOPANS1900

		STZ	<ENWRK0,X

KOOPANS1900	EQU	$
		LDA	PLDOSN			;プレイヤーどすんした ?
		BEQ	KOOPANS2300		;  no: KOOPANS2300

		LDA	PLBGCR			;プレイヤー着地した ?
		AND	#0000000000000111B	;
		BNE	KOOPANS2500		; yes: KOOPANS2500

KOOPANS2300	EQU	$
		LDA	BABYNO			;赤ちゃん乗ってきた ?
		BPL	KOOPANS2800		;  no: KOOPANS2800

KOOPANS2500	EQU	$
		STZ	<ENWRK0,X
		LDA	#EMOVE
		STA	ENMODE,X

		STZ	ENMYNSFG		;敵のせ情報フラグクリア
		LDY	PLCMKI
		LDA	!KOOPA_NS_XSPD,Y
		STA	ENXSPD,X
		STA	ENXMAX,X

		JSR	KOOPA_BOUND

 IF PAL	   ;*** PAL 対応 [1995/7/21] ******************
		LDA	#0FC99H
		STA	ENYSPD,X
		LDA	#0001AH			;プレイヤーチェックロックタイマーセット
		STA	ENTIM3,X		;
		LDA	#00050H
		STA	ENGPOW,X
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#0FD00H
		STA	ENYSPD,X
		LDA	#00020H			;プレイヤーチェックロックタイマーセット
		STA	ENTIM3,X		;
		ASL	A	;[ LDA	#00040H ]
		STA	ENGPOW,X
 ENDIF	   ;*** PAL 対応 [1995/7/21] ******************


KOOPANS2800	EQU	$

		RTL
;
;************************************************************************
;*		initial ( クッパデモ用カメック )			*
;************************************************************************
KAMC3IN		EQU	$			;-- kamc3in --
;
;
;
;
		LDA	#00080H
		STA	PLSCRL_MAXX

		LDA	#KOOPA
		JSL	>ENINSR

		STY	KOOPAIDX
		STZ	KOOPADEMO

		LDA	KOOPA_RETRY
		BEQ	KAMC3IN1000

		LDA	#00100H
		STA	ENXPSL,Y
		LDA	#007B0H
		STA	ENYPSL,Y

		LDA	#0000CH
		STA	ENCHPT,Y
		LDA	#KOOPA_RMODE91
		STA	ENWRK2,Y

		LDX	#00EH*2
KOOPA_COL_INIT	EQU	$
		LDA	>COL_ADDRESS+KOPPA_OBJ_COL,X
		STA	>MOTOCOL+(010H*2)*0EH+2,X
		STA	>DATACOL+(010H*2)*0EH+2,X
		LDA	>COL_ADDRESS+KOPPA_BG_COL,X
		STA	>MOTOCOL+(010H*2)*6+2,X
		STA	>DATACOL+(010H*2)*6+2,X
		LDA	>COL_ADDRESS+KOPPA_BG_COL+00FH*2,X
		STA	>MOTOCOL+(010H*2)*7+2,X
		STA	>DATACOL+(010H*2)*7+2,X
		DEX
		DEX
		BPL	KOOPA_COL_INIT
;
		LDX	<ENINDX

		JMP	>ENCLEAR

KAMC3IN1000	EQU	$
		INC	KOOPA_RETRY

		LDA	#00150H
		STA	ENXPSL,Y
		LDA	#0077DH
		STA	ENYPSL,Y

		LDA	#K_MS_O
		STA	ENWRK4,Y
		LDA	#KOOPA_RMODE90
		STA	ENWRK2,Y

		JSL	>MID_POINT_SAVE

;		LDX	#00EH*2
;KAMC3IN1300	 EQU	 $
;		LDA	>COL_ADDRESS+KOOPA_OBJ_COL,X
;		STA	>MOTOCOL+(010H*2)*0EH+2,X
;		STA	>DATACOL+(010H*2)*0EH+2,X
;		DEX
;		DEX
;		BPL	KAMC3IN1300
;
;		LDX	<ENINDX

skip_2		EQU	$
		BRA	KAMC3IN2000

		JMP	>ENCLEAR
;
;
;
;
KAMC3IN2000	EQU	$
		INC	ENCHPT,X
		RTL
;
;************************************************************************
;*		move	( クッパデモ用カメック )			*
;************************************************************************
KAMC3_SUB	EQU	$
		WORD	KAMC3_SUB0		;プレイヤー範囲チェック
		WORD	KAMC3_SUB1		;プレイヤー範囲チェック２
		WORD	KAMC3_SUB2		;喋る
		WORD	KAMC3_SUB3		;カラーフェード
		WORD	KAMC3_SUB4		;後ずさり
		WORD	KAMC3_SUB5		;喋る２
		WORD	KAMC3_SUB6		;震える＆クッパ位置チェック
		WORD	KAMC3_SUB7		;驚く＆クッパ衝突チェック
		WORD	KAMC3_SUB8		;縮む
		WORD	KAMC3_SUB9		;ひらひら
;
KAMC3MV		EQU	$			;-- kamc3mv --
		LDY	ENCHPT,X		;回転オブジェ使ってる ?
		BNE	KAMC3MV0100		;  no: KAMC3MV0100

		JSL	>TROBJ_OAM_4x4

		I16
		LDA	ENOAML,X
		CLC
		ADC	#008*4
		TAY
		LDA	#08000H
		STA	SOAM_DX+8*0,Y
		STA	SOAM_DX+8*1,Y
		I8

KAMC3MV0100	EQU	$
		LDA	ENSTFG
		ORA	BIRIBIRI
		ORA	ITEMNO
		BEQ	KAMC3MV0300

		JSL	>EN_XYMOVE2
		JSL	>EN_TIMER

KAMC3MV0300	EQU	$
		TXY
		LDA	<ENWRK2,X
		ASL	A
		TAX
		JSR	(KAMC3_SUB,X)

		RTL
;
KAMC3_SUB0	EQU	$
KOOPA_SUB91	EQU	$
		TYX

		LDA	PLXPSL			;プレイヤー範囲内 ?
		CMP	#00060H			;
		BMI	KAMC3_SUB0800		;  no: KAMC3_SUB0800

		LDA	#PDEM
		STA	PLMODE
		LDA	#00100H
		STA	P_KEYC1L
		LDA	#000F1H			;［Ｓ］
		STA	SOUND_0

		LDA	EPWIDX,X
		CMP	#00068H
		BPL	KAMC3_SUB0300

		STZ	P_KEYC1L
		LDA	PLXSPD
		BNE	KAMC3_SUB0800

		INC	<ENWRK2,X
		RTS

KAMC3_SUB0300	EQU	$
 IF PAL	   ;*** PAL 対応 [1995/7/20] ******************
		LDA	#00122H
 ELSE	   ;*** JPN/NES 対応 [1995/6/30] **************
		LDA	#00100H
 ENDIF	   ;*** PAL 対応 [1995/7/20] ******************
		CMP	PLXSPD
		BPL	KAMC3_SUB0800

		STA	PLXSPD
		STA	PLMVSP

KAMC3_SUB0800	EQU	$

		RTS
;
KAMC3_SUB1	EQU	$
KOOPA_SUB92	EQU	$
		TYX
		STY	ATSCRL_H		;スクロールＳＴＯＰ

		LDA	PLDSXL
		CMP	#00020H
		BPL	KAMC3_SUB1700

		LDA	ENMYNO,X
		CMP	#KAMC3
		BEQ	KAMC3_SUB1500

		LDA	#K_DEMO_RETRY
		STA	<ENWRK0,X
		LDA	#K_MS_L
		STA	<ENWRK4,X

		LDA	#BS6_MSG_3
		BRA	KAMC3_SUB1600

KAMC3_SUB1500	EQU	$
		LDA	#BS6_MSG

KAMC3_SUB1600	EQU	$
		STA	>MSG_NO
		INC	MSG_LOCK
		INC	MSGMOD
		INC	<ENWRK2,X
		RTS

KAMC3_SUB1700	EQU	$
		INC	SCCH1
		LDA	SCCH1
		STA	ATSCRL_SCCH1
		RTS
;
KAMC3_S2_CHPT	EQU	$-1
		HEX	08,05,08,07,08,05,08,07,08,05,08,07,09,0A,09,07,09,0A,09
		HEX	07,09,0A,09,07,09,0A,09,07,09,0A,09,07,09,0A,09,07,09,0A,09,07
KAMC3_S2_TIM1	EQU	$-1
		HEX	02,06,02,06,02,06,02,06,02,06,02,20,02,06,02,06,02,06,02
		HEX	06,02,06,02,06,02,06,02,06,02,06,02,06,02,06,02,06,02,06,02,01
;
KAMC3_SUB2	EQU	$
		TYX

		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	KAMC3_SUB2800		;  no: KAMC3_SUB2800

		LDY	<ENCONT,X		;喋るの終わり ?
		CPY	#028H			;
		BMI	KAMC3_SUB2500		;  no: KAMC3_SUB2500

		STZ	MSG_LOCK
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+	クッパの部屋 フェード用カラー イニシャルセット		+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		PHB
		I16			;index 16bit mode
		LDX	#MOTOCOL
		LDY	#CHNGCOL
		LDA	#00200H-1
		MVN	#BANK MOTOCOL,#BANK CHNGCOL
		I8			; index 8bit mode
		PLB
;
		LDX	#00EH*2
KP_COL_LOP	EQU	$
		LDA	>COL_ADDRESS+KOPPA_BG_COL,X
		STA	>CHNGCOL+(010H*2)*6+2,X
		LDA	>COL_ADDRESS+KOPPA_BG_COL+00FH*2,X
		STA	>CHNGCOL+(010H*2)*7+2,X
		LDA	>COL_ADDRESS+KOOPA_OBJ_COL,X
		STA	>CHNGCOL+(010H*2)*0EH+2,X
		DEX
		DEX
		BPL	KP_COL_LOP
;
		LDX	<ENINDX
		LDA	#00000H
		STA	>CLFDCNT
		INC	<ENWRK2,X

		RTS

KAMC3_SUB2500	EQU	$
		INY
		STY	<ENCONT,X
		LDA	!KAMC3_S2_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!KAMC3_S2_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X
		TYA
		AND	#00007
		BNE	KAMC3_SUB2800

		LDA	#0005BH			;［Ｓ］
		JSL	>SOUND_3_ON

KAMC3_SUB2800	EQU	$

		RTS
;
KAMC3_SUB3	EQU	$
		TYX

		LDA	MSGMOD			;メッセージ閉じた ?
		BNE	KAMC3_SUB3800		;  no: KAMC3_SUB3800
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		クッパの部屋 カラーフェード			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		LDA	>CLFDCNT
		BNE	KAMC3_SUB3100

		LDA	#00009			;［Ｓ］
		STA	SOUND_0

KAMC3_SUB3100	EQU	$
		CMP	#00020H
		BCS	KAMC3_SUB3500

		LDA	#MOTOCOL
		STA	>MOTOADR
		LDA	#CHNGCOL
		STA	>CHNGADR
;
		M_CHIP	COLFADE
;
		LDX	<ENINDX
		RTS

KAMC3_SUB3500	EQU	$
		LDY	KOOPADEMO
		BEQ	KAMC3_SUB3800

		LDA	#00040H
		STA	ENTIM1,X
		LDA	#0000BH
		STA	ENCHPT,X
		INC	<ENWRK2,X

		LDX	#00EH*2
KAMC3_SUB3600	EQU	$
		LDA	>CHNGCOL+(010H*2)*6+2,X
		STA	>MOTOCOL+(010H*2)*6+2,X
		LDA	>CHNGCOL+(010H*2)*7+2,X
		STA	>MOTOCOL+(010H*2)*7+2,X
		LDA	>CHNGCOL+(010H*2)*0EH+2,X
		STA	>MOTOCOL+(010H*2)*0EH+2,X
		DEX
		DEX
		BPL	KAMC3_SUB3600
;
		LDX	<ENINDX
;
KAMC3_SUB3800	EQU	$

		RTS
;
KAMC3_SUB4	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	KAMC3_SUB4800

		LDA	ENXSPD,X
		BEQ	KAMC3_SUB4300

		LDA	#BS6_MSG_1
		STA	>MSG_NO
		INC	MSGMOD
		STZ	<ENCONT,X
		STZ	ENXSPD,X
		INC	MSG_LOCK
		INC	<ENWRK2,X

		RTS

KAMC3_SUB4300	EQU	$
		LDA	#0FC00H
		STA	ENXSPD,X
		LDA	#00004H
		STA	ENTIM1,X
		LDA	#0000CH
		STA	ENCHPT,X

KAMC3_SUB4800	EQU	$

		RTS
;
KAMC3_S5_CHPT	EQU	$-1
		HEX	0D,0C,0B,0C,0D,0C,0B,0C,0D,0C,0B,0C,0D,0C,0B,0C,0D,0C,0B,0C
		HEX	0D,0C,0B,0C,0D
KAMC3_S5_TIM1	EQU	$-1
		HEX	04,02,04,02,10,02,04,02,04,02,04,02,04,02,04,02,04,02,04,02
		HEX	04,02,04,02,01
;
KAMC3_SUB5	EQU	$
		TYX

		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	KAMC3_SUB5800		;  no: KAMC3_SUB5800

		LDY	<ENCONT,X		;喋るの終わり ?
		CPY	#019H			;
		BMI	KAMC3_SUB5500		;  no: KAMC3_SUB5500

		LDX	#00EH*2
KAMC3_SUB5300	EQU	$
		LDA	>COL_ADDRESS+KOPPA_OBJ_COL,X
		STA	>CHNGCOL+(010H*2)*0EH+2,X
		DEX
		DEX
		BPL	KAMC3_SUB5300
;
		LDX	<ENINDX
		STZ	MSG_LOCK
		LDA	#00000
		STA	>CLFDCNT
		INC	<ENWRK2,X
		RTS

KAMC3_SUB5500	EQU	$
		INY
		STY	<ENCONT,X
		LDA	!KAMC3_S5_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!KAMC3_S5_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X
		TYA
		AND	#00007
		BNE	KAMC3_SUB5800

		LDA	#0005BH			;［Ｓ］
		JSL	>SOUND_3_ON

KAMC3_SUB5800	EQU	$

		RTS
;
ASE02_XSPD	EQU	$
ASE02_YSPD	EQU	$
		WORD	0FF00H,0FEC0H,0FE40H,0FE00H
;
KAMC3_SUB6	EQU	$
		TYX

		LDY	KOOPAIDX
		LDA	ECENTX,Y
		SEC
		SBC	ECENTX,X
		CMP	#00012H
		BPL	KAMC3_SUB6300

		LDA	#0000EH
		STA	ENCHPT,X
		INC	<ENWRK2,X

		RTS

KAMC3_SUB6300	EQU	$
		LDA	ENTIM1,X
		BNE	KAMC3_SUB6500

		LDA	#00002
		STA	ENTIM1,X
		LDA	ENCHPT,X		;0CH OR 0DH
		EOR	#00001			;
		STA	ENCHPT,X		;

KAMC3_SUB6500	EQU	$
		JSR	KOOPA_COL_FADE

		LDA	ENTIM0,X
		BNE	KAMC3_SUB6800

		LDA	#00004H
		STA	ENTIM0,X

		LDA	<RANDM0
		AND	#00006
		TAY
		LDA	!ASE02_XSPD,Y
		STA	<EWORK0
		LDA	<RANDM0+1
		AND	#00006
		TAY
		LDA	!ASE02_YSPD,Y
		STA	<EWORK2

		LDA	#ASE02		;(A) <-- exstra no.
		JSL	>EXINSR

		LDA	ENXPSL,X
		CLC
		ADC	#0000CH
		STA	EXXPSL,Y	;X pos set

		LDA	ENYPSL,X
		SEC
		SBC	#0000AH
		STA	EXYPSL,Y	;Y pos set

		LDA	<EWORK0
		STA	EXXSPD,Y
		LDA	<EWORK2
		STA	EXYSPD,Y

		LDA	#00010H		;timer set
		STA	EXTIM0,Y	;
		STA	EXXPOW,Y

KAMC3_SUB6800	EQU	$

		RTS
;
KOOPA_COL_FADE	EQU	$
		LDA	ENWRK0,Y
		CMP	#K_DEMO_JUMP
		BMI	KAMC3_SUB6700

		LDA	>CLFDCNT
		CMP	#00020H
		BPL	KAMC3_SUB6700

		LDA	#MOTOCOL
		STA	>MOTOADR
		LDA	#CHNGCOL
		STA	>CHNGADR
;
		M_CHIP	COLFADE
;
		LDX	<ENINDX

KAMC3_SUB6700	EQU	$

		RTS
;
KAMC3_SUB7	EQU	$
		TYX

		LDY	ECRSFG,X		;クッパに踏まれた ?
		BEQ	KAMC3_SUB7300		;  no: KAMC3_SUB7300

		JSL	>TROBJ_SR_4x4
		LDA	#00100H			;初期縦倍率セット
		STA	ENWRK6,X		;
		JSR	KAMC3_SUB8600
		LDA	#00002
		STA	ENMUKI,X
		LDA	ENXPSL,X
		CLC
		ADC	#00010H
		STA	ENXPSL,X
		STZ	ENCHPT,X
		INC	<ENWRK2,X
		RTS

KAMC3_SUB7300	EQU	$
		LDA	ENTIM1,X
		BNE	KAMC3_SUB7800

		LDA	#00002
		STA	ENTIM1,X
		LDA	ENCHPT,X		;0EH OR 0FH
		EOR	#00001			;
		STA	ENCHPT,X		;

KAMC3_SUB7800	EQU	$
		JSR	KOOPA_COL_FADE

KAMC3_SUB8000	EQU	$

		RTS
;
KAMC3_SUB8	EQU	$
		TYX

		LDY	KOOPADEMO		;クッパジャンプ終わり ?
		CPY	#001			;
		BEQ	KAMC3_SUB8100		;  no: KAMC3_SUB8100

		LDY	KOOPAIDX		;クッパに蹴られた ?
		LDA	ENCHPT,Y		;
		CMP	#00018H			;
		BNE	KAMC3_SUB8000		;   no: KAMC3_SUB8000

		LDA	#0FD80H
		STA	ENXSPD,X
		LDA	#00180H
		STA	ENXMAX,X
		LDA	#00010H
		STA	ENXPOW,X
		LDA	#0FF00H
		STA	ENYSPD,X
		LDA	#0010000000000000B	;ＢＧチェックしない
		STA	ENMOD1,X		;
		STZ	<ENCONT,X
		INC	<ENWRK2,X

		LDA	#0000CH		;［Ｓ］
		JSL	>SOUND_3_ON

		RTS

KAMC3_SUB8100	EQU	$
		LDY	KOOPAIDX
		LDA	ENYSPD,Y		;クッパ上昇中 ?
		BMI	KAMC3_SUB8300		; yes: KAMC3_SUB8300

		LDA	#00010H
		STA	R0
		LDA	ENWRK6,X
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	ENYPSL,X
		CLC
		ADC	#00018H
		SEC
		SBC	R0
		STA	<EWORK0
		LDA	#0000CH
		STA	R0
		LDA	ENWRK6,X
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDY	KOOPAIDX
		LDA	ECENTY,Y
		SEC
		SBC	<EWORK0
		CLC
		ADC	EWIDEY,Y
		CLC
		ADC	R0
		BMI	KAMC3_SUB8300

KAMC3_SUB8200	EQU	$
		LDA	ENWRK6,X
		SEC
		SBC	#00018H
		CMP	#00020H
		BPL	KAMC3_SUB8500
		LDA	#00020H
		BRA	KAMC3_SUB8500

KAMC3_SUB8300	EQU	$
		LDA	ENWRK6,X
		CLC
		ADC	#00004
		CMP	#00060H
		BMI	KAMC3_SUB8500

		LDA	#00060H

KAMC3_SUB8500	EQU	$
		STA	ENWRK6,X

KAMC3_SUB8600	EQU	$
		LDA	ENWRK6,X		;(R0) <- Ｙ倍率セット
		STA	R11
		LDA	#00100H			;(R4) <- Ｘ倍率セット
		STA	R6			;

		LDA	#00010H			;(R8) <- 中心Ｘ　ＰＯＳ．
		STA	R8			;
		ASL	A			;(R9) <- 中心Ｙ　ＰＯＳ．
		STA	R9			;

		LDA	#BANK CIPCHD3+60C0H+001 ;chara data bank set
		STA	R13
		LDA	#CIPCHD3+60C0H+001	;chara data address set
		STA	R12

		LDY	ENTROB,X
		TYX
		LDA	>TROBJ_PLOT_X,X		;回転エリアＸ　ＰＯＳ．セット
		STA	R3			;
		LDA	>TROBJ_PLOT_Y,X		;回転エリアＹ　ＰＯＳ．セット
		STA	R2			;

		M_CHIP	C_32_ZOOM_XY

		LDX	<ENINDX

		INC	OBM7WF			;mode 7 OBJ chara DMA "ON"

		RTS
;
KAMC3_S9_ZADD	EQU	$
		WORD	00008H,0FFFEH
KAMC3_S9_ZCMP	EQU	$
		WORD	00060H,00020H
KAMC3_S9_ZCHK	EQU	$
		WORD	00001H,0FFFFH
;
KAMC3_SUB9	EQU	$
		TYX

		JSL	>DISPCK2		;画面外 ?
		BCC	KAMC3_SUB9300		;  no: KAMC3_SUB9300

		INC	KOOPADEMO
		PLA
		JMP	>ENCLEAR

KAMC3_SUB9300	EQU	$
		LDY	<ENCONT,X
		LDA	ENWRK6,X
		CLC
		ADC	!KAMC3_S9_ZADD,Y
		STA	ENWRK6,X
		SEC
		SBC	!KAMC3_S9_ZCMP,Y
		EOR	!KAMC3_S9_ZCHK,Y
		BMI	KAMC3_SUB9500

		LDA	!KAMC3_S9_ZCMP,Y
		STA	ENWRK6,X
		LDA	<ENCONT,X
		EOR	#00002
		STA	<ENCONT,X

KAMC3_SUB9500	EQU	$
		LDA	ENXSPD,X		;加速値反転させる ?
		CMP	ENXMAX,X		;
		BNE	KAMC3_SUB9800		;  no: KAMC3_SUB9800

		LDA	ENXMAX,X
		EOR	#0FFFFH
		INC	A
		STA	ENXMAX,X

KAMC3_SUB9800	EQU	$
		JMP	KAMC3_SUB8600
;
;************************************************************************
;*		initial ( クッパの部屋の床波 )				*
;************************************************************************
FWAVEIN		EQU	$			;-- fwavein --
		RTL
;
;************************************************************************
;*		move	( クッパの部屋の床波 )				*
;************************************************************************
;		ENWRK0	あたってきた波の ROUTINE INDEX
;		ENWRK2	消波力
;		ENWRK4	波の力
;		ENWRK6	兄弟波の ROUTINE INDEX
;		ENWRK8
;		ENWRKA
;		ENWRKC	出発位置
;
;		ENTIM0
;		ENTIM1
;		ENTIM2	敵チェックロックタイマー
;		ENTIM3	プレイヤーチェックロックタイマー
;
FWAVEMV		EQU	$			;-- fwavemv --
		JSR	FWAVE_BG_SET

		JSL	>ENMDCK

		JSR	FWAVE_WAVE_CALC

		JSR	FWAVE_PLCHK
		JSR	FWAVE_ENCHK

		JSR	FWAVE_SOUND_SET

		RTL
;
FWAVE_FORESIDE	EQU	$
		WORD	0FFE8H,00018H
FWAVE_IDX_ADD	EQU	$
		WORD	00002H,0FFFEH
FWAVE_DT_ADD	EQU	$
		WORD	00100H/8,-00100H/8
;ほんまは	WORD	00400H/8,-00400H/8
;
FWAVE_BG_SET	EQU	$
		LDA	<ENWRK4,X		;(R2) <- 波の力
		STA	R2			;
		LDY	ENMUKI,X		;(R9) <- 波の先頭の DS pos.
		LDA	!FWAVE_FORESIDE,Y	;
		CLC				;
		ADC	ENDSXL,X		;
		STA	R9			;
		LDA	!FWAVE_IDX_ADD,Y	;(R5) <- バッファインデックス加算データ
		STA	R5			;
		LDA	!FWAVE_DT_ADD,Y		;(R8) <- １ドット進んだときの波の力加算値
		STA	R8			;
		M_CHIP	KUPPA_DOSUN2

FWAVE_BG_SET030 EQU	$
		LDX	<ENINDX

		RTS
;
FWAVE_WAVE_CALC EQU	$
		LDA	<ENWRK2,X		;消波する ?
		BEQ	FWAVE_W_C0300		;  no: FWAVE_W_C0300

		CLC				;消波しきった ?
		ADC	<ENWRK4,X		;
		STA	<ENWRK4,X		;
		BPL	FWAVE_W_C0800		;  no: FWAVE_W_C0800

		PLA		;直接ＲＴＬ
		JMP	>ENCLEAR

FWAVE_W_C0300	EQU	$
		LDA	<ENWRK4,X		;波の振幅計算
		CLC				;
		ADC	#000C0H			;
		CMP	#00A00H			;
		BMI	FWAVE_W_C0500		;
						;
		LDA	#00A00H			;
						;
FWAVE_W_C0500	EQU	$			;
		STA	<ENWRK4,X		;

FWAVE_W_C0800	EQU	$
FWAVE_PLCHK0000 EQU	$
		RTS
;
FWAVE_PLCHK	EQU	$
		LDY	ECRSFG,X		;プレイヤーと衝突した ?
		BPL	FWAVE_PLCHK0000		;  no: FWAVE_PLCHK0000

		LDA	ENTIM3,X		;チェックロック ?
		BNE	FWAVE_PLCHK0000		; yes: FWAVE_PLCHK0000

		STZ	PLDOSN
		JSL	>PLFLST

FWAVE_ENCHK0000 EQU	$
		RTS
;
KOOPA_DMG_XSP	EQU	$
		WORD	0FE80H,00180H
;
FWAVE_ENCHK	EQU	$
		LDA	ENTIM2,X		;チェックロック ?
		BNE	FWAVE_ENCHK0000		; yes: FWAVE_ENCHK0000

		TXA
		STA	R1
		M_CHIP	MY_ENCROS2

FWAVE_ENCHK0100 EQU	$
		LDX	<ENINDX
		LDY	R14
		BMI	FWAVE_ENCHK0000
		BEQ	FWAVE_ENCHK0000

		LDA	ENMODE,Y
		CMP	#EMOVE
		BEQ	FWAVE_ENCHK0500

FWAVE_ENCHK0300 EQU	$
		LDX	#BANK MY_ENCROS2
		LDA	R15
		JSL	>CHIPON
		BRA	FWAVE_ENCHK0100

FWAVE_ENCHK0500 EQU	$
		CPY	KOOPAIDX		;クッパと衝突した ?
		BNE	FWAVE_ENCHK1000		;  no: FWAVE_ENCHK1000

		LDA	ENWRK2,Y		;クッパプレイヤーに振り落とされｏｒダメージ中 ?
		CMP	#KOOPA_RMODE60		;
		BPL	FWAVE_ENCHK0300		; yes: FWAVE_ENCHK0300

		LDA	ENYSPD,Y		;上昇中 ?
		BMI	FWAVE_ENCHK0300		; yes: FWAVE_ENCHK0300

		LDY	ENMUKI,X
		LDA	!KOOPA_DMG_XSP,Y
		LDY	KOOPAIDX
		STA	ENXSPD,Y
		LDA	#0FA00H
		STA	ENYSPD,Y
		LDA	#00040H
		STA	ENGPOW,Y
		LDA	#K_GORO_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,Y		;
		STA	ENWRKC,Y		;
		LDA	#K_GORO_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,Y		;
		LDA	#0FFFFH			;シーケンス繰り返し回数セット
		STA	ENWRKA,Y		;
		LDA	#KOOPA_RMODE70
		STA	ENWRK2,Y

		LDA	#0008AH			;［Ｓ］
		LDY	KOOPADMG		;クッパ最後のダメージ ?
		CPY	#003-1			;
		BMI	FWAVE_ENCHK0600		;  no: FWAVE_ENCHK0600

		LDA	#0008EH			;［Ｓ］

FWAVE_ENCHK0600 EQU	$
		JSL	>SOUND_3_ON
;
FWAVE_ENCHK0800 EQU	$
		BRA	FWAVE_ENCHK0300

FWAVE_ENCHK1000 EQU	$
		LDA	ENMYNO,Y		;床波と衝突した ?
		CMP	#FWAVE			;
		BNE	FWAVE_ENCHK0300		;  no: FWAVE_ENCHK0300

		TYA				;兄弟波 ?
		CMP	ENWRK6,X		;
		BEQ	FWAVE_ENCHK0300		; yes: FWAVE_ENCHK0300

		CMP	<ENWRK0,X		;すでに衝突処理をやってる ?
		BEQ	FWAVE_ENCHK0300		; yes: FWAVE_ENCHK0300

		LDA	ENXSPD,X		;向き合ってる ?
		EOR	ENXSPD,Y		;
		BPL	FWAVE_ENCHK0300		;  no: FWAVE_ENCHK0300

		LDA	ECENTX,Y		;遠退いてる ?
		SEC				;
		SBC	ECENTX,X		;
		EOR	ENXSPD,X		;
		BPL	FWAVE_ENCHK1300		;  no: FWAVE_ENCHK1300
		JMP	FWAVE_ENCHK0300		; yes: FWAVE_ENCHK0300

FWAVE_ENCHK1300 EQU	$
		LDA	ENWRK2,Y
		CLC
		ADC	#0FF40H
		STA	ENWRK2,Y

		LDA	<ENWRK2,X
		CLC
		ADC	#0FF40H
		STA	<ENWRK2,X

		STY	<ENWRK0,X
		TXA
		STA	ENWRK0,Y

FWAVE_ENCHK1800 EQU	$
		BRA	FWAVE_ENCHK0800
;
FWAVE_SOUND_SET EQU	$
		LDA	ENTIM0,X
		BNE	FWAVE_S_SET0800

		LDA	<RANDM0
		AND	#00003H
		CLC
		ADC	#00004H
		STA	ENTIM0,X
		LDA	#00014H		;［Ｓ］
		JSL	>SOUND_3_ON

FWAVE_S_SET0800 EQU	$
		RTS
;
;
;
;
;------------------------------------------------------------------------
;-		大クッパクリアーデモキャラクターセット			-
;------------------------------------------------------------------------
KPCLR_CHR_BANK	EQU	$
		WORD	CHR8EA*3,CHR111D*3,CHR111C*3,CHR111B*3,CHR111A*3
KPCLR_BG3_CHR	WORD	CHRE8B,	 CHRE8A
KPCLR_CHR_BANKE EQU	$
KPCLR_CHR_NO	EQU	(KPCLR_CHR_BANKE-KPCLR_CHR_BANK)/2
KPCLR_BG3_NO	EQU	(KPCLR_BG3_CHR-KPCLR_CHR_BANK)/2
;
KPCLR_CHRST	EQU	$
		TYX
;
		LDA	ENTIM0,X
		BEQ	KPCLR_CHRST_020 ;ウェイト？ ( no:KPCLR_CHRST_020 )
;
		CMP	#080H
		BNE	KPCLR_CHRST_000 ;サウンドセット？ ( no:KPCLR_CHRST_000 )
;
		LDY	#0AH		;[♪]
		STY	SOUND_0
;
KPCLR_CHRST_000 EQU	$
		LSR	A
		BNE	KPCLR_CHRST_010 ;モード切り替え？ ( no:KPCLR_CHRST_010 )
;
		LDY	#02H		;ＮＭＩタイプＮｏ．セット
		STY	NMITYP
		LDA	#00000000B+(00010001B*100H)
		STA	MANSEL		;表示画面セット
		LDA	HD420C		;モード切り替えＨ−ＤＭＡキャンセル
		EOR	#11011110B
		STA	HD420C
		LDA	#7FFFH		;ヌキカラー初期セット
		STA	>DATACOL
;
		LDA	#2800H		;大クッパクリアーデモキャラクターセットＶＲＡＭアドレス初期セット
		STA	CHNG_CHR_VRAM
		LDA	#KPCLR_CHR_NO
		STA	CHNG_CHR_CNT
;
		LDA	#WOB7CHR+1000H
		STA	R0		;(R0)  <-- 転送先アドレス
		LDA	#2
		STA	R1		;(R1)  <--	 ”	 加算データ
		LDA	#01CEH
		STA	R2		;(R2)  <-- 転送データ
		LDA	#0800H/2
		STA	R12		;(R12) <-- 転送ワード数
		M_CHIP	MRAM_FILL
		LDX	<ENINDX
;
		LDA	#3400H+8000H
		STA	OBM7WF		;mode 7 OBJ chara DMA "ON"
;
KPCLR_CHRST_010 EQU	$
		JMP	KOOPA_PATN
;
KPCLR_CHRST_020 EQU	$
		LDA	#PSTP
		STA	PLMODE
		STZ	PLSTFG
;
		LDA	ESCCH1
		CMP	#0280H
		BCS	KPCLR_CHRST_040 ;ＢＧ書き換え終了？ ( yes:KPCLR_CHRST_040 )
;
;;;;		    CLC
		ADC	#010H
		CMP	#0280H
		BCC	KPCLR_CHRST_030
;
		LDA	#0280H		;最小スクロールカウンターＨセット
KPCLR_CHRST_030 EQU	$
		STA	ATSCRL_SCCH1
		STA	ATSCRL_H
		RTS
;
;-------------- ＯＢＪスリットキャラクター画像圧縮データ解凍 ------------
KPCLR_CHRST_040 EQU	$
		STA	PLSCRL_MINX
		STZ	ATSCRL_H
;
		I16
;
		LDA	CHNG_CHR_CNT
		ASL	A
		TAY
		LDX	!KPCLR_CHR_BANK-2,Y
		CPY	#KPCLR_BG3_NO*2
		BCC	KPCLR_CHRST_046 ;ＢＧ３キャラクター？ ( no:KPCLR_CHRST_046 )
;
		BEQ	KPCLR_CHRST_044 ;ＯＢＪスリットキャラクターの初期セット？ ( yes:KPCLR_CHRST_044 )
;
		TXA			;(A) <-- キャラクターバンク
		JSL	>UNCOMPRES_X
;
		LDX	#WOB7CHR+1000H	;(X) <------ 転送元アドレス（Ｌ，Ｈ）
		LDA	#0800H		;(A) <------ 転送バイト数
		BRA	KPCLR_CHRST_048
;
KPCLR_CHRST_044 EQU	$
		LDA	#5600H		;大クッパクリアーデモキャラクターセットＶＲＡＭアドレス初期セット
		STA	CHNG_CHR_VRAM
KPCLR_CHRST_046 EQU	$
		LDA	>ADDSTART+(NO_PRES*3),X
		STA	R1		;(R1)  <-- pless data address(L,H)
		LDA	>ADDSTART+(NO_PRES*3)+2,X
		AND	#00FFH
		STA	R0		;(R0)  <--	    "        (B)
		LDA	#010H
		STA	R3		;(R3) <-- pless data line
;
		I8
;
		M_CHIP	DEF_CHR
;
		I16
;
		LDX	#WOB7CHR	;(X) <------ 転送元アドレス（Ｌ，Ｈ）
		LDA	#0400H		;(A) <------ 転送バイト数
KPCLR_CHRST_048 EQU	$
		STA	<EWORK0
		LDY	#BANK WOB7CHR
		STY	WORK1		;(WK1,2) <-- 転送元アドレス（Ｂ）
		LDY	CHNG_CHR_VRAM	;(Y) <------ ＶＲＡＭアドレス
		JSL	>VRAMDX_ST
;
		I8
;
		LDX	<ENINDX
		LDA	<EWORK0
		LSR	A
;;;;		    CLC
		ADC	CHNG_CHR_VRAM
		STA	CHNG_CHR_VRAM	;次のＶＲＡＭアドレスセット
;
		DEC	CHNG_CHR_CNT
		BEQ	KPCLR_CHRST_049 ;キャラクターセット終了？ ( yes:KPCLR_CHRST_049 )
		RTS
;
;-------------- キャラクターセット終了 ----------------------------------
KPCLR_CHRST_049 EQU	$
		LDX	#(15-1)*2
KPCLR_CHRST_050 EQU	$
		LDA	>COL_ADDRESS+BG3_SUB_1B_COL,X
		STA	>MOTOCOL+2,X
		STA	>DATACOL+2,X
		LDA	>COL_ADDRESS+KOPPA_OBJ_COL,X
		STA	>MOTOCOL+(80H+61H)*2,X
		STA	>DATACOL+(80H+61H)*2,X
		DEX
		DEX
		BPL	KPCLR_CHRST_050
		LDX	<ENINDX
;
		JSR	KOOPA_FADE_INIT
		LDA	#7FFFH		;フェードカラーセット
		STA	>DATACOL
;
;-------------- 大クッパクリアーデモ初期セット --------------------------
		STZ	KOOPA_FG	;クッパモードフラグリセット
;
		STZ	PLSTFG		;プレイヤーＳＴＯＰキャンセル
		JSL	>TO_PLDEMO	;プレイヤーデモモードセット
		STZ	PLCMKI		;右向きセット
		LDA	#02C8H		;プレイヤーＸ座標セット
		STA	PLXPSL
		LDA	#07A0H		;プレイヤーＹ座標セット
		STA	PLYPSL
;
		LDA	#0358H		;小クッパＸ座標セット
		STA	ENXPSL,X
		LDA	#0298H		;小クッパＹ座標セット
		STA	ENYPSL,X
		STZ	ENXSPD,X	;スピードリセット
		STZ	ENYSPD,X
		LDA	#040H
		STA	ENGPOW,X
		LDA	#0400H
		STA	ENGMAX,X
		LDA	#K_GORO_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		STA	ENWRKC,X		;
		LDA	#K_GORO_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#0FFFFH			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		STZ	<ENCONT,X
		M8
		LDA	#02CH			;0160H/8
		STA	ENCHRB,X
		M16
;
KPCLR_CHRST_100 EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		大クッパクリアーデモ					-
;------------------------------------------------------------------------
KPCLR_MOVE0	EQU	$
		JSR	K_CHPT_SET		;ぐるぐる回転
;
		LDA	ENCBFG,X		;着地した ?
		AND	#00001			;
		BEQ	KPCLR_MOVE0800		;  no: KPCLR_MOVE0800

		LDY	ENCHPT,X		;チェックしていい ?
		CPY	#00FH			;
		BNE	KPCLR_MOVE0800		;  no: KPCLR_MOVE0800

		LDA	#0008EH			;［Ｓ］
		JSL	>SOUND_3_ON

KOOPA_TO_BOTE	EQU	$
		LDA	#K_BOTE_ST		;キャラパターンスタートインデックスセット
		STA	ENWRK6,X		;
		LDA	#K_BOTE_ED		;キャラパターンエンドインデックスセット
		STA	ENWRK8,X		;
		LDA	#00001H			;シーケンス繰り返し回数セット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

KPCLR_MOVE0800	EQU	$

		RTS
;
KPCLR_MOVE1	EQU	$
		JSR	K_CHPT_SET		;地面にぼてっ！終わり ?
		BCC	KPCLR_MOVE1800		;  no: KPCLR_MOVE1800

		INC	<ENWRK2,X

KPCLR_MOVE1800	EQU	$
		RTS
;
KPCLR_MOVE2	EQU	$
		TYX

		LDY	<ENCONT,X
		BNE	KPCLR_MOVE2800

		LDA	#KAMC4		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
		BCC	KPCLR_MOVE2800	;     ”     ？ ( no:KPCLR_MOVE2800 )
;
		LDA	#0		;カメックＸ座標初期セット
		STA	ENXPSL,Y
;
		INC	<ENCONT,X
		LDA	#00010101B+(00000000B*100H) ;表示画面セット
		STA	MANSEL		;[ & SUBSEL ]
		STZ	ESCCH3
		STZ	ESCCV3
;
KPCLR_MOVE2800	EQU	$

		RTS
;
;------------------------------------------------------------------------
;-		ルイージ救出デモキャラクターセット			-
;------------------------------------------------------------------------
LUIGI_CHRST	EQU	$
		TYX
;
		I16
;
		LDA	#CHRF5B		;(A) <-- キャラクターバンク
		JSL	>UNCOMPRES_X
;
		LDX	#WOB7CHR+1000H	;(X) <------ 転送元アドレス（Ｌ，Ｈ）
		LDA	#BANK WOB7CHR
		STA	WORK1		;(WK1,2) <-- 転送元アドレス（Ｂ）
		LDY	#5800H		;(Y) <------ ＶＲＡＭアドレス
		LDA	#0800H		;(A) <------ 転送バイト数
		JSL	>VRAMDX_ST
;
		I8
;
		LDX	#(15-1)*2
LUIGI_CHRST_050 EQU	$
		LDA	>COL_ADDRESS+LUIGI_COL,X
		STA	>DATACOL+(80H+61H)*2,X
		DEX
		DEX
		BPL	LUIGI_CHRST_050
		LDX	<ENINDX
;
		INC	<ENWRK2,X
		LDA	#1000H+8000H
		STA	CHNG_CHR_VRAM
;
		LDA	#0480H		;最大スクロールカウンターＨセット
		STA	PLSCRL_MAXX
;
		LDA	#PEND		;プレイヤーエンディングデモモードセット
		STA	PLMODE
		STZ	PYS_WORK0	;デモカウンターリセット
		STZ	PLWORKTM	;デモタイマーリセット
;
		LDA	#00010001B+(00000000B*100H) ;表示画面セット
		STA	MANSEL		;[ & SUBSEL ]
;
 IF  JPN | NES ;**** 日本 or NES 対応 [1995/6/30] ****************
		LDA	#MSG_END0	;メッセージデータアドレス初期セット
 ELSE	       ;**** PAL 対応 [1995/7/20] ************************
		LDA	LNGG_SL
		ASL	A
		TAY
		LDA	!MSG_END_TBL,Y
 ENDIF
		STA	<ENWRK0,X
		LDA	#1000H+8000H
		STA	CHNG_CHR_VRAM	;転送先ＶＲＡＭアドレス初期セット
		LDY	#00111100B
		STY	CIPSCR		;２ビットモードへ
		LDY	#(WOB7CHR+1000H)/400H
		STY	CIPSCB		;ビットマップベースアドレスセット
;
LUIGI_CHRST_100 EQU	$
		RTS
;
;------------------------------------------------------------------------
;-		エンディングメッセージセット				-
;------------------------------------------------------------------------
MSG_END0	EQU	$

 IF  JPN  ;**** 日本 対応 [1995/6/30] ****************************

;こうして、ヨッシーたちのだいかつやくの
;おかげで　ふたごのあかちゃんたちは
;ぶじに　さいかいすることができました。

;そして、あかちゃんたちを　さがすうちに
;カメックいちみに　とらわれてしまった
;コウノトリも　たすけだされ　ふたりは、
;あらためて　はこばれることになりました

;ありがとうヨッシー！ふたりはこんどこそ
;パパとママにあえることでしょう・・・。
;
		BYTE	H__Ko,H___U,H__Si,H__Te,M_TEN,K__Yo,K__tu,K__Si,M__Hi,H__Ta,H__Ti,H__No,H__Da,H___I,H__Ka,H__Tu,H__Ya,H__Ku,H__No
		BYTE	M_CTL,00AH
		BYTE	H___O,H__Ka,H__Ge,H__De,M_SPC,H__Hu,H__Ta,H__Go,H__No,H___A,H__Ka,H__Ti,H__ya,H___N,H__Ta,H__Ti,H__Ha
		BYTE	M_CTL,009H
		BYTE	H__Bu,H__Zi,H__Ni,M_SPC,H__Sa,H___I,H__Ka,H___I,H__Su,H__Ru,H__Ko,H__To,H__Ga,H__De,H__Ki,H__Ma,H__Si,H__Ta,M_MAR
		BYTE	M_CTL,009H
;
		BYTE	H__So,H__Si,H__Te,M_TEN,H___A,H__Ka,H__Ti,H__ya,H___N,H__Ta,H__Ti,H__Wo,M_SPC,H__Sa,H__Ga,H__Su,H___U,H__Ti,H__Ni
		BYTE	M_CTL,00AH
		BYTE	K__Ka,K__Me,K__tu,K__Ku,H___I,H__Ti,H__Mi,H__Ni,M_SPC,H__To,H__Ra,H__Wa,H__Re,H__Te,H__Si,H__Ma,H__tu,H__Ta
		BYTE	M_CTL,009H
		BYTE	K__Ko,K___U,K__No,K__To,K__Ri,H__Mo,M_SPC,H__Ta,H__Su,H__Ke,H__Da,H__Sa,H__Re,M_SPC,H__Hu,H__Ta,H__Ri,H__Ha,M_TEN
		BYTE	M_CTL,00AH
		BYTE	H___A,H__Ra,H__Ta,H__Me,H__Te,M_SPC,H__Ha,H__Ko,H__Ba,H__Re,H__Ru,H__Ko,H__To,H__Ni,H__Na,H__Ri,H__Ma,H__Si,H__Ta
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,00AH
		BYTE	H___A,H__Ri,H__Ga,H__To,H___U,K__Yo,K__tu,K__Si,M__Hi,M___X,H__Hu,H__Ta,H__Ri,H__Ha,H__Ko,H___N,H__Do,H__Ko,H__So
		BYTE	M_CTL,009H
		BYTE	K__Pa,K__Pa,H__To,K__Ma,K__Ma,H__Ni,H___A,H___E,H__Ru,H__Ko,H__To,H__De,H__Si,H__yo,H___U,0D3H, 0D3H, 0D3H, M_MAR
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,0FFH

 ENDIF	  ;**** 日本 対応 [1995/6/30] ****************************

;;;; IF	 NES  ;**** NES 対応 [1995/7/19] *****************************
 IF  NES | PAL ;**** NES or PAL 対応 [1995/7/19] *****************

;-------------[ 英語 ]---------------------------------------------------
;Thus, due to the marvelous
;team work of the Yoshi clan,
;    the twins are reunited.

;The captured stork is freed
;  by Yoshi, and sets about
;  his duty and finally makes
;  the long awaited delivery!

;Thank you, Yoshi! The twins
; will meet the parents soon!

		BYTE	E___T,E___h,E___u,E___s,M_Can,M_SPC,E___d,E___u,E___e,M_SPC,E___t,E___o,M_SPC,E___t,E___h,E___e
		BYTE	M_SPC,E___m,E___a,E___r,E___v,E___e,E___l,E___o,E___u,E___s
		BYTE	M_CTL,00AH
		BYTE	E___t,E___e,E___a,E___m,M_SPC,E___w,E___o,E___r,E___k,M_SPC,E___o,E___f,M_SPC,E___t,E___h,E___e
		BYTE	M_SPC,E___Y,E___o,E___s,E___h,E___i,M_SPC,E___c,E___l,E___a,E___n,M_Can
		BYTE	M_CTL,009H
		BYTE	M_SPC,M_SPC,M_SPC,M_SPC,E___t,E___h,E___e,M_SPC,E___t,E___w,E___i,E___n,E___s,M_SPC,E___a,E___r
		BYTE	E___e,M_SPC,E___r,E___e,E___u,E___n,E___i,E___t,E___e,E___d,M_Pir
		BYTE	M_CTL,00AH
		BYTE	M_CTL,00AH
		BYTE	M_CTL,009H
;
		BYTE	E___T,E___h,E___e,M_SPC,E___c,E___a,E___p,E___t,E___u,E___r,E___e,E___d,M_SPC,E___s,E___t,E___o
		BYTE	E___r,E___k,M_SPC,E___i,E___s,M_SPC,E___f,E___r,E___e,E___e,E___d
		BYTE	M_CTL,00AH
		BYTE	M_SPC,M_SPC,E___b,E___y,M_SPC,E___Y,E___o,E___s,E___h,E___i,M_Can,M_SPC,E___a,E___n,E___d,M_SPC
		BYTE	E___s,E___e,E___t,E___s,M_SPC,E___a,E___b,E___o,E___u,E___t
		BYTE	M_CTL,009H
		BYTE	M_SPC,M_SPC,E___h,E___i,E___s,M_SPC,E___d,E___u,E___t,E___y,M_SPC,E___a,E___n,E___d,M_SPC,E___f
		BYTE	E___i,E___n,E___a,E___l,E___l,E___y,M_SPC,E___m,E___a,E___k,E___e,E___s
		BYTE	M_CTL,00AH
		BYTE	M_SPC,M_SPC,E___t,E___h,E___e,M_SPC,E___l,E___o,E___n,E___g,M_SPC,E___a,E___w,E___a,E___i,E___t
		BYTE	E___e,E___d,M_SPC,E___d,E___e,E___l,E___i,E___v,E___e,E___r,E___y,M___X
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,00AH
		BYTE	E___T,E___h,E___a,E___n,E___k,M_SPC,E___y,E___o,E___u,M_Can,M_SPC,E___Y,E___o,E___s,E___h,E___i
		BYTE	M___X,M_SPC,E___T,E___h,E___e,M_SPC,E___t,E___w,E___i,E___n,E___s
		BYTE	M_CTL,009H
		BYTE	M_SPC,E___w,E___i,E___l,E___l,M_SPC,E___m,E___e,E___e,E___t,M_SPC,E___t,E___h,E___e,M_SPC,E___p
		BYTE	E___a,E___r,E___e,E___n,E___t,E___s,M_SPC,E___s,E___o,E___o,E___n,M___X
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,0FFH

;;;; ENDIF    ;**** NES 対応 [1995/7/19] *****************************
 ENDIF	  ;**** NES or PAL 対応 [1995/7/19] **********************
;

 IF  PAL  ;**** PAL 対応 [1995/7/20] *****************************

;-------------[ フランス語 ]---------------------------------------------
MSG_END1	EQU	$

;Gr稍e  l'incroyable relais
;des Yoshis, les b饕駸 ont
;enfin pu 黎re r騏nis.
;Quant  la cigogne,
;captur馥 puis lib駻馥,
;elle ira livrer les jumeaux
; leurs parents !
;Merci Yoshi !
;Enfants et parents vont
;pouvoir se rencontrer !

		BYTE	E___G,E___r,F__a1,E___c,E___e,M_SPC,F__a0,M_SPC,E___l,M_SIZ,E___i,E___n,E___c,E___r,E___o,E___y
		BYTE	E___a,E___b,E___l,E___e,M_SPC,E___r,E___e,E___l,E___a,E___i,E___s
		BYTE	M_CTL,00AH
		BYTE	E___d,E___e,E___s,M_SPC,E___Y,E___o,E___s,E___h,E___i,E___s,M_Can,M_SPC,E___l,E___e,E___s,M_SPC
		BYTE	E___b,F__e1,E___b,F__e1,E___s,M_SPC,E___o,E___n,E___t
		BYTE	M_CTL,009H
		BYTE	E___e,E___n,E___f,E___i,E___n,M_SPC,E___p,E___u,M_SPC,F__e2,E___t,E___r,E___e,M_SPC,E___r,F__e1
		BYTE	E___u,E___n,E___i,E___s,M_Pir
		BYTE	M_CTL,00AH
		BYTE	E___Q,E___u,E___a,E___n,E___t,M_SPC,F__a0,M_SPC,E___l,E___a,M_SPC,E___c,E___i,E___g,E___o,E___g
		BYTE	E___n,E___e,M_Can
		BYTE	M_CTL,009H
		BYTE	E___c,E___a,E___p,E___t,E___u,E___r,F__e1,E___e,M_SPC,E___p,E___u,E___i,E___s,M_SPC,E___l,E___i
		BYTE	E___b,F__e1,E___r,F__e1,E___e,M_Can
		BYTE	M_CTL,00AH
		BYTE	E___e,E___l,E___l,E___e,M_SPC,E___i,E___r,E___a,M_SPC,E___l,E___i,E___v,E___r,E___e,E___r,M_SPC
		BYTE	E___l,E___e,E___s,M_SPC,E___j,E___u,E___m,E___e,E___a,E___u,E___x
		BYTE	M_CTL,009H
		BYTE	F__a0,M_SPC,E___l,E___e,E___u,E___r,E___s,M_SPC,E___p,E___a,E___r,E___e,E___n,E___t,E___s,M_SPC
		BYTE	M___X
		BYTE	M_CTL,00AH
		BYTE	E___M,E___e,E___r,E___c,E___i,M_SPC,E___Y,E___o,E___s,E___h,E___i,M_SPC,M___X
		BYTE	M_CTL,009H
		BYTE	E___E,E___n,E___f,E___a,E___n,E___t,E___s,M_SPC,E___e,E___t,M_SPC,E___p,E___a,E___r,E___e,E___n
		BYTE	E___t,E___s,M_SPC,E___v,E___o,E___n,E___t
		BYTE	M_CTL,00AH
		BYTE	E___p,E___o,E___u,E___v,E___o,E___i,E___r,M_SPC,E___s,E___e,M_SPC,E___r,E___e,E___n,E___c,E___o
		BYTE	E___n,E___t,E___r,E___e,E___r,M_SPC,M___X
		BYTE	M_CTL,009H
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,0FFH
;
;-------------[ ドイツ語 ]-----------------------------------------------
MSG_END2	EQU	$

;Und so, dank des mutigen
;Auftreten der Yoshis, sind
;die Geschwister wieder ver-
;eint.
;Der Storch, der w臧rend
;der Baby-Auslieferung
;berw舁tigt wurde und sich
;die ganze Zeit ber in
;Kameks Gewalt befand, ist
;nun wieder frei. Danke
;Yoshis! Ihr seid SUPER!!!

		BYTE	E___U,E___n,E___d,M_SPC,E___s,E___o,M_Can,M_SPC,E___d,E___a,E___n,E___k,M_SPC,E___d,E___e,E___s
		BYTE	M_SPC,E___m,E___u,E___t,E___i,E___g,E___e,E___n
		BYTE	M_CTL,00AH
		BYTE	E___A,E___u,E___f,E___t,E___r,E___e,E___t,E___e,E___n,M_SPC,E___d,E___e,E___r,M_SPC,E___Y,E___o
		BYTE	E___s,E___h,E___i,E___s,M_Can,M_SPC,E___s,E___i,E___n,E___d
		BYTE	M_CTL,009H
		BYTE	E___d,E___i,E___e,M_SPC,E___G,E___e,E___s,E___c,E___h,E___w,E___i,E___s,E___t,E___e,E___r,M_SPC
		BYTE	E___w,E___i,E___e,E___d,E___e,E___r,M_SPC,E___v,E___e,E___r,M__Hi
		BYTE	M_CTL,00AH
		BYTE	E___e,E___i,E___n,E___t,M_Pir
		BYTE	M_CTL,009H
		BYTE	E___D,E___e,E___r,M_SPC,E___S,E___t,E___o,E___r,E___c,E___h,M_Can,M_SPC,E___d,E___e,E___r,M_SPC
		BYTE	E___w,G__a0,E___h,E___r,E___e,E___n,E___d
		BYTE	M_CTL,00AH
		BYTE	E___d,E___e,E___r,M_SPC,E___B,E___a,E___b,E___y,M__Hi,E___A,E___u,E___s,E___l,E___i,E___e,E___f
		BYTE	E___e,E___r,E___u,E___n,E___g
		BYTE	M_CTL,009H
		BYTE	G__u0,E___b,E___e,E___r,E___w,G__a0,E___l,E___t,E___i,E___g,E___t,M_SPC,E___w,E___u,E___r,E___d
		BYTE	E___e,M_SPC,E___u,E___n,E___d,M_SPC,E___s,E___i,E___c,E___h
		BYTE	M_CTL,00AH
		BYTE	E___d,E___i,E___e,M_SPC,E___g,E___a,E___n,E___z,E___e,M_SPC,E___Z,E___e,E___i,E___t,M_SPC,G__u0
		BYTE	E___b,E___e,E___r,M_SPC,E___i,E___n
		BYTE	M_CTL,009H
		BYTE	E___K,E___a,E___m,E___e,E___k,E___s,M_SPC,E___G,E___e,E___w,E___a,E___l,E___t,M_SPC,E___b,E___e
		BYTE	E___f,E___a,E___n,E___d,M_Can,M_SPC,E___i,E___s,E___t
		BYTE	M_CTL,00AH
		BYTE	E___n,E___u,E___n,M_SPC,E___w,E___i,E___e,E___d,E___e,E___r,M_SPC,E___f,E___r,E___e,E___i,M_Pir
		BYTE	M_SPC,E___D,E___a,E___n,E___k,E___e
		BYTE	M_CTL,009H
		BYTE	E___Y,E___o,E___s,E___h,E___i,E___s,M___X,M_SPC,E___I,E___h,E___r,M_SPC,E___s,E___e,E___i,E___d
		BYTE	M_SPC,E___S,E___U,E___P,E___E,E___R,M___X,M___X,M___X
		BYTE	M_CTL,009H
;
		BYTE	M_CTL,0FFH
;
;-------------{ ３ヶ国語メッセージテーブル }-----------------------------
MSG_END_TBL	EQU	$
		WORD	MSG_END0	;[英語]
		WORD	MSG_END1	;[フランス語]
		WORD	MSG_END2	;[ドイツ語]

 ENDIF	  ;**** PAL 対応 [1995/7/20] *****************************

;
ENMSG_SET	EQU	$
		TYX
;
		LDA	#BANK MSG_END0
		STA	R3		;(R3) <-- メッセージアドレス（Ｂ）
		LDA	<ENWRK0,X
		STA	R4		;(R4) <-- メッセージアドレス（Ｌ，Ｈ）
		M_CHIP	ENDMSG_CHRST
		LDX	<ENINDX
;
		LDY	R0
		CPY	#0FFH
		BEQ	ENMSG_SET_0050	;ＥＮＤ？ ( yes:ENMSG_SET_0050 )
;
		LDA	R14		;次からのメッセージデータアドレスセット
		STA	<ENWRK0,X
;
		LDA	CHNG_CHR_VRAM
		STA	OBM7WF		;mode 7 OBJ chara DMA "ON"
		CLC
		ADC	#0300H
		STA	CHNG_CHR_VRAM
		RTS
;
;-------------- エンディングメッセージ表示へ ----------------------------
ENMSG_SET_0050	EQU	$
		INC	<ENWRK2,X
;
;-------------- メッセージスクリーンセット ----------------------
		M_CHIP	ENDMSG_SCRST
		LDX	<ENINDX
;
		LDA	#3400H+8000H
		STA	OBM7WF		;mode 7 OBJ chara DMA "ON"
;
;-------------- エンディングメッセージ表示初期セット ------------
		STZ	<ENWRK0,X	;カラーフェード倍率初期セット
 IF  JPN | NES ;**** 日本 or NES 対応 [1995/6/30] ****************
		LDA	#0A00H		;エンディングへのウェイトタイマーセット
 ELSE	       ;**** PAL 対応 [1995/7/20] ************************
		LDA	#0800H		;エンディングへのウェイトタイマーセット
 ENDIF
		STA	ENTIM0,X
 IF  JPN | NES ;**** 日本 or NES 対応 [1995/6/30] ****************
		LDA	#0300H		;メッセージスクロールまでのウェイトタイマー
 ELSE	       ;**** PAL 対応 [1995/7/20] ************************
		LDA	#0266H		;メッセージスクロールまでのウェイトタイマー
 ENDIF
		STA	ENTIM1,X
;
		LDA	#7FFFH		;メッセージカラーセット
		STA	>MOTOCOL+2
		STA	>DATACOL+2
		STZ	ESCCH3		;ＢＧ３スクロールカウンターセット
		STZ	SCCH3
		STZ	ESCCV3
		STZ	SCCV3
		LDY	#01H		;ＢＧ３キャラクターベースアドレス変更
		STY	BG34CH
		LDA	#00010101B+(00000000B*100H)
		STA	MANSEL		;[ & SUBSEL ]
		LDY	#00100000B	;固定カラー加減算セット
		STY	WIND30
		LDY	#10110001B
		STY	SUBADF
		LDA	HD420C		;グラデーション切り替え
		EOR	#00011110B
		STA	HD420C
		STZ	NUKCOL		;固定カラークリアー
;
		LDA	#LUIGI		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I	;敵エリア確保
;;;;		    BCC	    ENMSG_SET_0100  ;	   ”	 ？ ( no:ENMSG_SET_0100 )
;
		LDA	#04F0H		;Ｘ座標セット
		STA	ENXPSL,Y
		LDA	#07A0H		;Ｙ座標セット
		STA	ENYPSL,Y
;
		LDA	#KONOT		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I
;;;;		    BCC	    ENMSG_SET_0100  ;	   ”	 ？ ( no:ENMSG_SET_0100 )
;
		LDA	#0530H		;Ｘ座標セット
		STA	ENXPSL,Y
		LDA	#0732H		;Ｙ座標セット
		STA	ENYPSL,Y
;
;;;;ENMSG_SET_0100  EQU	    $
		LDY	#00111101B
		STY	CIPSCR		;４ビットモードへ
		LDY	#WOB7CHR/400H
		STY	CIPSCB		;ビットマップベースアドレスセット
		RTS
;
;------------------------------------------------------------------------
;-		エンディングメッセージ表示				-
;------------------------------------------------------------------------
ENMSG_DISP	EQU	$
		TYX
;
		LDA	ESCCV3
		CMP	#0F0H
		BCS	ENMSG_DISP_0100 ;スクロール終了？ ( yes:ENMSG_DISP_0100 )
;
		LDA	ENTIM1,X
		BNE	ENMSG_DISP_0150 ;スクロール？ ( no:ENMSG_DISP_0150 )
;
;-------------- スクロールセット ----------------------------------------
		INC	ESCCV3
		LDA	#04H
		STA	ENTIM1,X
;
		STZ	R1		;(R1) <-- 元カラー
		LDA	#7FFFH
		STA	R2		;(R2) <-- 先カラー
		LDA	<ENWRK0,X
		STA	R6		;(R6) <-- 倍率
		CLC
		ADC	#02H
		CMP	#0100H
		BCC	ENMSG_DISP_0050 ;フェード倍率ＭＡＸ？ ( no:ENMSG_DISP_0050 )
;
		LDA	#0100H
ENMSG_DISP_0050 EQU	$
		STA	<ENWRK0,X
		M_CHIP	COL_MORF
		LDX	<ENINDX
;
		LDA	R3		;フェードカラーセット
		STA	NUKCOL
		RTS
;
ENMSG_DISP_0100 EQU	$
		LDA	ENTIM0,X
		BNE	ENMSG_DISP_0150 ;ウェイト？ ( yes:ENMSG_DISP_0150 )
;
;-------------- エンディングへ ----------------------------------
		LDA	#0F1H		;[♪]
		STA	SOUND_0
;
		LDA	#DMIN
		STA	MODENO
;
ENMSG_DISP_0150 EQU	$
		RTS
;
;;ひみつ;;;************************************************************************
;;ひみつ;;;*		  大クッパ用データ転送					  *
;;ひみつ;;;************************************************************************
;;ひみつ;;KOOPA_CHR_DATA  EQU	  $
;;ひみつ;;		  HEX	  0f,00,3f,00,7f,00,7f,00,7f,00,77,0f,ef,1c,df,3f
;;ひみつ;;		  HEX	  00,00,00,00,00,00,00,00,00,00,0f,0f,5c,5c,3f,3f
;;ひみつ;;		  HEX	  f0,00,fc,00,fe,00,fe,00,7e,f0,fe,fc,fe,e4,fe,fc
;;ひみつ;;		  HEX	  00,00,00,00,00,00,00,00,f0,f0,fc,fc,e4,e4,fc,fc
;;ひみつ;;		  HEX	  00,00,03,00,05,02,08,07,0f,00,0f,00,0f,01,0f,01
;;ひみつ;;		  HEX	  00,00,00,00,00,02,00,07,00,04,01,01,01,01,01,05
;;ひみつ;;		  HEX	  e0,00,68,90,34,c8,ba,44,ff,00,ff,00,df,a6,df,a6
;;ひみつ;;		  HEX	  40,40,00,60,00,30,00,34,00,20,86,96,86,b6,86,b6
;;ひみつ;;		  HEX	  ff,1d,df,20,50,2f,58,37,2f,18,25,1c,1a,06,07,00
;;ひみつ;;		  HEX	  5d,5d,60,60,20,20,30,30,18,18,1f,1f,07,07,00,00
;;ひみつ;;		  HEX	  fe,f4,ff,00,b1,4e,d1,6e,9e,00,f8,00,74,00,08,00
;;ひみつ;;		  HEX	  f4,f4,00,00,60,60,60,60,60,60,fc,fc,f8,f8,f0,f0
;;ひみつ;;		  HEX	  0d,02,0c,03,18,07,18,07,31,0e,ff,00,7f,00,1c,00
;;ひみつ;;		  HEX	  00,06,00,07,00,0f,00,0f,00,1f,00,3f,00,1c,00,00
;;ひみつ;;		  HEX	  ce,30,0c,f0,1c,e0,38,c0,f0,00,c0,00,00,00,00,00
;;ひみつ;;		  HEX	  00,78,00,f8,00,f8,00,f0,00,c0,00,00,00,00,00,00
;;ひみつ;;;
;;ひみつ;;KOOPA_CHR_SET	  EQU	  $
;;ひみつ;;;
;;ひみつ;;		  I16
;;ひみつ;;;
;;ひみつ;;		  LDX	  #KOOPA_CHR_DATA	   ;(X) <------ 転送元アドレス（Ｌ，Ｈ）
;;ひみつ;;		  LDA	  #020H*4		   ;(A) <------ 転送バイト数
;;ひみつ;;		  STA	  <EWORK0
;;ひみつ;;		  LDY	  #BANK KOOPA_CHR_DATA
;;ひみつ;;		  STY	  WORK1			   ;(WK1,2) <-- 転送元アドレス（Ｂ）
;;ひみつ;;		  LDY	  #4280H		   ;(Y) <------ ＶＲＡＭアドレス
;;ひみつ;;		  JSL	  >VRAMDX_ST
;;ひみつ;;;
;;ひみつ;;		  LDX	  #KOOPA_CHR_DATA+(020H*4) ;(X) <------ 転送元アドレス（Ｌ，Ｈ）
;;ひみつ;;		  LDA	  #020H*4		   ;(A) <------ 転送バイト数
;;ひみつ;;		  STA	  <EWORK0
;;ひみつ;;		  LDY	  #BANK KOOPA_CHR_DATA
;;ひみつ;;		  STY	  WORK1			   ;(WK1,2) <-- 転送元アドレス（Ｂ）
;;ひみつ;;		  LDY	  #4380H		   ;(Y) <------ ＶＲＡＭアドレス
;;ひみつ;;		  JSL	  >VRAMDX_ST
;;ひみつ;;;
;;ひみつ;;		  I8
;;ひみつ;;;
;;ひみつ;;		  LDX	  <ENINDX
;;ひみつ;;		  RTS
;;ひみつ;;;
;;ひみつ;;;
;;ひみつ;;;
;
;************************************************************************
;*		intial	( 大クッパ用ブロック )				*
;************************************************************************
KPBLK_SET_X	EQU	$-2
		WORD	00180H,000F8H,00060H,0FFF0H,00128H,000A0H,00048H
KPBLK_SIZE	EQU	$-2
		WORD	00180H,001FFH,00180H,00180H,001FFH,00180H,001FFH
;
KPEXB_CHR_ANGL	EQU	$
		WORD	0000H,0020H,0040H
KPEXB_CHR_ZOOM	EQU	$
		WORD	0100H,00C0H,0080H
KPEXB_CHR_BMPX	EQU	$
		WORD	0000H,0020H,0040H
;
KPBLKIN		EQU	$
		JSL	>TROBJ_SR_8x8_CL
;
;-------------- 効果ブロックキャラクターセット --------------------------
		LDY	#(3-1)*2
KPBLKIN_0010	EQU	$
		PHY			;(Y) save
;
		LDA	!KPEXB_CHR_ANGL,Y
		STA	R5		;(R5)  <-- 回転角度
		LDA	!KPEXB_CHR_ZOOM,Y
		STA	R6		;(R6)  <-- 倍率
		LDA	!KPEXB_CHR_BMPX,Y
		STA	R3		;(R3)  <-- ビットマップ座標＿Ｘ
		STZ	R2		;(R2)  <--	  ”	   ＿Ｙ
		LDA	#CIPCHD2+00E0H
		STA	R12		;(R12) <-- キャラクターアドレス（Ｌ，Ｈ）
		LDA	#BANK CIPCHD2+00E0H
		STA	R13		;(R13) <--	   ”		(Ｂ）
		M_CHIP	C_32_ROTZOM
;
		PLY			;(Y) load
		DEY
		DEY
		BPL	KPBLKIN_0010
;
		INC	OBM7WF		;mode 7 OBJ chara DMA "ON"
;
;-------------- カラーセット --------------------------------------------
		LDY	#15*2-2
		LDX	NMITYP
		CPX	#2
		BNE	KPBLKIN_0020	;モード７？ ( yes:KPBLKIN_0020 )
		LDY	#(15*2-2)+((80H+71H)-(80H+61H))*2
;
KPBLKIN_0020	EQU	$
		PHB			;(DBR) save
		LDX	#BANK DATACOL	;(DBR) <-- DATACOL(B)
		PHX
		PLB
;
		LDX	#15*2-2
KPBLKIN_0050	EQU	$
		LDA	>COL_ADDRESS+KOOPA_BLK_COL_0,X
		STA	MOTOCOL+(80H+61H)*2,Y
		STA	DATACOL+(80H+61H)*2,Y
		STA	CHNGCOL+(80H+61H)*2,Y
		DEY
		DEY
		DEX
		DEX
		BPL	KPBLKIN_0050
;
		PLB
;
		LDX	<ENINDX
		LDA	#16		;効果ブロックセット数セット
		LDY	ENWRKC,X
		BEQ	KPBLKIN_0100	;クッパスタートブロック落下デモ？ ( no:KPBLKIN_0100 )
;
		LDY	NMITYP
		CPY	#2
		BEQ	KPBLKIN_0100	;モード７？ ( no:KPBLKIN_0100 )
		LDA	#64		;効果ブロックセット数セット
KPBLKIN_0100	EQU	$
		STA	KOOPA_EXBFG
		STA	<ENWRK0,X
		RTL
;
;************************************************************************
;*		move	( 大クッパ用ブロック )				*
;************************************************************************
KPEXB_SIZE	EQU	$
		HEX	0,2,4,2,4,0,0,4,2,2,2,4,4,0,0,2
;
KPEXB_ENMOD2	EQU	$
		WORD	0000100000000000B ;[0]
		WORD	0010000000000001B ;[2]
		WORD	0010000000000001B ;[4]
KPEXB_ENYUSN	EQU	$
		WORD	00007H		  ;[0]
		WORD	00005H		  ;[2]
		WORD	00006H		  ;[4]
KPEXB_Z		EQU	$
		WORD	00C00H		  ;[0]
		WORD	00800H		  ;[2]
		WORD	00A00H		  ;[4]
;
KPEXB_SET_X	EQU	$
		WORD	0FC00H,00500H,0FF00H,00300H,0FE00H,0FD00H,00400H,00200H
		WORD	0FD80H,00480H,0FE80H,00280H,0FD80H,0FE80H,00380H,00180H
;
KPEXB_SET_Y	EQU	$
; ENWRKC -->		 [0]   [2]
		WORD	00400H,0FB00H
KPEXB_SET_YS	EQU	$
		WORD	0D000H,03000H
;
KPBLK_SND_TM	EQU	$
		HEX	40,10,50,20
;
KPBLKMV		EQU	$
		JSL	>ENMDCK
;
		LDA	KOOPA_EXBFG
		BNE	KPBLKMV_0000	;落下モード？ ( no:KPBLKMV_0000 )
		JMP	KPBLKMV_0100
;
;-------------- 効果ブロックセット --------------------------------------
KPBLKMV_0000	EQU	$
		LDA	<FRCNT2		;地震セット
		AND	#0FH
		ORA	#40H
		STA	TILTCT
;
		LDA	ENTIM2,X
		BNE	KPBLKMV_0010	;サウンドセット？ ( no:KPBLKMV_0010 )
;
		LDA	<RANDM0
		AND	#03H
		TAY
		LDA	!KPBLK_SND_TM,Y
		AND	#00FFH
		STA	ENTIM2,X
;
		LDA	#099H		;[♪]
		JSL	>SOUND_3_ON
;
KPBLKMV_0010	EQU	$
		LDA	ENTIM0,X
		BEQ	KPBLKMV_0012	;ウェイト？ ( no:KPBLKMV_0012 )
		RTL
;
KPBLKMV_0012	EQU	$
		LDA	#010H
		LDY	ENWRKC,X
		BEQ	KPBLKMV_0020	;クッパスタートブロック落下デモ？ ( no:KPBLKMV_0020 )
;
		LDA	#08H
KPBLKMV_0020	EQU	$
		STA	ENTIM0,X
;
		LDA	<ENWRK0,X
		BEQ	KPBLKMV_0050	;セット終了？ ( yes:KPBLKMV_0050 )
;
		LDA	#KPEXB		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR		;敵エリア確保
		BCC	KPBLKMV_0050	;      ”    ？ ( no:KPBLKMV_0050 )
;
		DEC	<ENWRK0,X
;
		PHY			;(Y) save
		LDA	<ENWRK0,X
		AND	#0FH
		TAY
		LDX	!KPEXB_SIZE,Y	;(X) <-- サイズ
		PLY			;(Y) load
		TXA			;パターンＮｏ．セット
		LSR	A
		LSR	A
		STA	ENCHPT,Y
		LDA	!KPEXB_ENMOD2,X ;ＯＡＭセットタイプセット
		STA	ENMOD2,Y
		LDA	!KPEXB_ENYUSN,X ;ＯＢＪ優先順位セット
		STA	ENYUSN,Y
		LDA	!KPEXB_Z,X
		STA	<EWORK0		;(EWK0,1) <-- Ｚ位置
		LDA	<RANDM0		;Ｘ座標セット
		AND	#0FH*2
		TAX
		LDA	SCCH1
		CLC
		ADC	!KPEXB_SET_X,X
		STA	ENWRKC,Y	;基準Ｘ座標セット
		CLC
		ADC	<EWORK0
		STA	ENXPSL,Y	;Ｘ座標セット
		LDA	<RANDM0		;フリップセット
		AND	#11000000B
		ORA	ENCLOR,Y
		LDX	NMITYP
		CPX	#2
		BNE	KPBLKMV_0030	;モード７？ ( yes:KPBLKMV_0030 )
;
		ORA	#00101110B
		PHA			;(A) save
;
		LDA	#0		;ＯＢＪ優先順位変更（最優先）
		STA	ENYUSN,Y
;
		PLA			;(A) load
KPBLKMV_0030	EQU	$
		STA	ENCLOR,Y
;
		LDX	<ENINDX
		LDA	ENWRKC,X
		TAX
		LDA	SCCV1		;Ｙ座標セット
		CLC
		ADC	!KPEXB_SET_Y,X
		STA	ENYPSL,Y
		LDA	!KPEXB_SET_YS,X ;Ｙスピードセット
		STA	ENYSPD,Y
		LDX	<ENINDX
;
KPBLKMV_0050	EQU	$
		RTL
;
;-------------- 落下モード ----------------------------------------------
KPBLKMV_0100	EQU	$
		LDA	<ENWRK0,X
		BNE	KPBLKMV_0120	;落下モード初期セット？ ( no:KPBLKMV_0120 )
;
		LDY	ENWRKC,X
		BNE	KPBLKMV_0150	;クッパスタートブロック落下デモ？ ( yes:KPBLKMV_0150 )
;
		LDX	#15*2-2
KPBLKMV_0110	EQU	$
		LDA	>COL_ADDRESS+KOOPA_BLK_COL_1,X
		STA	>MOTOCOL+(80H+61H)*2,X
		STA	>DATACOL+(80H+61H)*2,X
		DEX
		DEX
		BPL	KPBLKMV_0110
;
		LDX	<ENINDX
		STZ	ENYUSN,X	;表示”ＯＮ”
		LDA	SCCV1		;Ｙ座標初期セット
		CLC
		ADC	#0F0H
		STA	ENYPSL,X
		LDA	#4+1		;落下ブロックセット数セット
		STA	<ENWRK0,X
		RTL
;
;-------------- キャラクターセット ------------------------------
KPBLKMV_0120	EQU	$
		LDA	<FRCNT2
		ASL	A
		ASL	A
		ASL	A
		AND	#00FFH
		STA	R5		;(R5)  <-- 回転角度
		LDA	<ENWRK2,X
		STA	R6		;(R6)  <-- 倍率
		LDY	ENTROB,X
		TYX
		LDA	>TROBJ_PLOT_X,X
		STA	R3		;(R3)  <-- ビットマップ座標＿Ｘ
		LDA	>TROBJ_PLOT_Y,X
		STA	R2		;(R2)  <--	  ”	   ＿Ｘ
		LDA	#CIPCHD2+00E0H
		STA	R12		;(R12) <-- キャラクターアドレス（Ｌ，Ｈ）
		LDA	#BANK CIPCHD2+00E0H
		STA	R13		;(R13) <--	   ”		(Ｂ）
;
		I8
;
		M_CHIP	C_64_ROTZOM_32
;
		INC	OBM7WF		;mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
;
;-------------- 位置チェック ------------------------------------
		LDA	ENDSYL,X
		CMP	#0F0H
		BMI	KPBLKMV_0250	;再セット？ ( no:KPBLKMV_0250 )
;
;-------------- 位置再セット ----------------------------
		LDY	KOOPA_BLKNO
		CPY	#7*2
		BCS	KPBLKMV_0150	;セット終了？ ( yes:KPBLKMV_0150 )
		DEC	<ENWRK0,X
		BNE	KPBLKMV_0200	;セット終了？ ( no:KPBLKMV_0200 )
KPBLKMV_0150	EQU	$
		JMP	>ENCLEAR
;
KPBLKMV_0200	EQU	$
		INY			;ブロックカウンターｕｐ
		INY
		STY	KOOPA_BLKNO
		LDA	!KPBLK_SET_X,Y	;Ｘ座標初期セット
		CLC
		ADC	PLSCRL_MINX
		STA	ENXPSL,X
		LDA	SCCV1		;Ｙ座標初期セット
		SEC
		SBC	#0200H
		STA	ENYPSL,X
		LDA	!KPBLK_SIZE,Y	;ブロックサイズセット
		STA	<ENWRK2,X
		LDA	#07C0H		;ＢＧ書き換えＹ位置初期セット
		STA	<ENWRK4,X
		LDA	#0800H		;落下スピードセット
		STA	ENYSPD,X
;
		LDA	#KPBKG		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR		;敵エリア確保
		BCC	KPBLKMV_0210	;      ”    ？ ( no:KPBLKMV_0210 )
;
		LDA	ENXPSL,X	;Ｘ座標セット
		STA	ENXPSL,Y
		LDA	#07C0H		;Ｙ座標セット
		STA	ENYPSL,Y
		LDA	#080H		;表示タイマーセット
		STA	ENTIM0,Y
		LDA	<ENWRK2,X
		INC	A		;[ * 1FFH --> 200H ]
		XBA
		AND	#00FFH		;[ 1 or 2 ]
		ASL	A		;[ 2 or 4 ]
		CLC
		ADC	#4-2		;[ 4 or 6 ]
		STA	ENWRK0,Y	;ＭＡＸパターンセット
		LDA	#040H
		STA	ENTIM1,Y	;パターン切り替え初期タイマーセット
;
KPBLKMV_0210	EQU	$
		LDA	#020H		;[♪]
		JMP	>SOUND_3_ON
;
;-------------- ＢＧ書き換えチェック ------------------------------------
KPBLKMV_0250	EQU	$
		LDA	ENYPSL,X
		CMP	#07C0H+030H
		BPL	KPBLKMV_0500	;ＢＧ書き換えＹ位置？ ( no:KPBLKMV_0500 )
		CMP	<ENWRK4,X
		BMI	KPBLKMV_0500	;ＢＧ書き換えＹ位置？ ( no:KPBLKMV_0500 )
;
		STA	BGYPS1		;ＢＧ書き換えＹ座標セット
		LDA	ENXPSL,X	;ＢＧ書き換えＸ座標セット
		SEC
		SBC	#010H
		STA	BGXPS1
		LDA	<ENWRK2,X	;ＢＧ書き換え数セット
		INC	A		;[ * 1FFH --> 200H ]
		ASL	A
		XBA
		TAY
		DEY
		STY	BGUTNO
		LDA	#KPCL		;ＢＧ書き換えタイプセット
		STA	BGCGNO
		JSL	>UNITCHG
		LDX	<ENINDX
;
		LDA	<ENWRK4,X	;ＢＧ書き換えＹ位置ｕｐ
		CLC
		ADC	#010H
		STA	<ENWRK4,X
		CMP	#07C0H+010H
		BNE	KPBLKMV_0500	;サウンドセット？ ( no:KPBLKMV_0500 )
;
		LDA	#099H		;[♪]
		JSL	>SOUND_3_ON
;
KPBLKMV_0500	EQU	$
		RTL
;
;************************************************************************
;*		intial	( 大クッパ用投げ爆弾 )				*
;************************************************************************
KPBOMIN		EQU	$
		RTL
;
;************************************************************************
;*		move	( 大クッパ用投げ爆弾 )				*
;************************************************************************
KPSMK_SIZE	EQU	$
		HEX	0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,3
;
KPBOMMV		EQU	$
;
;------------------------------------------------------------------------
;-		ＯＡＭセット						-
;------------------------------------------------------------------------
		LDA	ENSHOT,X
		BNE	KPBOMMV_0010	;ショット中？ ( yes:KPBOMMV_0010 )
		JMP	KPBOMMV_0500
;
;-------------- ショット ------------------------------------------------
KPBOMMV_0010	EQU	$
		LDA	#4		;(A) <-- ＯＡＭ数
		JSR	KOOPA_3D_OAMST
;
		LDA	ENDSYL,X
		CLC
		ADC	R2
		STA	ENDSYL,X
		CMP	#0FFC0H
		BPL	KPBOMMV_0020	;高く上がり過ぎ？ ( no:KPBOMMV_0020 )
;
;-------------- 高い所の敵に当たった！！ ------------------------
		LDA	ENXPSL,X	;Ｘ座標セット
		CLC
		ADC	R1
		STA	ENXPSL,X
		LDA	SCCV1		;Ｙ座標セット
		SEC
		SBC	#080H
		STA	ENYPSL,X
;
		LDA	<RANDM0
		AND	#03H
		BNE	KPBOMMV_0011	;スターセット？ ( no:KPBOMMV_0011 )
;
;-------------- スターセット！！ --------------------------------
		LDA	#032H		;[♪]
		JSL	>SOUND_3_ON
;
		TXY
		JMP	>TIMKN_CHANGE
;
KPBOMMV_0011	EQU	$
		LDA	#02EH		;[♪]
		JSL	>SOUND_3_ON
;
		LDA	#DEATH		;(A) <-- 敵Ｎｏ．
		TXY			;(Y) <-- (X)
		JSL	>ESTATST
		LDA	#EFAIL		;ヤラレモードセット
		STA	ENMODE,X
		LDA	ENXPSL,X
		CLC
		ADC	#010H
		STA	<ENWRK0,X
		LDA	#0CH
		STA	ENXPOW,X
		LDA	#020H		;重力セット
		STA	ENGPOW,X
		LDA	#0200H		;最大Ｙスピードセット
		STA	ENGMAX,X
		LDA	ENCLOR,X	;Ｖフリップセット
		ORA	#10000000B
		STA	ENCLOR,X
		LDA	#4		;ＯＢＪ優先順位セット
		STA	ENYUSN,X
		LDA	#04H
		STA	ENCHPT,X
		LDA	#0001100000000001B
		STA	ENMOD2,X
;
;;ひみつ;;		  LDA	  ENWRKC,X
;;ひみつ;;		  CMP	  #0280H
;;ひみつ;;		  BNE	  KPBOMMV_0012	  ;ひみつ？ ( no:KPBOMMV_0012 )
;;ひみつ;;		  LDA	  <RANDM0
;;ひみつ;;		  AND	  #01FH
;;ひみつ;;		  BNE	  KPBOMMV_0012	  ;ひみつ？ ( no:KPBOMMV_0012 )
;;ひみつ;;;
;;ひみつ;;		  LDA	  #04H
;;ひみつ;;		  STA	  ENCHPT,X
;;ひみつ;;		  LDA	  #0400H	  ;最大Ｙスピードセット
;;ひみつ;;		  STA	  ENGMAX,X
KPBOMMV_0012	EQU	$
		RTL
;
KPBOMMV_0020	EQU	$
		LDA	#0100H		;キャラクター倍率セット
		SEC
		SBC	R6
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		CMP	#0FH
		BCC	KPBOMMV_0050
		JMP	>ENCLEAR
;
KPBOMMV_0050	EQU	$
		STA	ENCHPT,X
;
		LDA	ENSTFG
		ORA	BIRIBIRI
		ORA	ITEMNO
		BNE	KPBOMMV_0012	;enemy stop ? ( yes:KPBOMMV_0012 )
;
;-------------- 大クッパ衝突チェック ----------------------------
		LDA	R9
		CMP	KOOPA_Z
		BPL	KPBOMMV_0052	;衝突チェックＯＫ？ ( yes:KPBOMMV_0052 )
;
		LDA	ENDSYL,X
		CMP	#090H
		BPL	KPBOMMV_0051	;モード１エリア？ ( yes:KPBOMMV_0051 )
		LDY	#00100000B	;(Y) <-- ＢＧ優先順位
		JMP	KPBOMMV_0400
;
KPBOMMV_0051	EQU	$
		JMP	KPBOMMV_0350
;
KPBOMMV_0052	EQU	$
		CMP	#0100H
		BMI	KPBOMMV_0150	;大クッパの勝利？ ( yes:KPBOMMV_0150 )
		LDY	ECNTXW,X
		BNE	KPBOMMV_0060	;衝突チェックＯＫ？ ( yes:KPBOMMV_0060 )
;
		CMP	#0800H
		BMI	KPBOMMV_0051	;終了？ ( no:KPBOMMV_0051 )
		JMP	>ENCLEAR
;
;-------------- 大クッパ顔との衝突チェック --------------
KPBOMMV_0060	EQU	$
		STZ	ECNTXW,X
;
		LDA	ENWRKC,X
;;;;		    CLC
;;;;		    ADC	    #8
		SEC
		SBC	KOOPA_X
		STA	<EWORK0
		CLC
		ADC	#8+((010H*4)+0CH)
		CMP	#((010H*4)+0CH)*2+1
		BCS	KPBOMMV_0100	;Ｘ衝突？ ( no:KPBOMMV_0100 )
;
		LDA	ECENTY,X
		SEC
		SBC	KOOPA_Y
		CLC
		ADC	#((038H*4)+0CH)
		CMP	#((038H*4)+0CH)+((08H*4)+0CH)+1
		BCS	KPBOMMV_0100	;Ｙ衝突？ ( no:KPBOMMV_0100 )
;
;-------------- 顔に当たり！！ ------------------
		INC	KOOPA_CRSFG	;当たりフラグ”ＯＮ”！！
		BRA	KPBOMMV_0150
;
;-------------- 大クッパ体との衝突チェック --------------
KPBOMMV_0100	EQU	$
		LDA	<EWORK0
		CLC
		ADC	#8+((028H*4)+0CH)
		CMP	#((028H*4)+0CH)*2+1
		BCS	KPBOMMV_0350	;Ｘ衝突？ ( no:KPBOMMV_0350 )
;
		LDA	ECENTY,X
		SEC
		SBC	KOOPA_Y
		CLC
		ADC	#((028H*4)+0CH)
		CMP	#((028H*4)+0CH)+((80H*4)+0CH)+1
		BCS	KPBOMMV_0350	;Ｙ衝突？ ( no:KPBOMMV_0350 )
;
;-------------- 体に当たり！！ ------------------
KPBOMMV_0150	EQU	$
		LDA	#KPSMK		;(A) <-- 効果Ｎｏ．
		JSL	>EXINSR		;効果エリア確保
;
		LDA	ENXPSL,X	;Ｘ座標セット
		STA	EXXPSL,Y
		LDA	ENWRKC,X
		STA	EXWRKC,Y
		LDA	ENYPSL,X	;Ｙ座標セット
		STA	EXYPSL,Y
		LDA	#KPSMK_P	;パターンカウンターセット
		STA	EXWRK0,Y
		LDA	#02H		;タイマー初期セット
		STA	EXTIM0,Y
		LDA	ENDSYL,X
		CMP	#090H
		BMI	KPBOMMV_0200	;モード１エリア？ ( no:KPBOMMV_0200 )
;
		LDA	EXCLOR,Y	;ＢＧ優先順位変更
		AND	#11001111B
		STA	EXCLOR,Y
KPBOMMV_0200	EQU	$
		LDA	ENCHPT,X	;サイズセット
		TAX
		LDA	!KPSMK_SIZE,X
		STA	EXWRK2,Y
		LDX	<ENINDX
		JMP	>ENCLEAR
;
;-------------- ＢＧ優先順位セット --------------------------------------
KPBOMMV_0350	EQU	$
		LDY	#00000000B	;(Y) <-- ＢＧ優先順位
KPBOMMV_0400	EQU	$
		LDA	ENCLOR,X	;ＢＧ優先順位セット
		AND	#11001111B
		STA	<EWORK0
		TYA
		ORA	<EWORK0
		STA	ENCLOR,X
;
KPBOMMV_0450	EQU	$
		RTL
;
;------------------------------------------------------------------------
;-		タマゴ特別チェック					-
;------------------------------------------------------------------------
KPBOMMV_0500	EQU	$
		JSL	>EGG_SP_CHECK
;
		LDA	<ENWRK4,X
		BEQ	KPBOMMV_0550	;オプションモード？ ( no:KPBOMMV_0550 )
;
;-------------- オプションモード ----------------------------------------
		JMP	KPBOM_OPTION
;
;------------------------------------------------------------------------
;-		通常処理						-
;------------------------------------------------------------------------
KPBOMMV_0550	EQU	$
		LDA	ENCBFG,X
		AND	#000001B
		BEQ	KPBOMMV_0600	;着地？ ( no:KPBOMMV_0600 )
;
;-------------- 着地中 --------------------------------------------------
		JSL	>XSDOWN		;Ｘスピード減速
;
;-------------- プレイヤーとの衝突チェック ------------------------------
KPBOMMV_0600	EQU	$
		JMP	>EGG_PLCROSS
;
;------------------------------------------------------------------------
;-		オプションモード					-
;------------------------------------------------------------------------
KPBOM_OPTION	EQU	$
		JSL	>EGG_OPTION	;[ (Y) <-- オプションポインター ]
		RTL
;
;------------------------------------------------------------------------
;-		大クッパＯＡＭ３Ｄ変換					-
;-			in :						-
;-				(A) <-- ＯＡＭ数			-
;-			out :						-
;-				(R6) <-- キャラクター倍率		-
;------------------------------------------------------------------------
KOOPA_3D_OAMST	EQU	$
		STA	R7		;(R7) <-- ＯＡＭ数
		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	R1		;(R1) <-- Ｘ座標
		LDA	ENYPSL,X
		STA	R2		;(R2) <-- Ｙ座標
		LDA	ENWRKC,X
		STA	R3		;(R3) <-- 基準Ｘ座標
		LDA	ENOAML,X
		STA	R5		;(R5) <-- ＯＡＭインデックス
		M_CHIP	KOOPA_3D_OAM
		LDX	<ENINDX
		STZ	ENMOVX,X
		RTS
;
;;;;;------------------------------------------------------------------------
;;;;;-		    大クッパＺソート用データセット			    -
;;;;;-			    in :					    -
;;;;;-				    (R9) <-- Ｚ座標			    -
;;;;;------------------------------------------------------------------------
;;;;ZSORT_BF_SET    EQU	    $
;;;;		    RTS
;;;;;
;;;;		    LDY	    KOOPA_ZSORT_P
;;;;		    LDA	    R9
;;;;		    STA	    KOOPA_ZSORT_Z,Y  ;ソート用Ｚ座標セット
;;;;		    TXA
;;;;		    STA	    KOOPA_ZSORT_IX,Y ;ソート用敵インデックスセット
;;;;		    INY
;;;;		    INY
;;;;		    INY
;;;;		    INY
;;;;		    STY	    KOOPA_ZSORT_P
;;;;		    RTS
;
;************************************************************************
;*		intial	( 大クッパ用ファイヤー )			*
;************************************************************************
KPFIRIN		EQU	$
		JSL	>TROBJ_SR_8x8_CL
;
		LDA	#07H		;表示”ＯＮ”
		STA	ENYUSN,X
		LDA	#08H		;小サイズパターンＮｏ．セット
		STA	ENCHPT,X
;
;-------------- キャラクターセット --------------------------------------
KPFIR_CHR_SET	EQU	$
		LDA	<ENWRK0,X
		STA	R5		;(R5)  <-- 回転角度
		LDA	<ENWRK2,X
		SEC
		SBC	#0100H-55H
		STA	R6		;(R6)  <-- 倍率
		CMP	#0400H
		BCS	KPFIR_CHR_ST_10 ;大サイズへ？ ( no:KPFIR_CHR_ST_10 )
;
		STZ	ENCHPT,X	;大サイズパターンＮｏ．セット
		LDA	#0000000000000011B
		STA	ENMOD2,X
KPFIR_CHR_ST_10 EQU	$
		LDY	ENTROB,X
		TYX
		LDA	>TROBJ_PLOT_X,X
		STA	R3		;(R3)  <-- ビットマップ座標＿Ｘ
		LDA	>TROBJ_PLOT_Y,X
		STA	R2		;(R2)  <--	  ”	   ＿Ｘ
		LDA	#CIPCHD2+00C0H
		STA	R12		;(R12) <-- キャラクターアドレス（Ｌ，Ｈ）
		LDA	#BANK CIPCHD2+00C0H
		STA	R13		;(R13) <--	   ”		(Ｂ）
;
		I8
;
		M_CHIP	C_128_ROTZOM_32
;
		INC	OBM7WF		;mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
		RTL
;
;************************************************************************
;*		move	( 大クッパ用ファイヤー )			*
;************************************************************************
KPFIRMV		EQU	$
;
;------------------------------------------------------------------------
;-		ＯＡＭセット						-
;------------------------------------------------------------------------
		LDA	#32		;(A) <-- ＯＡＭ数
		LDY	ENCHPT,X
		BEQ	KPFIRMV_0000	;小サイズ？ ( no:KPFIRMV_0000 )
		LDA	#4		;(A) <-- ＯＡＭ数
KPFIRMV_0000	EQU	$
		JSR	KOOPA_3D_OAMST
;
		LDA	R9
		CMP	#0100H
		BPL	KPFIRMV_0020	;最大距離？ ( no:KPFIRMV_0020 )
;
;-------------- プレイヤー衝突チェック ----------------------------------
		TXA
		STA	R1		;(R1) <-- ファイヤーインデックス
		M_CHIP	KPFIR_CROSS
		LDX	<ENINDX
;
		LDA	R0
		BNE	KPFIRMV_0010	;衝突？ ( no:KPFIRMV_0010 )
;
		JSL	>PLFLST
KPFIRMV_0010	EQU	$
		JMP	>ENCLEAR
;
KPFIRMV_0020	EQU	$
		STA	<ENWRK2,X	;Ｚ座標セット
;
;;;;		    JSR	    ZSORT_BF_SET    ;Ｚソート用データセット
;
;------------------------------------------------------------------------
;-		モードチェック						-
;------------------------------------------------------------------------
		JSL	>ENMDCK
;
		JSL	>KPFIR_CHR_SET	;キャラクターセット
;
		LDA	<ENWRK0,X	;回転セット
		CLC
		ADC	#04H
		AND	#00FFH
		STA	<ENWRK0,X
;
;-------------- Ｘ座標計算 ----------------------------------------------
		LDY	#00
		LDA	<ENCONT,X
		BPL	KPFIRMV_0050
		DEY			;[ LDY #0FFFFH ]
KPFIRMV_0050	EQU	$
		LDA	ENWRK6,X
		CLC
		ADC	<ENCONT,X
		STA	ENWRK6,X
		TYA
		ADC	ENWRK8,X
		STA	ENWRK8,X
;
		LDA	ENWRKC,X
		CLC
		ADC	ENWRK7,X
		STA	ENWRKC,X
		LDA	ENXPSL,X
		CLC
		ADC	ENWRK7,X
		STA	ENXPSL,X
		STZ	ENWRK7,X
		RTL
;
;************************************************************************
;*		intial	( 大クッパ効果ブロック )			*
;************************************************************************
KPEXBIN		EQU	$
		RTL
;
;************************************************************************
;*		move	( 大クッパ用ブロック )				*
;************************************************************************
KPEXBMV		EQU	$
;
;------------------------------------------------------------------------
;-		ＯＡＭセット						-
;------------------------------------------------------------------------
		LDA	ENMOD2+1,X
		AND	#11111000B
		LSR	A
		LSR	A
		LSR	A		;(A) <-- ＯＡＭ数
		JSR	KOOPA_3D_OAMST
;
;------------------------------------------------------------------------
;-		モードチェック						-
;------------------------------------------------------------------------
		JSL	>ENMDCK
;
		LDA	ENYSPD,X
		BPL	KPEXBMV_0100	;落下モード？ ( yes:KPEXBMV_0100 )
;
		LDA	ENDSYL,X
		CMP	#0F600H
		BMI	KPEXBMV_0150	;終了？ ( yes:KPEXBMV_0150 )
KPEXBMV_0050	EQU	$
		RTL
;
KPEXBMV_0100	EQU	$
		LDA	ENDSYL,X
		CMP	#0700H
		BMI	KPEXBMV_0050	;終了？ ( no:KPEXBMV_0050 )
;
KPEXBMV_0150	EQU	$
		DEC	KOOPA_EXBFG
		JMP	>ENCLEAR
;
;************************************************************************
;*		initial ( 大クッパ落下ブロック影 )			*
;************************************************************************
KPBKGIN		EQU	$
		RTL
;
;************************************************************************
;*		move	( 大クッパ落下ブロック影 )			*
;************************************************************************
KPBKGMV		EQU	$
		LDY	ENYUSN,X
		BPL	KPBKGMV_0010	;矢印セット？ ( no:KPBKGMV_0010 )
;
;-------------- 矢印セットチェック --------------------------------------
		LDA	FRCNT
		AND	#08H
		BEQ	KPBKGMV_0010	;矢印セットタイミング？ ( no:KPBKGMV_0010 )
;
		LDY	#2
		JSL	>QAROW_SET_CK_2
;
KPBKGMV_0010	EQU	$
		JSL	>ENMDCK		;mode check
;
		LDA	ENTIM0,X
		BNE	KPBKGMV_0050	;消去？ ( no:KPBKGMV_0050 )
		JMP	>ENCLEAR
;
KPBKGMV_0050	EQU	$
		LDA	ENTIM1,X
		BNE	KPBKGMV_0150	;パターン切り替え？ ( no:KPBKGMV_0150 )
;
;-------------- 影パターン切り替え --------------------------------------
		LDA	#02H		;パターン切り替えタイマーセット
		STA	ENTIM1,X
;
		LDY	ENYUSN,X
		BPL	KPBKGMV_0110	;表示？ ( yes:KPBKGMV_0110 )
;
		LDA	#04H
		STA	ENYUSN,X
		RTL
;
KPBKGMV_0110	EQU	$
		LDA	ENCHPT,X
		CMP	<ENWRK0,X
		BCS	KPBKGMV_0150	;ＭＡＸパターン？ ( yes:KPBKGMV_0150 )
;
		INC	ENCHPT,X
KPBKGMV_0150	EQU	$
		RTL
;
;========================================================================
;=		６ー８クリアーセット					=
;========================================================================
W6_8_CLEAR	EQU	$
		PHD			;(D) save
		LDA	#WORK		;(D) <-- WORK
		TCD
;
		M8
;
		LDX	!MAPOINT
		LDA	#001
		STA	!MPCLRTBL,X
		STZ	!BKHISCRE
		M16				; memory 16bit mode
		LDA	!TIMER
WLD6_100	EQU	$
		SEC
		SBC	#00010
		BMI	WLD6_200
		INC	!BKHISCRE
		BRA	WLD6_100
;
WLD6_200	EQU	$
		LDA	!BKHISCRE
WLD6_250	EQU	$
		DEC	!FRWR_P
		BMI	WLD6_300
		CLC
		ADC	#00010
		BRA	WLD6_250
;
WLD6_300	EQU	$
		CLC
		ADC	!CORS_COIN
		AND	#000FFH
		M8				; memory 8bit mode
		CMP	!HISCEBF+12*(6-1)+(8-1)
		BCS	WLD6_320
		LDA	!HISCEBF+12*(6-1)+(8-1)
WLD6_320	EQU	$
		STA	!BKHISCRE
		STA	!HISCEBF+12*(6-1)+(8-1)
		STA	<WORK0
		STZ	<WORK1
		M16				; memory 16bit mode
		LDX	#006
WLD6_350	EQU	$
		LDA	!HISCEBF+12*(6-1),X
		AND	#000FFH
		CLC
		ADC	<WORK0
		STA	<WORK0
		DEX
		BPL	WLD6_350
		LDA	<WORK0
		CMP	#00100*8
		BCC	WLD6_500
		LDA	#00A09H
		STA	!AICONBF6+8
		LDX	!MAPOINT
		LDA	#00101H
		STA	!MPCLRTBL+8,X
;
WLD6_500	EQU	$
		M8				; memory 8bit mode
		JSL	>SVDTSV
;
		M16
;
		LDX	<ENINDX
;
		PLD			;(D) load
		RTS
;
;
;
;
;
		END
