;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: enemy sub.1					*
;*	file name	: ys_enmy10					*
;*									*
;************************************************************************
;
;
		SALL
;
		include		ys_header.inc
		include		ys_unit.h
		include		ys_pld.h
		include		ys_color.h
		include		ys_ename.h
		include		../union/ys_bgcheck.h
		include		ys_presno.h
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	KAMC4IN
		GLB	FBOM0IN, MC1UPIN, TAIH0IN, WATABIN
;
		GLB	KAMC4MV
		GLB	FBOM0MV, MC1UPMV, TAIH0MV, WATABMV
;
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< ys_main >------------------------------------------------
		EXT	RANDAM
		EXT	D_00,GMIN
		EXT	SOUND_3_ON
;
;-------------< ys_init >------------------------------------------------
		EXT	UNCOMPRES,VRAMDX_ST,UNCOMPRES_X
;
;-------------< ys_rpro >------------------------------------------------
		EXT	JSRSUB
		EXT	CHIPON, CHIPON_RAM_READ, M_DMA_BFST
;
;-------------< ys_start >-----------------------------------------------
		EXT	STT_PL_STP
;
;-------------< ys_play >------------------------------------------------
		EXT	TIMEUP_SET,TIMEUP_SET_S
		EXT	EBSTAT
		EXT	PSTP,PMOV,PCLR,PGUS,PSDM
		EXT	PFLP,PSHT
		EXT	EGG_WARE_SET
;
;-------------< ys_bgsc >------------------------------------------------
		EXT	BLK0, BGCG
		EXT	UNITCHG
;
;-------------< ys_enmy >------------------------------------------------
		EXT	ENEMY,ENINSB
		EXT	ENCLEAR,DISPCK0,DISPCK2
		EXT	ENINSR,ENINSR2,EEXCHK,EEYCHK,EEXYCK,ESTATST,ENINSR_I
		EXT	ENINSR2_I
		EXT	SCOREST
		EXT	ENMDCK,XSDOWN,EPCRCK,MUKEOR,XSPEOR,MKEOR2,PLFLST
		EXT	POBBGCR,BOBBGCR
;
		EXT	ENRETURN
		EXT	ENCLEAR_NORETN,ENCLEAR_NORETN2
;
		EXT	EXIST_CHECK2,NON_EXIST_SET,NON_EXIST_SET2
;
		EXT	PLAYER_REBOUND
;
		EXT	EINIT,EFAIL,EMOVE,EEATM,ENOSE,EBABL,EFALL
		EXT	EFIRE,ECHNG
;
		EXT	COS,SIN
;
		EXT	EATMXS,NOSWT
;
		EXT	EN_XYMOVE,ENDEATH_SET,ENDEATH_SET_2,EGGKILL_ALL
		EXT	PL_1UP_SET_P,PL_1UP_SET
		EXT	EGGKILL
;
		EXT	EGG00_MVINT,FSMK0_SET2,FSMK0_SET_S
;
		EXT	TROBJ_SR_2x2,TROBJ_SR_4x4,TROBJ_SR_8x8,TROBJ_SR_8x4
		EXT	TROBJ_SR_2x2_CL,TROBJ_SR_4x4_CL,TROBJ_SR_8x8_CL
		EXT	TROBJ_SR_8x4_CL,TROBJ_SR_6x4_CL
		EXT	TROBJ_OAM_8x4
		EXT	TROBJ_OAM_2x2,TROBJ_OAM_4x4,TROBJ_OAM_8x8,TROBJ_OAM_8H8
		EXT	TROBJ_OAM_2x2_I,TROBJ_OAM_4x4_I,TROBJ_OAM_8x8_I
		EXT	TROBJ_CLEAR
		EXT	TROBJ_PLOT_X,TROBJ_PLOT_Y
		EXT	TROBJ_CHAR_NO
;
		EXT	SHOT_EN_KILL, FSMK0_SET, FSMK2_SET, FUNDA_ENFALL_L
		EXT	ENFALL_END
		EXT	SCORE_SET, COIN1_END_SET
;
		EXT	QKM_COIN_XSP, QKM_COIN_YSP
;
		EXT	POBBGCR_2
;
		EXT	EGGTM
;
;-------------< ys_enmy2 >-----------------------------------------------
		EXT	COLD_KIRAKIRA, KINOMI_CANCEL
		EXT	FUSNB_SET, MISA0_KILL
		EXT	TO_PLDOWN
;
;-------------< ys_enmy3 >-----------------------------------------------
		EXT	ICE_IN_CK, KIRAKIRA_SET, TO_PLDEMO_2, GOAL0_CHR_SET
;
;-------------< ys_enmy4 >-----------------------------------------------
		EXT	JBLKLIN
;
;-------------< ys_enmy6 >-----------------------------------------------
		EXT	LOCKON_TARGET, LOCKON_TARGET2
		EXT	DOKAN_CHECK, DOKAN_CHECK2
;
;-------------< ys_enmy7 >-----------------------------------------------
		EXT	EPFOOTCROSS, EPFOOTCROSS_01, PLCRSCK, HANABIRASET_L
;
		EXT	sec01,sec02,sec03,sec04,sec05,sec06,sec07,sec08,sec09,sec10
;
;-------------< ys_enmy8 >-----------------------------------------------
		EXT	PKPK2_FALL, TRBOXIN, COIN1IN
;
;-------------< ys_enmy9 >-----------------------------------------------
		EXT	KAMC2FUWA_L, DEATHENEMY
;
		EXT	RED_COINMUCHO, COINMUCHO
;
;-------------< ys_msgdt >------------------------------------------------
		EXT	BS6_MSG_4
;
;-------------< ys_hajime-chan >------------------------------------------------
		EXT	BABYM_RMODE00
		EXT	BABYM_RMODE10
		EXT	BABYM_RMODE38
		EXT	BABYM_RMODE50
		EXT	BABYM_RMODE51
		EXT	BABYM_RMODE52
		EXT	BABYM_RMODE60
		EXT	BABYM_RMODE61
		EXT	BABYM_RMODE70
		EXT	BABYM_RMODE71
;
		EXT	B_SP_RMODE20
;
		EXT	BABYM_SHABN_BRK
		EXT	BABYM_SHABN_C2
;
;-------------< ys_exst >------------------------------------------------
		EXT	EXINSR
;
;
;-------------< ys_unit >------------------------------------------------
		EXT	UNDTADD,UNDATA,RUTDATA
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
msec0125	EQU	(64/8)
msec0250	EQU	(64/4)
msec0500	EQU	(64/2)
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
		EXTEND
;
		MEM16
		IDX8
;
		DPAGE	EN0RAM
;
Group_3		GROUP	Enemy11_pro
Enemy11_pro	SECT	REL
;
;
;------------------------------------------------------------------------
;-	initial （最終デモ用カメック）					-
;------------------------------------------------------------------------
KAMC4IN		EQU	$
		LDY	!ENWRKA,X
		BNE	KAMC4IN0040		; イニシャル？ [no->KAMC4IN0040]
;
		M8				; memory 8bit mode !!
;
		LDA	!ENXPSL,X
		AND	#010H
		LSR	A
		LSR	A
		LSR	A
		INC	A
		STA	!ENWRKA,X
		TAY
;
		M16				; memory 16bit mode !!
;
KAMC4IN0040	EQU	$
		DEY
		TYX
		JMP	(KAMC4INMODE,X)
;
KAMC4INMODE	EQU	$
		WORD	KAMC4IN00
		WORD	KAMC4EXINIT
;
;
KAMC4IN00	EQU	$
		LDX	<ENINDX
		JSL	>TROBJ_SR_4x4_CL
;
		M8				; memory 8bit mode !!
;
		LDA	#01E0H/8
		STA	!ENCHRB,X
		LDA	#0FFH
		STA	!ENYUSN,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00001H
		STA	!ENCHPT,X
		LDA	#00040H
		STA	!ENTIM0,X
		RTL
;
;
KAMC4EXINIT	EQU	$
		LDX	<ENINDX
		LDA	!ENMOD0,X
		ORA	#0110100000000000B
		STA	!ENMOD0,X
		LDA	#00001H
		STA	!ENCHPT,X
		RTL
;
;
;------------------------------------------------------------------------
;-	move （最終デモ用カメック）					-
;------------------------------------------------------------------------
KAMC4MV		EQU	$
		LDY	!ENWRKA,X
		DEY
		TYX
		JMP	(KAMC4MVMODE,X)
;
KAMC4MVMODE	EQU	$
		WORD	KAMC4MV0000
		WORD	KAMC4EX
;
;
KAMC4MV0000	EQU	$
		LDX	<ENINDX
		LDA	!ENCHPT,X
		BNE	KAMC4MV0010		; 回転オブジェ使用？ [no->KAMC4MV0010]
;
		JSL	>TROBJ_OAM_4x4
;
		JSR	KAMC4CHRST
;
KAMC4MV0010	EQU	$
		JSL	>ENMDCK			; mode check
;
		LDY	<ENCONT,X
		TYX
		JMP	(KAMC4MVMVMD,X)
;
KAMC4MVMVMD	EQU	$
		WORD	KAMC4WAIT
		WORD	KAMC4ENTR
		WORD	KAMC4SAY0
		WORD	KAMC4SAY1
		WORD	KAMC4FLY0
		WORD	KAMC4FLY1
		WORD	KAMC4FLYW
		WORD	KAMC4FLY2
		WORD	KAMC4FLY3
;
;
KAMC4WAIT	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	KAMC4WAIT00F0		; スタート？ [no->KAMC4WAIT00F0]
;
		LDA	!SCCH1
		CLC
		ADC	#00130H
		STA	!ENXPSL,X		; Ｘポジションセット！！
		LDA	!SCCV1
		CLC
		ADC	#00040H
		STA	!ENYPSL,X		; Ｙポジションセット！！
		STA	!ENWRK6,X
;
		M8				; memory 8bit mode !!
;
		LDA	#001H
		STA	!ENYUSN,X
;
		M16				; memory 16bit mode !!
;
		LDA	#0FE00H
		STA	!ENXSPD,X
		LDA	#0004
		STA	!ENTIM1,X
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
KAMC4WAIT00F0	EQU	$
		RTL
;
;
KAMC4ENTR	EQU	$
		LDX	<ENINDX
		JSL	>KAMC2FUWA_L
;
		LDA	!ENDSXL,X
		CMP	#000F4H
		BMI	KAMC4ENTR0100		; 減速？ [yes->KAMC4ENTR0100]
;
		LDA	!ENTIM1,X
		BNE	KAMC4ENTR00F0		; パターンチェンジ？ [no->KAMC4ENTR00F0]
;
		LDA	!ENCHPT,X
		EOR	#00003H
		STA	!ENCHPT,X
		LDA	#0004
		STA	!ENTIM1,X
KAMC4ENTR00F0	EQU	$
		RTL
;
KAMC4ENTR0100	EQU	$
		LDA	#00006H
		STA	!ENCHPT,X
		LDA	#00020H
		STA	!ENXPOW,X
		LDA	!ENXSPD,X
		BMI	KAMC4ENTR00F0		; [->KAMC4ENTR00F0]
;
		STZ	!ENXSPD,X
		STZ	!ENXPOW,X
;
		M8				; memory 8bit mode !!
;
		LDY	#(KAMC4SAY0TM-KAMC4SAY0PT-1)
		STY	<ENCONT+1,X
		LDA	KAMC4SAY0PT,Y
		STA	!ENCHPT,X
		LDA	KAMC4SAY0TM,Y
		STA	!ENTIM1,X
		INC	<ENCONT,X
		INC	<ENCONT,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
;
KAMC4SAY0PT	EQU	$
		HEX	05, 05, 04, 03, 04, 05, 04, 03
		HEX	04, 05, 04, 03, 04, 05, 04, 03
		HEX	04, 05, 04, 03
;
KAMC4SAY0TM	EQU	$
		HEX	02, 06, 02, 06, 02, 06, 02, 06
		HEX	02, 06, 02, 06, 02, 06, 02, 06
		HEX	02, 06, 02, 06
;
KAMC4SAY0	EQU	$
		LDX	<ENINDX
		JSL	>KAMC2FUWA_L
;
		LDA	!ENTIM1,X
		BNE	KAMC4SAY000F0		; パターンチェンジ？ [no->KAMC4SAY000F0]
;
		LDY	<ENCONT+1,X
		DEY
		BMI	KAMC4SAY00100		; [->KAMC4SAY00100]
;
		STY	<ENCONT+1,X
;
		M8				; memory 8bit mode !!
;
		LDA	KAMC4SAY0PT,Y
		STA	!ENCHPT,X
		LDA	KAMC4SAY0TM,Y
		STA	!ENTIM1,X
;
		M16				; memory 16bit mode !!
;
		TYA
		AND	#00007H
		CMP	#00007H
		BNE	KAMC4SAY000F0		; [->KAMC4SAY000F0]
;
		LDA	#0005BH
		JSL	>SOUND_3_ON		; サウンド セット！！
;
KAMC4SAY000F0	EQU	$
		RTL
;
KAMC4SAY00100	EQU	$
		LDA	#0004
		STA	!ENCHPT,X
		LDA	#BS6_MSG_4
		STA	>MSG_NO			; メッセージナンバーセット！！
		INC	!MSGMOD			; メッセージＯＮ！！
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
		RTL
;
;
KAMC4SAY1	EQU	$
		LDX	<ENINDX
		LDA	#0001
		STA	!ENCHPT,X
		LDA	#0F800H
		STA	!ENXMAX,X
		LDA	#00040H
		STA	!ENXPOW,X
		LDA	#00800H
		STA	!ENGMAX,X
		LDA	#00010H
		STA	!ENGPOW,X
		LDA	#0FF00H
		STA	!ENYSPD,X
		LDA	#0009H
		STA	!SOUND_0		; サウンド セット！！（ＢＧＭ）
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
		RTL
;
;
KAMC4FLY0	EQU	$
		LDX	<ENINDX
		LDA	!ENDSXL,X
		CMP	#00080H
		BMI	KAMC4FLY00040		; [->KAMC4FLY00040]
;
		JMP	KAMC4FLY10100		; [->KAMC4FLY10100]
;
KAMC4FLY00040	EQU	$
		LDA	#00800H
		STA	!ENXMAX,X
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
KAMC4FLY000F0	EQU	$
		RTL
;
;
KAMC4FLY1	EQU	$
		LDX	<ENINDX
;
		LDA	!ENDSXL,X
		CMP	#00140H
		BCC	KAMC4FLY10010		; [->KAMC4FLY10010]
;
		LDX	#(15-1)*2
KAMC4FLY10008	EQU	$
		LDA	>COL_ADDRESS+FLY_KMKP_COL_0,X
		STA	>MOTOCOL+(80H+61H)*2,X
		STA	>DATACOL+(80H+61H)*2,X
		DEX
		DEX
		BPL	KAMC4FLY10008		; [->KAMC4FLY10008]
;
		LDX	<ENINDX
;
		M8				; memory 8bit mode !!
;
		LDY	!KOOPAIDX
		LDA	#0FFH
		STA	!ENYUSN,Y
;
		M16				; memory 16bit mode !!
;
		STZ	!ENCHPT,X
		STZ	!ENMUKI,X
		LDA	!ENCLOR,X
		AND	#0FFF1H
		ORA	#00006H<<1
		STA	!ENCLOR,X
		LDA	!ENMOD2,X
		AND	#0000011111111111B
		ORA	#0010000000000000B
		STA	!ENMOD2,X
		LDA	#00100H
		STA	<ENWRK2,X
		STZ	!ENXSPD,X
		STZ	!ENYSPD,X
		STZ	!ENXPOW,X
		STZ	!ENGPOW,X
		LDA	#0032
		STA	!ENTIM1,X
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
		RTL
;
;;;;;;;;		STZ	!ENXSPD,X
;;;;;;;;		STZ	!ENYSPD,X
;;;;;;;;		LDA	#00040H
;;;;;;;;		STA	!ENXPOW,X
;;;;;;;;		LDA	#00040H
;;;;;;;;		STA	!ENGPOW,X
;;;;;;;;		LDY	<ENCONT,X
;;;;;;;;		INY
;;;;;;;;		INY
;;;;;;;;		STY	<ENCONT,X
;;;;;;;;		LDY	#(KAMC4FLY2YDT-KAMC4FLY2XDT-2)
;;;;;;;;		JMP	KAMC4FLY20040		; [->KAMC4FLY20040]
;;;;;;;;;
KAMC4FLY10010	EQU	$
		LDY	#00
		LDA	!ENXSPD,X
		BMI	KAMC4FLY10020		; [->KAMC4FLY10020]
;
		INY
		INY
KAMC4FLY10020	EQU	$
		TYA
		STA	!ENMUKI,X
;
		LDA	!ENYSPD,X
		BMI	KAMC4FLY10030		; [->KAMC4FLY10030]
;
		LDA	!ENDSYL,X
		CMP	#00060H
		BCC	KAMC4FLY10030		; [->KAMC4FLY10030]
;
		LDA	#0F800H
		STA	!ENGMAX,X
KAMC4FLY10030	EQU	$
		LDA	!ENXSPD,X
		CLC
		ADC	#00080H
		CMP	#00100H
		BCS	KAMC4FLY10040		; [->KAMC4FLY10040]
;
		LDA	#00007H
		BRA	KAMC4FLY10080		; [->KAMC4FLY10080]
;
KAMC4FLY10040	EQU	$
		CLC
		ADC	#00100H
		CMP	#00300H
		BCS	KAMC4FLY10060		; [->KAMC4FLY10060]
;
		LDA	#00006H
		BRA	KAMC4FLY10080		; [->KAMC4FLY10080]
;
KAMC4FLY10060	EQU	$
		CLC
		ADC	#00100H
		CMP	#00500H
		BCS	KAMC4FLY10100		; [->KAMC4FLY10100]
;
		LDA	#00003H
KAMC4FLY10080	EQU	$
		STA	!ENCHPT,X
		RTL
;
KAMC4FLY10100	EQU	$
		LDA	<FRCNT2
		LSR	A
		LSR	A
		AND	#00001H
		INC	A
		STA	!ENCHPT,X
		LDA	!ENMUKI,X
		BEQ	KAMC4FLY101F0		; 右向き？ [no->KAMC4FLY101F0]
;
		LDY	!KOOPAIDX
		LDA	!ENXPSL,X
		CMP	!ENXPSL,Y
		BCC	KAMC4FLY101F0		; [->KAMC4FLY101F0]
;
		LDA	#0002FH
		STA	!ENCHPT,Y
		LDA	#00
		STA	!ENGPOW,Y
		STA	!ENYSPD,Y
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		CLC
		ADC	#00010H
		STA	!ENYPSL,Y
KAMC4FLY101F0	EQU	$
		RTL
;
;
KAMC4FLYW	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM1,X
		BNE	KAMC4FLYW00F0		; Ｗａｉｔ？ [yes->KAMC4FLYW00F0]
;
		LDA	<ENWRK2,X
		ASL	A
		ASL	A
		EOR	#0FFFFH
		INC	A
		STA	!ENXSPD,X
		LDA	#0FFF0H
		STA	!ENYSPD,X
		LDA	!SCCH1
		CLC
		ADC	#00110H
		STA	!ENXPSL,X
		LDA	!SCCV1
		CLC
		ADC	#00038H
		STA	!ENYPSL,X
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
KAMC4FLYW00F0	EQU	$
		RTL
;
;
KAMC4FLY2	EQU	$
		LDX	<ENINDX
		LDA	!ENDSXL,X
		CMP	#000E0H
		BPL	KAMC4FLY200E0		; [->KAMC4FLY200F0]
;
		LDA	<ENWRK2,X
		SEC
		SBC	#00003H
		BMI	KAMC4FLY20010		; [->KAMC4FLY20010]
;
		STA	<ENWRK2,X
		ASL	A
		ASL	A
		EOR	#0FFFFH
		INC	A
		STA	!ENXSPD,X
		JSR	KAMC4COLFD		; カラーフェード！！
;
		BRA	KAMC4FLY200E0		; [->KAMC4FLY200F0]
;
KAMC4FLY20010	EQU	$
		LDA	!ENDSXL,X
		CMP	#00020H
		BPL	KAMC4FLY200E0		; [->KAMC4FLY200F0]
;
		STZ	!ENXSPD,X
		STZ	!ENYSPD,X
		LDY	<ENCONT,X
		INY
		INY
		STY	<ENCONT,X
		RTL
;
KAMC4FLY200E0	EQU	$
		LDA	!ENXSPD,X
		BEQ	KAMC4FLY200E8		; [->KAMC4FLY200E8]
;
		CMP	#0FFF0H
		BCC	KAMC4FLY200F0		; [->KAMC4FLY200F0]
;
KAMC4FLY200E8	EQU	$
		LDA	#0FFF0H
		STA	!ENXSPD,X
KAMC4FLY200F0	EQU	$
		RTL
;
;;;;;;;;		LDA	!ENTIM1,X
;;;;;;;;		BNE	KAMC4FLY200F0		; [->KAMC4FLY200F0]
;;;;;;;;;
;;;;;;;;		LDY	<ENCONT+1,X
;;;;;;;;		DEY
;;;;;;;;		DEY
;;;;;;;;		BMI	KAMC4FLY20100		; [->KAMC4FLY20100]
;;;;;;;;;
;;;;;;;;KAMC4FLY20040	EQU	$
;;;;;;;;		STY	<ENCONT+1,X
;;;;;;;;		LDA	KAMC4FLY2TIM,Y
;;;;;;;;		STA	!ENTIM1,X
;;;;;;;;		LDA	!SCCH1
;;;;;;;;		CLC
;;;;;;;;		ADC	KAMC4FLY2XDT,Y
;;;;;;;;		STA	R1			; (R1) <- 目標Ｘポジション！！
;;;;;;;;		LDA	!SCCV1
;;;;;;;;		CLC
;;;;;;;;		ADC	KAMC4FLY2YDT,Y
;;;;;;;;		STA	R2			; (R2) <- 目標Ｙポジション！！
;;;;;;;;		LDA	!ENXPSL,X
;;;;;;;;		STA	R3			; (R3) <- Ｘポジション！！
;;;;;;;;		LDA	!ENYPSL,X
;;;;;;;;		STA	R4			; (R4) <- Ｙポジション！！
;;;;;;;;		LDA	KAMC4FLY2SPD,Y
;;;;;;;;		STA	R6			; (R6) <- 基本スピード！！
;;;;;;;;		M_CHIP	SEARCH_SPEED
;;;;;;;;		LDX	<ENINDX
;;;;;;;;;
;;;;;;;;		LDA	R1
;;;;;;;;		STA	!ENXMAX,X		; Ｘスピードセット！！
;;;;;;;;		LDA	R2
;;;;;;;;		STA	!ENGMAX,X		; Ｙスピードセット！！
;;;;;;;;KAMC4FLY200F0	EQU	$
;;;;;;;;		RTL
;;;;;;;;;
;;;;;;;;KAMC4FLY20100	EQU	$
;;;;;;;;		LDA	!ENDSXL,X
;;;;;;;;		CMP	#00030H
;;;;;;;;		BPL	KAMC4FLY201F0		; [->KAMC4FLY201F0]
;;;;;;;;;
;;;;;;;;		STZ	!ENXPOW,X
;;;;;;;;		STZ	!ENGPOW,X
;;;;;;;;		STZ	!ENXSPD,X
;;;;;;;;		STZ	!ENYSPD,X
;;;;;;;;		LDY	<ENCONT,X
;;;;;;;;		INY
;;;;;;;;		INY
;;;;;;;;		STY	<ENCONT,X
;;;;;;;;KAMC4FLY201F0	EQU	$
;;;;;;;;		RTL
;;;;;;;;;
;;;;;;;;KAMC4FLY2XDT	EQU	$
;;;;;;;;		WORD	00028H, 000D0H, 000E0H, 000D0H, 000C0H, 00028H
;;;;;;;;;
;;;;;;;;KAMC4FLY2YDT	EQU	$
;;;;;;;;		WORD	00028H, 00050H, 00040H, 00030H, 00040H, 00028H
;;;;;;;;;
;;;;;;;;KAMC4FLY2TIM	EQU	$
;;;;;;;;		WORD	00010H, 00010H, 00010H, 00010H, 00010H, 00020H
;;;;;;;;;
;;;;;;;;KAMC4FLY2SPD	EQU	$
;;;;;;;;		WORD	00200H, 00200H, 00200H, 00200H, 00200H, 00400H
;;;;;;;;;
;;;;;;;;;
KAMC4FLY3	EQU	$
		LDX	<ENINDX
		LDY	!KOOPAIDX
		LDA	!ENWRK2,Y
		INC	A
		STA	!ENWRK2,Y
		LDA	#00040H
		STA	!ENTIM0,Y
		JMP	>ENCLEAR
;
;
KAMC4CHRST	EQU	$
		LDY	!ENYUSN,X
		CMP	#0FFH
		BEQ	KAMC4CHRST00F0		; 表示中？ [no->KAMC4CHRST00F0]
;
		LDA	!MSGMOD
		BNE	KAMC4CHRST00F0		; メッセージ表示中？ [yes->KAMC4CHRST00F0]
;
		LDA	!ENTROB,X
		BMI	KAMC4CHRST00F0		; 回転オブジェ使用？ [no->KAMC4CHRST00F0]
;
		I16				; index 16bit mode !!
;
		LDA	#00000H
		STA	R5			; (R5) <- 回転角度
		LDA	<ENWRK2,X
		CMP	#00018H
		BPL	KAMC4CHRST0040		; [->KAMC4CHRST0040]
;
		LDA	#00018H
KAMC4CHRST0040	EQU	$
		STA	R6			; (R6) <- 倍率
		LDA	#CIPCHD2+02080H
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD2+02080H
		STA	R13			; (R13) <- キャラクタバンク
		LDY	!ENTROB,X
		TYX
		LDA	>TROBJ_PLOT_X,X
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	>TROBJ_PLOT_Y,X
		STA	R2			; (R2) <- ビットマップＹ座標
;
		I8				; index 8bit mode !!
;
		M_CHIP	C_32_ROTZOM
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
KAMC4CHRST00F0	EQU	$
		RTS
;
;
KAMC4COLFD	EQU	$
;-------------- カラーフェード ----------------------------------
		LDA	#FLY_KMKP_COL_1
		STA	R14		;(R14) <-- 先カラーデータアドレス（Ｌ，Ｈ）
		LDA	#BANK FLY_KMKP_COL_1
		STA	R0		;(R0)  <-- 先カラーデータアドレス（Ｂ）
		LDA	#00100H
		SEC
		SBC	<ENWRK2,X
		STA	R6		;(R6) <-- 倍率
		LDA	#080H+61H
		STA	R8		;(R8) <-- カラーポインター（０〜ＦＦ）
		LDA	#15
		STA	R12		;(R12) <-- カラー数
		M_CHIP	COL_MORF_B
		LDX	<ENINDX
;
		RTS
;
;------------------------------------------------
;-	ホウキカメック				-
;------------------------------------------------
KAMC4EX		EQU	$
		LDX	<ENINDX
		JSL	>ENMDCK			; mode check
;
		LDY	<ENCONT,X
		TYX
		JMP	(KAMC4EXMOD,X)
;
KAMC4EXMOD	EQU	$
		WORD	KAMC4EXWAIT
		WORD	KAMC4EXENTR
		WORD	KAMC4EXWAT2
		WORD	KAMC4EXFLY0
;
;
KAMC4EXXPS	EQU	$
		WORD	00120H, 0FFD0H
;
KAMC4EXWAIT	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	KAMC4EXWAIT00F0		; セット？ [no->KAMC4EXWAIT00F0]
;
		STZ	!ENMUKI,X
		LDA	!SCCH1
		CLC
		ADC	KAMC4EXXPS
		STA	!ENXPSL,X
		LDA	!SCCV1
		CLC
		ADC	#00030H
		STA	!ENYPSL,X
		LDA	#0FE00H
		STA	!ENXSPD,X
		LDA	!MAPOINT
		CMP	#((5-1)*12)+(9-1)
		BEQ	KAMC4EXWAIT0080		; ５ｗ−９？ [yes->KAMC4EXWAIT0080]
;
		LDA	!ENCLOR,X
		EOR	#00020H
		STA	!ENCLOR,X
		BRA	KAMC4EXWAIT0090		; [->KAMC4EXWAIT0090]
;
KAMC4EXWAIT0080	EQU	$
		LDA	!ENCLOR,X
		EOR	#00020H
		STA	!ENCLOR,X
KAMC4EXWAIT0090	EQU	$
;
		M8				; memory 8bit mode !!
;
		STZ	!ENYUSN,X
		LDA	#040H
		STA	!ENEMU0,X
		INC	<ENCONT,X
		INC	<ENCONT,X
;
		M16				; memory 16bit mode !!
;
KAMC4EXWAIT00F0	EQU	$
		RTL
;
;
KAMC4EXENTR	EQU	$
		LDX	<ENINDX
		LDA	<FRCNT2
		LSR	A
		LSR	A
		AND	#00001H
		CLC
		ADC	#00008H
		STA	!ENCHPT,X
;
		LDA	!ENDSXL,X
		CMP	#0FFD0H
		BPL	KAMC4EXENTR00F0		; 範囲内？ [yes->KAMC4EXENTR00F0]
;
KAMC4EXENTR0080	EQU	$
		STZ	!ENXSPD,X
		LDA	#0060
		STA	!ENTIM0,X
;
		M8				; memory 8bit mode !!
;
		LDA	#0FFH
		STA	!ENYUSN,X
		INC	<ENCONT,X
		INC	<ENCONT,X
;
		M16				; memory 16bit mode !!
;
KAMC4EXENTR00F0	EQU	$
		RTL
;
;
KAMC4EXWAT2	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	KAMC4EXWAT200F0		; セット？ [no->KAMC4EXWAT200F0]
;
		LDA	#0002
		STA	!ENMUKI,X
		LDA	!SCCH1
		CLC
		ADC	KAMC4EXXPS+2
		STA	!ENXPSL,X
		LDA	!PLYPSL
		CLC
		ADC	#00010H
		STA	!ENYPSL,X
		LDA	#00480H
		STA	!ENXSPD,X
		LDA	!MAPOINT
		CMP	#((5-1)*12)+(9-1)
		BEQ	KAMC4EXWAT20080		; ５ｗ−９？ [yes->KAMC4EXWAT20080]
;
		LDA	!ENCLOR,X
		EOR	#00020H
		STA	!ENCLOR,X
		BRA	KAMC4EXWAT20090		; [->KAMC4EXWAT20090]
;
KAMC4EXWAT20080	EQU	$
		LDA	!ENCLOR,X
		EOR	#00020H
		STA	!ENCLOR,X
KAMC4EXWAT20090	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	#002H
		STA	!ENYUSN,X
		STZ	!ENEMU0,X
		INC	<ENCONT,X
		INC	<ENCONT,X
;
		M16				; memory 16bit mode !!
;
		LDA	#0009AH
		JMP	>SOUND_3_ON		; サウンド セット！！
;
KAMC4EXWAT200F0	EQU	$
		CMP	#00020H
		BNE	KAMC4EXWAT200F8		; [->KAMC4EXWAT200F8]
;
		LDA	#0005BH
		JMP	>SOUND_3_ON		; サウンド セット！！
;
KAMC4EXWAT200F8	EQU	$
		RTL
;
;
KAMC4EXFLY0	EQU	$
		LDX	<ENINDX
		JSL	>EPCRCK
;
		LDA	<FRCNT2
		LSR	A
		LSR	A
		AND	#00001H
		INC	A
		STA	!ENCHPT,X
;
		LDA	!ENDSXL,X
		CMP	#00120H
		BMI	KAMC4EXFLY000F0		; 範囲内？ [no->KAMC4EXFLY000F0]
;
KAMC4EXFLY00080	EQU	$
		LDA	#0060
		STA	!ENTIM0,X
		STZ	!ENXSPD,X
;
		M8				; memory 8bit mode !!
;
		LDA	#0FFH
		STA	!ENYUSN,X
		STZ	<ENCONT,X
;
		M16				; memory 16bit mode !!
;
KAMC4EXFLY000F0	EQU	$
		RTL
;
;
;------------------------------------------------------------------------
;-	initial （風船ボム）						-
;------------------------------------------------------------------------
;cont	: 回転角度
;wrk0	: モードナンバー
;wrk1	:
;wrk2,3	: Ｘスピード
;wrk4	:
;wrk5	:
;wrk6	:
;wrk7	:
;wrk8	:
;wrk9	:
;wrkA	: イニシャルフラグ
;wrkB	: 倍率
;wrkC	:
;wrkD	:
;
FBOM0MVMOD	EQU	$
FbomAir0	WORD	FBOM0AIR0
FbomGrn0	WORD	FBOM0GRN0
FbomGrn2	WORD	FBOM0GRN2
FbomBom0	WORD	FBOM0BOM0
FbomKrkr	WORD	FBOM0KRKR
FbomAir1	WORD	FBOM0AIR1
FbomAir2	WORD	FBOM0AIR2
FbomAir3	WORD	FBOM0AIR3
;
FbomAir0MD	EQU	(FbomAir0-FBOM0MVMOD)
FbomGrn0MD	EQU	(FbomGrn0-FBOM0MVMOD)
FbomGrn2MD	EQU	(FbomGrn2-FBOM0MVMOD)
FbomBom0MD	EQU	(FbomBom0-FBOM0MVMOD)
FbomKrkrMD	EQU	(FbomKrkr-FBOM0MVMOD)
FbomAir1MD	EQU	(FbomAir1-FBOM0MVMOD)
FbomAir2MD	EQU	(FbomAir2-FBOM0MVMOD)
FbomAir3MD	EQU	(FbomAir3-FBOM0MVMOD)
;
;
Fbomarea	EQU	00060H
Fbomarea2	EQU	00060H
FbomDamage	EQU	00028H
;
FBOM0COLOR	EQU	$
		WORD	00000H<<1, 00001H<<1
;
FBOM0IN		EQU	$
		JSL	>EXIST_CHECK2
		BEQ	FBOM0IN0020		; １回出た？ [no->FBOM0IN0020]
;
		JMP	>ENCLEAR
;
FBOM0IN0020	EQU	$
		LDA	!ENXPSL,X
		STA	!ENWRK6,X
		LDA	!ENYPSL,X
		STA	!ENWRK8,X
;
		JSL	>TROBJ_SR_4x4_CL
;
		LDY	!ENWRKA,X
		BNE	FBOM0IN0100		; [->FBOM0IN0100]
;
		M8				; memory 8bit mode !!
;
		LDA	#020H
		STA	!ENWRKB,X
		LDA	#02
		STA	!ENWRKC,X
		LDA	!ENXPSL,X
		AND	#010H
		LSR	A
		LSR	A
		LSR	A
		INC	A
		STA	!ENWRKA,X
		TAY
;
		M16				; memory 16bit mode !!
;
FBOM0IN0100	EQU	$
		DEY
		BEQ	FBOM0IN0140		; [->FBOM0IN0140]
;
		LDY	#FbomAir1MD
		STY	<ENWRK0,X
		LDY	!ENWRKA,X
		DEY
FBOM0IN0140	EQU	$
		LDA	!ENCLOR,X
		ORA	FBOM0COLOR,Y
		STA	!ENCLOR,X
		JSR	FBOM0CHRST		; キャラクタセット！！
;
		RTL
;
;
FBOM0IN0200	EQU	$
		LDX	<ENINDX
		RTS
;
;
;------------------------------------------------------------------------
;-	move （風船ボム）						-
;------------------------------------------------------------------------
FBOM0MV		EQU	$
		JSL	>TROBJ_OAM_4x4
;
		JSR	FBOM0CHRST		; キャラクタセット！！
;
		LDA	!ENMODE,X
		CMP	#EEATM
		BNE	FBOM0MV0040		; 食べられモード？ [no->FBOM0MV0040]
;
		LDA	!ENWRK6,X
		STA	<EWORK4
		LDA	!ENWRK8,X
		JSL	>NON_EXIST_SET2		; １回出たフラグＯＮ！！
;
FBOM0MV0040	EQU	$
		JSL	>ENMDCK			; mode check
;
		LDY	<ENWRK0,X
		CMP	#FbomKrkrMD
		BEQ	FBOM0MV0080		; 衝突チェック有？ [no->FBOM0MV0080]
;
		JSR	FBOM0CRCK
;
FBOM0MV0080	EQU	$
		LDY	<ENWRK0,X
		TYX
		JMP	(FBOM0MVMOD,X)
;
;
FBOM0AIR0	EQU	$
		LDX	<ENINDX
		JSR	FBOM0POYO
;
		LDA	!ENCBFG,X
		AND	#0000000000000001B
		BNE	FBOM0AIR00100		; 着地？ [yes->FBOM0AIR00100]
;
		LDA	!ENXPSL,X
		SEC
		SBC	!PLXPSL
		CLC
		ADC	#Fbomarea
		CMP	#Fbomarea*2
		BCS	FBOM0AIR000F0		; 範囲内？ [no->FBOM0AIR000F0]
;
		LDA	!ENYPSL,X
		SEC
		SBC	!PLYPSL
		CLC
		ADC	#Fbomarea
		CMP	#Fbomarea*2
		BCS	FBOM0AIR000F0		; 範囲内？ [no->FBOM0AIR000F0]
;
		LDA	#00040H
		STA	!ENGPOW,X
		LDA	#00400H
		STA	!ENGMAX,X
FBOM0AIR000F0	EQU	$
		RTL
;
FBOM0AIR00100	EQU	$
		LDY	#FbomGrn0MD
		STY	<ENWRK0,X
		RTL
;
;
FBOM0GRN0	EQU	$
		LDX	<ENINDX
		JSR	FBOM0POYO
;
		JSR	FBOM0AREACK
		BCS	FBOM0GRN000F0		; 範囲内？ [no->FBOM0GRN000F0]
;
FBOM0GRN00080	EQU	$
		LDY	#FbomGrn2MD
		STY	<ENWRK0,X
FBOM0GRN000F0	EQU	$
		RTL
;
;
FBOM0GRN2	EQU	$
		LDX	<ENINDX
;
		M8				; memory 8bit mode !!
;
		LDA	!ENWRKB,X
		CLC
		ADC	#0002
		BCS	FBOM0GRN20100		; [->FBOM0GRN20100]
;
		STA	!ENWRKB,X
;
		M16				; memory 16bit mode !!
;
		RTL
;
		MEM8
;
FBOM0GRN20100	EQU	$
		LDA	#0FFH
		STA	!ENWRKB,X
		LDA	#FbomBom0MD
		STA	<ENWRK0,X
		LDA	#008H
		STA	!ENTIM0,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00050H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		RTL
;
;
FBOM0AIR1	EQU	$
		LDX	<ENINDX
		JSR	FBOM0POYO
;
		JSR	FBOM0AREACK
		BCS	FBOM0AIR100F0		; 範囲内？ [no->FBOM0AIR100F0]
;
FBOM0AIR10080	EQU	$
		LDA	#00010H
		STA	!ENXPOW,X
		STA	!ENGPOW,X
		LDY	#FbomAir2MD
		STY	<ENWRK0,X
FBOM0AIR100F0	EQU	$
		RTL
;
;
FBOM0AIR2	EQU	$
		LDX	<ENINDX
		JSR	FBOM0POYO
;
		LDY	!ENWRKB,X
		CPY	#080H
		BNE	FBOM0AIR200F0		; [->FBOM0AIR200F0]
;
		LDY	#FbomAir3MD
		STY	<ENWRK0,X
FBOM0AIR200F0	EQU	$
		RTL
;
;
FBOM0AIR3	EQU	$
		LDX	<ENINDX
		JSR	FBOM0PLSCH
;
		JMP	FBOM0GRN2
;
;
FBOM0PLSCH	EQU	$
		LDA	!PCENTX
		STA	R1			; 目標Ｘ
		LDA	!PCENTY
		STA	R2			; 目標Ｙ
		LDA	!ECENTX,X
		STA	R3			; Ｘポジション
		LDA	!ECENTY,X
		STA	R4			; Ｙポジション
		LDA	#00080H
		STA	R6			; 基本スピード
		M_CHIP	SEARCH_SPEED
		LDX	<ENINDX
;
		LDA	R1
		EOR	#0FFFFH
		INC	A
		STA	!ENXMAX,X
		LDA	R2
		EOR	#0FFFFH
		INC	A
		STA	!ENGMAX,X
		RTS
;
;
FBOM0AREACK	EQU	$
		LDA	!ENXPSL,X
		SEC
		SBC	!PLXPSL
		CLC
		ADC	#Fbomarea2
		CMP	#Fbomarea2*2
		BCS	FBOM0AREACK00F0		; 範囲内？ [no->FBOM0AREACK00F0]
;
		LDA	!ENYPSL,X
		SEC
		SBC	!PLYPSL
		CLC
		ADC	#Fbomarea2
		CMP	#Fbomarea2*2
FBOM0AREACK00F0	EQU	$
		RTS
;
;
FBOM0COL	EQU	$
		WORD	00000H<<1, 00001H<<1, 00002H<<1, 00004H<<1
;
FBOM0BOM0	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BEQ	FBOM0BOM00100		; 爆発？ [yes->FBOM0BOM00100]
;
		BIT	#0000FH
		BNE	FBOM0BOM00040		; [->FBOM0BOM00040]
;
		PHA
		LDA	#00050H
		JSL	>SOUND_3_ON		; サウンド セット！！
		PLA
;
FBOM0BOM00040	EQU	$
		AND	#0000CH
		LSR	A
		TAY
		LDA	!ENCLOR,X
		AND	#0FFF1H
		ORA	FBOM0COL,Y
		STA	!ENCLOR,X
		RTL
;
FBOM0BOM00100	EQU	$
		LDA	#PONBR
		JSL	>EXINSR
;
		LDA	!ECENTX,X
		STA	!EXXPSL,Y
		LDA	!ECENTY,X
		STA	!EXYPSL,Y
		LDA	#0002
		STA	!EXTIM0,Y
		LDA	#0008
		STA	!EXCHPT,Y
;
		LDA	#0003BH
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		M8				; memory 8bit mode !!
;
		LDA	#0FFH
		STA	!ENRETN,X
;
		M16				; memory 16bit mode !!
;
		LDA	!ECENTX,X
		SEC
		SBC	!PCENTX
		CLC
		ADC	#FbomDamage
		CMP	#FbomDamage*2
		BCS	FBOM0BOM00180		; ダメージ範囲内？ [no->FBOM0BOM00180]
;
		LDA	!ECENTY,X
		SEC
		SBC	!PCENTY
		CLC
		ADC	#FbomDamage
		CMP	#FbomDamage*2
		BCS	FBOM0BOM00180		; ダメージ範囲内？ [no->FBOM0BOM00180]
;
		JSL	>PLFLST
;
FBOM0BOM00180	EQU	$
		LDA	!ENWRK6,X
		STA	<EWORK4
		LDA	!ENWRK8,X
		JSL	>NON_EXIST_SET2		; １回出たフラグＯＮ！！
;
		JSL	>ENCLEAR
;
		LDY	!ENWRKA,X
		DEY
		LDA	FBOM0COLOR,Y
		INC	A
		STA	<EWORK
		LDA	#MC1UP
		JSL	>ENINSR
		BCC	FBOM0BOM001F0		; [->FBOM0BOM001F0]
;
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		STA	!ENYPSL,Y
		LDA	#0FC00H
		STA	!ENGMAX,Y
		LDA	#00040H
		STA	!ENGPOW,Y
		LDA	#0000
		STA	!ENXSPD,Y
		STA	!ENWRK2,Y
		LDA	!ENMOD2,Y
		AND	#0000011111111111B
		ORA	#0010100000000000B
		STA	!ENMOD2,Y
		LDA	<EWORK
		STA	!ENWRKC,Y
		DEC	A
		ORA	!ENCLOR,Y
		STA	!ENCLOR,Y
;
		M8				; memory 8bit mode !!
;
		LDA	#05
		STA	!ENYUSN,Y
		LDA	#Mc1upFailMD
		STA	!ENWRKA,Y
		LDA	#02
		STA	!ENTIM3,Y
;
		M16				; memory 16bit mode !!
;
FBOM0BOM001F0	EQU	$
		RTL
;
;
FBOM0MUKI	EQU	$
		WORD	00800H, 0F800H
;
FBOM0KRKR	EQU	$
		LDX	<ENINDX
		LDA	!ENXSPD,X
		EOR	<ENWRK2,X
		BMI	FBOM0KRKR0020		; 爆発？ [yes->FBOM0KRKR0020]
;
		LDY	!ECRSFG,X
		BMI	FBOM0KRKR0100		; プレイヤーと衝突？ [yes->FBOM0BOM00100]
;
		DEY
		BMI	FBOM0KRKR0030		; [->FBOM0KRKR0030]
		BEQ	FBOM0KRKR0030		; [->FBOM0KRKR0030]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	FBOM0KRKR0030		; [->FBOM0KRKR0030]
;
FBOM0KRKR0020	EQU	$
		JMP	FBOM0BOM00100		; 爆発！！ [->FBOM0BOM00100]
;
FBOM0KRKR0030	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	#00
		LDY	!ENXSPD+1,X
		BMI	FBOM0KRKR0040		; [->FBOM0KRKR0040]
;
		INC	A
		INC	A
FBOM0KRKR0040	EQU	$
		EOR	!ENMUKI,X
		TAY
;
		M16				; memory 16bit mode !!
;
		LDA	!ENCONT,X
		CLC
		ADC	FBOM0MUKI,Y
		STA	!ENCONT,X
		RTL
;
FBOM0KRKR0100	EQU	$
		JSL	>PLFLST
;
		JMP	FBOM0BOM00100		; [->FBOM0BOM00100]
;
;
FBOM0XSPD	EQU	$
		WORD	0FE00H, 00200H
;
FBOM0CRCK	EQU	$
		LDY	!ECRSFG,X
		BPL	FBOM0CRCK0040		; [->FBOM0CRCK0040]
;
		RTS
;
FBOM0CRCK0040	EQU	$
		DEY
		BMI	FBOM0CRCK00F0		; 衝突無し？ [yes->FBOM0CRCK00F0]
		BEQ	FBOM0CRCK00F0		; 赤ちゃん？ [yes->FBOM0CRCK00F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	FBOM0CRCK00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->FBOM0CRCK00F0]
;
		LDA	!ENSHOT,Y
		BEQ	FBOM0CRCK00F0		; ショット？ [no->FBOM0CRCK00F0]
;
		LDA	!ENXPSL,Y
		STA	<EWORK0
;
		TYX
		JSL	>SHOT_EN_KILL
		LDX	<ENINDX
;
		LDA	#00067H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDY	#00
		LDA	!ENXPSL,X
		SEC
		SBC	<EWORK0
		BMI	FBOM0CRCK0080		; [->FBOM0CRCK0080]
;
		INY
		INY
FBOM0CRCK0080	EQU	$
		LDA	FBOM0XSPD,Y
		STA	!ENXSPD,X
		STA	<ENWRK2,X
		LDA	#00040H
		STA	!ENGPOW,X
		LDA	#00400H
		STA	!ENGMAX,X
;
		LDY	#FbomKrkrMD
		STY	<ENWRK0,X
		PLA				; ぷるぷるりたーん！！
		RTL
;
FBOM0CRCK00F0	EQU	$
		RTS
;
;
FBOM0BGYP0	EQU	$
		WORD	0000FH, 0000FH
		WORD	0000EH, 0000DH
		WORD	0000CH, 0000BH
		WORD	0000AH, 00009H
		WORD	00008H, 00007H
		WORD	00006H, 00005H
		WORD	00004H, 00003H
		WORD	00002H, 00001H
		WORD	00000H, 00000H

;
FBOM0CHRST	EQU	$
		LDY	!ENYUSN,X
		BPL	FBOM0CHRST0040		; 表示中？ [no->FBOM0CHRST0040]
;
		RTS
;
FBOM0CHRST0040	EQU	$
		LDY	!ENWRKB,X
		TYA
		INC	A
		LSR	A
		LSR	A
		LSR	A
		AND	#000FEH
		TAY
		LDA	FBOM0BGYP0,Y
		STA	<EWORK
;
		I16				; index 16bit mode !!
;
		LDY	!ENOAML,X
		LDA	!SOAM_DX+2,Y
		CLC
		ADC	<EWORK
		STA	!SOAM_DX+2,Y
		LDA	!SOAM_DX+2+(2*4*1),Y
		CLC
		ADC	<EWORK
		STA	!SOAM_DX+2+(2*4*1),Y
		LDA	!SOAM_DX+2+(2*4*2),Y
		CLC
		ADC	<EWORK
		STA	!SOAM_DX+2+(2*4*2),Y
		LDA	!SOAM_DX+2+(2*4*3),Y
		CLC
		ADC	<EWORK
		STA	!SOAM_DX+2+(2*4*3),Y
;
		I8				; index 8bit mode !!
;
		LDA	!MSGMOD
		BNE	FBOM0CHRST00F0		; メッセージ表示？ [yes->FBOM0CHRST00F0]
;
		LDY	<ENCONT+1,X
		TYA
		STA	R5			; (R5) <- 回転角度
		LDY	!ENWRKB,X
		TYA
		INC	A
		STA	R6			; (R6) <- 倍率
;
		I16				; index 16bit mode !!
;
		LDY	!ENTROB,X
		TYX
		LDA	>TROBJ_PLOT_Y,X
		STA	R2			; (R2) <- ビットマップＹ座標
		LDA	>TROBJ_PLOT_X,X
		STA	R3			; (R3) <- ビットマップＸ座標
		LDA	#CIPCHD2+4040H+1
		STA	R12			; (R12) <- キャラクタアドレス
		LDA	#BANK CIPCHD2+4040H+1
		STA	R13			; (R13) <- キャラクタバンク
;
		I8				; index 8bit mode !!
;
		M_CHIP	C_32_ROTZOM
;
		INC	OBM7WF			; mode 7 OBJ chara DMA "ON"
;
		LDX	<ENINDX
FBOM0CHRST00F0	EQU	$
		RTS
;
;
FBOM0POYO	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDA	!ENWRKB,X
		CMP	#080H
		BCC	FBOM0POYO0080		; [->FBOM0POYO0080]
;
		LDA	#080H
		STA	!ENWRKB,X
		BRA	FBOM0POYO00E0		; [->FBOM0POYO00E0]
;
FBOM0POYO0080	EQU	$
		CLC
		ADC	!ENWRKC,X
		STA	!ENWRKB,X
FBOM0POYO00E0	EQU	$
;
		M16				; memory 16bit mode !!
;
		RTS
;
;
;------------------------------------------------------------------------
;-	initial （１ｕｐムーチョ）					-
;------------------------------------------------------------------------
MCOAMSUU	EQU	$
		WORD	0011000000000000B
		WORD	0011000000000000B
		WORD	0100100000000000B
		WORD	0100100000000000B
;
MC1UPITEMMD	EQU	$
		WORD	MC1UP_QQQ
		WORD	MC1UP_RED
		WORD	MC1UP_1UP
		WORD	MC1UP_1UP
;
MC1UPOAMBNK	EQU	$
		WORD	BANK Q_MUCHO
		WORD	BANK RED_COINMUCHO
		WORD	BANK MC1UPC
		WORD	BANK MC1UPC
;
MC1UPOAMADD	EQU	$
		WORD	Q_MUCHO
		WORD	RED_COINMUCHO
		WORD	MC1UPC
		WORD	MC1UPC
;
MC1UPIN		EQU	$
		JSL	>EXIST_CHECK2
		BEQ	MC1UPIN0040		; セット可？ [yes->MC1UPIN0040]
;
		JMP	>ENCLEAR
;
MC1UPIN0040	EQU	$
		LDY	!ENWRKB,X
		BNE	MC1UPIN0060		; イニシャル？ [no->MC1UPIN0060]
;
		M8				; memory 8bit mode !!
;
		LDA	!ENXPSL,X
		AND	#010H
		LSR	A
		LSR	A
		LSR	A
		STA	<EWORK
		LDA	!ENYPSL,X
		AND	#010H
		LSR	A
		LSR	A
		ORA	<EWORK
		INC	A
		STA	!ENWRKB,X
		TAY
;
		M16				; memory 16bit mode !!
;
MC1UPIN0060	EQU	$
		DEY
		LDA	!ENMOD2,X
		ORA	MCOAMSUU,Y
		STA	!ENMOD2,X
		LDA	#0030
		STA	!ENTIM0,X
		LDA	!ENXPSL,X
		STA	!ENWRK6,X
		LDA	!ENYPSL,X
		STA	!ENWRK8,X
		LDA	#(00001H<<1)+1
		STA	!ENWRKC,X
		DEC	A
		ORA	!ENCLOR,X
		STA	!ENCLOR,X
		RTL
;
;
;------------------------------------------------------------------------
;-	move （１ｕｐムーチョ）						-
;------------------------------------------------------------------------
MC1UPMV		EQU	$
		LDY	!ENWRKA,X
		TYX
		JMP	(MC1UPMOD,X)
;
MC1UPMOD	EQU	$
		WORD	MC1UPMOVE
Mc1upFail	WORD	MC1UPFAIL
;
Mc1upFailMD	EQU	(Mc1upFail-MC1UPMOD)
;
MC1UPMOVE	EQU	$
		LDX	<ENINDX
		JSR	MC1UPOAMSET
;
		JSR	MC1UPMDCHK
;
		JSL	>ENMDCK			; mode check
;
		JSL	>EPCRCK
;
		JSR	MC1UPCRCK
;
		LDA	<FRCNT2
		AND	#00003H
		STA	!ENCHPT,X
;
		LDY	<ENWRK0,X
		TYX
		JMP	(MC1UPMVMD,X)
;
MC1UPMVMD	EQU	$
		WORD	MC1UPWAIT
		WORD	MC1UPENTR
		WORD	MC1UPURO0
		WORD	MC1UPESCP
		WORD	MC1UPESC2
;
;
MC1UPSETXP	EQU	$
		WORD	00120H, 0FFD0H
;
MC1UPWAIT	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	MC1UPWAIT00F0		; [->MC1UPWAIT00F0]
;
		M8				; memory 8bit mode !!
;
		INC	<ENWRK0,X
		INC	<ENWRK0,X
		LDA	#005
		STA	!ENYUSN,X
;
		M16				; memory 16bit mode !!
;
		LDA	!SCHMK1
		STA	!ENMUKI,X
		TAY
		LDA	!SCCH1
		CLC
		ADC	MC1UPSETXP,Y
		STA	!ENXPSL,X
		LDA	!SCCV1
		CLC
		ADC	#0FFC0H
		STA	!ENYPSL,X
		LDA	#00020H
		STA	!ENXPOW,X
		STA	!ENGPOW,X
		BRA	MC1UPENTR0040		; [->MC1UPENTR0040]
;
MC1UPWAIT00F0	EQU	$
		RTL
;
;
MC1UPENTR	EQU	$
		LDX	<ENINDX
		LDY	#00
		LDA	!ENXSPD,X
		BMI	MC1UPENTR0020		; [->MC1UPENTR0020]
;
		INY
		INY
MC1UPENTR0020	EQU	$
		TYA
		CMP	!ENMUKI,X
		BEQ	MC1UPENTR0040		; [->MC1UPENTR0040]
;
;[1995.-6.22.TH]		BNE	MC1UPENTR0100		; [->MC1UPENTR0100]
;[1995.-6.22.TH];
		LDA	!ENYSPD,X
		BMI	MC1UPENTR0100		; [->MC1UPENTR0100]
;
MC1UPENTR0040	EQU	$
		LDA	!ENWRK6,X
		STA	R1			; 目標Ｘ
		LDA	!ENWRK8,X
		STA	R2			; 目標Ｙ
		LDA	!ENXPSL,X
		STA	R3			; Ｘポジション
		LDA	!ENYPSL,X
		STA	R4			; Ｙポジション
		LDA	#00200H
		STA	R6			; 基本スピード
		M_CHIP	SEARCH_SPEED
		LDX	<ENINDX
;
		LDA	R1
		STA	!ENXMAX,X
		LDA	R2
		STA	!ENGMAX,X
MC1UPENTR0080	EQU	$
		RTL
;
MC1UPENTR0100	EQU	$
		STZ	!ENXPOW,X
		STZ	!ENGPOW,X
		STZ	!ENXSPD,X
		STZ	!ENYSPD,X
		LDA	!ENYPSL,X
		STA	<ENWRK4,X
		LDA	#0120
		STA	!ENTIM0,X
;
		LDA	!ENWRK6,X
		STA	<EWORK4
		LDA	!ENWRK8,X
		JSL	>NON_EXIST_SET2		; １回出たフラグＯＮ！！
;
		LDY	<ENWRK0,X
		INY
		INY
		STY	<ENWRK0,X
;
		RTL
;
;
MC1UPURO0	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BEQ	MC1UPURO00100		; [->MC1UPURO00100]
;
		TXY
;
		I16				; index 16bit mode !!
;
		LDX	<ENWRK2,Y
		LDA	>SIN,X
		ASR16
		ASR16
		ASR16
		ASR16
		ASR16
		CLC
		ADC	!ENWRK4,Y
		STA	!ENYPSL,Y
		TXA
		CLC
		ADC	#0002
		AND	#001FEH
		STA	!ENWRK2,Y
;
		I8				; index 8bit mode !!
;
		TYX
		RTL
;
MC1UPURO00100	EQU	$
		LDA	#00
		STA	<ENWRK2,X
		LDY	!ENMUKI,X
		STY	<ENWRK1,X
		LDY	<ENWRK0,X
		INY
		INY
		STY	<ENWRK0,X
;
		RTL
;
;
MC1UPESCP	EQU	$
		LDX	<ENINDX
		LDA	!ENWRK2,X
		CMP	#00250H
		BCS	MC1UPESCP0100		; [->MC1UPESCP0100]
;
		TXY
;
		I16				; index 16bit mode !!
;
		AND	#001FEH
		TAX
		LDA	>SIN,X
		ASL	A
		STA	!ENYSPD,Y
		LDA	>COS,X
		ASL	A
		PHA
		LDA	!ENWRK1,Y
		AND	#000FFH
		BNE	MC1UPESCP0040		; [->MC1UPESCP0040]
;
		PLA
		EOR	#0FFFFH
		INC	A
		PHA
MC1UPESCP0040	EQU	$
		PLA
		STA	!ENXSPD,Y
		LDA	!ENWRK2,Y
		CLC
		ADC	#0008
		STA	!ENWRK2,Y
;
		I8				; index 8bit mode !!
;
		LDX	#00
		LDA	!ENXSPD,Y
		BMI	MC1UPESCP0080		; [->MC1UPESCP0080]
;
		INX
		INX
MC1UPESCP0080	EQU	$
		TXA
		STA	!ENMUKI,Y
		TYX
		RTL
;
MC1UPESCP0100	EQU	$
		LDA	#10H
		STA	!ENTIM0,X
		LDY	#00
		STY	<ENWRK1,X
		LDY	<ENWRK0,X
		INY
		INY
		STY	<ENWRK0,X
		RTL
;
;
MC1UPESC2	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	MC1UPESC200F0		; [->MC1UPESC200F0]
;
		LDY	<ENWRK1,X
		BNE	MC1UPESC200F0		; [->MC1UPESC200F0]
;
		LDA	#0006EH
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDY	#01
		STY	<ENWRK1,X
MC1UPESC200F0	EQU	$
		RTL
;
;
MC1UPMDCHK	EQU	$
		LDA	!ENMODE,X
		CMP	#EEATM
		BNE	MC1UPMDCHK0080		; 食べられた？ [no->MC1UPMDCHK0080]
;
		JSR	MC1UP_1UPSET		; １ｕｐ セット！！
;
		LDA	#HEIH0
		TXY
		JSL	>ESTATST
;
		LDA	!ENWRKC,X
		DEC	A
		ORA	!ENCLOR,X
		STA	!ENCLOR,X
		RTS
;
MC1UPMDCHK0080	EQU	$
		CMP	#EMOVE
		BEQ	MC1UPMDCHK00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [yes->MC1UPMDCHK00F0]
;
		CMP	#EFAIL
		BEQ	MC1UPMDCHK00F0		; Ｍｏｄｅ Ｆａｉｌ？ [yes->MC1UPMDCHK00F0]
;
		JSR	MC1UP_1UPSET		; １ｕｐ セット！！
;
MC1UPMDCHK00F0	EQU	$
		RTS
;
;
MC1UP_1UPSET	EQU	$
		LDA	!ENWRK6,X
		STA	<EWORK4
		LDA	!ENWRK8,X
		JSL	>NON_EXIST_SET2		; １回出たフラグＯＮ！！
;
		LDY	!ENWRKB,X
		DEY
		TYX
		JMP	(MC1UPITEMMD,X)
;
;
MC1UP_1UP	EQU	$
		LDX	<ENINDX
		JSL	>PL_1UP_SET_P
;
		RTS
;
;
MC1UP_RED	EQU	$
		LDX	<ENINDX
		LDA	!ENWRK8,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		AND	#0FF00H
		ORA	#08000H
		STA	<EWORK
		LDA	!ENWRK6,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#000FFH
		ORA	<EWORK
		STA	<EWORKE
;
		LDA	#00009H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDA	#COIN1
		JSL	>ENINSR_I
		BCC	MC1UP_RED0100		; 敵確保成功？ [no->MC1UP_RED0100]
;
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		CLC
		ADC	#00010H
		STA	!ENYPSL,Y
		LDA	!ENCLOR,X
		AND	#0FFF1H
		ORA	#00001H<<1
		STA	!ENCLOR,Y
		LDA	<EWORKE
		STA	!ENWRKC,Y
		RTS
;
MC1UP_RED0100	EQU	$
		JSL	>DEATHENEMY
;
		LDA	#COIN1
		TXY
		JSL	>ESTATST
;
		LDA	!ENYPSL,X
		CLC
		ADC	#00010H
		STA	!ENYPSL,X
		LDA	!ENCLOR,X
		AND	#0FFF1H
		ORA	#00001H<<1
		STA	!ENCLOR,X
		LDA	<EWORKE
		STA	!ENWRKC,X
		LDA	#EINIT
		STA	!ENMODE,X
;
		PLA
		PLA				; ぷるぷるぷるぷるりたーん！！
		RTL
;
;
MC1UP_QQQ	EQU	$
		LDX	<ENINDX
		LDA	#00030H
		JSL	>SOUND_3_ON		; サウンド セット！！
;
		LDA	!TIMER
		BEQ	MC1UP_QQQ0040		; [->MC1UP_QQQ0040]
;
		STA	!4204H
		LDY	#10
		STY	!4206H
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		LDA	!4214H
MC1UP_QQQ0040	EQU	$
		STA	<EWORK
		LDA	#0030-1
		SEC
		SBC	<EWORK
		STA	<EWORK
		LDA	#0005-1
		STA	<EWORK2
MC1UP_QQQ0060	EQU	$
		LDA	<EWORK
		BPL	MC1UP_QQQ0070		; タイム君セット？ [yes->MC1UP_QQQ0070]
;
		LDA	#00100H
		STA	<EWORK4
		LDA	#00140H
		STA	<EWORK6
		LDA	#00010H
		STA	<EWORK8
		LDA	#COIN1
		BRA	MC1UP_QQQ0080		; [->MC1UP_QQQ0080]
;
MC1UP_QQQ0070	EQU	$
		LDA	#00180H
		STA	<EWORK4
		STZ	<EWORK6
		STZ	<EWORK8
		LDA	#TIMKN
MC1UP_QQQ0080	EQU	$
		STA	<EWORKA
		JSL	>ENINSR
		BCC	MC1UP_QQQ0100		; 敵確保成功？ [no->MC1UP_QQQ0100]
;
		LDA	!ENXPSL,X
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		CLC
		ADC	#00010H
		STA	!ENYPSL,Y
		JSL	>RANDAM
;
		LDA	<RANDM0
		AND	#0000EH
		TAX
		LDA	>QKM_COIN_XSP,X
		STA	!ENXSPD,Y
		LDA	<RANDM0
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#0000EH
		TAX
		LDA	>QKM_COIN_YSP,X
		STA	!ENYSPD,Y
;
		LDX	<ENINDX
		LDA	<EWORK4
		STA	!ENTIM0,Y
		LDA	<EWORK6
		STA	!ENTIM1,Y
		LDA	<EWORK8
		STA	!ENTIM2,Y
;
		DEC	<EWORK
		DEC	<EWORK2
		BPL	MC1UP_QQQ0060		; [->MC1UP_QQQ0060]
;
		RTS
;
MC1UP_QQQ0100	EQU	$
		JSL	>DEATHENEMY
;
		LDA	<EWORKA
		TXY
		JSL	>ESTATST
;
		LDA	!ENYPSL,X
		CLC
		ADC	#00010H
		STA	!ENYPSL,Y
		LDA	<RANDM0
		AND	#0000EH
		TAX
		LDA	>QKM_COIN_XSP,X
		STA	!ENXSPD,Y
		LDA	<RANDM0
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#0000EH
		TAX
		LDA	>QKM_COIN_YSP,X
		STA	!ENYSPD,Y
;
		LDX	<ENINDX
		LDA	<EWORK4
		STA	!ENTIM0,Y
		LDA	<EWORK6
		STA	!ENTIM1,Y
		LDA	<EWORK8
		STA	!ENTIM2,Y
;
		PLA
		PLA				; ぷるぷるぷるぷるりたーん！！
		RTL
;
;
MC1UPCRCK	EQU	$
		LDY	!ECRSFG,X
		DEY
		BMI	MC1UPCRCK00F0		; 敵との衝突無し？ [yes->MC1UPCRCK00F0]
		BEQ	MC1UPCRCK00F0		; 赤ちゃんとの衝突？ [yes->MC1UPCRCK00F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	MC1UPCRCK00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->MC1UPCRCK00F0]
;
		LDA	!ENSHOT,Y
		BEQ	MC1UPCRCK00F0		; ショット？ [no->MC1UPCRCK00F0]
;
		TYX
		JSL	>SHOT_EN_KILL
		LDX	<ENINDX
;
;;;;;;;;		LDA	#00067H
;;;;;;;;		JSL	>SOUND_3_ON		; サウンド セット！！
;
		JSR	MC1UP_1UPSET
;
		M8				; memory 8bit mode !!
;
		LDA	#0FFH
		STA	!ENRETN,X
		LDA	#Mc1upFailMD
		STA	!ENWRKA,X
		LDA	#02
		STA	!ENTIM3,X
;
		M16				; memory 16bit mode !!
;
		LDA	#0FE00H
		STA	!ENGMAX,X
		LDA	#00040H
		STA	!ENGPOW,X
		STZ	!ENXSPD,X
		STZ	<ENWRK2,X
		LDA	!ENMOD2,X
		AND	#0000011111111111B
		ORA	#0010100000000000B
		STA	!ENMOD2,X
;
		PLA
		RTL
;
MC1UPCRCK00F0	EQU	$
		RTS
;
;
MC1UPFAIL	EQU	$
		LDX	<ENINDX
		LDY	!ENYUSN,X
		BMI	MC1UPFAIL0040		; 表示？ [no->MC1UPFAIL0040]
;
		LDA	#BANK COINMUCHO
		STA	R0
		LDA	#COINMUCHO
		STA	R1
		M_CHIP	MC1UPOAMST
		LDX	<ENINDX
;
MC1UPFAIL0040	EQU	$
		JSR	MC1UPMDCK2
;
		JSL	>ENMDCK			; mode check
;
		LDA	!ENTIM3,X
		CMP	#01
		BNE	MC1UPFAIL0050		; [->MC1UPFAIL0050]
;
		LDA	#0006EH
		JSL	>SOUND_3_ON		; サウンド セット！！
;
MC1UPFAIL0050	EQU	$
		JSL	>EPCRCK
;
		JSR	MC1UPCRC2
;
		LDA	<FRCNT2
		AND	#00003H
		STA	!ENCHPT,X
;
		TXY
;
		I16				; index 16bit mode !!
;
		LDX	<ENWRK2,Y
		LDA	>COS,X
		ASR16
		STA	!ENXSPD,Y
		LDA	!ENWRK2,Y
		CLC
		ADC	#0002
		AND	#001FEH
		STA	!ENWRK2,Y
;
		I8				; index 8bit mode !!
;
		TYX
		LDY	#00
		LDA	!ENXSPD,X
		BMI	MC1UPFAIL0080		; [->MC1UPFAIL0080]
;
		INY
		INY
MC1UPFAIL0080	EQU	$
		TYA
		STA	!ENMUKI,X
		RTL
;
;
MC1UPMDCK2	EQU	$
		LDA	!ENMODE,X
		CMP	#EEATM
		BNE	MC1UPMDCK20080		; 食べられた？ [no->MC1UPMDCK20080]
;
		LDA	#HEIH0
		TXY
		JSL	>ESTATST
;
		LDA	!ENWRKC,X
		DEC	A
		ORA	!ENCLOR,X
		STA	!ENCLOR,X
MC1UPMDCK20080	EQU	$
		RTS
;
;
MC1UPCRC2	EQU	$
		LDY	!ECRSFG,X
		DEY
		BMI	MC1UPCRC200F0		; 敵との衝突無し？ [yes->MC1UPCRC200F0]
		BEQ	MC1UPCRC200F0		; 赤ちゃんとの衝突？ [yes->MC1UPCRC200F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	MC1UPCRC200F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->MC1UPCRC200F0]
;
		LDA	!ENSHOT,Y
		BEQ	MC1UPCRC200F0		; ショット？ [no->MC1UPCRC200F0]
;
		TYX
		JSL	>SHOT_EN_KILL
		LDX	<ENINDX
;
		JSL	>DEATHENEMY
;
		PLA
		JMP	>ENCLEAR_NORETN
;
MC1UPCRC200F0	EQU	$
		RTS
;
;
MC1UPOAMSET	EQU	$
		LDY	!ENYUSN,X
		BMI	MC1UPOAMSET00F0		; 表示？ [no->MC1UPOAMSET00F0]
;
		LDY	!ENWRKB,X
		DEY
		LDA	MC1UPOAMBNK,Y
		STA	R0
		LDA	MC1UPOAMADD,Y
		STA	R1
		M_CHIP	MC1UPOAMST
		LDX	<ENINDX
;
MC1UPOAMSET00F0	EQU	$
		RTS
;
;
MC1UPC		EQU	$
		BYTE	002H,000H,000H	;[00]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	2C,40
		BYTE	000H,000H,0FAH
		HEX	2C,00
		BYTE	000H,0FEH,016H
		HEX	49,02
		BYTE	000H,008H,016H
		HEX	6F,02
		BYTE	000H,000H,016H
		HEX	6E,02
		BYTE	002H,000H,011H
		HEX	E3,06
;
		BYTE	002H,000H,000H	;[01]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	2D,40
		BYTE	000H,000H,0FAH
		HEX	2D,00
		BYTE	000H,0FEH,016H
		HEX	49,02
		BYTE	000H,008H,016H
		HEX	6F,02
		BYTE	000H,000H,016H
		HEX	6E,02
		BYTE	002H,000H,011H
		HEX	E3,06
;
		BYTE	002H,000H,000H	;[02]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	3C,40
		BYTE	000H,000H,0FAH
		HEX	3C,00
		BYTE	000H,0FEH,016H
		HEX	49,02
		BYTE	000H,008H,016H
		HEX	6F,02
		BYTE	000H,000H,016H
		HEX	6E,02
		BYTE	002H,000H,011H
		HEX	E3,06
;
		BYTE	002H,000H,000H	;[03]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	3D,40
		BYTE	000H,000H,0FAH
		HEX	3D,00
		BYTE	000H,0FEH,016H
		HEX	49,02
		BYTE	000H,008H,016H
		HEX	6F,02
		BYTE	000H,000H,016H
		HEX	6E,02
		BYTE	002H,000H,011H
		HEX	E3,06
;
;
Q_MUCHO		EQU	$
		BYTE	002H,000H,000H	;[00]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	2C,40
		BYTE	000H,000H,0FAH
		HEX	2C,00
		BYTE	002H,000H,010H
		HEX	EA,00
;
		BYTE	002H,000H,000H	;[01]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	2D,40
		BYTE	000H,000H,0FAH
		HEX	2D,00
		BYTE	002H,000H,010H
		HEX	EA,00
;
		BYTE	002H,000H,000H	;[02]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	3C,40
		BYTE	000H,000H,0FAH
		HEX	3C,00
		BYTE	002H,000H,010H
		HEX	EA,00
;
		BYTE	002H,000H,000H	;[03]
		HEX	88,00
		BYTE	000H,001H,00EH
		HEX	2F,40
		BYTE	000H,006H,00EH
		HEX	2F,40
		BYTE	000H,008H,0FAH
		HEX	3D,40
		BYTE	000H,000H,0FAH
		HEX	3D,00
		BYTE	002H,000H,010H
		HEX	EA,00
;
;
;------------------------------------------------------------------------
;-	initial (大砲君)						-
;------------------------------------------------------------------------
taiho_00	EQU	000H
taiho_01	EQU	001H
taiho_02	EQU	002H
taiho_03	EQU	003H
taiho_04	EQU	004H
taiho_05	EQU	005H
taiho_06	EQU	006H
taiho_07	EQU	007H
taiho_08	EQU	008H
taiho_09	EQU	009H
taiho_0A	EQU	00AH
taiho_0B	EQU	00BH
taiho_0C	EQU	00CH
taiho_0D	EQU	00DH
;
taihowalkptn	EQU	(TAIH0WALKTM-TAIH0WALKPT-1)
taihofumrptn	EQU	(TAIH0FUMARETM-TAIH0FUMAREPT-1)
taihohshaptn	EQU	(TAIH0HASSHATM-TAIH0HASSHAPT-1)
taiho_discharge EQU	(taihohshaptn-2)
;
taihowalk	EQU	(taihowalkmd-TAIH0MODSEL)
taihofumare	EQU	(taihofumrmd-TAIH0MODSEL)
taihohassha	EQU	(taihohshamd-TAIH0MODSEL)
;
TAIH0_CNTYW	EQU	$
		HEX	08, 06, 07, 08, 09, 0C, 0A, 09
		HEX	09, 0A, 08, 08, 0B, 0D
;
TAIHO_PLHOSEI	EQU	$
		WORD	-18H, -1AH, -19H, -18H, -17H, -14H, -16H, -17H
		WORD	-17H, -16H, -18H, -18H, -15H, -13H
;
TAIHO_XSPD	EQU	$
		WORD	-00080H, 00080H
;
TAIH0IN		EQU	$
		LDA	#taihowalkptn
		STA	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		TAY
		LDA	TAIH0WALKTM,Y
		STA	!ENTIM0,X
		LDA	TAIH0WALKPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	#00004H
		STA	!EWIDEY,X
		LDA	#00004H
		STA	!EWIDEX,X
		LDY	!ENMUKI,X
		LDA	TAIHO_XSPD,Y
		STA	!ENXSPD,X
		RTL
;
;
;------------------------------------------------------------------------
;-	move (大砲君)							-
;------------------------------------------------------------------------
TAIH0MV		EQU	$
		JSL	>ENMDCK			; mode check
;
		LDA	<ENCONT,X
		TAX
		JSR	(TAIH0MODSEL,X)
;
		LDA	<ENWRK2,X
		STA	!ENWRKC,X		; プレイヤー乗せフラグ待避 !!
		STZ	<ENWRK2,X		; プレイヤー乗せフラグクリア !!
		JSL	>EPCRCK
;
		LDY	!ECRSFG,X
		BPL	TAIH0MV0100		; プレイヤーと衝突してる ? [no->TAIH0MV0100]
;
		LDA	!PLJUMP
		BNE	TAIH0MV00F0		; プレイヤージャンプフラグ ＯＮ ? [yes->TAIH0MV00F0]
;
		LDA	!PLYSPD
		BMI	TAIH0MV00F0		; プレイヤー上昇中 ? [yes->TAIH0MV00F0]
;
		LDA	!ENWRKC,X
		BNE	TAIH0MV00E0		; 前回のプレイヤー乗せフラグがＯＮ ? [yes->TAIH0MV00E0]
;
		INC	A
TAIH0MV00E0	EQU	$
		STA	<ENWRK2,X		; プレイヤー乗せフラグセット !!
TAIH0MV00F0	EQU	$
		RTL
;
TAIH0MV0100	EQU	$
		DEY
		BMI	TAIH0MV00F0		; 敵と当たった？ [no->TAIH0MV00F0]
		BEQ	TAIH0MV00F0		; 赤ちゃん？ [yes->TAIH0MV00F0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	TAIH0MV00F0		; Ｍｏｄｅ Ｍｏｖｅ？ [no->TAIH0MV00F0]
;
		LDA	!ENSHOT,Y
		BEQ	TAIH0MV00F0		; ショット？ [no->TAIH0MV00F0]
;
		LDA	!ENGPOW,Y
		CMP	#00040H
		BCS	TAIH0MV0180		; [->TAIH0MV0180]
;
		JSL	>DEATHENEMY
;
		JMP	>ENDEATH_SET
;
TAIH0MV0180	EQU	$
		PHX
		TYX
		JSL	>SHOT_EN_KILL
;
		PLX
		RTL
;
TAIH0MODSEL	EQU	$
taihowalkmd	WORD	TAIH0WALK
taihofumrmd	WORD	TAIH0FUMARE
taihohshamd	WORD	TAIH0HASSHA
;
;
TAIH0WALKPT	EQU	$
		BYTE	taiho_07, taiho_06, taiho_05, taiho_04
		BYTE	taiho_03, taiho_02, taiho_01, taiho_00
;
TAIH0WALKTM	EQU	$
		HEX	04, 04, 03, 02, 02, 03, 04, 04
;
TAIH0WALK	EQU	$
		LDX	<ENINDX
		JSR	TAIH0_PLCRSCK
;
		LDA	<RANDM0
		AND	#0003FH
		BEQ	TAIH0WALK0100		; 弾発射 ? [yes->TAIH0WALK0100]
;
		LDA	!ENTIM0,X
		BNE	TAIH0WALK00F0		; pattern change ? [no->TAIH0WALK00F0]
;
		DEC	<ENWRK0,X
		BPL	TAIH0WALK0040		; pattern max ? [no->TAIH0WALK0040]
;
		LDA	#taihowalkptn
		STA	<ENWRK0,X
TAIH0WALK0040	EQU	$
;
		M8				; memory 8bit mode !!
;
		LDY	<ENWRK0,X
		LDA	TAIH0WALKTM,Y
		STA	!ENTIM0,X
		LDA	TAIH0WALKPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	TAIH0WALK00F0		; プレイヤー乗せてる ? [no->TAIH0WALK00F0]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
TAIH0WALK00F0	EQU	$
		RTS
;
TAIH0WALK0100	EQU	$
		STZ	!ENXSPD,X
		LDA	#taihohshaptn
		STA	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		TAY
		LDA	TAIH0HASSHATM,Y
		STA	!ENTIM0,X
		LDA	TAIH0HASSHAPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	TAIH0WALK01F0		; プレイヤー乗せてる ? [no->TAIH0WALK01F0]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
TAIH0WALK01F0	EQU	$
		LDA	#taihohassha
		STA	<ENCONT,X
		RTS
;
;
TAIH0FUMAREPT	EQU	$
		BYTE	taiho_08, taiho_0C, taiho_0D, taiho_0C
;
TAIH0FUMARETM	EQU	$
		HEX	10, 02, 04, 02
;
TAIH0FUMARE	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	TAIH0FUMARE00F0		; pattern change ? [no->TAIH0FUMARE00F0]
;
		DEC	<ENWRK0,X
		BMI	TAIH0FUMARE0100		; [->TAIH0FUMARE0100]
;
		M8				; memory 8bit mode !!
;
		LDY	<ENWRK0,X
		LDA	TAIH0FUMARETM,Y
		STA	!ENTIM0,X
		LDA	TAIH0FUMAREPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	TAIH0FUMARE00F0		; プレイヤー乗せてる ? [no->TAIH0FUMARE00F0]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
TAIH0FUMARE00F0 EQU	$
		RTS
;
TAIH0FUMARE0100 EQU	$
		LDY	!ENMUKI,X
		LDA	TAIHO_XSPD,Y
		STA	!ENXSPD,X
		LDA	#taihowalkptn
		STA	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		TAY
		LDA	TAIH0WALKTM,Y
		STA	!ENTIM0,X
		LDA	TAIH0WALKPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	TAIH0FUMARE0180		; プレイヤー乗せてる ? [no->TAIH0FUMARE0180]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
TAIH0FUMARE0180 EQU	$
		LDA	#taihowalk
		STA	<ENCONT,X
TAIH0FUMARE01F0 EQU	$
		RTS
;
;
TAIH0HASSHAPT	EQU	$
		BYTE	taiho_08, taiho_09, taiho_0B, taiho_0A
		BYTE	taiho_09, taiho_08
;
TAIH0HASSHATM	EQU	$
		HEX	10, 04, 04, 02, 10, 20
;
TAIHOHSHAXPSL	EQU	$
		WORD	-00010H,  00010H
;
TAIHOHSHAXSPD	EQU	$
		WORD	-00200H,  00200H
;
TAIH0HASSHA	EQU	$
		LDX	<ENINDX
		LDA	!ENTIM0,X
		BNE	TAIH0FUMARE01F0		; pattern change ? [no->TAIH0FUMARE01F0]
;
		DEC	<ENWRK0,X
		BMI	TAIH0FUMARE0100		; [->TAIH0FUMARE0100]
;
		M8				; memory 8bit mode !!
;
		LDY	<ENWRK0,X
		LDA	TAIH0HASSHATM,Y
		STA	!ENTIM0,X
		LDA	TAIH0HASSHAPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	TAIH0HASSHA0080		; プレイヤー乗せてる ? [no->TAIH0HASSHA0080]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
TAIH0HASSHA0080 EQU	$
		LDA	<ENWRK0,X
		CMP	#taiho_discharge
		BNE	TAIH0HASSHA00F0		; 発射 ? [no->TAIH0HASSHA00F0]
;
		LDY	!ENMUKI,X
		LDA	!ENXPSL,X
		CLC
		ADC	TAIHOHSHAXPSL,Y
		STA	<EWORK
		LDA	TAIHOHSHAXSPD,Y
		STA	<EWORK2
		LDA	#BOMB0
		JSL	>ENINSR
		BCC	TAIH0HASSHA00A0		; 敵確保失敗 ? [yes->TAIH0HASSHA00A0]
;
		LDA	!EWORK
		STA	!ENXPSL,Y
		LDA	!ENYPSL,X
		SEC
		SBC	#00010H
		STA	!ENYPSL,Y
		LDA	<EWORK2
		STA	!ENXSPD,Y
		LDA	#-00200H
		STA	!ENYSPD,Y
		LDA	#00001H
		STA	!ENSHOT,Y
;
		LDA	#00047H
		JSL	>SOUND_3_ON		; サウンド セット !!
;
		BRA	TAIH0HASSHA00F0
;
TAIH0HASSHA00A0 EQU	$
		LDA	#00042H
		JSL	>SOUND_3_ON		; サウンド セット !!
;
TAIH0HASSHA00F0 EQU	$
		RTS
;
;
TAIH0_PLCRSCK	EQU	$
		LDA	<ENWRK2,X
		CMP	#0001
		BNE	THO_PLCRCK00F0		; プレイヤー乗せフラグ ON ? [yes->THO_PLCRCK00F0]
;
		STZ	!ENXSPD,X
		LDA	#taihofumrptn
		STA	<ENWRK0,X
;
		M8				; memory 8bit mode !!
;
		TAY
		LDA	TAIH0FUMARETM,Y
		STA	!ENTIM0,X
		LDA	TAIH0FUMAREPT,Y
		STA	!ENCHPT,X
		TAY
		LDA	TAIH0_CNTYW,Y
		STA	!ECNTYW,X
;
		M16				; memory 16bit mode !!
;
		LDA	<ENWRK2,X
		BEQ	THO_PLCRCK0080		; プレイヤー乗せてる ? [no->THO_PLCRCK0080]
;
		TYA
		ASL	A
		TAY
		LDA	!ENYPSL,X
		CLC
		ADC	TAIHO_PLHOSEI,Y
		STA	!PLYPSL
THO_PLCRCK0080	EQU	$
		INC	<ENWRK2,X		; プレイヤー乗せフラグセット !!
		LDA	#taihofumare
		STA	<ENCONT,X
		PLA
THO_PLCRCK00F0	EQU	$
		RTS
;
;
;------------------------------------------------------------------------
;-	initial (WATAB)							-
;------------------------------------------------------------------------
watabouleftclr	EQU	00080H
watabouxarea	EQU	00200H
wataboutopclr	EQU	00040H
watabouyarea	EQU	00140H
watabougpow	EQU	00004H
;
WATABGMAXDAT	EQU	$
		WORD	-000C0H, 000C0H
;
WATABYPOSDTA	EQU	$
		WORD	00020H, -00020H
;
WATABXSPD	EQU	$
		WORD	-00040H, 00040H
;
WATABXPS	EQU	$
		WORD	00120H, -00020H, 00130H, -00030H
		WORD	00140H, -00040H, 00150H, -00050H
;
WATABYPS	EQU	$
		WORD	00020H, 00060H, 000A0H, 000E0H, 00000H, 00040H, 00080H, 000C0H
;
WATABIN		EQU	$
		LDA	#-000C0H
		STA	!ENGMAX,X
		LDY	!ENMUKI,X
		LDA	!ENYPSL,X
		CLC
		ADC	#00020H
		STA	<ENWRK0,X
		LDA	WATABXSPD,Y
		STA	!ENXSPD,X		; X スピードセット !!
		RTL
;
;
;[1995.03.23.TH]		LDA	!WATB_ST_FG
;[1995.03.23.TH]		BEQ	WTBIN0020		; 綿ぼう ON ? [no->WTBIN0020]
;[1995.03.23.TH];
;[1995.03.23.TH]		JMP	>ENCLEAR
;[1995.03.23.TH];
;[1995.03.23.TH];
;[1995.03.23.TH]WTBIN0020	EQU	$
;[1995.03.23.TH]		LDA	#01
;[1995.03.23.TH]		STA	!WATB_ST_FG		; 綿ぼう セットフラグオン !!
;[1995.03.23.TH]		LDA	#00
;[1995.03.23.TH]		STA	<ENWRK4,X		; 綿ぼうインデックスセット
;[1995.03.23.TH]		LDA	<RANDM0
;[1995.03.23.TH]		AND	#00003H
;[1995.03.23.TH]		ASL	A
;[1995.03.23.TH]		ASL	A
;[1995.03.23.TH]		ORA	!SCHMK1
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	!SCCH1
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABXPS,Y
;[1995.03.23.TH]		STA	!ENXPSL,X		; X ポジションセット
;[1995.03.23.TH]		AND	#00010H
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	WATABGMAXDAT,Y
;[1995.03.23.TH]		STA	!ENGMAX,X		; G-MAX セット !!
;[1995.03.23.TH]		LDA	!SCCV1
;[1995.03.23.TH]		AND	#0FF00H
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPS
;[1995.03.23.TH]		STA	<ENWRK0,X
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPOSDTA,Y
;[1995.03.23.TH]		STA	!ENYPSL,X		; Y ポジションセット
;[1995.03.23.TH]		STZ	!ENYSPD,X		; Y スピードセット !!
;[1995.03.23.TH]		LDY	!ENMUKI,X
;[1995.03.23.TH]		LDA	WATABXSPD,Y
;[1995.03.23.TH]		STA	!ENXSPD,X		; X スピードセット !!
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	#8*2-2
;[1995.03.23.TH]		STA	<EWORK
;[1995.03.23.TH]WTBIN0040	EQU	$
;[1995.03.23.TH]		JSR	WTBIN0080
;[1995.03.23.TH];
;[1995.03.23.TH]		DEC	<EWORK
;[1995.03.23.TH]		DEC	<EWORK
;[1995.03.23.TH]		BNE	WTBIN0040		; 綿ぼうセット エンド ? [no->WTBIN0040]
;[1995.03.23.TH];
;[1995.03.23.TH]		RTL
;[1995.03.23.TH];
;[1995.03.23.TH];
;[1995.03.23.TH]WTBIN0080	EQU	$
;[1995.03.23.TH]		LDA	#WATAB
;[1995.03.23.TH]		JSL	>ENINSR
;[1995.03.23.TH];
;[1995.03.23.TH]		BCC	WTBIN00F0		; エリア確保失敗 ? [yes->WTBIN00F0]
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	!ENMUKI,X
;[1995.03.23.TH]		STA	!ENMUKI,Y
;[1995.03.23.TH]		TYX
;[1995.03.23.TH]		LDA	<EWORK
;[1995.03.23.TH]		STA	<ENWRK4,X		; 綿ぼうインデックスセット
;[1995.03.23.TH]		JSL	>RANDAM
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	<RANDM0
;[1995.03.23.TH]		AND	#0000CH
;[1995.03.23.TH]		ORA	!SCHMK1
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	!SCCH1
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABXPS,Y
;[1995.03.23.TH]		STA	!ENXPSL,X		; X ポジションセット
;[1995.03.23.TH]		AND	#00010H
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	WATABGMAXDAT,Y
;[1995.03.23.TH]		STA	!ENGMAX,X		; G-MAX セット !!
;[1995.03.23.TH]		PHY
;[1995.03.23.TH]		LDY	<EWORK
;[1995.03.23.TH]		LDA	!SCCV1
;[1995.03.23.TH]		AND	#0FF00H
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPS,Y
;[1995.03.23.TH]		STA	<ENWRK0,X
;[1995.03.23.TH]		PLY
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPOSDTA,Y
;[1995.03.23.TH]		STA	!ENYPSL,X		; Y ポジションセット
;[1995.03.23.TH]		STZ	!ENYSPD,X		; Y スピードセット !!
;[1995.03.23.TH]		LDY	!ENMUKI,X
;[1995.03.23.TH]		LDA	WATABXSPD,Y
;[1995.03.23.TH]		STA	!ENXSPD,X		; X スピードセット !!
;[1995.03.23.TH]		LDX	<ENINDX
;[1995.03.23.TH]		RTS
;[1995.03.23.TH];
;[1995.03.23.TH];
;[1995.03.23.TH]WTBIN00F0	EQU	$
;[1995.03.23.TH]		PLA
;[1995.03.23.TH]		RTL
;[1995.03.23.TH];
;
;------------------------------------------------------------------------
;-	move (WATAB)							-
;------------------------------------------------------------------------
WATABMV		EQU	$
		LDA	!ENMODE,X
		CMP	#EMOVE
		BEQ	WTBMV0000		; Ｍｏｄｅ Ｍｏｖｅ？ [yes->WTBMV0000]
;
WATABMV0000	EQU	$
		LDA	<ENWRK4,X
		BEQ	WTBMV0002		; 既に死んでる？ [yes->WTBMV0002]
;
		DEC	!WATAB_COUNT		; 綿ぼうフラグ ｏｆｆ！！
;
		LDA	<ENWRK4,X
		TRB	!WATAB_STLIN		; ラインビット ｏｆｆ！！
		STZ	<ENWRK4,X
		BRA	WTBMV000A		; [->WTBMV000A]
;
WTBMV0000	EQU	$
		LDY	!ENCOLD,X
		BNE	WATABMV0000		; [->WATABMV0000]
;
WTBMV0002	EQU	$
		LDA	!ENSHOT,X
		BEQ	WTBMV0010		; ショット？ [no->WTBMV0010]
;
		STZ	!ENSHOT,X
		LDA	#00040H
		STA	!ENGPOW,X
		STA	!ENXPOW,X
		LDA	#00100H
		STA	!ENGMAX,X
		LDA	#00100H
		LDY	!ENXSPD+1,X
		BPL	WTBMV0006		; [->WTBMV0006]
;
		LDA	#0FF00H
WTBMV0006	EQU	$
		STA	!ENXMAX,X
WTBMV0008	EQU	$
		LDA	!ENSTFG
		ORA	!BIRIBIRI
		ORA	!ITEMNO
		BNE	WTBMV0010		; 敵ストップ？ [yes->WTBMV0010]
;
WTBMV000A	EQU	$
		LDA	!ENMOD0,X
		ORA	#0000000001100000B	; 食べられない、当たらない！！
		STA	!ENMOD0,X
		LDA	!ENMOD2,X
		ORA	#0000000000000100B	; 範囲外クリア！！
		STA	!ENMOD2,X
WTBMV0010	EQU	$
		JSL	>ENMDCK			; mode check
;
		LDA	<ENWRK4,X
		BEQ	WTBMV0200		; [->WTBMV0200]
;
		JSR	WATABCLRCK		; 綿ぼう範囲チェック！！
;
		LDA	<ENWRK2,X
		BEQ	WTBMV0040		; [->WTBMV0040]
;
		LDA	!ENTIM0,X
		BNE	WTBMV0020		; [->WTBMV0020]
;
		STZ	<ENWRK2,X
		JMP	WATABOURESET2
;
WTBMV0020	EQU	$
		JSR	WTBCRCK0090
;
WTBMV0040	EQU	$
		JSR	WATABOUCRCK
;
		LDY	#00
		LDA	<ENWRK0,X
		CMP	!ENYPSL,X
		BMI	WTBMV0080		; top side ? [no->WTBMV0080]
;
		LDY	#02
WTBMV0080	EQU	$
		LDA	WATABGMAXDAT,Y
		STA	!ENGMAX,X
;
		LDY	#00
		LDA	!ENYSPD,X
		EOR	!ENGMAX,X
		BMI	WTBMV00C0		; 中間ポーズ ? [no->WTBMV00C0]
;
		LDA	!ENYSPD,X
		CLC
		ADC	#00060H
		CMP	#00060H*2
		BCC	WTBMV0120		; 中間ポーズ ? [no->WTBMV0120]
;
		LDA	!ENYSPD,X
		CLC
		ADC	#000a0H
		CMP	#000a0H*2
		BCC	WTBMV0100		; 中間ポーズ ? [yes->WTBMV0100]
;
WTBMV00C0	EQU	$
		INY
		LDA	!ENYSPD,X
		BMI	WTBMV0100		; 上昇中 ? [yes->WTBMV0100]
;
		INY
WTBMV0100	EQU	$
		TYA
		AND	#000FFH
		STA	!ENCHPT,X
WTBMV0120	EQU	$
;;;;;;;;		JSL	>EPCRCK
;
		RTL
;
WTBMV0200	EQU	$
		RTL
;
;
WATABOUCRCK	EQU	$
		LDY	!ECRSFG,X
		BPL	WTBCRCK0040		; プレイヤー衝突 ? [no->WTBCRCK0040]
;
		LDA	#00021H
		JSL	>SOUND_3_ON		; サウンド セット !!
;
		LDA	#00400H
		STA	!FURA_FG		; プレイヤー フラフラ フラグ セット
		LDA	#03H
		STA	BG2OF_FG
		LDA	#010H
		STA	BIRIBIRI
		BRA	WTBCRCK0080
;
WTBCRCK0040	EQU	$
		DEY
		BMI	WTBCRCK00A0		; 衝突 ? [no->WTBCRCK00A0]
		BEQ	WTBCRCK00A0		; 赤ちゃん ? [yes->WTBCRCK00A0]
;
		LDA	!ENMODE,Y
		CMP	#EMOVE
		BNE	WTBCRCK00A0		; move mode ? [no->WTBCRCK00A0]
;
		LDA	!ENSHOT,Y
		BEQ	WTBCRCK00A0		; shot ? [no->WTBCRCK00A0]
;
;[1995.05.08.MO]		TYX
;[1995.05.08.MO]		JSL	>SHOT_EN_KILL
;[1995.05.08.MO];
;[1995.05.08.MO]		LDX	<ENINDX
		LDA	#0003AH
		JSL	>SOUND_3_ON		; サウンド セット！！
;
WTBCRCK0080	EQU	$
;[1995.03.23.TH]		STZ	!ENXSPD,X
;[1995.03.23.TH]		STZ	!ENYSPD,X
;[1995.03.23.TH]		STZ	!ENGPOW,X
;[1995.03.23.TH]		LDA	#01
;[1995.03.23.TH]		STA	<ENWRK2,X
;[1995.03.23.TH]		LDA	#03
;[1995.03.23.TH]		STA	!ENTIM0,X
;[1995.03.23.TH];
;[1995.03.23.TH]		M8				; memory 8bit mode !!
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	#0FFH
;[1995.03.23.TH]		STA	!ENYUSN,X
;[1995.03.23.TH];
;[1995.03.23.TH]		M16				; memory 16bit mode !!
;[1995.03.23.TH];
WTBCRCK0090	EQU	$
		JSL	>FSMK0_SET_S
;
		BRA	WATABOURESET
;
;[1995.03.23.TH]		PLA
;[1995.03.23.TH]		RTL
;
WTBCRCK00A0	EQU	$
		RTS
;
;
WATABCLRCK	EQU	$
		LDA	!ENDSXL,X
		CLC
		ADC	#watabouleftclr
		CMP	#watabouxarea
		BCS	WATABOURESET		; 横 範囲内 ? [no->WATABOURESET]
;
;[1995.03.24.FR]		LDA	<ENWRK0,X
;[1995.03.24.FR]		SEC
;[1995.03.24.FR]		SBC	!SCCV1
		LDA	!ENDSYL,X
		CLC
		ADC	#wataboutopclr
		CMP	#watabouyarea
		BCS	WATABOURESET		; 縦 範囲内 ? [no->WATABOURESET]
;
		RTS
;
WATABOURESET	EQU	$
		PLA
WATABOURESET2	EQU	$
;
		DEC	!WATAB_COUNT		; 綿ぼうフラグ ｏｆｆ！！
;
		LDA	<ENWRK4,X
		TRB	!WATAB_STLIN		; ラインビット ｏｆｆ！！
;
		JMP	>ENCLEAR
;
;
;[1995.03.23.TH]		LDA	!WATB_ST_FG
;[1995.03.23.TH]		BEQ	WATABOUCLEAR		; 綿ぼうクリア ? [yes->WATABOUCLEAR]
;[1995.03.23.TH];
;[1995.03.23.TH]		M8				; memory 8bit mode !!
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	#005H
;[1995.03.23.TH]		STA	!ENYUSN,X
;[1995.03.23.TH];
;[1995.03.23.TH]		M16				; memory 16bit mode !!
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	!SCHMK1
;[1995.03.23.TH]		STA	!ENMUKI,X
;[1995.03.23.TH]		LDA	#watabougpow
;[1995.03.23.TH]		STA	!ENGPOW,X
;[1995.03.23.TH];
;[1995.03.23.TH]		LDA	<RANDM0
;[1995.03.23.TH]		AND	#00003H
;[1995.03.23.TH]		ASL	A
;[1995.03.23.TH]		ASL	A
;[1995.03.23.TH]		ORA	!SCHMK1
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	!SCCH1
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABXPS,Y
;[1995.03.23.TH]		STA	!ENXPSL,X		; X ポジションセット
;[1995.03.23.TH]		AND	#00010H
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		LSR	A
;[1995.03.23.TH]		TAY
;[1995.03.23.TH]		LDA	WATABGMAXDAT,Y
;[1995.03.23.TH]		STA	!ENGMAX,X		; G-MAX セット !!
;[1995.03.23.TH]		PHY
;[1995.03.23.TH]		LDY	<ENWRK4,X		; 綿ぼうインデックス
;[1995.03.23.TH]		LDA	!SCCV1
;[1995.03.23.TH]		AND	#0FF00H
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPS,Y
;[1995.03.23.TH]		STA	<ENWRK0,X
;[1995.03.23.TH]		PLY
;[1995.03.23.TH]		CLC
;[1995.03.23.TH]		ADC	WATABYPOSDTA,Y
;[1995.03.23.TH]		STA	!ENYPSL,X		; Y ポジションセット
;[1995.03.23.TH]		STZ	!ENYSPD,X		; Y スピードセット !!
;[1995.03.23.TH]		LDY	!ENMUKI,X
;[1995.03.23.TH]		LDA	WATABXSPD,Y
;[1995.03.23.TH]		STA	!ENXSPD,X		; X スピードセット !!
;[1995.03.23.TH];
;[1995.03.23.TH]		M8				; memory 8bit mode !!
;[1995.03.23.TH];
;[1995.03.23.TH]		STZ	!ENXSDR,X
;[1995.03.23.TH]		STZ	!ENYSDR,X
;[1995.03.23.TH];
;[1995.03.23.TH]		M16				; memory 16bit mode !!
;[1995.03.23.TH];
;[1995.03.23.TH]		RTL
;[1995.03.23.TH];
;[1995.03.23.TH];
;[1995.03.23.TH]WATABOUCLEAR	EQU	$
;[1995.03.23.TH]		JMP	>ENCLEAR
;
;
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;
		END
;
;
