;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: enemy sub.1					*
;*	file name	: ys_bbbros					*
;*									*
;************************************************************************
;
;
		SALL
;
		include		ys_header.inc
		include		ys_unit.h
		include		ys_pld.h
		include		ys_presno.h
		include		ys_color.h
		include		ys_ename.h
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	BBBRSIN, PUCHAIN, BG3EXIN
		GLB	OTAMAIN, OTAMHIN
;
		GLB	BBBRSMV, PUCHAMV, BG3EXMV
		GLB	OTAMAMV, OTAMHMV
;
		GLB	OTAMAFL, OTAMHFL
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< ys_main >------------------------------------------------
		EXT	BS_SCRE
		EXT	SOUND_3_ON
;
;-------------< ys_rpro >------------------------------------------------
		EXT	JSRSUB
		EXT	CHIPON,CHIPON_RAM_READ
;
;-------------< ys_play >------------------------------------------------
		EXT	EBSTAT
		EXT	PFAL,PSTP,PMOV,PDEM,PGOL
		EXT	PFLP
;
;-------------< ys_bgsc >------------------------------------------------
;
;-------------< ys_enmy >------------------------------------------------
		EXT	ENEMY,ENINSB
		EXT	ENCLEAR,ENCLEAR_NORETN,DISPCK0,DISPCK2
		EXT	ENINSR,ENINSR2,EEXCHK,EEYCHK,EEXYCK,ESTATST
		EXT	ENINSR_I,ENINSR2_I
		EXT	ENMDCK,XSDOWN,EPCRCK,MUKEOR,XSPEOR,MKEOR2,PLFLST
		EXT	PLFLST_2
		EXT	SHOT_EN_KILL,SHOT_EN_KILL_S
		EXT	PLAYER_REBOUND
;
		EXT	EINIT,EFAIL,EMOVE,EEATM,ENOSE,EBABL
;
		EXT	EATMXS,NOSWT
;
		EXT	EGGKILL_ALL
;
		EXT	FSMK0_SET2
;
		EXT	TROBJ_CANCEL
		EXT	TROBJ_SR_2x2,TROBJ_SR_4x4,TROBJ_SR_8x8
		EXT	TROBJ_SR_2x2_CL,TROBJ_SR_4x4_CL,TROBJ_SR_8x8_CL
		EXT	TROBJ_OAM_2x2,TROBJ_OAM_4x4,TROBJ_OAM_8x8
		EXT	TROBJ_OAM_2x2_I,TROBJ_OAM_4x4_I,TROBJ_OAM_8x8_I
		EXT	TROBJ_CLEAR
		EXT	TROBJ_PLOT_X,TROBJ_PLOT_Y
		EXT	TROBJ_CHAR_NO
;
;-------------< ys_enmy3 >-----------------------------------------------
		EXT	TO_PLDEMO_2
		EXT	BSCLW_SET_M, BSCLW_SET_B
		EXT	BOSS_CLEAR_M
		EXT	GOAL_EN_CHANGE, BOSS_EN_CHANGE
;
;-------------< ys_enmy9 >-----------------------------------------------
		EXT	KAMC2COLRESET_L, DEATHENEMY
		EXT	Donb, Slim, Puti, Tubo, Tlsa, Nknk, Pakn, Kmkj, Qcan, Kati
;
;-------------< ys_enmy14 >----------------------------------------------
		EXT	PUCHGIN
		EXT	PBBY
;
;-------------< ys_exst >------------------------------------------------
		EXT	EXINSR
;
;-------------< ys_unit >------------------------------------------------
		EXT	UNDTADD,UNDATA,RUTDATA
;
;-------------< ys_init >------------------------------------------------
		EXT	UNCOMPRES,VRAMDX_ST,VRAMDX_H_ST,VRAMDX_L_ST,VRAMDX_L_C_ST
		EXT	M_DMA_BFST
;
;-------------< ys_play >------------------------------------------------
		EXT	TIMEUP_SET
;
;-------------< ys_game >------------------------------------------------
		EXT	BS1_MSG
;
;-------------< ys_data >------------------------------------------------
		EXT	SIN,COS
;
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
		EXTEND
;
		MEM16
		IDX8
;
		DPAGE	EN0RAM
;
Group_6		GROUP	Bbbros_pro
Bbbros_pro	SECT	REL
;
;
;************************************************************************
;*	initial (ビッグバウンドブロス)					*
;*		ENCONT : 足の回転角(16bit)				*
;*		ENWRK0 : 横倍率 (16bit)					*
;*		ENWRK2 : 縦倍率 (16bit)					*
;*		ENWRK4 : 反転フラグ(8bit)				*
;*		ENWRK5 : 反転パターン(8bit)				*
;*		ENWRK6 : Ｍｏｖｅモード(8bit)				*
;*		ENWRK7 : キャラクタモード(8bit)				*
;*		ENWRK8 : ズームスピード(16bit)				*
;*		ENWRKA : パンツポジション(8bit)				*
;*		ENWRKC : ダメージ数(8bit)				*
;*		ENWRKD : カラーフェードカウンタ(8bit)			*
;************************************************************************
BBBrosJump	EQU	-0800H
BBBrosHZomSpd	EQU	0008H
BBBrosVZomSpd	EQU	0008H
BBBrosZomSpd	EQU	0008H
BBBrosZomSpd2	EQU	0010H
BBBrosFootRev	EQU	0200H
BBBrsOamTaneMD	EQU	(BBBrsOamTane-BIGBBOAMSETMDSL)
BBBrosRandMD	EQU	(BBBrosRand-BBBRSMVMODSEL)
BBBrosHit0MD	EQU	(BBBrosHit0-BBBRSMVMODSEL)
BBBrosDathMD	EQU	(BBBrosDath-BBBRSMVMODSEL)
BBBrosEnd0MD	EQU	(BBBrosEnd0-BBBRSMVMODSEL)
BBBrosDmage	EQU	(BBBRS_OBJ6_COL-BBBRS_BG_COL-2)
;
BBBRSIN		EQU	$
;[1995.05.09.TU]		LDA	#000F1H
;[1995.05.09.TU]		STA	!SOUND_0		; サウンド セット！！（ＢＧＭ）
;[1995.05.09.TU];
		JSL	>TROBJ_SR_8x8_CL
;
		LDY	#Donb
		JSL	>KAMC2COLRESET_L
;
		LDA	#00080H
		STA	!PLSCRL_MAXX		; スクロールＭＡＸセット！！
;
		LDA	!ENYPSL,X
		CLC
		ADC	#0006+09H
		STA	!ENYPSL,X
		LDA	#-BBBrosZomSpd
		STA	!ENWRK8,X
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	!ENMOD1,X
		ORA	#0000000000000001B
		STA	!ENMOD1,X
		LDA	#00200H
		STA	!ENTIM1,X
		LDA	#0FFF4H
		STA	!ENBGYP,X
		LDA	#00010H			;[1995.05.18.TH]BBBrosVZomSpd
		STA	!BBBRSVZOMSPD
		LDA	#00010H			;[1995.05.18.TH]BBBrosHZomSpd
		STA	!BBBRSHZOMSPD
		LDA	#00040H		;18H
		STA	!ENGPOW,X
;
		M8				; memory 8bit mode !!
;
		LDA	#04
		STA	!ENWRK7,X
		LDA	#040H
		STA	!ENWRKA,X
		LDA	#BBBrosDmage
		STA	!ENWRKC,X
		LDA	#01
		STA	!ENWRKD,X
;
		M16				; memory 16bit mode !!
;
;-------- ビッグバウンドブロスの鼻セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		TAY
		LDA	BIGBBNOSEMAG,Y
		STA	R6			; (R6) <- Ｘ倍率
		LDA	#00100H
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0001CH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0000H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの目セット ----------------
;
		I16				; index 16bit mode !!
;
		LDA	#00008H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#00100H
		STA	R6			; (R6) <- Ｘ倍率
		LDA	#00100H
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#CIPCHD4+0020H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0020H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		I8				; index 8bit mode !!
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの毛セット ----------------
;
		I16				; index 16bit mode !!
;
		LDA	#00001H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000EH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00010H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#00100H
		STA	R6			; (R6) <- Ｘ倍率
		LDA	#00100H
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#CIPCHD4+0030H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0030H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		I8				; index 8bit mode !!
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの頬セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		ASL	A
		TAY
		LDA	<ENWRK0,X
		STA	R0
		LDA	BIGBBCHEEKMAG,Y
		STA	R6
		PHX
		PHY
		M_CHIP	MULTIPLY
;
		PLY
		PLX
;
		LDA	!ENWRK2,X
		CMP	R0
		BPL	BBBRSIN0380		; [->BBBRSIN0380]
;
		LDA	BIGBBCHEEKMAG+2,Y
		BEQ	BBBRSIN0390		; [->BBBRSIN0390]
;
		LDA	BIGBBCHEEKMAG+2,Y
		EOR	#0FFFFH
		INC	A
		AND	#000FFH
		BRA	BBBRSIN0390
;
BBBRSIN0380	EQU	$
		LDA	BIGBBCHEEKMAG+2,Y
BBBRSIN0390	EQU	$
		STA	R5			; (R5) <- 回転角度
		LDA	R0
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00060H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0040H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0040H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_RTZ_32_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの手セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		TAY
		LDA	<ENWRK0,X
		STA	R0
		LDA	BIGBBHANDMAG,Y
		STA	R6
		PHX
		PHY
		M_CHIP	MULTIPLY
;
		PLY
		PLX
;
		LDA	R0
		STA	R6			; (R6) <- Ｘ倍率
		STA	<EWORK
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1030H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1030H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
		LDA	<EWORK
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00000H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00010H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1020H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1020H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
;
;
		JSR	BIGBB_CHST3
;
		RTL
;
;
;************************************************************************
;*	move (ビッグバウンドブロス)					*
;************************************************************************
BIGBB_CHRSTMDSL EQU	$
		WORD	BIGBB_CHRST
		WORD	BIGBB_CHST2
		WORD	BIGBB_CHST3
;
BIGBBOAMSETMDSL EQU	$
		WORD	BIGBBOAMSET
		WORD	BIGBBOAMSET
BBBrsOamTane	WORD	BIGBBOAMST2
;
BBBRSRANDMAX	EQU	$
		WORD	000E0H, 000D0H, 000C0H, 000C0H
		WORD	000C0H, 000C0H
;
BBBRSJUMPSPD	EQU	$
		WORD	0FA00H, 0FA40H, 0FA80H, 0FAC0H
		WORD	0FB00H, 0FB40H
;
		WORD	-0A00H, -0980H, -0900H, -0880H
		WORD	-0800H, -0780H
;
BBBRS_BG_COL	EQU	$
		WORD	COL_ADDRESS+BB_BG_COL_3
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_BG_COL_2
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_BG_COL_1
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_BG_COL_0
		WORD	COL_ADDRESS+BG2_DONBURI
		WORD	COL_ADDRESS+BG2_DONBURI
		WORD	COL_ADDRESS+BG2_DONBURI
		WORD	COL_ADDRESS+BG2_DONBURI
		WORD	COL_ADDRESS+BG2_DONBURI
;
BBBRS_OBJ6_COL	EQU	$
		WORD	COL_ADDRESS+BB_OBJ_COL_63
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_62
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_61
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_60
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((8-1)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((8-1)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((8-1)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((8-1)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((8-1)*2)
;
BBBRS_OBJ7_COL	EQU	$
		WORD	COL_ADDRESS+BB_OBJ_COL_73
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_72
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_71
;[1995.05.24.WE]		WORD	COL_ADDRESS+BB_OBJ_COL_70
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((18H-2)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((18H-2)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((18H-2)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((18H-2)*2)
		WORD	COL_ADDRESS+OBJ_SUB_D_COL+((18H-2)*2)
;
BBBRSMV		EQU	$
		LDY	!ENWRK7,X
		TYX
		JSR	(BIGBBOAMSETMDSL,X)
;
		LDY	!ENWRK7,X
		CPY	#BBBrsOamTaneMD
		BCS	BBBRSMV0010		; [->BBBRSMV0010]
;
		JSR	BIGBBBODYST
;
BBBRSMV0010	EQU	$
		LDA	!MSGMOD
		BNE	BBBRSMV0020		; メッセージ ＯＮ？ [yes->BBBRSMV0020]
;
		LDY	!ENWRK7,X
		TYX
		JSR	(BIGBB_CHRSTMDSL,X)
;
BBBRSMV0020	EQU	$
		JSL	>ENMDCK			; mode check
;
		LDA	!PLMODE
		BNE	BBBRSMV0040		; [->BBBRSMV0040]
;
		LDY	!ENWRK7,X
		CPY	#BBBrsOamTaneMD
		BCS	BBBRSMV0040		; [->BBBRSMV0040]
;
		LDY	!ENWRKA,X
		CPY	#07FH
		BCS	BBBRSMV0040		; [->BBBRSMV0040]
;
		LDA	!CCWORKD
		BEQ	BBBRSMV0040		; [->BBBRSMV0040]
;
		JSL	>PLFLST
;
BBBRSMV0040	EQU	$
		LDY	<ENWRK4,X
		BEQ	BBBRSMV0080		; [->BBBRSMV0080]
;
		TYX
		JSR	(BBBRSTNMODSEL,X)
;
BBBRSMV0080	EQU	$
		LDY	!ENWRK6,X
		TYX
		JMP	(BBBRSMVMODSEL,X)
;
BBBRSTNMODSEL	EQU	$
		WORD	BBBRSDUMY
		WORD	BBBRSTURN
		WORD	BBBRSKYOR
;
BBBRSMVMODSEL	EQU	$
		WORD	BBBRSENTER0
		WORD	BBBRSENTER1
		WORD	BBBRSENTER2
		WORD	BBBRSINIT
		WORD	BBBRSTANE
		WORD	BBBRSTANE1
		WORD	BBBRSSET0_00
		WORD	BBBRSSET0_01
		WORD	BBBRSSET0
		WORD	BBBRSSET0_1
		WORD	BBBRSSET0_2
		WORD	BBBRSSET1
		WORD	BBBRSSET2
BBBrosRand	WORD	BBBRSRAND
		WORD	BBBRSJUMP
		WORD	BBBRSJMP2
BBBrosHit0	WORD	BBBRSHIT0_0
		WORD	BBBRSHIT0
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT1
		WORD	BBBRSHIT2
		WORD	BBBRSHIT3
		WORD	BBBRSHIT4
		WORD	BBBRSHIT5
		WORD	BBBRSHIT6
		WORD	BBBRSCOLST
;;;;;;;;		WORD	BBBRSENDST
		WORD	BBBRSWAIT
BBBrosDath	WORD	BBBRSDATH
BBBrosEnd0	WORD	BBBRSEND0
;
;
;[1995.05.09.TU]BBBRSENTERS	EQU	$
;[1995.05.09.TU]		LDX	<ENINDX
;[1995.05.09.TU]		LDA	#00009H
;[1995.05.09.TU]		STA	!SOUND_0		; サウンド セット！！（ＢＧＭ）
;[1995.05.09.TU];
;[1995.05.09.TU]		RTL
;
;
BBBRSENTER0	EQU	$
		LDX	<ENINDX
		LDA	!PLJUMP
		BNE	BBBRSENTER001F0		; プレイヤー着地？ [no->BBBRSENTER001F0]
;
		LDA	!ENTIM0,X
		BNE	BBBRSENTER001F0		; [->BBBRSENTER001F0]
;
		LDA	<ENWRK0,X
		CLC
		ADC	!BBBRSHZOMSPD
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		SEC
		SBC	!BBBRSVZOMSPD
		STA	<ENWRK2,X
		CMP	#000C0H
		BCS	BBBRSENTER00100		; [->BBBRSENTER00100]
;
		LDA	!BBBRSVZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSVZOMSPD
		LDA	!BBBRSHZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSHZOMSPD
		RTL
;
BBBRSENTER00100 EQU	$
		CMP	#00100H
		BCC	BBBRSENTER001F0		; [->BBBRSENTER001F0]
;
		LDA	#0FC00H
		STA	!ENYSPD,X
		LDA	#0FE00H			;[1995.05.18.TH]#0FF00H
		STA	!ENXSPD,X
;
		LDA	#00013H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSENTER001F0 EQU	$
		RTL
;
;
BBBRSENTER1	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK2,X
		CMP	#00140H
		BCS	BBBRSENTER10040		; [->BBBRSENTER10040]
;
		SEC
		SBC	!BBBRSVZOMSPD
		STA	<ENWRK2,X
		LDA	<ENWRK0,X
		CLC
		ADC	!BBBRSHZOMSPD
		STA	<ENWRK0,X
BBBRSENTER10040 EQU	$
		LDA	!ENCBFG,X
		BIT	#0000000000000001B
		BEQ	BBBRSENTER10100		; [->BBBRSENTER10100]
;
		STZ	!ENCHPT,X
		STZ	!ENXSPD,X
		LDA	!BBBRSVZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSVZOMSPD
		LDA	!BBBRSHZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSHZOMSPD
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
BBBRSENTER10100 EQU	$
		LDY	#00
		LDA	!ENYSPD,X
		BPL	BBBRSENTER10180		; [->BBBRSENTER10180]
;
		INY
		EOR	#0FFFFH
		INC	A
		CMP	#00300H
		BCS	BBBRSENTER101E0		; [->BBBRSENTER101E0]
;
		INY
		BRA	BBBRSENTER101E0
;
BBBRSENTER10180 EQU	$
		CMP	#00200H
		BCS	BBBRSENTER101E0		; [->BBBRSENTER101E0]
;
		INY
BBBRSENTER101E0 EQU	$
		TYA
		STA	!ENCHPT,X
		RTL
;
;
BBBRSENTER2	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CLC
		ADC	!BBBRSHZOMSPD
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		SEC
		SBC	!BBBRSVZOMSPD
		STA	<ENWRK2,X
		LDY	!BBBRSVZOMSPD+1
		BMI	BBBRSENTER20100		; [->BBBRSENTER20100]
;
		CMP	#000C0H
		BCS	BBBRSENTER200F0		; [->BBBRSENTER200F0]
;
		LDA	!BBBRSVZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSVZOMSPD
		LDA	!BBBRSHZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSHZOMSPD
BBBRSENTER200F0 EQU	$
		RTL
;
BBBRSENTER20100 EQU	$
		CMP	#00100H
		BCC	BBBRSENTER201F0		; [->BBBRSENTER201F0]
;
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	!ENXPSL,X
		CMP	#000B0H
		BCC	BBBRSENTER20200		; [->BBBRSENTER20200]
;
		LDA	!BBBRSVZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSVZOMSPD
		LDA	!BBBRSHZOMSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSHZOMSPD
;
		M8				; memory 8bit mode !!
;
		LDA	#010H
		STA	!ENTIM0,X
		LDA	!ENWRK6,X
		SEC
		SBC	#04
		STA	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSENTER201F0 EQU	$
		RTL
;
BBBRSENTER20200 EQU	$
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSINIT	EQU	$
		LDX	<ENINDX
		LDA	#01
		STA	!BOSS_START
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSTANE	EQU	$
		LDX	<ENINDX
		LDA	!BOSS_START
		BMI	BBBRSTANE0100		; [->BBBRSTANE0100]
;
		RTL
;
BBBRSTANE0100	EQU	$
		LDA	#BBBrosVZomSpd
		STA	!BBBRSVZOMSPD
		LDA	#BBBrosHZomSpd
		STA	!BBBRSHZOMSPD
;------------------------------------------------------------------------
;-		バウンドＢｒｏｓ．ＢＧ２カラーセット			-
;------------------------------------------------------------------------
		LDX	#((15+16)-1)*2
BBBRSTANE0180	EQU	$
		LDA	>COL_ADDRESS+BG2_DONBURI,X
		STA	>MOTOCOL+(61H*2),X
		STA	>DATACOL+(61H*2),X
		DEX
		DEX
		BPL	BBBRSTANE0180		; [->BBBRSTANE0180]
;
		LDX	<ENINDX
;------------------------------------------------------------------------
;-		ＢＧ２敵へ変更						-
;------------------------------------------------------------------------
;
		M8
;
		LDA	#0FH		;Ｈ−ＤＭＡパラメータ変更
		STA	4331H
		LDA	#10H
		STA	4341H
;
		M16
;
		LDA	#00030H
		STA	!PLPRIO
		LDA	!ENCLOR
		AND	#0FFCFH
		ORA	#00030H
		STA	!ENCLOR
		LDA	#00010000B+(00000101B<<8)
		STA	!MANSEL
;
		LDA	#-0400H
		STA	!ENYSPD,X
		STZ	!ENBGYP,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSTANE1	EQU	$
		LDX	<ENINDX
		LDA	!ENYSPD,X
		CLC
		ADC	#00400H
		BMI	BBBRSTANE100F0		; [->BBBRSTANE100F0]
;
;;;;;;;;		STZ	!ENYSPD,X
;;;;;;;;		STZ	!ENGPOW,X
		LDA	#00030H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		STZ	!BOSS_START		; カメック消滅！！
;
		M8				; memory 8bit mode !!
;
		LDA	#02
		STA	!ENWRK7,X
		LDA	!ENMOD1,X
		AND	#11100000B
		STA	!ENMOD1,X		; BG Check OFF!!
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00020H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
BBBRSTANE100F0	EQU	$
		RTL
;
;
BBBRSSET0_00	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK2,X
		CLC
		ADC	!BBBRSVZOMSPD
		STA	<ENWRK2,X
		CMP	#00030H
		BCC	BBBRSSET0_00100		; [->BBBRSSET0_00100]
;
		CMP	#00100H
		BCC	BBBRSSET0_000F0		; [->BBBRSSET0_000F0]
;
		LDA	#-(BBBrosVZomSpd*4)
		STA	!BBBRSVZOMSPD
BBBRSSET0_000F0 EQU	$
		RTL
;
BBBRSSET0_00100 EQU	$
		LDA	#00030H
		STA	<ENWRK2,X
		LDA	#BBBrosVZomSpd*2
		STA	!BBBRSVZOMSPD
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00020H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		RTL
;
;
BBBRSSET0_01	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CLC
		ADC	!BBBRSHZOMSPD
		STA	<ENWRK0,X
		CMP	#00030H
		BCC	BBBRSSET0_01100		; [->BBBRSSET0_01100]
;
		CMP	#00100H
		BCC	BBBRSSET0_010F0		; [->BBBRSSET0_010F0]
;
		LDA	#-(BBBrosHZomSpd*4)
		STA	!BBBRSHZOMSPD
BBBRSSET0_010F0 EQU	$
		RTL
;
BBBRSSET0_01100 EQU	$
		LDA	#00030H
		STA	<ENWRK0,X
		LDA	#BBBrosHZomSpd*2
		STA	!BBBRSHZOMSPD
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00020H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		RTL
;
;
BBBRSSET0	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK2,X
		CLC
		ADC	!BBBRSVZOMSPD
		STA	<ENWRK2,X
		LDA	<ENWRK0,X
		CLC
		ADC	!BBBRSHZOMSPD
		STA	<ENWRK0,X
		CMP	#00100H
		BMI	BBBRSSET00100		; [->BBBRSSET00100]
;
		LDA	#00100H
		STA	<ENWRK0,X
		LDA	#00100H
		STA	<ENWRK2,X
;;;;;;;;		LDA	#00040H
;;;;;;;;		STA	!ENGPOW,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
		STZ	!ENWRK7,X
;
		M16				; memory 16bit mode !!
;
BBBRSSET00100	EQU	$
		RTL
;
;
BBBRSSET0_1	EQU	$
		LDX	<ENINDX
		LDA	!ENCBFG,X
		BIT	#0000000000000001B
		BNE	BBBRSSET0_10100		; [->BBBRSSET0_10100]
;
		RTL
;
BBBRSSET0_10100 EQU	$
;;		LDA	#00040H
		LDA	#00020H
		STA	!ENGPOW,X
		LDA	#00300H
		STA	!ENGMAX,X
		LDA	#00040H
		STA	!TILTCT			; 地震セット！！
		STZ	!EARTHQUAKEFLG
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSSET0_2	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
		CMP	#000C0H
		BCS	BBBRSSET0_20040		; [->BBBRSSET0_20040]
;
		LDA	!ENWRK8,X
		EOR	#0FFFFH
		INC	A
		STA	!ENWRK8,X
		LDA	<ENWRK2,X
BBBRSSET0_20040 EQU	$
		CMP	#00100H
		BCC	BBBRSSET0_200F0		; [->BBBRSSET0_200F0]
;
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	#-BBBrosZomSpd
		STA	!ENWRK8,X
;
		M8				; memory 8bit mode !!
;
		LDA	#040H
		STA	!ENTIM1,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSSET0_200F0 EQU	$
		RTL
;
;
BBBRSSET1	EQU	$
		LDX	<ENINDX
;
		LDA	!ENTIM1,X
		BNE	BBBRSSET100F0		; [->BBBRSSET100F0]
;
		M8				; memory 8bit mode !!
;
		LDA	<FRCNT2
		BIT	#01
		BEQ	BBBRSSET10040		; [->BBBRSSET10040]
;
		LDA	!ENWRKA,X
		SEC
		SBC	#01
		CMP	#020H
		BCC	BBBRSSET10100		; [->BBBRSSET10100]
;
		STA	!ENWRKA,X
;
BBBRSSET10040	EQU	$
		LDY	<ENWRK4,X
		BNE	BBBRSSET10080		; [->BBBRSSET10080]
;
		LDA	!ENWRKA,X
		CMP	#020H
		BEQ	BBBRSSET10100		; [->BBBRSSET10100]
		BCC	BBBRSSET10100		; [->BBBRSSET10100]
;
		LDA	#04
		STA	!ENWRK4,X
		LDA	#(BBBRSTURNFG-BBBRSTURNPT-1)
		STA	!ENWRK5,X
		LDA	#02
		STA	!ENTIM0,X
BBBRSSET10080	EQU	$
;
		M16				; memory 16bit mode !!
;
BBBRSSET100F0	EQU	$
		RTL
;
		MEM8
;
BBBRSSET10100	EQU	$
		LDA	#020H
		STA	!ENWRKA,X
		LDA	<ENWRK4,X
		BNE	BBBRSSET10140		; [->BBBRSSET10140]
;
		LDA	#020H
		STA	!ENTIM1,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
BBBRSSET10140	EQU	$
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSSET2	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM1,X
		BNE	BBBRSSET200F0		; [->BBBRSSET200F0]
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		STZ	!PLMODE			; プレイヤースタート!!
BBBRSSET200F0	EQU	$
		RTL
;
;
BBBRSXSPD	EQU	$
		WORD	-0140H, 00140H
		WORD	-0110H, 00110H
		WORD	-00C0H, 000C0H
		WORD	-00A8H, 000A8H
		WORD	-0090H, 00090H
		WORD	-0080H, 00080H
;
;[1995.06.19.MO]		WORD	-0280H, 00280H
;[1995.06.19.MO]		WORD	-0220H, 00220H
;[1995.06.19.MO]		WORD	-0180H, 00180H
;[1995.06.19.MO]		WORD	-0150H, 00150H
;[1995.06.19.MO]		WORD	-0120H, 00120H
;[1995.06.19.MO]		WORD	-0100H, 00100H
;
;[1995.05.24.WE]		WORD	-0380H, 00380H
;[1995.05.24.WE]		WORD	-0300H, 00300H
;[1995.05.24.WE]		WORD	-0280H, 00280H
;[1995.05.24.WE]		WORD	-0200H, 00200H
;[1995.05.24.WE]		WORD	-0180H, 00180H
;[1995.05.24.WE]		WORD	-0100H, 00100H
;
BBBRSRAND	EQU	$
		LDX	<ENINDX
		JSL	>BBBROSCRCK
;
;[1995.04.12.WE]		JSR	BBBROSPLSH
;
		LDA	!ENCBFG,X
		BIT	#0000000000000001B
		BEQ	BBBRSRAND00F0		; [->BBBRSRAND00F0]
;
		LDA	!EARTHQUAKEFLG
		BEQ	BBBRSRAND0040		; [->BBBRSRAND0040]
;
		LDA	#00023H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDA	#00020H
		STA	!TILTCT			; 地震セット！！
		STZ	!EARTHQUAKEFLG
BBBRSRAND0040	EQU	$
		LDA	!ENWRK8,X
		BMI	BBBRSRAND0100		; [->BBBRSRAND0100]
;
		LDA	<ENWRK2,X
		CMP	#00110H
		BMI	BBBRSRAND0100		; [->BBBRSRAND0100]
;
		LDA	!ENCBFG,X
		AND	#0FFFEH
		STA	!ENCBFG,X
		LDY	!ENWRKC,X
		LDA	BBBRSJUMPSPD,Y
		STA	!ENYSPD,X
;[1995.04.12.WE]		LDY	!ENMUKI,X
		LDA	!ENWRKC,X
		AND	#000FFH
		ASL	A
		ORA	!ENMUKI,X
		TAY
		LDA	BBBRSXSPD,Y
		STA	!ENXSPD,X
;
		LDA	#00013H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		INC	!EARTHQUAKEFLG		; 地震フラグセット！！
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSRAND00F0	EQU	$
		RTL
;
BBBRSRAND0100	EQU	$
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
		LDY	!ENWRKC,X
		CMP	BBBRSRANDMAX,Y
		BPL	BBBRSRAND0180		; [->BBBRSRAND0180]
;
		LDA	#BBBrosZomSpd
		STA	!ENWRK8,X
BBBRSRAND0180	EQU	$
		RTL
;
;
BBBRSJUMP	EQU	$
		LDX	<ENINDX
		JSL	>BBBROSCRCK
;
		LDA	<ENWRK0,X
		CMP	#000A0H
		BCC	BBBRSJUMP0048		; [->BBBRSJUMP0048]
;
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
BBBRSJUMP0048	EQU	$
		LDY	!ENYSPD+1,X
		BPL	BBBRSJUMP0100		; [->BBBRSJUMP0100]
;
		LDA	<ENCONT,X
		CMP	#03000H
		BPL	BBBRSJUMP0100		; [->BBBRSJUMP0100]
;
		CLC
		ADC	#BBBrosFootRev*4
		STA	<ENCONT,X
BBBRSJUMP0080	EQU	$
		RTL
;
BBBRSJUMP0100	EQU	$
		LDA	#BBBrosFootRev*2
		STA	!BBBRSFTRVSPD
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSJMP2	EQU	$
		LDX	<ENINDX
		JSL	>BBBROSCRCK
;
		LDA	!ENYSPD,X
		CLC
		ADC	#00100H
		BMI	BBBRSJMP20040		; [->BBBRSJMP20040]
;
		LDA	#-BBBrosZomSpd
		STA	!ENWRK8,X
BBBRSJMP20040	EQU	$
		LDA	<ENWRK0,X
		CMP	#000A0H
		BCS	BBBRSJMP20044		; [->BBBRSJMP20044]
;
		LDY	!ENWRK8+1,X
		BPL	BBBRSJMP20046		; [->BBBRSJMP20046]
;
BBBRSJMP20044	EQU	$
		CMP	#00100H
		BCS	BBBRSJMP20046		; [->BBBRSJMP20046]
;
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
BBBRSJMP20046	EQU	$
		LDA	!ENCBFG,X
		BIT	#0000000000000001B
		BNE	BBBRSJMP20100		; [->BBBRSJMP20100]
;
BBBRSJMP20048	EQU	$
		LDY	!ENYSPD+1,X
		BMI	BBBRSJMP20060		; [->BBBRSJMP20060]
;
		LDA	<ENCONT,X
		BEQ	BBBRSJMP20080		; [->BBBRSJMP20080]
		BPL	BBBRSJMP20050		; [->BBBRSJMP20050]
;
		LDA	#0000
		BRA	BBBRSJMP20070
;
BBBRSJMP20050	EQU	$
		CLC
		ADC	#-BBBrosFootRev
		BRA	BBBRSJMP20070
;
BBBRSJMP20060	EQU	$
		LDA	<ENCONT,X
		CMP	#02800H
		BCC	BBBRSJMP20064		; [->BBBRSJMP20064]
;
		CMP	#03000H
		BCC	BBBRSJMP20068		; [->BBBRSJMP20068]
;
BBBRSJMP20064	EQU	$
		LDA	!BBBRSFTRVSPD
		EOR	#0FFFFH
		INC	A
		STA	!BBBRSFTRVSPD
		LDA	<ENCONT,X
BBBRSJMP20068	EQU	$
		CLC
		ADC	!BBBRSFTRVSPD
BBBRSJMP20070	EQU	$
		STA	<ENCONT,X
BBBRSJMP20080	EQU	$
		RTL
;
BBBRSJMP20100	EQU	$
		STZ	!ENXSPD,X
		STZ	<ENCONT,X
;
		M8				; memory 8bit mode !!
;
		LDA	!ENWRK6,X
		SEC
		SBC	#04
		STA	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSHIT0_0	EQU	$
		LDX	<ENINDX
;;;;;;;;		LDA	!ENYSPD,X
;;;;;;;;		BPL	BBBRSHIT0_00100		; [->BBBRSHIT0_00100]
;
		JSR	BBBRSFLUSH		; フラッシング！！
;
		LDA	<ENWRK0,X
		CMP	#00080H
		BCC	BBBRSHIT0_00100		; [->BBBRSHIT0_00100]
;
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
BBBRSHIT0_00080 EQU	$
		BRA	BBBRSJMP20048
;
BBBRSHIT0_00100 EQU	$
		LDA	#00080H
		STA	<ENWRK0,X
		LDA	#00180H
		STA	<ENWRK2,X
		LDA	!ENWRK8,X
		EOR	#0FFFFH
		INC	A
		STA	!ENWRK8,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSHIT0	EQU	$
		LDX	<ENINDX
		JSR	BBBRSFLUSH		; フラッシング！！
;
		LDA	!ENCBFG,X
		AND	#0000000000000001B
		BNE	BBBRSHIT00100		; [->BBBRSHIT00100]
;
		LDA	<ENWRK0,X
		CMP	#00080H
		BCC	BBBRSHIT00040		; [->BBBRSHIT00040]
;
		CMP	#000C0H
		BCC	BBBRSHIT00080		; [->BBBRSHIT00080]
;
BBBRSHIT00040	EQU	$
		LDA	!ENWRK8,X
		EOR	#0FFFFH
		INC	A
		STA	!ENWRK8,X
BBBRSHIT00080	EQU	$
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
BBBRSHIT000A0	EQU	$
		JMP	BBBRSJMP20048
;
BBBRSHIT00100	EQU	$
		LDA	#00023H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDA	#00060H
		STA	!TILTCT			; 地震セット！！
		STZ	!EARTHQUAKEFLG
;;;;;;;;		JSL	>TO_PLDEMO_2		; プレイヤーストップ！！
;
		STZ	!ENXSPD,X
		LDA	#-0010H
		STA	!ENWRK8,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
BBBRSHIT3	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CMP	#00100H
		BMI	BBBRSHIT10080		; [->BBBRSHIT10080]
;
		LDA	#00010H
		STA	!ENTIM1,X
		BRA	BBBRSHIT10040
;
BBBRSHIT2	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CMP	!BOYOYOMIN
		BPL	BBBRSHIT10080		; [->BBBRSHIT10080]
;
BBBRSHIT20040	EQU	$
		LDA	!BOYOYOMAX
		SEC
		SBC	#00010H
		STA	!BOYOYOMAX
		LDA	!BOYOYOMIN
		CLC
		ADC	#00010H
		STA	!BOYOYOMIN
;;;;;;;;		LSR	!ENWRK8,X
		BRA	BBBRSHIT10040
;
BBBRSHIT1	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		CMP	!BOYOYOMAX
		BMI	BBBRSHIT10080		; [->BBBRSHIT10080]
;
BBBRSHIT10040	EQU	$
		LDA	!ENWRK8,X
		EOR	#0FFFFH
		INC	A
		STA	!ENWRK8,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		JSR	BBBRSFLUSH		; フラッシング！！
;
		RTL
;
BBBRSHIT10080	EQU	$
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRK8,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRK8,X
		STA	<ENWRK2,X
		JSR	BBBRSFLUSH		; フラッシング！！
;
		RTL
;
;
BBBRSHIT4	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM1,X
		BNE	BBBRSHIT400F0		; [->BBBRSHIT400F0]
;
		M8				; memory 8bit mode !!
;
;[1995.04.25.TU]		LDA	#010H
		LDA	#008H
		STA	!ENTIM1,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
;[1995.04.25.TU]		LDX	#03
;[1995.04.25.TU]		JSR	BBBRSFLUSH0010		; フラッシングＯＦＦ！！
;
		RTL
;
BBBRSHIT400F0	EQU	$
		JSR	BBBRSFLUSH		; フラッシング！！
;
		RTL
;
;
BBBRSHIT5	EQU	$
		LDX	<ENINDX
		LDY	!ENWRKC,X
		BEQ	BBBRSHIT50080		; Ｅｎｄ ズル？ [yes->BBBRSHIT50080]
;
		LDA	!ENTIM1,X
		BEQ	BBBRSHIT50100		; [->BBBRSHIT50100]
;
BBBRSHIT50080	EQU	$
		JSR	BBBRSFLUSH		; フラッシング！！
;
		LDY	!ENWRKA,X
		CPY	#07FH
		BCS	BBBRSHIT50100		; [->BBBRSHIT50100]
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRKA,X
		INC	!ENWRKA,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
BBBRSHIT50100	EQU	$
		LDX	#03
		JSR	BBBRSFLUSH0010		; フラッシングＯＦＦ！！
;
		JSR	BBBROSPLSH
;
		M8				; memory 8bit mode !!
;
		LDA	#020H
		STA	!ENTIM1,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDY	!ENWRKC,X
		BNE	BBBRSHIT501F0		; [->BBBRSHIT501F0]
;
		JSL	>TO_PLDEMO_2		; プレイヤーストップ！！
;
		JSR	BBBRS_PLDEMO
;
BBBRSHIT501F0	EQU	$
		RTL
;
;
BBBRSHIT6	EQU	$
		LDX	<ENINDX
		LDY	!ENWRKC,X
		BNE	BBBRSHIT60040		; [->BBBRSHIT60040]
;
		JSL	>BOSS_EN_CHANGE
;
		JSR	BBBRS_PLSTP
;
BBBRSHIT60040	EQU	$
		JSR	BBBRSTENMETU
;
		LDA	!ENTIM1,X
		BNE	BBBRSHIT600F0		; [->BBBRSHIT600F0]
;
		M8				; memory 8bit mode !!
;
		LDA	#01
		STA	!ENWRKD,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSHIT600F0	EQU	$
		RTL
;
;
BBBRSCOLST	EQU	$
		LDX	<ENINDX
		JSR	BBBRSTENMETU
;
		LDY	!ENWRKC,X
		BNE	BBBRSCOLST0020		; [->BBBRSCOLST0020]
;
		JSR	BBBRS_PLSTP
;
BBBRSCOLST0020	EQU	$
		LDY	!ENWRKC,X
		LDA	BBBRS_BG_COL,Y
		STA	R14			; (R14) <- 先カラーアドレス
		LDA	#BANK COL_ADDRESS
		STA	R0			; (R0) <- 先カラーバンク
		LDA	!ENWRKD,X
		AND	#000FFH
		STA	R6			; (R6) <- カラーフェードカウンタ
		LDA	#000H+61H
		STA	R8			; (R8) <- カラーポインタ
		LDA	#14
		STA	R12			; (R12) <- カラー数
;
		PHY
		M_CHIP	COL_MORF_B
;
		PLY
		LDX	<ENINDX
;
		LDA	BBBRS_OBJ6_COL,Y
		STA	R14			; (R14) <- 先カラーアドレス
		LDA	#BANK COL_ADDRESS
		STA	R0			; (R0) <- 先カラーバンク
		LDA	!ENWRKD,X
		AND	#000FFH
		STA	R6			; (R6) <- カラーフェードカウンタ
		LDA	#080H+68H
		STA	R8			; (R8) <- カラーポインタ
		LDA	#4
		STA	R12			; (R12) <- カラー数
;
		PHY
		M_CHIP	COL_MORF_B
;
		PLY
		LDX	<ENINDX
;
		LDA	BBBRS_OBJ7_COL,Y
		STA	R14			; (R14) <- 先カラーアドレス
		LDA	#BANK COL_ADDRESS
		STA	R0			; (R0) <- 先カラーバンク
		LDA	!ENWRKD,X
		AND	#000FFH
		STA	R6			; (R6) <- カラーフェードカウンタ
		LDA	#080H+78H
		STA	R8			; (R8) <- カラーポインタ
		LDA	#4
		STA	R12			; (R12) <- カラー数
;
		M_CHIP	COL_MORF_B
;
		LDX	<ENINDX
;
		M8				; memory 8bit mode !!
;
		LDA	!ENWRKD,X
		CLC
		ADC	#04
		STA	!ENWRKD,X
		BCC	BBBRSCOLST0080		; [->BBBRSCOLST0080]
;
		JSR	BBBRSCOLCHG
;
		LDA	#00005H
		STA	!ENYUSN,X
;
		DEC	!ENWRKC,X
		DEC	!ENWRKC,X
		BMI	BBBRSCOLST0100		; [->BBBRSCOLST0100]
;
		LDA	#BBBrosRandMD
		STA	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDA	#-BBBrosZomSpd
		STA	!ENWRK8,X
;
;;;;;;;;		STZ	!PLMODE			; プレイヤースタート!!
;
		MEM8
;
BBBRSCOLST0080	EQU	$
;
		M16				; memory 16bit mode !!
;
		RTL
;
		MEM8
;
BBBRSCOLST0100	EQU	$
		INC	!ENWRK6,X
		INC	!ENWRK6,X
		LDA	#02
		STA	!ENWRK7,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00020H
		STA	!ENTIM0,X
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
;;;;;;;;		LDA	#0FC00H
;;;;;;;;		STA	!ENYSPD,X
;;;;;;;;		LDA	#00010H
;;;;;;;;		STA	!ENGPOW,X
		RTL
;
;
BBBRSWAIT	EQU	$
		LDX	<ENINDX
		JSR	BBBRS_PLSTP
;
		LDA	!ENTIM0,X
		BNE	BBBRSWAIT00F0		; [->BBBRSWAIT00F0]
;
		LDA	#000A0H
		STA	!ENTIM0,X
		STZ	!ENGPOW,X
		TXY
		LDA	<RANDM0
		AND	#03FH<<1
		TAX
		LDA	>SIN,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		STA	!ENYSPD,Y
		LDA	>COS,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		STA	!ENXSPD,Y
		TYX
;
		LDA	#00020H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSWAIT00F0	EQU	$
		RTL
;
;
BBBRSDATHANGL	EQU	$
		WORD	00040H, 00000H, 00080H, 000C0H
;
BBBRSDATH	EQU	$
		LDX	<ENINDX
		JSR	BBBRS_PLSTP
;
		LDA	!ENTIM1,X
		BNE	BBBRSDATH0020		; 煙効果セット？ [no->BBBRSDATH0020]
;
		LDA	#DSMK0		;(A) <-- 効果Ｎｏ．
		JSL	>EXINSR		;効果エリア確保
		LDA	ENXPSL,X
		STA	EXXPSL,Y	;Ｘ座標セット
		LDA	ENYPSL,X
		STA	EXYPSL,Y	;Ｙ座標セット
		LDA	#05H
		STA	EXWRK0,Y	;初期カウンターセット
		LDA	#05H
		STA	EXCHPT,Y	;初期パターンＮｏ．セット
		LDA	#04H
		STA	EXTIM0,Y	;初期タイマーセット
		LDA	#06H
		STA	EXYUSN,Y	;優先順位セット
;
		LDA	#02
		STA	!ENTIM1,X
;
BBBRSDATH0020	EQU	$
		LDY	#00
		LDA	!ENDSXL,X
		AND	#0FF00H
		BEQ	BBBRSDATH0040		; [->BBBRSDATH0040]
		BPL	BBBRSDATH0030		; [->BBBRSDATH0030]
;
		INY
		INY
BBBRSDATH0030	EQU	$
		LDA	!ENYSPD,X
		BMI	BBBRSDATH0060		; [->BBBRSDATH0060]
;
		TYA
		ORA	#00004H
		TAY
		BRA	BBBRSDATH0060
;
BBBRSDATH0040	EQU	$
		LDA	!ENDSYL,X
		BMI	BBBRSDATH0048		; [->BBBRSDATH0048]
;
		CLC
		ADC	#00040H
		AND	#0FF00H
		BEQ	BBBRSDATH0070		; [->BBBRSDATH0070]
		BPL	BBBRSDATH0050		; [->BBBRSDATH0050]
;
BBBRSDATH0048	EQU	$
		INY
		INY
		INY
		INY
BBBRSDATH0050	EQU	$
		LDA	!ENXSPD,X
		BMI	BBBRSDATH0060		; [->BBBRSDATH0060]
;
		TYA
		ORA	#00002H
		TAY
BBBRSDATH0060	EQU	$
		LDA	<RANDM0
		AND	#0003FH
		CLC
		ADC	BBBRSDATHANGL,Y
;
		I16				; index 16bit mode !!
;
		AND	#000FFH
		ASL	A
		TXY
		TAX
		LDA	>SIN,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		STA	!ENYSPD,Y
		LDA	>COS,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		STA	!ENXSPD,Y
;
		I8				; index 8bit mode !!
;
		TYX
		LDA	#00020H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
BBBRSDATH0070	EQU	$
		LDA	<ENWRK0,X
		CMP	#0020H
		BCC	BBBRSDATH0080		; [->BBBRSDATH0080]
;
		SEC
		SBC	#0002
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		SEC
		SBC	#0002
		STA	<ENWRK2,X
		RTL
;
BBBRSDATH0080	EQU	$
		LDA	!ENTIM0,X
		BNE	BBBRSDATH00F0		; [->BBBRSDATH00F0]
;
		LDA	!ENDSXL,X
		CMP	#00040H
		BCC	BBBRSDATH00F0		; [->BBBRSDATH00F0]
;
		CMP	#000C0H
		BCS	BBBRSDATH00F0		; [->BBBRSDATH00F0]
;
		LDA	!ENDSYL,X
		CMP	#00040H
		BCC	BBBRSDATH00F0		; [->BBBRSDATH00F0]
;
		CMP	#00080H
		BCS	BBBRSDATH00F0		; [->BBBRSDATH00F0]
;
;[1995.06.08.TH]		LDA	#00078H
;[1995.06.08.TH]		JSL	>SOUND_3_ON		; サウンド セット!!
;[1995.06.08.TH];
;[1995.06.07.WE]		LDA	#00005H
;[1995.06.07.WE]		STA	!SOUND_0		; サウンド セット!!（ファンファーレ）
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#00200H
;[1995.06.07.WE]		STA	!ENTIM0,X
;
		LDA	#FSMK0
		JSL	>EXINSR			; 煙効果 !!
;
		LDA	!ENXPSL,X
		STA	!EXXPSL,Y
		LDA	!ENYPSL,X
		SEC
		SBC	#0008
		STA	!EXYPSL,Y
		LDA	#06
		STA	!EXCHPT,Y
		STA	!EXWRK0,Y
		LDA	#04
		STA	!EXTIM0,Y
;
		LDA	!ENXPSL,X
		STA	<EWORK
		LDA	!ENYPSL,X
		SEC
		SBC	#0008
		STA	<EWORK2
		JSL	>BSCLW_SET_M
;
		M8				; memory 8bit mode !!
;
		LDA	#00000010B
		TRB	!MANSEL
		LDA	#0FFH
		STA	!ENYUSN,X
		LDA	#BBBrsOamTaneMD
		STA	!ENWRK7,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
BBBRSDATH00F0	EQU	$
		RTL
;
;
;[1995.06.07.WE]BBBRSENDST	EQU	$
;[1995.06.07.WE]		LDX	<ENINDX
;[1995.06.07.WE]		JSR	BBBRS_PLSTP
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	!ENGPOW,X
;[1995.06.07.WE]		BEQ	BBBRSENDST0080		; [->BBBRSENDST0080]
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	!ENYSPD,X
;[1995.06.07.WE]		CLC
;[1995.06.07.WE]		ADC	#00400H
;[1995.06.07.WE]		BMI	BBBRSENDST00F0		; [->BBBRSENDST00F0]
;[1995.06.07.WE];
;[1995.06.07.WE];;;;;;;;		STZ	!ENYSPD,X
;[1995.06.07.WE];;;;;;;;		STZ	!ENGPOW,X
;[1995.06.07.WE]BBBRSENDST0080	EQU	$
;[1995.06.07.WE]		LDA	<ENWRK2,X
;[1995.06.07.WE]		SEC
;[1995.06.07.WE]		SBC	#0002
;[1995.06.07.WE]		STA	<ENWRK2,X
;[1995.06.07.WE]		LDA	<ENWRK0,X
;[1995.06.07.WE]		SEC
;[1995.06.07.WE]		SBC	#0002
;[1995.06.07.WE]		STA	<ENWRK0,X
;[1995.06.07.WE]		CMP	#0020H
;[1995.06.07.WE]		BPL	BBBRSENDST00F0		; [->BBBRSENDST00F0]
;[1995.06.07.WE];
;[1995.06.07.WE];;;;;;;;		STZ	!PLMODE			; プレイヤースタート!!
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#00078H
;[1995.06.07.WE]		JSL	>SOUND_3_ON		; サウンド セット!!
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#00005H
;[1995.06.07.WE]		STA	!SOUND_0		; サウンド セット!!（ファンファーレ）
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#00200H
;[1995.06.07.WE]		STA	!ENTIM0,X
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#FSMK0
;[1995.06.07.WE]		JSL	>EXINSR			; 煙効果 !!
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	!ENXPSL,X
;[1995.06.07.WE]		STA	!EXXPSL,Y
;[1995.06.07.WE]		LDA	!ENYPSL,X
;[1995.06.07.WE]		SEC
;[1995.06.07.WE]		SBC	#0008
;[1995.06.07.WE]		STA	!EXYPSL,Y
;[1995.06.07.WE]		LDA	#06
;[1995.06.07.WE]		STA	!EXCHPT,Y
;[1995.06.07.WE]		STA	!EXWRK0,Y
;[1995.06.07.WE]		LDA	#04
;[1995.06.07.WE]		STA	!EXTIM0,Y
;[1995.06.07.WE];
;[1995.06.07.WE]		M8				; memory 8bit mode !!
;[1995.06.07.WE];
;[1995.06.07.WE]		LDA	#00000010B
;[1995.06.07.WE]		TRB	!MANSEL
;[1995.06.07.WE]		LDA	#0FFH
;[1995.06.07.WE]		STA	!ENYUSN,X
;[1995.06.07.WE]		LDA	#BBBrsOamTaneMD
;[1995.06.07.WE]		STA	!ENWRK7,X
;[1995.06.07.WE]		INC	!ENWRK6,X
;[1995.06.07.WE]		INC	!ENWRK6,X
;[1995.06.07.WE];
;[1995.06.07.WE]		M16				; memory 16bit mode !!
;[1995.06.07.WE];
;[1995.06.07.WE]BBBRSENDST00F0	EQU	$
;[1995.06.07.WE]		RTL
;
;
BBBRSEND0	EQU	$
		LDX	<ENINDX
		JSR	BBBRS_PLSTP
;
;[1995.06.07.WE]		LDA	!ENTIM0,X
;[1995.06.07.WE]		BNE	BBBRSEND000F0		; [->BBBRSEND000F0]
;[1995.06.07.WE];
;[1995.06.07.WE]		JMP	>BOSS_CLEAR_M
;[1995.06.07.WE];
;[1995.04.03.MO]		LDA	#BS_SCRE
;[1995.04.03.MO]		STA	!MODENO
		JMP	>ENCLEAR_NORETN
;
BBBRSEND000F0	EQU	$
		RTL
;
;
BBBRSTURNPT	EQU	$
		HEX	00, 01, 02, 03, 03, 02, 01, 00
;
BBBRSTURNFG	EQU	$
		HEX	00, 00, 00, 02, 00, 00, 00, 00
;
BBBRSDUMY	EQU	$
		LDX	<ENINDX
		RTS
;
;
BBBRSTURN	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	BBBRSTURN00F0		; [->BBBRSTURN00F0]
;
		M8				; memory 8bit mode !!
;
		DEC	<ENWRK5,X
		BMI	BBBRSTURN0100		; [->BBBRSTURN0100]
;
		LDY	<ENWRK5,X
		LDA	#04
		STA	!ENTIM0,X
		LDA	BBBRSTURNPT,Y
		STA	!ENCHPT,X
		LDA	!ENMUKI,X
		EOR	BBBRSTURNFG,Y
		STA	!ENMUKI,X
;
		M16				; memory 16bit mode !!
;
BBBRSTURN00F0	EQU	$
		RTS
;
		MEM8
;
BBBRSTURN0100	EQU	$
		STZ	<ENWRK4,X
;
		M16				; memory 16bit mode !!
;
		RTS
;
;
BBBRSKYOR	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	BBBRSKYOR00F0		; [->BBBRSKYOR00F0]
;
		M8				; memory 8bit mode !!
;
		DEC	<ENWRK5,X
		BMI	BBBRSKYOR0100		; [->BBBRSKYOR0100]
;
		LDY	<ENWRK5,X
		LDA	#02
		STA	!ENTIM0,X
		LDA	BBBRSTURNPT,Y
		STA	!ENCHPT,X
;
		M16				; memory 16bit mode !!
;
BBBRSKYOR00F0	EQU	$
		RTS
;
		MEM8
;
BBBRSKYOR0100	EQU	$
		STZ	<ENWRK4,X
;
		M16				; memory 16bit mode !!
;
		RTS
;
;
BIGBBOAMSET	EQU	$
		LDX	<ENINDX
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	BIGBBOAMSET00E0		; ＯＡＭセット？ [yes->BIGBBOAMSET00E0]
;
BIGBBOAMSET0080 EQU	$
		LDA	!ENOAML,X
		BMI	BIGBBOAMSET00E0		; ＯＡＭセット？ [no->BIGBBOAMSET00E0]
;
		LDA	#001C0H
		STA	!CCWORK0
		LDA	#001C2H
		STA	!CCWORK1
		LDA	#001E0H
		STA	!CCWORK2
		LDA	#001E2H
		STA	!CCWORK3
		LDA	#001C4H
		STA	!CCWORK4
		LDA	#001C6H
		STA	!CCWORK5
		LDA	#001E4H
		STA	!CCWORK6
		LDA	#001E6H
		STA	!CCWORK7
		LDA	#001C8H
		STA	!CCWORK8
		LDA	#001E8H
		STA	!CCWORK9
		LDA	#001CCH
		STA	!CCWORKA
		LDA	#001CEH
		STA	!CCWORKB
		LDA	#001ECH
		STA	!CCWORKC
		LDA	#001EEH
		STA	!CCWORKD
		LDA	#001CAH
		STA	!CCWORKE
		STA	!CCWORKF
		LDA	#001EAH
		STA	!CCWORK10
		STA	!CCWORK11
;
		M_CHIP	BIGBB_OAMSET
;
BIGBBOAMSET00E0 EQU	$
		LDX	<ENINDX
		RTS
;
;
BIGBBOAMST2	EQU	$
		LDX	<ENINDX
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	BIGBBOAMST200E0		; ＯＡＭセット？ [yes->BIGBBOAMST200E0]
;
BIGBBOAMST20080 EQU	$
		LDA	!ENOAML,X
		BMI	BIGBBOAMST200E0		; ＯＡＭセット？ [no->BIGBBOAMST200E0]
;
		M_CHIP	BIGBB_OAMST2
;
BIGBBOAMST200E0 EQU	$
		LDX	<ENINDX
		RTS
;
;
BIGBBCHEEKMAG	EQU	$
		WORD	00100H, 00000H
		WORD	000E6H, 00007H
		WORD	000B3H, 0000EH
		WORD	00066H, 00015H
;
BIGBBHANDMAG	EQU	$
		WORD	00100H, 000CCH, 00099H, 00066H
;
BIGBBNOSEMAG	EQU	$
		WORD	00100H, 000E6H, 000CCH, 000B3H
;
BIGBB_CHRST	EQU	$
		LDX	<ENINDX
;-------- ビッグバウンドブロスの足セット ----------------
;
		I16				; index 16bit mode !!
;
		LDA	<ENCONT,X
		EOR	#0FFFFH
		INC	A
		XBA
		AND	#000FFH
		STA	R5			; (R5) <- 回転角度
		LDA	#00000H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#00100H
		STA	R6			; (R6) <- 倍率
		LDA	#CIPCHD4+0000H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		I8				; index 8bit mode !!
;
		M_CHIP	C_32_ROTZOM
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの鼻セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		TAY
		LDA	BIGBBNOSEMAG,Y
		STA	R6			; (R6) <- Ｘ倍率
		LDA	#00100H
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0001CH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0000H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの頬セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		ASL	A
		TAY
		LDA	<ENWRK0,X
		STA	R0
		LDA	BIGBBCHEEKMAG,Y
		STA	R6
		PHX
		PHY
		M_CHIP	MULTIPLY
;
		PLY
		PLX
;
		LDA	!ENWRK2,X
		CMP	R0
		BPL	BIGBBCHST0380		; [->BIGBBCHST0380]
;
		LDA	BIGBBCHEEKMAG+2,Y
		BEQ	BIGBBCHST0390		; [->BIGBBCHST0390]
;
		LDA	BIGBBCHEEKMAG+2,Y
		EOR	#0FFFFH
		INC	A
		AND	#000FFH
		BRA	BIGBBCHST0390
;
BIGBBCHST0380	EQU	$
		LDA	BIGBBCHEEKMAG+2,Y
BIGBBCHST0390	EQU	$
		STA	R5			; (R5) <- 回転角度
		LDA	R0
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00060H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0040H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0040H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_RTZ_32_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの手セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		TAY
		LDA	<ENWRK0,X
		STA	R0
		LDA	BIGBBHANDMAG,Y
		STA	R6
		PHX
		PHY
		M_CHIP	MULTIPLY
;
		PLY
		PLX
;
		LDA	R0
		STA	R6			; (R6) <- Ｘ倍率
		STA	<EWORK
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1030H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1030H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
		LDA	<EWORK
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00000H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00010H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1020H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1020H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
;
		RTS
;
;
BIGBB_CHST2	EQU	$
		LDX	<ENINDX
;-------- ビッグバウンドブロスの足セット ----------------
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00010H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00000H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0000H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの鼻セット ----------------
		LDA	!ENCHPT,X
		ASL	A
		TAY
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0001CH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0000H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの目セット ----------------
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00008H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0020H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0020H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの毛セット ----------------
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00001H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000EH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00010H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0030H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0030H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの頬セット ----------------
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00010H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00060H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0040H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0040H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
;-------- ビッグバウンドブロスの手セット ----------------
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0000FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1030H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1030H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		LDX	<ENINDX
;
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0000FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00000H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00050H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00010H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+1020H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+1020H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_16_ZOOM_XY
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
;
		RTS
;
;
BIGBB_CHST3	EQU	$
		LDX	<ENINDX
;
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00010H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0001BH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00000H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD2+00E0H+1
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD2+00E0H+1
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
;
		RTS
;
;
BIGBBBODYST	EQU	$
;-------- ビッグバウンドブロスのボディセット ------------
		LDA	!ENWRKA,X
		AND	#000FFH
		STA	R1		;(R1) <-- パンツＹ位置
		LDA	!ENDSXL,X
		STA	R2		;(R2) <-- 中心表示Ｘ座標
		LDA	!ENDSYL,X
		STA	R3		;(R3) <-- 中心表示Ｙ座標
		LDA	<ENWRK0,X
		STA	R5		;(R5) <-- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R7		;(R7) <-- Ｙ倍率
		TXA
		STA	CCWORK9		;(CWK9) <-- 敵インデックス
		LDA	PLDSXL
		STA	CCWORKA		;(CWKA) <-- プレイヤー表示Ｘ座標
		LDA	PLDSYL
		STA	CCWORKB		;(CWKB) <-- プレイヤー表示Ｙ座標
		LDA	PLSITD
		STA	CCWORKC		;(CWKC) <-- プレイヤーお座りフラグ
		M_CHIPR B_BROS_SET
;
		JSL	>M_DMA_BFST
		LWORD	HDMABUF		;転送先アドレス
		LWORD	HDMABF		;転送元アドレス
;[1995.03.02.TH]		WORD	(0B2H*2*2)	;転送バイト数
		WORD	(0D2H*2*2)	;転送バイト数
;
		LDX	<ENINDX
;
;-------------- ＰＰＵレジスタセット ------------------------------------
		LDA	#00000010B	;ＢＧ２表示セット
		TSB	MANSEL
		LDA	#00011000B
		TSB	HD420C		;H-DMA "ON" !!
;
		LDX	<ENINDX
BBBROSBGCK	EQU	$
		LDY	!ENWRK6,X
		CPY	#BBBrosDathMD
		BCS	BBBROSBGCK00F0		; [->BBBROSBGCK00F0]
;
		LDA	!ENCBFG,X
		BIT	#0000000000000001B
		BEQ	BBBROSBGCK0020		; 足当たってる？ [no->BBBROSBGCK0020]
;
		LDA	!ENYSPD,X
		BMI	BBBROSBGCK0020		; 上昇中？ [no->BBBROSBGCK0020]
;
		LDA	!CCWORK1
		AND	#0000FH
		STA	<EWORK
		LDA	!ENYPSL,X
		SEC
		SBC	<EWORK
		STA	!ENYPSL,X
;
		M8				; memory 8bit mode !!
;
		STZ	!ENYSDR,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00100H
		STA	!ENYSPD,X
BBBROSBGCK0020	EQU	$
		LDA	!ENCBFG,X
		LDY	!ENXSPD+1,X
		BMI	BBBROSBGCK0080		; 左向き？ [yes->BBBROSBGCK0080]
;
		BNE	BBBROSBGCK0040		; 止まってる？ [no->BBBROSBGCK0040]
;
		LDY	!ENXSPD,X
		BEQ	BBBROSBGCK00F0		; 止まってる？ [yes->BBBROSBGCK00F0]
;
BBBROSBGCK0040	EQU	$
		BIT	#0000000000010100B
		BEQ	BBBROSBGCK00F0		; 右側当たり？ [no->BBBROSBGCK00F0]
;
		BRA	BBBROSBGCK00A0
;
BBBROSBGCK0080	EQU	$
		BIT	#0000000000101000B
		BEQ	BBBROSBGCK00F0		; 左側当たり？ [no->BBBROSBGCK00F0]
;
BBBROSBGCK00A0	EQU	$
		LDA	!ENXSPD,X
		EOR	#0FFFFH
		INC	A
		STA	!ENXSPD,X
		LDY	!ENWRK4,X
		BNE	BBBROSBGCK00F0		; [->BBBROSBGCK00F0]
;
BBBROSBGCK00C0	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	#02
		STA	!ENWRK4,X
		LDA	#(BBBRSTURNFG-BBBRSTURNPT-1)
		STA	!ENWRK5,X
		LDA	#04
		STA	!ENTIM0,X
;
		M16				; memory 16bit mode !!
;
BBBROSBGCK00F0	EQU	$
		RTS
;
;
BBBROSPLSH	EQU	$
		LDY	!ENWRK4,X
		BNE	BBBROSPLSH00F0		; [->BBBROSPLSH00F0]
;
		LDA	!ENXPSL,X
		SEC
		SBC	!PCENTX
		STA	<EWORK
		LDA	!ENMUKI,X
		DEC	A
		EOR	<EWORK
		BPL	BBBROSBGCK00C0		; [->BBBROSBGCK00C0]
;
BBBROSPLSH00F0	EQU	$
		RTS
;
;
BBBROSCRCK	EQU	$
		LDY	!ECRSFG,X
		DEY
		BMI	BBBROSCRCK00F0		; 衝突有？ [no->BBBROSCRCK00F0]
		BEQ	BBBROSCRCK00F0		; 赤ちゃん？ [yes->BBBROSCRCK00F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	BBBROSCRCK00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->BBBROSCRCK00F0]
;
		LDA	!ENSHOT,Y
		BEQ	BBBROSCRCK00F0		; ショット？ [no->BBBROSCRCK00F0]
;
		LDA	!ENXPSL,X
		SEC
		SBC	!ECENTX,Y
		STA	<EWORK
;[1995.04.12.WE]		LDA	!ENXSPD,Y
;[1995.04.12.WE]		BEQ	BBBROSCRCK0040		; 真下（上）から当たった？ [yes->BBBROSCRCK0040]
;[1995.04.12.WE];
;[1995.04.12.WE]		EOR	<EWORK
;[1995.04.12.WE]		BMI	BBBROSCRCK00F0		; スピード逆？ [yes->BBBROSCRCK00F0]
;[1995.04.12.WE];
;[1995.04.12.WE]BBBROSCRCK0040	EQU	$
;[1995.04.12.WE]		LDA	<EWORK
		EOR	#0FFFFH
		INC	A
		STA	!ECROSX,Y
		PHX
		TYX
		JSL	>SHOT_EN_KILL
;
		PLX
		LDA	#00200H
		LDY	<EWORK+1
		BPL	BBBROSCRCK0060		; 左側？ [yes->BBBROSCRCK0060]
;
		EOR	#0FFFFH
		INC	A
BBBROSCRCK0060	EQU	$
		STA	!ENXSPD,X
;;		LDA	#-400H
		LDA	#-200H
		STA	!ENYSPD,X
;[1995.04.25.TU]		LDA	#BBBrosZomSpd
		LDA	#BBBrosZomSpd2
		STA	!ENWRK8,X
		LDA	#00140H
		STA	!BOYOYOMAX
		LDA	#000C0H
		STA	!BOYOYOMIN
;
		INC	!EARTHQUAKEFLG		; 地震フラグセット！！
;
		LDA	#00078H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		M8				; memory 8bit mode !!
;
		LDA	#BBBrosHit0MD
		STA	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		PLY
		PLA				; pull pull return !!
BBBROSCRCK00F0	EQU	$
		RTL
;
;
;------------------------------------------------------------------------
;-		バウンドＢｒｏｓ．ＢＧ２カラーセット			-
;------------------------------------------------------------------------
;
		MEM8
;
BBBRSCOLCHG	EQU	$
		LDA	#BANK COL_ADDRESS
		STA	<EWORK2
;
		M16				; memory 16bit mode !!
;
		LDY	!ENWRKC,X
		LDA	BBBRS_BG_COL,Y
		STA	<EWORK
		PHY
		LDX	#(14-1)*2
BBBRSCOLCHG0040 EQU	$
		TXY
		LDA	[<EWORK],Y
		STA	>MOTOCOL+(61H*2),X
		STA	>DATACOL+(61H*2),X
		DEX
		DEX
		BPL	BBBRSCOLCHG0040		; [->BBBRSCOLCHG0040]
;
		PLY
		LDA	BBBRS_OBJ6_COL,Y
		STA	<EWORK
		PHY
		LDX	#(4-1)*2
BBBRSCOLCHG0060 EQU	$
		TXY
		LDA	[<EWORK],Y
		STA	>MOTOCOL+((080H+68H)*2),X
		STA	>DATACOL+((080H+68H)*2),X
		DEX
		DEX
		BPL	BBBRSCOLCHG0060		; [->BBBRSCOLCHG0060]
;
		PLY
		LDA	BBBRS_OBJ7_COL,Y
		STA	<EWORK
		LDX	#(4-1)*2
BBBRSCOLCHG0080 EQU	$
		TXY
		LDA	[<EWORK],Y
		STA	>MOTOCOL+((080H+78H)*2),X
		STA	>DATACOL+((080H+78H)*2),X
		DEX
		DEX
		BPL	BBBRSCOLCHG0080		; [->BBBRSCOLCHG0080]
;
		M8				; memory 8bit mode !!
;
		LDX	<ENINDX
;
		RTS
;
		MEM16
;
;
BBBRS_PLKEY	EQU	$
		WORD	0000001000000000B, 0000000100000000B
;
BBBRS_PLDEMO	EQU	$
		LDY	#00
		LDA	!ENXPSL,X
		SEC
		SBC	!PLXPSL
		BMI	BBBRS_PLDEMO040		; [->BBBRS_PLDEMO040]
;
		INY
		INY
BBBRS_PLDEMO040 EQU	$
		LDA	BBBRS_PLKEY,Y
		STA	!P_KEYC1L
		RTS
;
;
BBBRS_PLSTP	EQU	$
		LDA	!ENXPSL,X
		SEC
		SBC	!PLXPSL
		CLC
		ADC	#00060H
		CMP	#000C0H
		BCS	BBBRS_PLSTP00F0		; [->BBBRS_PLSTP00F0]
;
		STZ	!P_KEYC1L
BBBRS_PLSTP00F0 EQU	$
		RTS
;
;
BBBRSFLUSHCOL0	EQU	$
		LWORD	COL_ADDRESS+OBJ_SUB_B_COL+(15*2)
		LWORD	MOTOCOL+(61H*2)
		LWORD	MOTOCOL+(61H*2)
		LWORD	MOTOCOL+(61H*2)
;
BBBRSFLUSHCOL1	EQU	$
		LWORD	COL_ADDRESS+OBJ_SUB_B_COL+(15*2)
		LWORD	MOTOCOL+(71H*2)
		LWORD	MOTOCOL+(71H*2)
		LWORD	MOTOCOL+(71H*2)
;
BBBRSFLUSHCOL2	EQU	$
		LWORD	COL_ADDRESS+OBJ_SUB_B_COL+(15*2)
		LWORD	MOTOCOL+((080H+61H)*2)
		LWORD	MOTOCOL+((080H+61H)*2)
		LWORD	MOTOCOL+((080H+61H)*2)
;
BBBRSFLUSHCOL3	EQU	$
		LWORD	COL_ADDRESS+OBJ_SUB_B_COL+(15*2)
		LWORD	MOTOCOL+((080H+71H)*2)
		LWORD	MOTOCOL+((080H+71H)*2)
		LWORD	MOTOCOL+((080H+71H)*2)
;
BBBRSFLUSH	EQU	$
		LDA	<FRCNT2
		AND	#00003H
		STA	<EWORK
		ASL	A
		CLC
		ADC	<EWORK
		TAX
BBBRSFLUSH0010	EQU	$
		LDA	BBBRSFLUSHCOL0,X
		STA	<EWORK
		LDY	BBBRSFLUSHCOL0+2,X
		STY	<EWORK2
		LDA	#DATACOL+(61H*2)
		STA	<EWORK4
		LDY	#BANK DATACOL
		STY	<EWORK6
;
		LDY	#(15-1)*2
BBBRSFLUSH0020	EQU	$
		LDA	[<EWORK0],Y
		STA	[<EWORK4],Y
		DEY
		DEY
		BPL	BBBRSFLUSH0020		; [->BBBRSFLUSH0020]
;
		LDA	BBBRSFLUSHCOL1,X
		STA	<EWORK
		LDY	BBBRSFLUSHCOL1+2,X
		STY	<EWORK2
		LDA	#DATACOL+(71H*2)
		STA	<EWORK4
		LDY	#BANK DATACOL
		STY	<EWORK6
;
		LDY	#(15-1)*2
BBBRSFLUSH0040	EQU	$
		LDA	[<EWORK0],Y
		STA	[<EWORK4],Y
		DEY
		DEY
		BPL	BBBRSFLUSH0040		; [->BBBRSFLUSH0040]
;
		LDA	BBBRSFLUSHCOL2,X
		STA	<EWORK
		LDY	BBBRSFLUSHCOL2+2,X
		STY	<EWORK2
		LDA	#DATACOL+((080H+61H)*2)
		STA	<EWORK4
		LDY	#BANK DATACOL
		STY	<EWORK6
;
		LDY	#(15-1)*2
BBBRSFLUSH0060	EQU	$
		LDA	[<EWORK0],Y
		STA	[<EWORK4],Y
		DEY
		DEY
		BPL	BBBRSFLUSH0060		; [->BBBRSFLUSH0060]
;
		LDA	BBBRSFLUSHCOL3,X
		STA	<EWORK
		LDY	BBBRSFLUSHCOL3+2,X
		STY	<EWORK2
		LDA	#DATACOL+((080H+71H)*2)
		STA	<EWORK4
		LDY	#BANK DATACOL
		STY	<EWORK6
;
		LDY	#(15-1)*2
BBBRSFLUSH0080	EQU	$
		LDA	[<EWORK0],Y
		STA	[<EWORK4],Y
		DEY
		DEY
		BPL	BBBRSFLUSH0080		; [->BBBRSFLUSH0080]
;
		LDX	<ENINDX
		RTS
;
;
BBBRSTENMETU	EQU	$
		LDY	!ENWRKC,X
		BEQ	BBBRSTENMETU0F0		; 点滅ＯＫ？ [no->BBBRSTENMETU0F0]
;
		LDA	!FRCNT
 IF  PAL  ;**** PAL 対応 [1995/7/24] *****************************
		AND	#00001H
		BNE	BBBRSTENMETU040		; [->BBBRSTENMETU040]
 ELSE          ;**** 日本 対応 [1995/6/30] ***********************
		AND	#00003H
		CMP	#00002H
		BCS	BBBRSTENMETU040		; [->BBBRSTENMETU040]
 ENDIF    ;**** PAL 対応 [1995/7/24] *****************************
;
		LDA	#00000010B
		TRB	!MANSEL
BBBRSTENMETU040 EQU	$
		LDA	!MANSEL
		BIT	#0000000000000010B
 IF  PAL  ;**** PAL 対応 [1995/08/07] *****************************
		BNE	BBBRSTENMETU080		; [->BBBRSTENMETU080]
 ELSE     ;**** 日本 or NES 対応 [1995/06/30] *********************
		BEQ	BBBRSTENMETU080		; [->BBBRSTENMETU080]
 ENDIF    ;**** PAL 対応 [1995/08/07] *****************************
;
		LDA	#00005H
		BRA	BBBRSTENMETU088		; [->BBBRSTENMETU088]
;
BBBRSTENMETU080 EQU	$
		LDA	#0FFFFH
BBBRSTENMETU088 EQU	$
		STA	!ENYUSN,X
BBBRSTENMETU0F0 EQU	$
		RTS
;
;
;************************************************************************
;*	initial （アトミックプチプチ）					*
;************************************************************************
AtomicPuchiSize EQU	(PUCHACHD1-PUCHACHD0)
PuchaTurn	EQU	(PuchaTurnMD-PUCHAMVMODSEL)
PuchaBoyo	EQU	(PuchaBoyoMD-PUCHAMVMODSEL)
PuchaPuti	EQU	(PuchaPutiMD-PUCHAMVMODSEL)
AtomicPCFtSpd	EQU	00100H
PuchaBYSpd	EQU	00004H
;
PUCHAXSPD	EQU	$
		WORD	-0080H, 00080H
;
PUCHAIN		EQU	$
;[1995.05.04.TH]		LDA	#000F1H
;[1995.05.04.TH]		STA	!SOUND_0		; サウンド セット！！（ＢＧＭ）
;
		LDA	#PUCHA
		LDY	#04
		JSL	>ENINSR2
;
		LDA	#00080H
		STA	!PLSCRL_MAXX		; スクロールＭＡＸセット！！
;
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		STA	!ENYPSL,Y
		TYX
		LDA	#-16
		STA	!PUCHACONT
;
		JSL	>TROBJ_SR_8x8_CL
;
		LDY	#Puti
		JSL	>KAMC2COLRESET_L
;
		LDX	<ENINDX
		JMP	>ENCLEAR_NORETN
;
;
;************************************************************************
;*	move （アトミックプチプチ）					*
;************************************************************************
PUCHABGYP	EQU	$
		WORD	-0007H, -0006H, -0005H, -0004H
		WORD	-0003H, -0002H, -0001H, 00000H
		WORD	00000H, -0001H, -0002H, -0003H
		WORD	-0004H, -0005H, -0006H, -0007H
;
PUCHAMODSEL	EQU	$
		WORD	PUCHAENTIN
		WORD	PUCHAENTER
		WORD	PUCHAWAIT
		WORD	PUCHAWAIT2
		WORD	PUCHAINIT
		WORD	PUCHAZOOM
		WORD	PUCHAMOVE
		WORD	PUCHAWATCH
;
PUCHAMV		EQU	$
		LDX	!PUCHAMOD
		JMP	(PUCHAMODSEL,X)
;
;
PUCHAENTIN	EQU	$
		LDX	<ENINDX
;;;;;;;;		LDA	!PLJUMP
;;;;;;;;		BNE	PUCHAENTIN00F0		; プレイヤー着地？ [no->PUCHAENTIN00F0]
;;;;;;;;;
		LDA	#-0040H
		STA	!ENXSPD,X
		LDY	#(PUCHAENTERPTE-PUCHAENTERPT-1)
		STY	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		LDA	PUCHAENTERPT,Y
		STA	!ENCHPT,X
		LDA	#008
		STA	!ENTIM0,X
;
		M16				; memory 16bit mode !!
;
		INC	!PUCHAMOD
		INC	!PUCHAMOD
PUCHAENTIN00F0	EQU	$
		RTL
;
;
PUCHAENTERPT	EQU	$
		HEX	01, 02, 03, 04, 03, 02, 01, 00
PUCHAENTERPTE	EQU	$
;
PUCHAENTER	EQU	$
		LDX	<ENINDX
		JSL	>ENMDCK			; mode check
;
		LDA	!ENXPSL,X
		CMP	#000C0H
		BCC	PUCHAENTER0100		; [->PUCHAENTER0100]
;
		LDA	!ENTIM0,X
		BNE	PUCHAENTER00F0		; [->PUCHAENTER00F0]
;
		LDY	<ENWRK0,X
		DEY
		BPL	PUCHAENTER0040		; [->PUCHAENTER0040]
;
		LDY	#(PUCHAENTERPTE-PUCHAENTERPT-1)
PUCHAENTER0040	EQU	$
		STY	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		LDA	PUCHAENTERPT,Y
		STA	!ENCHPT,X
		LDA	#008
		STA	!ENTIM0,X
;
		M16				; memory 16bit mode !!
;
PUCHAENTER00F0	EQU	$
		RTL
;
PUCHAENTER0100	EQU	$
		STZ	!ENXSPD,X
		LDA	#01
		STA	!ENCHPT,X
		LDA	#01
		STA	!BOSS_START
		LDX	<ENINDX
		LDA	#00080H
		STA	!ENTIM0,X
		INC	!BOSS_START
		INC	!PUCHAMOD
		INC	!PUCHAMOD
		RTL
;
;
PUCHAWAIT	EQU	$
		LDX	<ENINDX
		JSL	>ENMDCK			; mode check
;
		LDA	!BOSS_START
		BPL	PUCHAWAIT00F0		; [->PUCHAWAIT00F0]
;
		INC	!PUCHAMOD
		INC	!PUCHAMOD
PUCHAWAIT00F0	EQU	$
		RTL
;
;
PUCHAWAIT2	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	PUCHAWAIT200F0		; [->PUCHAWAIT200F0]
;
		STZ	!BOSS_START		; カメック消滅！！
		INC	!PUCHAMOD
		INC	!PUCHAMOD
PUCHAWAIT200F0	EQU	$
		RTL
;
;
PUCHAWATCH	EQU	$
		LDX	<ENINDX
		JSL	>ENMDCK			; mode check
;
		LDA	<ENWRK0,X
		BNE	PUCHAWATCH0100		; [->PUCHAWATCH0100]
;
		LDA	!PUCHACONT
		BEQ	PUCHAWATCH0080		; ぷちぷち全滅？ [yes->PUCHAWATCH0080]
;
;[1995.06.25.SU]		BNE	PUCHAWATCH00F0		; [->PUCHAWATCH00F0]
;[1995.06.25.SU];
		M_CHIP	ENEMYSEARCH
		LDX	<ENINDX
;
		LDA	R11
		BPL	PUCHAWATCH00F0		; 敵いる？ [yes->PUCHAWATCH00F0]
;
		LDA	!ENXPSL,X
		STA	<EWORK
		LDA	!ENYPSL,X
		SEC
		SBC	#0008
		STA	<EWORK2
		JSL	>BSCLW_SET_M
;
PUCHAWATCH0080	EQU	$
		JSL	>BOSS_EN_CHANGE
;
;[1995.06.07.WE]		LDA	#00005H
;[1995.06.07.WE]		STA	!SOUND_0		; サウンド セット!!（ファンファーレ）
;[1995.06.07.WE];
		INC	<ENWRK0,X
;[1995.06.07.WE]		LDA	#00200H
;[1995.06.07.WE]		STA	!ENTIM0,X
PUCHAWATCH00F0	EQU	$
		RTL
;
PUCHAWATCH0100	EQU	$
;[1995.06.07.WE]		LDA	!ENTIM0,X
;[1995.06.07.WE]		BNE	PUCHAWATCH00F0		; [->PUCHAWATCH00F0]
;[1995.06.07.WE];
;[1995.06.07.WE]		JMP	>BOSS_CLEAR_M
;[1995.06.07.WE];
;[1995.04.03.MO]		LDA	#BS_SCRE
;[1995.04.03.MO]		STA	!MODENO
		JMP	>ENCLEAR_NORETN
;
;
PUCHAINIT	EQU	$
		LDX	<ENINDX
		LDA	!ENMOD2,X
		AND	#0000011111111100B
		ORA	#0000000000000010B
		STA	!ENMOD2,X		; ＯＡＭセットタイプの変更！！
		LDY	#(PUCHAMAG2-PUCHAMAG1-2)
		STY	<ENWRK4,X
		LDY	#00
		STA	<ENWRK5,X
		LDA	#00020H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#0001EH
		TAY
		LDA	PUCHAMAGYP,Y
		STA	!ENBGYP,X
		LDA	!ENYPSL,X
		SEC
		SBC	!ENBGYP,X
		STA	!ENYPSL,X
		LDA	#00FFFH
		STA	<ENCONT,X
		CLC
		ADC	#02000H
		XBA
		LSR	A
		LSR	A
		LSR	A
		AND	#00007H
		STA	!ENCHPT,X
;------------------------------------------------------------------------
;-		バウンドＢｒｏｓ．ＢＧ２カラーセット			-
;------------------------------------------------------------------------
		LDX	#15*2
PUCHATANE0180	EQU	$
		LDA	>COL_ADDRESS+BG2_PUCHA,X
		STA	>MOTOCOL+(71H*2),X
		STA	>DATACOL+(71H*2),X
		DEX
		DEX
		BPL	PUCHATANE0180		; [->PUCHATANE0180]
;
		LDX	<ENINDX
;------------------------------------------------------------------------
;-		ＢＧ２敵へ変更						-
;------------------------------------------------------------------------
;
		M8
;
		LDA	#0FH		;Ｈ−ＤＭＡパラメータ変更
		STA	4331H
		LDA	#10H
		STA	4341H
;
		M16
;
		LDA	#00030H
		STA	!PLPRIO
		LDA	!ENCLOR
		AND	#0FFCFH
		ORA	#00030H
		STA	!ENCLOR
		LDA	#00010000B+(00000101B<<8)
		STA	!MANSEL
;
		JSR	PUCHACHRST2
;
		LDA	#00087H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		INC	!PUCHAMOD
		INC	!PUCHAMOD
		RTL
;
;
PUCHAMAG1	EQU	$
		WORD	00110H, 00100H, 000F0H, 000E0H
		WORD	000D0H, 000C0H, 000B0H, 000A0H
		WORD	00090H, 00080H, 00070H, 00060H
		WORD	00050H, 00040H, 00030H, 00020H
;
PUCHAMAG2	EQU	$
		WORD	00100H, 000F0H, 000E0H, 000D0H
		WORD	000C0H, 000B0H, 000A0H, 00090H
		WORD	00080H, 00070H, 00060H, 00050H
		WORD	00040H, 00030H, 00020H, 00050H
;
PUCHAMAGYP	EQU	$
		WORD	-10, -10, -08, -07, -06, -05, -04, -03, -02
;
PUCHAZOOM	EQU	$
		LDX	<ENINDX
		LDA	#0001
		JSR	PUCHAOAM
;
		JSR	PUCHABODYST
;
		LDA	!MSGMOD
		BNE	PUCHAZOOM0040		; メッセージＯＮ？ [yes->PUCHAZOOM0040]
;
		JSR	PUCHACHRST2
;
PUCHAZOOM0040	EQU	$
		JSL	>ENMDCK			; mode check
;
		LDY	<ENWRK5,X
		TYX
		JMP	(PUCHAZOOMMDSEL,X)
;
PUCHAZOOMMDSEL	EQU	$
		WORD	PUCHAZOM1
		WORD	PUCHAZOM2
		WORD	PUCHAZOM3
;
;
PUCHAZOM1	EQU	$
		LDX	<ENINDX
		LDY	<ENWRK4,X
		LDA	<ENWRK0,X
		CLC
		ADC	#0004
		CMP	PUCHAMAG1,Y
		BCS	PUCHAZOM10100		; [->PUCHAZOM10100]
;
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#0001EH
		TAY
		LDA	PUCHAMAGYP,Y
		STA	!ENBGYP,X
PUCHAZOM10080	EQU	$
		RTL
;
PUCHAZOM10100	EQU	$
;
		M8				; memory 8bit mode !!
;
		INC	<ENWRK5,X
		INC	<ENWRK5,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
PUCHAZOM2	EQU	$
		LDX	<ENINDX
		LDY	<ENWRK4,X
		LDA	<ENWRK0,X
		SEC
		SBC	#0004
		CMP	PUCHAMAG2,Y
		BCC	PUCHAZOM20100		; [->PUCHAZOM20100]
;
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#0001EH
		TAY
		LDA	PUCHAMAGYP,Y
		STA	!ENBGYP,X
		RTL
;
PUCHAZOM20100	EQU	$
		LDY	<ENWRK4,X
		DEY
		DEY
		BMI	PUCHAZOM20200		; [->PUCHAZOM20200]
		STY	<ENWRK4,X
;
		M8				; memory 8bit mode !!
;
		DEC	<ENWRK5,X
		DEC	<ENWRK5,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
PUCHAZOM20200	EQU	$
		LDA	#00080H
		STA	!ENTIM0,X
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	<ENCONT,X
		CLC
		ADC	#02000H
		XBA
		LSR	A
		AND	#0001EH
		TAY
		LDA	PUCHABGYP,Y
		STA	!ENBGYP,X
;
		M8				; memory 8bit mode !!
;
		INC	<ENWRK5,X
		INC	<ENWRK5,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
PUCHAZOM3	EQU	$
		LDA	!ENTIM0,X
		BNE	PUCHAZOM300F0		; [->PUCHAZOM300F0]
;
		LDA	#AtomicPCFtSpd
		STA	<ENWRK4,X
		LDY	!ENMUKI,X
		LDA	PUCHAXSPD,Y
		STA	!ENXSPD,X
;
		STZ	!PLMODE			; プレイヤースタート!!
;
		INC	!PUCHAMOD
		INC	!PUCHAMOD
PUCHAZOM300F0	EQU	$
		RTL
;
;
PUCHAMOVE	EQU	$
		LDX	<ENINDX
		LDA	#0000
		JSR	PUCHAOAM
;
		JSR	PUCHABODYST
;
		LDA	!MSGMOD
		BNE	PUCHAMOVE0040		; メッセージＯＮ？ [yes->PUCHAMOVE0040]
;
		JSR	PUCHACHRST
;
PUCHAMOVE0040	EQU	$
		JSL	>ENMDCK			; mode check
;
		JSR	PUCHACRCK
;
		LDY	!ENWRK6,X
		TYX
		JMP	(PUCHAMVMODSEL,X)
;
PUCHAMVMODSEL	EQU	$
		WORD	PUCHAWALK
PuchaTurnMD	WORD	PUCHATURN0
		WORD	PUCHATURN1
PuchaBoyoMD	WORD	PUCHABOYO
		WORD	PUCHAYON0
PuchaPutiMD	WORD	PUCHAPUTI
		WORD	PUCHATAME
		WORD	PUCHAGSET
;
;
PUCHACHKPNT	EQU	$
		WORD	0000000000101000B, 0000000000010100B
;
PUCHAWALK	EQU	$
		LDX	<ENINDX
		LDY	!ENMUKI,X
		LDA	!ENCBFG,X
		AND	PUCHACHKPNT,Y
		BEQ	PUCHAWALK0060		; [->PUCHAWALK0060]
;
		LDA	!ENWRK6,X
		XBA
		ORA	#PuchaTurn
		STA	!ENWRK6,X
PUCHAWALK0060	EQU	$
		LDA	<ENCONT,X
		SEC
		SBC	<ENWRK4,X
		STA	<EWORK
		CLC
		ADC	#02000H
		CMP	#04000H
		BCC	PUCHAWALK0080		; [->PUCHAWALK0080]
;
		LDA	<ENWRK4,X
		EOR	#0FFFFH
		INC	A
		STA	<ENWRK4,X
		LDA	<ENCONT,X
		BRA	PUCHAWALK0090
;
PUCHAWALK0080	EQU	$
		LDA	<EWORK
		STA	<ENCONT,X
PUCHAWALK0090	EQU	$
		CLC
		ADC	#02000H
		XBA
		LSR	A
		PHA
		LSR	A
		LSR	A
		AND	#00007H
		STA	!ENCHPT,X
		PLA
		AND	#0001EH
		TAY
		LDA	PUCHABGYP,Y
		STA	!ENBGYP,X
		RTL
;
;
PUCHATURNPT	EQU	$
		HEX	03, 06, 08, 08, 06, 03
;
PUCHATURNFP	EQU	$
		HEX	00, 00, 02, 00, 00, 00
;
PUCHATURN0	EQU	$
		LDX	<ENINDX
;;;;;;;;		LDA	#-AtomicPCFtSpd
		LDY	!ENCHPT,X
		CPY	#003H
		BEQ	PUCHATURN00100		; 振り向きＯＫ？ [yes->PUCHATURN00100]
;;;;;;;;		BCC	PUCHATURN00040		; [->PUCHATURN00040]
;;;;;;;;;
;;;;;;;;		LDA	#AtomicPCFtSpd
;;;;;;;;PUCHATURN00040	EQU	$
;;;;;;;;		STA	<ENWRK4,X
		BRA	PUCHAWALK0060
;
PUCHATURN00100	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	#(PUCHATURNFP-PUCHATURNPT-1)
		STA	!ENWRK8,X
		TAY
		LDA	PUCHATURNPT,Y
		STA	!ENCHPT,X
		LDA	#04
		STA	!ENTIM0,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
PUCHATURN1	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	PUCHATURN100F0		; [->PUCHATURN100F0]
;
		M8				; memory 8bit mode !!
;
		DEC	!ENWRK8,X
		BMI	PUCHATURN10100		; [->PUCHATURN10100]
;
		LDA	#04
		STA	!ENTIM0,X
		LDY	!ENWRK8,X
		LDA	PUCHATURNPT,Y
		STA	!ENCHPT,X
		LDA	!ENMUKI,X
		EOR	PUCHATURNFP,Y
		STA	!ENMUKI,X
;
		M16				;  memory 16bit mode !!
;
PUCHATURN100F0	EQU	$
		RTL
;
		MEM8
;
PUCHATURN10100	EQU	$
		STZ	!ENWRK6,X
		LDA	#03
		STA	!ENCHPT,X
;
		M16				;  memory 16bit mode !!
;
		LDY	!ENMUKI,X
		LDA	PUCHAXSPD,Y
		STA	!ENXSPD,X
		RTL
;
;
PUCHABOYO	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK2,X
		SEC
		SBC	!ENWRKA,X
		STA	<ENWRK2,X
		LDA	<ENWRK0,X
		CLC
		ADC	!ENWRKA,X
		STA	<ENWRK0,X
		CMP	#000FCH
		BCS	PUCHABOYO0080		; [->PUCHABOYO0080]
;
		LDA	#PuchaBYSpd
		STA	!ENWRKA,X
		RTL
;
PUCHABOYO0080	EQU	$
		CMP	#00100H
		BCS	PUCHABOYO0100		; [->PUCHABOYO0100]
;
		RTL
;
PUCHABOYO0100	EQU	$
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	#-PuchaBYSpd
		STA	!ENWRKA,X
;
		M8				; memory 8bit mode !!
;
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
PUCHAYON0	EQU	$
		LDX	<ENINDX
		LDA	<ENWRK0,X
		SEC
		SBC	!ENWRKA,X
		STA	<ENWRK0,X
		LDA	<ENWRK2,X
		CLC
		ADC	!ENWRKA,X
		STA	<ENWRK2,X
		CMP	#000FCH
		BCS	PUCHAYON00080		; [->PUCHAYON00080]
;
		LDA	#PuchaBYSpd
		STA	!ENWRKA,X
		RTL
;
PUCHAYON00080	EQU	$
		CMP	#00100H
		BCS	PUCHAYON00100		; [->PUCHAYON00100]
;
		RTL
;
PUCHAYON00100	EQU	$
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	#-PuchaBYSpd
		STA	!ENWRKA,X
;
		M8				; memory 8bit mode !!
;
		DEC	!ENWRKC,X
		BMI	PUCHAYON00200		; [->PUCHAYON00200]
;
		DEC	!ENWRK6,X
		DEC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
		MEM8
;
PUCHAYON00200	EQU	$
		STZ	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		LDY	!ENMUKI,X
		LDA	PUCHAXSPD,Y
		STA	!ENXSPD,X
		RTL
;
;
PUCHGXSPD	EQU	$
		WORD	0FF00H, 00100H
;
PUCHGMUKI	EQU	$
		WORD	00000H, 00002H
;
PUCHGXPOS	EQU	$
		WORD	-0014H, 0001CH
;
PUCHAPUTI	EQU	$
		LDX	<ENINDX
		STZ	!PLYSPD
		LDA	!PUCHAPCRSFG
		BIT	#00001H
		BEQ	PUCHAPUTI0040		; [->PUCHAPUTI0040]
;
		LDA	!PLYPSL
		CLC
		ADC	!PUCHAPVHOSE
		STA	!PLYPSL
PUCHAPUTI0040	EQU	$
		LDA	<ENWRK2,X
		SEC
		SBC	#00010H
		CMP	#00030H
		BCC	PUCHAPUTI0100		; [->PUCHAPUTI0100]
;
		STA	<ENWRK2,X
		LDA	<ENWRK0,X
		CLC
		ADC	#00010H
		STA	<ENWRK0,X
PUCHAPUTI00F0	EQU	$
		RTL
;
PUCHAPUTI0100	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	#008H
		STA	!ENTIM0,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
PUCHATAME	EQU	$
		LDX	<ENINDX
		STZ	!PLYSPD
		LDA	!PUCHAPCRSFG
		BIT	#00001H
		BEQ	PUCHATAME0040		; [->PUCHATAME0040]
;
		LDA	!PLYPSL
		CLC
		ADC	!PUCHAPVHOSE
		STA	!PLYPSL
PUCHATAME0040	EQU	$
		LDA	!ENTIM0,X
		BNE	PUCHATAME00F0		; [->PUCHATAME00F0]
;
		M8				; memory 8bit mode !!
;
		LDA	#0FFH
		STA	!ENYUSN,X
		INC	!ENWRK6,X
		INC	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
PUCHATAME00F0	EQU	$
		RTL
;
;
PUCHAGSET	EQU	$
		LDX	<ENINDX
		JSL	>TROBJ_CLEAR
;
		LDA	#00085H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDA	#BG3EX
		JSL	>ENINSR
;
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		STA	!ENYPSL,Y
		LDA	#02
		STA	!ENWRK2,Y
;
		LDA	#02-1
		STA	<EWORK
PUCHAGSET0040	EQU	$
		LDA	#PUCHG
		JSL	>ENINSR_I
;
		LDA	#00020H
		STA	!ENTIM2,Y
		LDA	#00030H
		STA	!ENTIM0,Y
		LDA	#PBBY
		STA	!ENWRK2,Y
		LDA	#0FC00H
		STA	!ENYSPD,Y
		LDA	!ENCBFG,Y
		AND	#0FFFEH
		STA	!ENCBFG,Y
		LDA	!ENYPSL,X
		SEC
		SBC	#00030H
		STA	!ENYPSL,Y
		LDA	!ENMOD2,Y
		AND	#1111111111110011B
		STA	!ENMOD2,Y
;
		PHX
		LDA	<EWORK
		ASL	A
		TAX
		LDA	PUCHGXSPD,X
		STA	!ENXSPD,Y
		LDA	PUCHGMUKI,X
		STA	!ENMUKI,Y
		LDA	PUCHGXPOS,X
		PLX
		CLC
		ADC	!ENXPSL,X
		STA	!ENXPSL,Y
		DEC	<EWORK
		BPL	PUCHAGSET0040		; [->PUCHAGSET0040]
;
		STZ	!PLMODE			; プレイヤースタート!!
		LDA	#00000010B
		TRB	!MANSEL
		TRB	!SUBSEL
		STZ	<ENWRK0,X
		STZ	!ENTIM0,X
		INC	!PUCHAMOD
		INC	!PUCHAMOD
		RTL
;
;
PUCHACRCK	EQU	$
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	PUCHACRCK00F8		; [->PUCHACRCK00F8]
;
		LDY	!ECRSFG,X
		DEY
		BMI	PUCHACRCK00F0		; 敵と衝突した？ [no->PUCHACRCK00F0]
		BEQ	PUCHACRCK00F0		; 赤ちゃんした？ [yes->PUCHACRCK00F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	PUCHACRCK00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->PUCHACRCK00F0]
;
		LDA	!ENSHOT,Y
		BEQ	PUCHACRCK00F0		; ショット？ [no->PUCHACRCK00F0]
;
		LDA	!ENXPSL,X
		CLC
		ADC	#08
		SEC
		SBC	!ECENTX,Y
		STA	<EWORK
		LDA	!ENXSPD,Y
		BEQ	PUCHACRCK0040		; 真下（上）から当たった？ [yes->PUCHACRCK0040]
;
		EOR	<EWORK
		BMI	PUCHACRCK00F0		; スピード逆？ [yes->PUCHACRCK00F0]
;
PUCHACRCK0040	EQU	$
		LDA	<EWORK
		EOR	#0FFFFH
		INC	A
		STA	!ECROSX,X
		PHX
		TYX
		JSL	>SHOT_EN_KILL
;
		PLX
		LDA	!ENWRK6,X
		CMP	#PuchaBoyo
		BCS	PUCHACRCK00F0		; [->PUCHACRCK00F0]
;
PUCHACRCK0080	EQU	$
		STZ	!ENXSPD,X
		LDA	#-PuchaBYSpd
		STA	!ENWRKA,X
		CLC
		ADC	<ENWRK0,X
		STA	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		LDA	#PuchaBoyo
		STA	!ENWRK6,X
		LDA	#03
		STA	!ENWRKC,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00034H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		PLA
		RTL
;
PUCHACRCK00F0	EQU	$
		LDA	!PLMODE
		BNE	PUCHACRCK00F8		; [->PUCHACRCK00F8]
;
		LDA	!PUCHAPCRSFG
		BEQ	PUCHACRCK00F8		; プレイヤーと当たった？ [no->PUCHACRCK00F8]
;
		CMP	#00001H
		BEQ	PUCHACRCK0100		; プレイヤーに踏まれた？ [yes->PUCHACRCK0100]
;
		JSL	>PLFLST
;
PUCHACRCK00F8	EQU	$
		RTS
;
PUCHACRCK0100	EQU	$
		LDA	!PLYSPD
		BMI	PUCHACRCK00F8		; 上昇中？ [yes->PUCHACRCK00F8]
;
		LDA	#00100H
		STA	<ENWRK0,X
		STA	<ENWRK2,X
		LDA	!PLDOSN
		BNE	PUCHACRCK0200		; プレイヤーどすん？ [yes->PUCHACRCK0200]
;
		JSL	>PLAYER_REBOUND
;
		LDA	#00034H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		BRA	PUCHACRCK0080
;
PUCHACRCK0200	EQU	$
		LDA	!PLYSPD
		BEQ	PUCHACRCK00F8		; 下降中？ [no->PUCHACRCK00F8]
;
		STZ	!PLYSPD
		LDA	!PLYPSL
		SEC
		SBC	!PUCHAPVHOSE
		STA	!PLYPSL
		JSL	>TO_PLDEMO_2		; プレイヤーデモ！！
;
		LDA	#0E000H
		STA	<ENCONT,X
;
		M8				; memory 8bit mode !!
;
		LDA	#09
		STA	!ENCHPT,X
		LDA	#PuchaPuti
		STA	!ENWRK6,X
;
		M16				; memory 16bit mode !!
;
		RTS
;
;
PUCHAOAM	EQU	$
		STA	!CCWORK2
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	PUCHAOAM00F0		; [->PUCHAOAM00F0]
;
		LDA	<ENCONT,X
		XBA
		AND	#000FFH
		STA	R1
		LDA	#BANK PUCHACHD0
		STA	R4
		LDA	#PUCHACHD0
		STA	R5
		LDA	!ENCHPT,X
		STA	R6
		LDA	#AtomicPuchiSize
		STA	R7
		LDA	#04000H
		STA	R8
		LDA	<ENWRK0,X
		STA	!CCWORK0
		LDA	<ENWRK2,X
		STA	!CCWORK1
		LDA	!ENDSXL,X
		CLC
		ADC	#00008H
		STA	!CCWORK8
		LDA	!ENDSYL,X
		CLC
		ADC	#00004H
		STA	!CCWORK9
		M_CHIP	PUCHAOAMSET
;
		LDX	<ENINDX
PUCHAOAM00F0	EQU	$
		RTS
;
;
PUCHACHEEKMAG	EQU	$
		WORD	00100H, 00000H		; [00]
		WORD	00100H, 00000H		; [01]
		WORD	00100H, 00000H		; [02]
		WORD	00100H, 00000H		; [03]
		WORD	00100H, 00000H		; [04]
		WORD	000F3H, 000E4H		; [05]
		WORD	000E6H, 000E4H		; [06]
		WORD	000D9H, 000E4H		; [07]
		WORD	00100H, 00000H		; [08]
		WORD	000E6H, 000E4H		; [09]
		WORD	000CCH, 000E4H		; [0A]
		WORD	00100H, 00000H		; [0B]
;
PUCHACHRST	EQU	$
		LDY	!ENYUSN,X
		CPY	#0FFH
		BNE	PUCHACHRST0040		; [->PUCHACHRST0040]
;
		RTS
;
PUCHACHRST0040	EQU	$
		LDA	<ENCONT,X
		XBA
		AND	#000FFH
		STA	R5			; (R5) <- 回転角度
		LDA	#00000H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#00100H
		STA	R6			; (R6) <- 倍率
		LDA	#CIPCHD4+0060H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0060H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ROTZOM
;
		LDX	<ENINDX
;
		LDA	!ENCHPT,X
		CMP	#00009H
		BCC	PUCHACHRST0200		; [->PUCHACHRST0200]
;
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0003FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#0001FH
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0000H+1
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0000H+1
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_64_ZOOM_V_XY
;
		LDX	<ENINDX
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		RTS
;
PUCHACHRST0200	EQU	$
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0001FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0080H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0080H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
		LDA	!ENCHPT,X
		ASL	A
		ASL	A
		TAY
		LDA	<ENWRK2,X
		STA	R0
		LDA	PUCHACHEEKMAG,Y
		STA	R6
		PHX
		PHY
		M_CHIP	MULTIPLY
;
		PLY
		PLX
;
		LDA	<ENWRK0,X
		CMP	R0
		BPL	PUCHACHRST0380		; [->PUCHACHRST0380]
;
		LDA	PUCHACHEEKMAG+2,Y
		BEQ	PUCHACHRST0390		; [->PUCHACHRST0390]
;
		LDA	PUCHACHEEKMAG+2,Y
		EOR	#0FFFFH
		INC	A
		AND	#000FFH
		BRA	PUCHACHRST0390
;
PUCHACHRST0380	EQU	$
		LDA	PUCHACHEEKMAG+2,Y
PUCHACHRST0390	EQU	$
		STA	R5			; (R5) <- 回転角度
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	R0
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0040H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0040H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_RTZ_32_XY
;
		LDX	<ENINDX
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
PUCHACHRST03F0	EQU	$
		RTS
;
;
PUCHACHRST2	EQU	$
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	PUCHACHRST03F0		; [->PUCHACHRST03F0]
;
		LDA	<ENCONT,X
		XBA
		AND	#000FFH
		STA	R5			; (R5) <- 回転角度
		LDA	#00000H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#CIPCHD4+0060H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0060H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_RTZ_32_XY
;
		LDX	<ENINDX
;
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#0001FH
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00040H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0080H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0080H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
		LDA	#00000H
		STA	R5			; (R5) <- 回転角度
		LDA	<ENWRK0,X
		STA	R6			; (R6) <- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R11			; (R11) <- Ｙ倍率
		LDA	#00010H
		STA	R8			; (R8) <- 中心Ｘ
		LDA	#00010H
		STA	R9			; (R9) <- 中心Ｙ
		LDA	#00020H
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#00000H
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	#CIPCHD4+0040H+0
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD4+0040H+0
		STA	R13			; (R13) <- キャラクタバンク
;
		M_CHIP	C_32_ZOOM_XY
;
		LDX	<ENINDX
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
PUCHACHRST200F0 EQU	$
		RTS
;
;
PUCHABODYST	EQU	$
		LDY	!ENYUSN,X
		CPY	#0FFH
		BEQ	PUCHACHRST200F0		; [->PUCHACHRST200F0]
;
;-------- アトミックプチプチのボディセット ------------
		LDA	#00000H
		STA	R1		;(R1) <-- パンツＹ位置
		LDA	!ENDSXL,X
		CLC
		ADC	#00008H
		STA	R2		;(R2) <-- 中心表示Ｘ座標
		LDA	!ENDSYL,X
		CLC
		ADC	#00004H
		STA	R3		;(R3) <-- 中心表示Ｙ座標
		LDA	<ENWRK0,X
		STA	R5		;(R5) <-- Ｘ倍率
		LDA	<ENWRK2,X
		STA	R7		;(R7) <-- Ｙ倍率
		TXA
		STA	CCWORK9		;(CWK9) <-- 敵インデックス
		LDA	PLDSXL
		STA	CCWORKA		;(CWKA) <-- プレイヤー表示Ｘ座標
		LDA	PLDSYL
		STA	CCWORKB		;(CWKB) <-- プレイヤー表示Ｙ座標
		LDA	PLSITD
		STA	CCWORKC		;(CWKC) <-- プレイヤーお座りフラグ
		M_CHIPR BPUCH_SET
;
		LDA	!CCWORKD
		STA	!PUCHAPCRSFG
		LDA	!CCWORKE
		STA	!PUCHAPVHOSE
;
		JSL	>M_DMA_BFST
		LWORD	HDMABUF		;転送先アドレス
		LWORD	HDMABF		;転送元アドレス
;[1995.03.02.TH]		WORD	(0B2H*2*2)	;転送バイト数
		WORD	(0D2H*2*2)	;転送バイト数
;
		LDX	<ENINDX
;
;-------------- ＰＰＵレジスタセット ------------------------------------
		LDA	#00000010B	;ＢＧ２表示セット
		TSB	MANSEL
		LDA	#00011000B
		TSB	HD420C		;H-DMA "ON" !!
;
		LDX	<ENINDX
PUCHABGCK	EQU	$
		LDA	!ENCBFG,X
PUCHABGCK0020	EQU	$
		LDY	!ENXSPD+1,X
		BMI	PUCHABGCK0080		; 左向き？ [yes->PUCHABGCK0080]
;
		BNE	PUCHABGCK0040		; 止まってる？ [no->PUCHABGCK0040]
;
		LDY	!ENXSPD,X
		BEQ	PUCHABGCK00F0		; 止まってる？ [yes->PUCHABGCK00F0]
;
PUCHABGCK0040	EQU	$
		BIT	#0000000000010100B
		BEQ	PUCHABGCK00F0		; 右側当たり？ [no->PUCHABGCK00F0]
;
		BRA	PUCHABGCK00A0
;
PUCHABGCK0080	EQU	$
		BIT	#0000000000101000B
		BEQ	PUCHABGCK00F0		; 左側当たり？ [no->PUCHABGCK00F0]
;
PUCHABGCK00A0	EQU	$
;;;;;;;;		LDA	!ENXSPD,X
;;;;;;;;		EOR	#0FFFFH
;;;;;;;;		INC	A
;;;;;;;;		STA	!ENXSPD,X
		STZ	!ENXSPD,X
PUCHABGCK00F0	EQU	$
		RTS
;
;
PUCHACHD0	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	DB, 9D			; 顔中心
		HEX	02, FA, F0
		BYTE	0CAH, 07DH
		HEX	02, 0A, F0
		BYTE	0C8H, 07DH
		HEX	02, FA, 00
		BYTE	0EAH, 07DH
		HEX	02, 0A, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E7, F0
		BYTE	0C8H, 03FH
		HEX	02, F7, F0
		BYTE	0CAH, 03FH
		HEX	02, E7, 00
		BYTE	0E8H, 03FH
		HEX	02, F7, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	00, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD1	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	DD, 9D			; 顔中心
		HEX	02, FA, F0
		BYTE	0CAH, 07DH
		HEX	02, 0A, F0
		BYTE	0C8H, 07DH
		HEX	02, FA, 00
		BYTE	0EAH, 07DH
		HEX	02, 0A, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E6, F0
		BYTE	0C8H, 03FH
		HEX	02, F6, F0
		BYTE	0CAH, 03FH
		HEX	02, E6, 00
		BYTE	0E8H, 03FH
		HEX	02, F6, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	02, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD2	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	DF, 9D			; 顔中心
		HEX	02, FB, F0
		BYTE	0CAH, 07DH
		HEX	02, 0B, F0
		BYTE	0C8H, 07DH
		HEX	02, FB, 00
		BYTE	0EAH, 07DH
		HEX	02, 0B, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E5, F0
		BYTE	0C8H, 03FH
		HEX	02, F5, F0
		BYTE	0CAH, 03FH
		HEX	02, E5, 00
		BYTE	0E8H, 03FH
		HEX	02, F5, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	05, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD3	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	E2, 9D			; 顔中心
		HEX	02, FD, F0
		BYTE	0CAH, 07DH
		HEX	02, 0D, F0
		BYTE	0C8H, 07DH
		HEX	02, FD, 00
		BYTE	0EAH, 07DH
		HEX	02, 0D, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E4, F0
		BYTE	0C8H, 03FH
		HEX	02, F4, F0
		BYTE	0CAH, 03FH
		HEX	02, E4, 00
		BYTE	0E8H, 03FH
		HEX	02, F4, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	0A, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD4	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	E7, 9D			; 顔中心
		HEX	02, FE, F0
		BYTE	0CAH, 07DH
		HEX	02, 0E, F0
		BYTE	0C8H, 07DH
		HEX	02, FE, 00
		BYTE	0EAH, 07DH
		HEX	02, 0E, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E2, F0
		BYTE	0C8H, 03FH
		HEX	02, F2, F0
		BYTE	0CAH, 03FH
		HEX	02, E2, 00
		BYTE	0E8H, 03FH
		HEX	02, F2, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	10, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD5	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	EC, 9D			; 顔中心
		HEX	02, FF, F0
		BYTE	0CAH, 07DH
		HEX	02, 0F, F0
		BYTE	0C8H, 07DH
		HEX	02, FF, 00
		BYTE	0EAH, 07DH
		HEX	02, 0F, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E1, F0
		BYTE	0C8H, 03FH
		HEX	02, F1, F0
		BYTE	0CAH, 03FH
		HEX	02, E1, 00
		BYTE	0E8H, 03FH
		HEX	02, F1, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	15, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD6	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	EF, 9D			; 顔中心
		HEX	02, 00, F0
		BYTE	0CAH, 07DH
		HEX	02, 10, F0
		BYTE	0C8H, 07DH
		HEX	02, 00, 00
		BYTE	0EAH, 07DH
		HEX	02, 10, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E1, F0
		BYTE	0C8H, 03FH
		HEX	02, F1, F0
		BYTE	0CAH, 03FH
		HEX	02, E1, 00
		BYTE	0E8H, 03FH
		HEX	02, F1, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	19, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD7	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	F2, 9D			; 顔中心
		HEX	02, 00, F0
		BYTE	0CAH, 07DH
		HEX	02, 10, F0
		BYTE	0C8H, 07DH
		HEX	02, 00, 00
		BYTE	0EAH, 07DH
		HEX	02, 10, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E0, F0
		BYTE	0C8H, 03FH
		HEX	02, F0, F0
		BYTE	0CAH, 03FH
		HEX	02, E0, 00
		BYTE	0E8H, 03FH
		HEX	02, F0, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	1C, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD8	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0C2H, 06FH
		HEX	02, 00, F0
		BYTE	0C0H, 06FH
		HEX	02, F0, 00
		BYTE	0E2H, 06FH
		HEX	02, 00, 00
		BYTE	0E0H, 06FH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0E0H, 0ADH
		HEX	02, 00, F0
		BYTE	0E2H, 0ADH
		HEX	02, F0, 00
		BYTE	0C0H, 0ADH
		HEX	02, 00, 00
		BYTE	0C2H, 0ADH
;----- 顔
		HEX	F6, 9D			; 顔中心
		HEX	02, 00, F0
		BYTE	0CAH, 07DH
		HEX	02, 10, F0
		BYTE	0C8H, 07DH
		HEX	02, 00, 00
		BYTE	0EAH, 07DH
		HEX	02, 10, 00
		BYTE	0E8H, 07DH
;
		HEX	02, E0, F0
		BYTE	0C8H, 03FH
		HEX	02, F0, F0
		BYTE	0CAH, 03FH
		HEX	02, E0, 00
		BYTE	0E8H, 03FH
		HEX	02, F0, 00
		BYTE	0EAH, 03FH
;
;----- 頬
		HEX	20, 9F			; 頬中心
		HEX	02, F0, F0
		BYTE	0C4H, 03FH
		HEX	02, 00, F0
		BYTE	0C6H, 03FH
		HEX	02, F0, 00
		BYTE	0E4H, 03FH
		HEX	02, 00, 00
		BYTE	0E6H, 03FH
;
PUCHACHD9	EQU	$
;----- 足
;;;;;;;;		HEX	00, 00			; 足中心
;----- 左爪先
		HEX	F8			; 爪先半径
		HEX	02, F0, F0
		BYTE	0C0H, 03DH
		HEX	02, 00, F0
		BYTE	0C2H, 03DH
		HEX	02, F0, 00
		BYTE	0E0H, 03DH
		HEX	02, 00, 00
		BYTE	0E2H, 03DH
;----- 左踵
		HEX	09			; 踵半径
		HEX	02, F0, F0
		BYTE	0E2H, 0FFH
		HEX	02, 00, F0
		BYTE	0E0H, 0FFH
		HEX	02, F0, 00
		BYTE	0C2H, 0FFH
		HEX	02, 00, 00
		BYTE	0C0H, 0FFH
;----- 右爪先
		HEX	02, F0, F0
		BYTE	0C2H, 07DH
		HEX	02, 00, F0
		BYTE	0C0H, 07DH
		HEX	02, F0, 00
		BYTE	0E2H, 07DH
		HEX	02, 00, 00
		BYTE	0E0H, 07DH
;----- 右踵
		HEX	02, F0, F0
		BYTE	0E0H, 0BFH
		HEX	02, 00, F0
		BYTE	0E2H, 0BFH
		HEX	02, F0, 00
		BYTE	0C0H, 0BFH
		HEX	02, 00, 00
		BYTE	0C2H, 0BFH
;----- 顔
		HEX	00, 98			; 顔中心
		HEX	02, E0, F0
		BYTE	0C8H, 03DH
		HEX	02, F0, F0
		BYTE	0CAH, 03DH
		HEX	02, E0, 00
		BYTE	0E8H, 03DH
		HEX	02, F0, 00
		BYTE	0EAH, 03DH
;----- 頬
		HEX	02, C0, F0
		BYTE	0C4H, 03FH
		HEX	02, D0, F0
		BYTE	0C6H, 03FH
		HEX	02, C0, 00
		BYTE	0E4H, 03FH
		HEX	02, D0, 00
		BYTE	0E6H, 03FH
;----- 顔
		HEX	02, 00, F0
		BYTE	0CAH, 07FH
		HEX	02, 10, F0
		BYTE	0C8H, 07FH
		HEX	02, 00, 00
		BYTE	0EAH, 07FH
		HEX	02, 10, 00
		BYTE	0E8H, 07FH
;----- 頬
		HEX	02, 20, F0
		BYTE	0C6H, 07FH
		HEX	02, 30, F0
		BYTE	0C4H, 07FH
		HEX	02, 20, 00
		BYTE	0E6H, 07FH
		HEX	02, 30, 00
		BYTE	0E4H, 07FH
;
;
;********************************************************************************
;*	initial （ＢＧ３効果）							*
;*		ENCONT <- ０ : アトミックプチプチ				*
;*			  ２ : ジャイアントプチプチ				*
;*		  WRK2 <- １							*
;********************************************************************************
BG3EXIN		EQU	$
		RTL
;
;
;********************************************************************************
;*	move （ＢＧ３効果）							*
;********************************************************************************
BG3EXCOL	EQU	$
bg3excol0	LWORD	COL_ADDRESS+BOS_FLSH_COL0+(3*2)
bg3excol1	LWORD	COL_ADDRESS+BOS_FLSH_COL0+(0*2)
bg3excol2	LWORD	COL_ADDRESS+BOS_FLSH_COL0+(1*2)
bg3excol3	LWORD	COL_ADDRESS+BOS_FLSH_COL0+(2*2)
;
BG3EXColor0	EQU	(bg3excol0-BG3EXCOL)
BG3EXColor1	EQU	(bg3excol1-BG3EXCOL)
BG3EXColor2	EQU	(bg3excol2-BG3EXCOL)
BG3EXColor3	EQU	(bg3excol3-BG3EXCOL)
;
BG3EXCOLPTN0	EQU	$
		BYTE	BG3EXColor0, BG3EXColor2, BG3EXColor1, BG3EXColor2
		BYTE	BG3EXColor1, BG3EXColor2
;
BG3EXCOLPTN1	EQU	$
		BYTE	BG3EXColor0, BG3EXColor3, BG3EXColor2, BG3EXColor3
		BYTE	BG3EXColor2, BG3EXColor3
;
BG3EXCOLPTNAD	EQU	$
		WORD	BG3EXCOLPTN0
		WORD	BG3EXCOLPTN1
;
BG3EXMV		EQU	$
		LDA	#00180H
		SEC
		SBC	!ENDSXL,X
		STA	!SCCH3
		LDA	#00180H
		SEC
		SBC	!ENDSYL,X
		STA	!SCCV3

		JSL	>ENMDCK			; mode check
;
		LDA	!MANSEL
		ORA	!SUBSEL
		AND	#0000000000011011B
		ORA	#0000010000000000B
		STA	!MANSEL
		LDY	#00110011B
		STY	!SUBADF
;
		LDA	!ENTIM0,X
		BNE	BG3EXMV00F0		; [->BG3EXMV00F0]
;
		LDA	#0002
		STA	!ENTIM0,X
		LDY	<ENCONT,X
		LDA	BG3EXCOLPTNAD,Y
		STA	<EWORK
		LDY	<ENWRK0,X
		DEY
		BPL	BG3EXMV0030		; [->BG3EXMV0030]
;
		DEC	<ENWRK2,X
		BMI	BG3EXMV0100		; 終り？ [yes->BG3EXMV0100]
;
		LDY	#(6-1)
BG3EXMV0030	EQU	$
		STY	<ENWRK0,X
		LDA	(<EWORK),Y
		TAY
		LDA	BG3EXCOL,Y
		STA	<EWORK
		LDX	BG3EXCOL+2,Y
		STX	<EWORK2
;
		LDX	#(03-1)*2
BG3EXMV0040	EQU	$
		TXY
		LDA	[<EWORK],Y
		STA	>DATACOL+2,X
		DEX
		DEX
		BPL	BG3EXMV0040		; [->BG3EXMV0040]
;
		LDX	<ENINDX
;
BG3EXMV00F0	EQU	$
		RTL
;
BG3EXMV0100	EQU	$
		STZ	!ESCCH3
		STZ	!ESCCV3
		JMP	>ENCLEAR
;
;
;------------------------------------------------------------------------
;-	initial (OTAMA)							-
;------------------------------------------------------------------------
otama_max	EQU	0020H
otamatop_ptn	EQU	007H
otamaunder_ptn	EQU	007H
otamacount	EQU	004H
otamacount2	EQU	005H
ot_tarnp	EQU	020H
otama00		EQU	000H
otama01		EQU	001H
otama02		EQU	002H
otama03		EQU	003H
otama04		EQU	004H
otama05		EQU	005H
otama06		EQU	006H
otama07		EQU	007H
otama08		EQU	008H
otama09		EQU	009H
otama0A		EQU	00AH
otama0B		EQU	00BH
otama0C		EQU	00CH
otama0D		EQU	00DH
otama0E		EQU	00EH
otama0F		EQU	00FH
otama10		EQU	010H
otama11		EQU	011H
otama12		EQU	012H
otama13		EQU	013H
otama14		EQU	014H
otama15		EQU	015H
;
OTAMAHITCENTY	EQU	$
		HEX	08, 08, 08, 08, 08, 0C, 10, 10
		HEX	10, 10, 10, 10, 0C, 08, 10, 10
		HEX	10, 10, 10, 10, 10, 10
;
OTAMAMUKI	EQU	$
		HEX	00, 03
;
OTAMAIN		EQU	$
		LDA	!ENYPSL,X
		STA	<ENWRK0,X		; otama start position
;
		LDA	!ENXPSL,X
		AND	#00010H
		BEQ	OTAMAIN0080		;
;
		LDA	OTGMAX
		STA	!ENGMAX,X
		LDA	#-(00180H+10H)
		STA	!ENYSPD,X
		LDA	#otama06
		STA	!ENCHPT,X
		TAY
		LDA	OTAMAHITCENTY,Y
		AND	#000FFH
		STA	!ECNTYW,X
		BRA	OTAMAIN0090
;
OTAMAIN0080	EQU	$
		LDA	OTGMAX+2
		STA	!ENGMAX,X
		LDA	#00180H
		STA	!ENYSPD,X
		LDA	#otama0D
		STA	!ENCHPT,X
		TAY
		LDA	OTAMAHITCENTY,Y
		AND	#000FFH
		STA	!ECNTYW,X
OTAMAIN0090	EQU	$
		STZ	!ENTIM0,X
		RTL
;
;
;------------------------------------------------------------------------
;-	move (OTAMA)							-
;------------------------------------------------------------------------
OTOPPT		EQU	$
		BYTE	otama05, otama04, otama03, otama02, otama01
;
OUNDERPT	EQU	$
		BYTE	otama0C, otama0B, otama0A, otama09, otama08
;
OTGMAX		EQU	$
OTXMAX		EQU	$
		WORD	00800H, 0F800H
;
OTAMAMV		EQU	$
		LDA	!ENSHOT,X
		BEQ	OTMV0020		; ショット？ [no->OTMV0020]
;
		LDA	!ENSTFG
		ORA	!BIRIBIRI
		ORA	!ITEMNO
		BNE	OTMV0020		; 敵ストップ？ [yes->OTMV0020]
;
		LDA	!ENMOD0,X
		ORA	#0000001000000000B
		STA	!ENMOD0,X
		JSL	>OTAMAFL0040
;
OTMV0020	EQU	$
		JSL	>ENMDCK			; mode check
;
		JSL	>SHOTENMYHIT		; shot enemy hit check !!
;
		LDA	<ENCONT,X
		BNE	OTMV0100		; tarn mode ? [yes->OTMV0100]
;
		LDA	#00010H
		STA	!ENGPOW,X
		LDY	#0
		LDA	!ENYPSL,X
		CMP	<ENWRK0,X
		BCC	OTMV0040		; top side ? [yes->OTMV0040]
;
		LDY	#2
OTMV0040	EQU	$
		LDA	OTGMAX,Y
		STA	!ENGMAX,X
		LDA	!ENYSPD,X
		BNE	OTMV0060		;
;
		LDA	#5
		STA	<ENCONT,X
		LDA	#otamacount
		STA	!ENTIM0,X
		STZ	!ENGPOW,X
		BRA	OTMV0200
;
OTMV0060	EQU	$
		BPL	OTMV0070		; down ? [yes->OTMV0070]
;
		LDA	#otama0D
		STA	!ENCHPT,X
		TAY
		LDA	OTAMAHITCENTY,Y
		AND	#000FFH
		STA	!ECNTYW,X
		BRA	OTMV0200
;
OTMV0070	EQU	$
		LDA	#otama06
		STA	!ENCHPT,X
		TAY
		LDA	OTAMAHITCENTY,Y
		AND	#000FFH
		STA	!ECNTYW,X
		BRA	OTMV0200
;
OTMV0100	EQU	$
		LDA	#OTOPPT
		LDY	!ENGMAX+1,X
		BPL	OTMV0140		; top side ? [no->OTMV0140]
;
		LDA	#OUNDERPT
OTMV0140	EQU	$
		STA	<EWORK
		LDA	<ENCONT,X
		LSR	A
		BNE	OTMV0150		; last pattern ? [no->OTMV0150]
;
		LDA	!ENTIM0,X
		LSR	A
		BNE	OTMV0150		;
;
		LDA	#00010H
		STA	!ENGPOW,X
OTMV0150	EQU	$
		LDY	<ENCONT,X
		DEY
		LDA	(<EWORK),Y
		AND	#000FFH
		STA	!ENCHPT,X
		TAY
		LDA	OTAMAHITCENTY,Y
		AND	#000FFH
		STA	!ECNTYW,X
;
		LDA	!ENTIM0,X
		BNE	OTMV0200		; next pattern ? [no->OTMV0200]
;
		LDA	#otamacount
		STA	!ENTIM0,X
		DEC	<ENCONT,X
OTMV0200	EQU	$
		JSL	>EPCRCK
;
		RTL
;
;
;------------------------------------------------------------------------
;------------------------------------------------------------------------
SHOTENMYHIT	EQU	$
		LDY	!ECRSFG,X
		DEY
		BMI	SEH0080			; 敵衝突 ? [no->SEH0080]
		BEQ	SEH0080			; 赤ちゃん衝突 ? [yes->SEH0080]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	SEH0080			; mode MOVE ? [no->SEH0080]
;
		LDA	!ENSHOT,Y
		BEQ	SEH0080			; SHOT ? [no->SEH0080]
;
;[1995.05.08.MO]		PHX
;[1995.05.08.MO]		TYX
;[1995.05.08.MO]		JSL	>SHOT_EN_KILL
;[1995.05.08.MO];
;[1995.05.08.MO]		PLX
;
		JSL	>DEATHENEMY
;
		LDA	#EFAIL
		STA	!ENMODE,X
		STZ	!ENYSPD,X
		STZ	!ENXSPD,X
		STZ	!ENXPOW,X
		STZ	!ENXMAX,X
		LDA	#00040H
		STA	!ENGPOW,X
		LDA	#00400H
		STA	!ENGMAX,X
;
		M8				; memory 8bir t mode !!
;
		LDA	#0FFH
		STA	!ENRETN,X
;
		M16				; memory 16bir t mode !!
;
		PLY
		PLA
SEH0080		EQU	$
		RTL
;
;
;------------------------------------------------------------------------
;-	fail (OTAMA)							-
;------------------------------------------------------------------------
OFINALPT	EQU	$
		BYTE	otama0E, otama0F, otama10, otama11, otama12, otama13, otama14, otama15
;
OTAMAFL		EQU	$
		LDA	#00180H
		STA	!ENGMAX,X
		LDA	#00010H
		STA	!ENGPOW,X
		STZ	!ENXSPD,X
OTAMAFL0040	EQU	$
		LDA	!ENTIM1,X
		BNE	OTAMAFL0100		; pattern change ? [no->OTAMAFL0100]
;
		M8				; memory 8bit mode !!
;
		LDA	#04
		STA	!ENTIM1,X
		LDY	<ENWRK2,X
		LDA	OFINALPT,Y
		STA	!ENCHPT,X
		TYA
		INC	A
		AND	#007H
		STA	<ENWRK2,X
;
		M16				; memory 16bit mode !!
;
OTAMAFL0100	EQU	$
		RTL
;
;
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;-	initial (H-OTAMA)						-
;------------------------------------------------------------------------
HOTAMAHITCENTX	EQU	$
		HEX	04, 04, 04, 04, 08, 0C, 08, 08
		HEX	08, 08, 0C, 0C, 0C, 0C, 08, 04
;
OTAMHIN		EQU	$
		LDA	!ENXPSL,X
		STA	<ENWRK0,X		; h-otama start position
;
		LDA	!ENXPSL,X
		AND	#00010H
		BEQ	OTAMHIN0080		;
;
		LDA	OTXMAX
		STA	!ENXMAX,X
		LDA	#-(00180H+10H)
		STA	!ENXSPD,X
		LDA	#otama0F
		STA	!ENCHPT,X
		TAY
		LDA	HOTAMAHITCENTX,Y
		AND	#000FFH
		STA	!ECNTXW,X
		BRA	OTAMHIN0090
;
OTAMHIN0080	EQU	$
		LDA	OTXMAX+2
		STA	!ENGMAX,X
		LDA	#00180H
		STA	!ENXSPD,X
		LDA	#otama05
		STA	!ENCHPT,X
		TAY
		LDA	HOTAMAHITCENTX,Y
		AND	#000FFH
		STA	!ECNTXW,X
OTAMHIN0090	EQU	$
		STZ	!ENTIM0,X
		LDA	#00010H
		STA	!ENXPOW,X
		RTL
;
;
;------------------------------------------------------------------------
;-	move (H-OTAMA)							-
;------------------------------------------------------------------------
OHRIGHTPT	EQU	$
		BYTE	otama04, otama03, otama02, otama01
;
OHLEFTPT	EQU	$
		BYTE	otama0E, otama0D, otama0C, otama0B
;
OTAMHMV		EQU	$
		LDA	!ENSHOT,X
		BEQ	OHMV0020		; ショット？ [no->OHMV0020]
;
		LDA	!ENSTFG
		ORA	!BIRIBIRI
		ORA	!ITEMNO
		BNE	OHMV0020		; 敵ストップ？ [yes->OHMV0020]
;
		LDA	!ENMOD0,X
		ORA	#0000001000000000B
		STA	!ENMOD0,X
		JSL	>OTAMHFL0040
;
OHMV0020	EQU	$
		JSL	>ENMDCK			; mode check
;
		JSL	>SHOTENMYHIT		; shot enemy hit check !!
;
		STZ	!ENMUKI,X
;
		LDA	<ENCONT,X
		BNE	OHMV0100		; tarn mode ? [yes->OHMV0100]
;
		LDA	#00010H
		STA	!ENXPOW,X
		LDY	#0
		LDA	!ENXPSL,X
		CMP	<ENWRK0,X
		BCC	OHMV0040		; top side ? [yes->OHMV0040]
;
		LDY	#2
OHMV0040	EQU	$
		LDA	OTXMAX,Y
		STA	!ENXMAX,X
		LDA	!ENXSPD,X
		BNE	OHMV0060		;
;
		LDA	#4
		STA	<ENCONT,X
		LDA	#otamacount2
		STA	!ENTIM0,X
		STZ	!ENXPOW,X
		BRA	OHMV0200
;
OHMV0060	EQU	$
		BPL	OHMV0070		; right ? [yes->OHMV0070]
;
		LDA	#otama0F
		STA	!ENCHPT,X
		TAY
		LDA	HOTAMAHITCENTX,Y
		AND	#000FFH
		STA	!ECNTXW,X
		BRA	OHMV0200
;
OHMV0070	EQU	$
		LDA	#otama05
		STA	!ENCHPT,X
		TAY
		LDA	HOTAMAHITCENTX,Y
		AND	#000FFH
		STA	!ECNTXW,X
		BRA	OHMV0200
;
OHMV0100	EQU	$
		LDA	#OHRIGHTPT
		LDY	!ENXMAX+1,X
		BPL	OHMV0140		; top side ? [no->OHMV0140]
;
		LDA	#OHLEFTPT
OHMV0140	EQU	$
		STA	<EWORK
		LDA	<ENCONT,X
		LSR	A
		BNE	OHMV0150		; last pattern ? [no->OHMV0150]
;
		LDA	!ENTIM0,X
		LSR	A
		BNE	OHMV0150		;
;
		LDA	#00010H
		STA	!ENXPOW,X
OHMV0150	EQU	$
		LDY	<ENCONT,X
		DEY
		LDA	(<EWORK),Y
		AND	#000FFH
		STA	!ENCHPT,X
		TAY
		LDA	HOTAMAHITCENTX,Y
		AND	#000FFH
		STA	!ECNTXW,X
;
		LDA	!ENTIM0,X
		BNE	OHMV0200		; next pattern ? [no->OHMV0200]
;
		LDA	#otamacount2
		STA	!ENTIM0,X
		DEC	<ENCONT,X
OHMV0200	EQU	$
		JSL	>EPCRCK
;
		RTL
;
;
;------------------------------------------------------------------------
;-	fail (H-OTAMA)							-
;------------------------------------------------------------------------
OHFINALPT	EQU	$
		BYTE	otama06, otama07, otama08, otama09
;
OTAMHFL		EQU	$
		LDA	#00180H
		STA	!ENGMAX,X
		LDA	#00010H
		STA	!ENGPOW,X
		STZ	!ENXSPD,X
OTAMHFL0040	EQU	$
		LDA	!ENTIM1,X
		BNE	OTAMHFL0100		; pattern change ? [no->OTAMHFL0100]
;
		M8				; memory 8bit mode !!
;
		LDA	#05
		STA	!ENTIM1,X
		LDY	<ENWRK2,X
		LDA	OHFINALPT,Y
		STA	!ENCHPT,X
		TYA
		INC	A
		AND	#003H
		STA	<ENWRK2,X
;
		M16				; memory 16bit mode !!
;
OTAMHFL0100	EQU	$
		RTL
;
;
;
;
;
;
;
;
;
;
		END
;
;
