;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: enemy sub.1					*
;*	file name	: ys_dorobo					*
;*									*
;************************************************************************
;
;
		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
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	DOROBIN,DORB2IN,DORBFIN,DRBF2IN,DORBLIN,DORBRIN
		GLB	GEROZIN,TJUGMIN
;
		GLB	DOROBMV,DORB2MV,DORBFMV,DRBF2MV,DORBLMV,DORBRMV
		GLB	GEROZMV,TJUGMMV
;
		GLB	DOROBFL,DORB2FL,DORBLFL,DORBRFL
		GLB	GEROZFL,TJUGMFL
;
		GLB	POSITION_SAVE,GEPPU_SET,GEROZ_TO_FALL
;
		GLB	DOROB_RMODE0
		GLB	DOROB_RMODE1
		GLB	DOROB_RMODE2
		GLB	DOROB_RMODE3
		GLB	DOROB_RMODE4
		GLB	DOROB_RMODE5
		GLB	DOROB_RMODE60
		GLB	DOROB_RMODE6
		GLB	DOROB_RMODE7
		GLB	DOROB_RMODE8
		GLB	DOROB_RMODE81
		GLB	DOROB_RMODE9
		GLB	DOROB_RMODE91
;
		GLB	DOROB_R5_CHCT
;
		GLB	DOROB_R5_CHPT
;
		GLB	GEROZ_RMODE60
;
		GLB	TJUGM_RMODE0
		GLB	TJUGM_RMODE1
		GLB	TJUGM_RMODE2
		GLB	TJUGM_RMODE3
		GLB	TJUGM_RMODE4
;
		GLB	COURSE_CHECK
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< sy_main >------------------------------------------------
		EXT	D_00,GMIN
		EXT	SOUND_3_ON
;
;-------------< sy_rpro >------------------------------------------------
		EXT	JSRSUB
		EXT	CHIPON
		EXT	CHIPON_RAM_READ
;
;-------------< sy_play >------------------------------------------------
		EXT	EBSTAT
		EXT	PFAL,PSTP,PMOV
		EXT	PFLP,PSHT,PDEM,PRET
		EXT	PUSHTM,PUSHPT
		EXT	BERO_CANCEL
;
;-------------< sy_bgsc >------------------------------------------------
		EXT	BGCG,TGTM
		EXT	UNITCHG
;
;-------------< sy_enmy >------------------------------------------------
		EXT	ENEMY,ENINSB
		EXT	ENMOVE,ENCLEAR,ENCLEAR_NORETN,DISPCK0,DISPCK1,DISPCK2,DISPCK3
		EXT	ENINSR,ENINSR_I,ENINSR2,EEXCHK,EEYCHK,EEXYCK,ESTATST
		EXT	PLFLST_2
		EXT	SCOREST
		EXT	ENMDCK,XSDOWN,EPCRCK,MUKEOR,XSPEOR,MKEOR2,PLFLST
		EXT	EGGSET,EGG_SP_CHECK,EGG_OPTION,EGGKILL_ALL
		EXT	SHOT_EN_KILL,SHOT_EN_KILL_S,ENDEATH_SET_4
		EXT	EXIST_CHECK,EXIST_CHECK_S,NON_EXIST_SET,NON_EXIST_SET2
		EXT	PDON0ST_2
;
		EXT	ENDEATH_SET
;
		EXT	PL_1UP_SET,PL_3UP_SET,PL_UP_SET,BEAT_P_SET
;
		EXT	EINIT,EFAIL,ECHNG,EMOVE,EEATM,ENOSE,EBABL,EFALL
;
		EXT	EATMXS,NOSWT
;
		EXT	ENFAIL0
;
		EXT	EN_XYMOVE,EN_TIMER
;
		EXT	FSMK0_SET2,FSMK0_SET3
;
		EXT	TROBJ_SR_2x2,TROBJ_SR_4x4,TROBJ_SR_8x8,TROBJ_SR_8x4
		EXT	TROBJ_SR_2x2_CL,TROBJ_SR_4x4_CL,TROBJ_SR_8x8_CL
		EXT	TROBJ_SR_8x4_CL
		EXT	TROBJ_OAM_8x4
		EXT	TROBJ_OAM_2x2,TROBJ_OAM_4x4,TROBJ_OAM_8x8,TROBJ_OAM_8H8
		EXT	TROBJ_OAM_2x2_I,TROBJ_OAM_4x4_I,TROBJ_OAM_8x8_I
		EXT	TROBJ_CLEAR,TROBJ_CANCEL
		EXT	TROBJ_PLOT_X,TROBJ_PLOT_Y
;
;-------------< sy_enmy2 >------------------------------------------------
		EXT	NLFLRIN,NLFUDIN
;
		EXT	TAMA_NORI_XREV,YUKID_PLCHK3
;
;-------------< sy_enmy3 >------------------------------------------------
		EXT	POBBGCR
		EXT	ICE_IN_CK,MONKY_FAIL_SET
		EXT	GO_NEXTGOTO,TO_PLDEMO_2,BOSS_CLEAR_M,BSCLW_SET_M
;
;-------------< sy_enmy4 >------------------------------------------------
		EXT	ZOOM_PLCHK
;
		EXT	GABON_EATCHK
;
;-------------< ys_enmy8 >------------------------------------------------
		EXT	AWANH_BGBR0_SET
;
;-------------< ys_babym >------------------------------------------------
		EXT	BABYM_RMODE00
		EXT	BABYM_RMODE10
		EXT	BABYM_RMODE38
		EXT	BABYM_RMODE40
		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
		EXT	BABYM_RETN_CHG
		EXT	BABYM_DOROB_CUT
		EXT	BABYM_DOROB_C2
;
;-------------< sy_exst >------------------------------------------------
		EXT	EXINSR
;
;-------------< sy_game >------------------------------------------------
		EXT	FWR_MSG
;
;-------------< sy_unit >------------------------------------------------
		EXT	UNDTADD,UNDATA,RUTDATA
;
;-------------< ys_data >------------------------------------------------
		EXT	SIN,COS
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
BABY_INDEX	EQU	00H
;
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
		EXTEND
;
		MEM16
		IDX8
;
		DPAGE	EN0RAM
;
Group_E		GROUP	Dorobo_pro
Dorobo_pro	SECT	REL
;
;************************************************************************
;*		dummy subroutine					*
;************************************************************************
DUMMY_SUB	EQU	$
		TYX
		RTS
;
;************************************************************************
;*		initial ( どろぼうさん )				*
;************************************************************************
DOROBLR_XREV	EQU	$
		WORD	0FFFCH,00004H
;
DORBLIN		EQU	$			;-- dorblin --
DORBRIN		EQU	$			;-- dorbrin --
		LDA	#0001EH
		STA	ENCHPT,X

		LDA	ENMYNO,X
		SEC
		SBC	#DORBL
		ASL	A
		STA	ENMUKI,X
		TAY
		LDA	!DOROBLR_XREV,Y
		CLC
		ADC	ENXPSL,X
		STA	ENXPSL,X

		LDY	#DOROB_RMODE9
		STY	<ENWRK2,X

DOROBIN		EQU	$			;-- dorobin --
		LDA	#00001			;振り返り回数セット
		STA	<ENCONT,X

		STZ	ENWRKA,X
		STZ	ENWRKC,X		;アイテムＧＥＴフラグクリア

		RTL
;
;************************************************************************
;*		move ( どろぼうさん )					*
;************************************************************************
;B		ENWRK0	アイテムのオフセットＸ　ＰＯＳ．
;B		ENWRK1		”	　　Ｙ　ＰＯＳ．
;B		ENWRK2	ROUTINE MODE INDEX
;B		ENWRK3
;B		ENWRK4	タマゴ当てダメージカウンター
;B		ENWRK5	踏まれダメージカウンター
;		ENWRK6	キャラパターンカウンター
;		ENWRK8	アイテムチェックフラグ（赤ちゃんロック）0...free !0...lock
;		ENWRKA	目的地Ｘ　ＰＯＳ．(SUB0,1) ／ジャンプ種類フラグ 0... no BG  2... near BABY
;		ENWRKC	アイテムＧＥＴフラグ  0...nothing  2...get item
;
;		ENTIM0	あせセットタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2	パニックタイマー
;		ENTIM3	サーチロックタイマー
;
;		ENCONT	振り返り回数／ジャンプした後フラグ
;
DOROB_SUB	EQU	$
DOROB_0		EQU	$
		WORD	DOROB_SUB0	;きょろきょろ
DOROB_1		EQU	$
		WORD	DOROB_SUB1	;歩き　ｏｒ　タックル（ＮＯＲＭＡＬ）
DOROB_2		EQU	$
		WORD	DOROB_SUB2	;喜びのジャンプ
DOROB_3		EQU	$
		WORD	DOROB_SUB3	;喜びのつっぱしり
DOROB_4		EQU	$
		WORD	DOROB_SUB4	;カベジャンプ前のきょろきょろ
DOROB_5		EQU	$
		WORD	DOROB_SUB5	;とんずらでＧＯ！　ＧＯ！
DOROB_60	EQU	$
		WORD	DOROB_SUB60	;喜びのジャンプ踏ん張り
DOROB_6		EQU	$
		WORD	DOROB_SUB6	;喜びのカベ乗り越えジャンプ
DOROB_7		EQU	$
		WORD	DOROB_SUB7	;ちょっとこまった（がけの手前）
DOROB_8		EQU	$
		WORD	DOROB_SUB8	;ごんごろりん
DOROB_81	EQU	$
		WORD	DOROB_SUB81	;ふまれた
DOROB_9		EQU	$
		WORD	DOROB_SUB9	;かくれんぼ
DOROB_91	EQU	$
		WORD	DOROB_SUB91	;プレイヤーが来たから赤ちゃんぽいっ！
;
DOROB_RMODE0	EQU	(DOROB_0-DOROB_SUB)
DOROB_RMODE1	EQU	(DOROB_1-DOROB_SUB)
DOROB_RMODE2	EQU	(DOROB_2-DOROB_SUB)
DOROB_RMODE3	EQU	(DOROB_3-DOROB_SUB)
DOROB_RMODE4	EQU	(DOROB_4-DOROB_SUB)
DOROB_RMODE5	EQU	(DOROB_5-DOROB_SUB)
DOROB_RMODE60	EQU	(DOROB_60-DOROB_SUB)
DOROB_RMODE6	EQU	(DOROB_6-DOROB_SUB)
DOROB_RMODE7	EQU	(DOROB_7-DOROB_SUB)
DOROB_RMODE8	EQU	(DOROB_8-DOROB_SUB)
DOROB_RMODE81	EQU	(DOROB_81-DOROB_SUB)
DOROB_RMODE9	EQU	(DOROB_9-DOROB_SUB)
DOROB_RMODE91	EQU	(DOROB_91-DOROB_SUB)
;
DOROB_R2_CHCT	EQU	007H
DOROB_R5_CHCT	EQU	012H
DOROB_R6_CHCT	EQU	007H
DOROB_R7_CHCT	EQU	007H
DOROB_R8_CHCT	EQU	00AH
DOROB_R81_CHCT	EQU	007H
DOROB_R91_CHCT	EQU	007H
;
DOROB_R2_CHPT	EQU	017H
DOROB_R5_CHPT	EQU	000H
DOROB_R60_CHPT	EQU	004H
DOROB_R6_CHPT	EQU	017H
DOROB_R7_CHPT	EQU	017H
DOROB_R8_CHPT	EQU	012H
DOROB_R81_CHPT	EQU	015H
;
DOROBMV		EQU	$		;-- dorobmv --
DORBLMV		EQU	$		;-- dorblmv --
DORBRMV		EQU	$		;-- dorbrmv --
;		ldy	#004h
;		sty	2100h
;
		LDA	#1111110000100000B	;プレイヤーにあたらない
		LDY	<ENWRK2,X		;かくれんぼ中ｏｒプレイヤーが来たから赤ちゃんぽいっ！ ?
		CPY	#DOROB_RMODE9		;
		BPL	DOROBMV0100		; yes: DOROBMV0100

		LDY	BABYNO+1		;赤ちゃんプレイヤーに乗ってる ?
		BMI	DOROBMV0100		; yes: DOROBMV0100

		LDY	ENWRKC,X		;赤ちゃんを担いでる ?
		BNE	DOROBMV0100		; yes: DOROBMV0100

		LDA	#0111110000100000B	;プレイヤーにあたる

DOROBMV0100	EQU	$
		STA	ENMOD0,X

DOROBMV0200	EQU	$
		LDA	#00040H
		STA	ENGPOW,X

		JSR	DOROB_MDCHK

		TXY
		LDA	<ENWRK2,X
		AND	#000FFH
		TAX
		JSR	(DOROB_SUB,X)

;		ldy	#00fh
;		sty	2100h
;
		RTL
;
;---------------< モード＆アイテム補正チェック >-----------------
;
DOROB_MDCHK	EQU	$
		LDA	ENMODE,X		;ＭＯＶＥ ?
		CMP	#EMOVE			;
		BEQ	DOROB_MDCHK0080		; yes: DOROB_MDCHK0080
		CMP	#EEATM
		BEQ	DOROB_MDCHK0040
		JMP	DOROB_MDCHK0500		;  no: DOROB_MDCHK0500

DOROB_MDCHK0040 EQU	$
		JMP	DOROB_EATCANCEL

DOROB_MDCHK0080 EQU	$
		LDA	ENSHOT,X		;ショットされてる ?
		BNE	DOROB_MDCHK0400		; yes: DOROB_MDCHK0400

		LDY	<ENWRK2,X		;かくれんぼ中 ?
		CPY	#DOROB_RMODE9		;
		BEQ	DOROB_MDCHK0100		; yes: DOROB_MDCHK0090

		LDA	ENSTFG
		ORA	BIRIBIRI
		ORA	ITEMNO
		BNE	DOROB_MDCHK0100

		JSR	DOROB_PLCHK		;ここをどないかせぇ〜どないか！！

DOROB_MDCHK0100 EQU	$
		LDA	ENXPSL,X
		LDY	ENMUKI,X		;右向き ?
		BNE	DOROB_MDCHK0120		; yes: DOROB_MDCHK0120

		CMP	#00014H			;コース左端 ?
		BMI	DOROB_MDCHK0140		; yes: DOROB_MDCHK0140
		BRA	DOROB_MDCHK0200

DOROB_MDCHK0120 EQU	$
		SEC
		SBC	#000F0H
		CMP	PLSCRL_MAXX		;コース右端 ?
		BMI	DOROB_MDCHK0200		;  no: DOROB_MDCHK0200

DOROB_MDCHK0140 EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	DOROB_MDCHK0200		;  no: DOROB_MDCHK0200

		LDY	<ENWRK2,X
		CPY	#DOROB_RMODE91
		BEQ	DOROB_MDCHK0200

		JSR	DOROB_SP_JUMP

DOROB_MDCHK0200 EQU	$
		JSL	>DISPCK2		;画面内 ?
		BCS	DOROB_MDCHK0300		;  no: DOROB_MDCHK0300
		JMP	DOROB_MDCHK0800		; yes: DOROB_MDCHK0800

DOROB_MDCHK0300 EQU	$
		JSR	ITEM_REV

		PLA				;直接［ＲＴＬ］
		RTL

DOROB_MDCHK0400 EQU	$
		JSR	ITEM_CUT

		JSL	>DISPCK2		;画面内 ?
		BCC	DOROB_MDCHK0450		; yes: DOROB_MDCHK0450

		JSL	>ENCLEAR

DOROB_MDCHK0450 EQU	$
		PLA				;直接［ＲＴＬ］
		JSL	>ENMDCK

;---- ショット終了後の処理
		LDA	ENMYNO,X
		CMP	#DOROB
		BEQ	DOROB_MDCHK0480

		LDA	#1111110000100000B
		STA	ENMOD0,X
		LDA	#0000100000000001B	;敵にする
		STA	ENMOD1,X		;
		LDA	#00002
		STA	ENYUSN,X

DOROB_MDCHK0480 EQU	$
DOROB_SIT_DOWN2 EQU	$
		LDY	#DOROB_RMODE8
		STY	<ENWRK2,X
		LDA	#DOROB_R8_CHCT
		STA	ENWRK6,X
		LDA	#DOROB_R8_CHPT
		STA	ENCHPT,X

		RTL

DOROB_MDCHK0500 EQU	$
		JSR	ITEM_CUT

		PLA				;直接［ＲＴＬ］
		LDA	ENMODE,X
		CMP	#EFALL
		BEQ	DOROB_MDCHK0710
		CMP	#EEATM
		BNE	DOROB_MDCHK0780

DOROB_MDCHK0710 EQU	$
		JSL	>ENMDCK

DOROB_MDCHK0780 EQU	$

		RTL

DOROB_MDCHK0800 EQU	$
		PLA
		STA	<EWORK0
		JSL	>ENMDCK
		LDA	<EWORK0
		PHA
		RTS
;
DOROB_COIN_XSP	EQU	$
		WORD	00000H,00100H,0FF00H
DOROB_COIN_YSP	EQU	$
		WORD	0FD80H,0FE00H,0FE00H
DOROB_PL_XSPD	EQU	$
		WORD	0FF00H,00100H
;
DOROB_PLCHK	EQU	$
		LDY	ECRSFG,X		;プレイヤーと接触した ?
		BEQ	DOROB_PLCHK0800		;  no: DOROB_PLCHK0800
		BMI	DOROB_PLCHK1000		; yes: DOROB_PLCHK1000

DOROB_PLCHK0100 EQU	$
		LDY	ECRSFG,X
		LDA	ENMODE-1,Y
		CMP	#EMOVE
		BNE	DOROB_PLCHK0200
		LDA	ENSHOT-1,Y
		BEQ	DOROB_PLCHK0200

		JMP	DOROB_SHOT_KILL

DOROB_PLCHK0200 EQU	$
		PLA
		STA	<EWORK0
		PLA
		STA	<EWORK2
		JSL	>EPCRCK
		LDA	<EWORK2
		PHA
		LDA	<EWORK0
		PHA

DOROB_PLCHK0800 EQU	$

		RTS

DOROB_PLCHK1000 EQU	$
		LDA	SUPER_FLAG		;プレイヤーすーぱー赤ちゃんまりお ?
		BNE	DOROB_PLCHK1708		; yes: DOROB_PLCHK1708

		LDY	PLYSPD+1		;プレイヤー上昇中 ?
		BMI	DOROB_PLCHK0800		; yes: DOROB_PLCHK0800

		LDA	EPWIDY,X		;プレイヤーに踏まれた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF8H			;
		BCC	DOROB_PLCHK0800		;  no: DOROB_PLCHK0800

		LDY	ENWRKC,X		;アイテム持ってる ?
		DEY
		BMI	DOROB_PLCHK1700		;  no: DOROB_PLCHK1700

		LDA	ENTIM3+BABY_INDEX	;赤ちゃんプレイヤーチェックロック ?
		BEQ	DOROB_PLCHK1600		;  no: DOROB_PLCHK1600

DOROB_SP_JUMP	EQU	$
		LDY	#DOROB_RMODE91
		STY	<ENWRK2,X
		LDA	#DOROB_R91_CHCT
		STA	ENWRK6,X
		LDA	#00017H
		STA	ENCHPT,X
		LDA	#0FC00H
		STA	ENYSPD,X
		STZ	<ENCONT,X
		LDA	#00020H
		STA	ENTIM3+BABY_INDEX
		RTS

DOROB_PLCHK1600 EQU	$
		JSL	>BABYM_RETN_CHG

DOROB_PLCHK1700 EQU	$
		LDA	PLBGCR			;プレイヤー頭打ってる ?
		AND	#0000000000011000B	;
		BNE	DOROB_PLCHK0800		; yes: DOROB_PLCHK0800

		LDA	#0FA00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDY	EPXMUK,X
		LDA	!DOROB_PL_XSPD,Y
		STA	PLXSPD
		STA	PLMVSP

		LDY	PLDOSN			;どすん中 ?
		BNE	DOROB_PLCHK1708		; yes: DOROB_PLCHK1708

		LDY	<ENWRK5,X		;踏まれ過ぎ ?
		INY				;
		CPY	#003			;
		BMI	DOROB_PLCHK1800		;  no: DOROB_PLCHK1800

DOROB_PLCHK1708 EQU	$
		JSR	DOROB_TO_DEAD

DOROB_PLCHK1720 EQU	$
		JMP	DOROB_CLEAR

DOROB_PLCHK1800 EQU	$
		STY	<ENWRK5,X

		LDA	#0001CH			;［Ｓ］
		JSL	>SOUND_3_ON

		STZ	ENXPOW,X
		STZ	ENXSPD,X

DOROB_SIT_DOWN	EQU	$
		LDA	#DOROB_R81_CHCT
		STA	ENWRK6,X
		LDA	#DOROB_R81_CHPT
		STA	ENCHPT,X
;;;;;;;;		LDA	#040H*001H		;ストップタイマーセット
;;;;;;;;		STA	ENTIM1,X		;
		LDA	#00001			;ストップタイマーセット
		STA	ENTIM1,X
		LDY	#DOROB_RMODE81
		STY	<ENWRK2,X

		RTS
;
DOROB_TO_DEAD	EQU	$
		LDY	#004H

DOROB_T_D0100	EQU	$
		LDA	!DOROB_COIN_XSP,Y
		STA	<EWORK0
		LDA	!DOROB_COIN_YSP,Y
		STA	<EWORK2
		PHY

		LDA	#COIN1
		JSL	>ENINSR_I
		BCC	DOROB_T_D0800

		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDA	ENYPSL,X
		STA	ENYPSL,Y
		LDA	<EWORK0
		STA	ENXSPD,Y
		LDA	<EWORK2
		STA	ENYSPD,Y

		PLY
		DEY
		DEY
		BPL	DOROB_T_D0100

		RTS

DOROB_T_D0800	EQU	$
		PLY

		RTS
;
DOROB_EC_XSPD	EQU	$
		WORD	00100H,0FF00H
;
DOROB_EATCANCEL EQU	$
		JSR	ITEM_CUT

DORB2_EATCANCEL EQU	$
		LDA	#EMOVE
		STA	ENMODE,X
		STZ	EATSTP

		LDA	#0003CH			;［Ｓ］
		JSL	>SOUND_3_ON

		LDY	#002
		LDA	BERFLG
		CMP	#003
		BMI	DOROB_ECAN0100

		INY
		INY

DOROB_ECAN0100	EQU	$
		STY	BERFLG
		CPY	#002			;横から食われた ?
		BEQ	DOROB_ECAN0500		; yes: DOROB_ECAN0500

		LDY	EPYMUK,X		;上から食われた ?
		BEQ	DOROB_ECAN0500		; yes: DOROB_ECAN0500

		LDA	#0FD00H
		BRA	DOROB_ECAN0700

DOROB_ECAN0500	EQU	$
		LDY	EPXMUK,X

DOROB_ECAN0600	EQU	$
		LDA	!DOROB_EC_XSPD,Y
		STA	ENXSPD,X
		LDA	#0FF00H

DOROB_ECAN0700	EQU	$
		STA	ENYSPD,X
		LDA	#00010H
		STA	ENXPOW,X
		STZ	ENXMAX,X

		JSR	DOROB_SIT_DOWN

		RTS
;
STEP_SOUND	EQU	$-1
		HEX	0C,0D,0E,0F,10,11,12
;
DOROB_SHOT_KILL EQU	$
		LDY	ECRSFG,X
		DEY
		TYX
;;;;;;;;		JSL	>SHOT_EN_KILL
		JSL	>ENDEATH_SET_4

		JSR	DOROB_DMG_CALC		;死ぬ ?
		BCC	DOROB_S_K0300		;  no: DOROB_S_K0300

DOROB_CLEAR	EQU	$
		PLA
		PLA
		JMP	>ENDEATH_SET

DOROB_S_K0300	EQU	$
		LDA	#0001CH			;［Ｓ］
		JSL	>SOUND_3_ON

		INC	<ENWRK4,X		;ダメージカウンターINC.

		JSR	ITEM_CUT

		LDY	ECRSFG,X
		LDA	ECENTX-1,Y
		LDY	#000
		SEC
		SBC	ECENTX,X
		BMI	DOROB_ECAN0600

		INY
		INY
		BRA	DOROB_ECAN0600
;
DOROB_COIN1_XSP EQU	$
		WORD	00100H,0FF00H
;
DOROB_DMG_CALC	EQU	$
		LDY	<ENWRK4,X		;１ｕｐする ?
		INY				;
		CPY	#004			;
		BMI	DOROB_D_C0100		;  no: DOROB_D_C0100

		PHY
		LDA	ENXPSL,X
		STA	WORK0
		LDA	ENYPSL,X
		STA	WORK2
		JSL	>PL_1UP_SET
		PLY				;消す ?
		CPY	#006			;
		BMI	DOROB_D_C0500		;  no: DOROB_D_C0500

		SEC
		RTS

DOROB_D_C0100	EQU	$
		LDY	ENMUKI,X
		LDA	!DOROB_COIN1_XSP,Y
		CLC
		ADC	ENXSPD,X
		STA	<EWORK2

		LDA	#COIN1
		JSL	>ENINSR
		BCC	DOROB_D_C0500

		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDA	ENYPSL,X
		STA	ENYPSL,Y
		LDA	<EWORK2
		STA	ENXSPD,Y
		LDA	#0FC00H
		STA	ENYSPD,Y
		LDA	#00100H
		STA	ENTIM0,Y
		LDA	#00140H
		STA	ENTIM1,Y
		LDA	#00020H
		STA	ENTIM2,Y

		LDY	<ENWRK4,X
		LDA	!STEP_SOUND+1,Y		;［Ｓ］
		AND	#000FFH
		JSL	>SOUND_3_ON

DOROB_D_C0500	EQU	$
		CLC
		RTS
;
ITEM_REV	EQU	$
		LDA	ENCBFG,X		;地面に着いてる ?
		AND	#00001			;
		BEQ	ITEM_REV0001		;  no: ITEM_REV0001

		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X

ITEM_REV0001	EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	ITEM_REV0800		;  no: ITEM_REV0800

		LDA	ENMODE+BABY_INDEX	;赤ちゃんいる ?
		CMP	#EMOVE			;
		BEQ	ITEM_REV0100		; yes: ITEM_REV0100

		LDY	ENWRKC+BABY_INDEX	;アイテムは担がれている ?
		BEQ	ITEM_CUT		;  no: ITEM_CUT

		CPX	<ENWRK0+BABY_INDEX	;アイテムを担いでるのは自分 ?
		BEQ	ITEM_REV0100		; yes: ITEM_REV0100

ITEM_CUT	EQU	$
		LDY	ENWRKC,X		;赤ちゃん担いでる ?
		DEY				;
		BMI	ITEM_CUT0800		;  no: ITEM_CUT0800

		LDY	<ENWRK2+BABY_INDEX	;
		CPY	#BABYM_RMODE60		;
		BEQ	ITEM_CUT0200		;
		CPY	#BABYM_RMODE61		;
		BNE	ITEM_CUT0800		;

ITEM_CUT0200	EQU	$
		JSL	>BABYM_DOROB_CUT

ITEM_CUT0800	EQU	$

		RTS
;
ITEM_REV0100	EQU	$
		LDA	ENXPSL,X		;アイテムＸ　ＰＯＳ．セット
		STA	ENXPSL,Y		;

		LDA	ENYPSL,X		;アイテムＹ　ＰＯＳ．セット
		SEC				;
		SBC	#0000EH			;
		STA	ENYPSL,Y		;

		LDA	#00000H			;アイテムＭＯＶＥロック
		STA	ENYSPD,Y		;

		RTS

ITEM_REV0800	EQU	$
		PLA				;直接［ＲＴＬ］
		PLA				;
		JMP	>ENCLEAR
;
BABY_REV3	EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	BABY_REV3800		;  no: BABY_REV3800

		JSL	>DISPCK2
		BCC	BABY_REV4000

		STZ	ENXSPD,X
		STZ	ENXPOW,X
		STZ	ENYSPD,X
		STZ	ENGPOW,X
		BRA	BABY_REV4000

BABY_REV3800	EQU	$
		JSL	>DISPCK2
		BCS	BABY_REV4800

		RTS
;
BABY_REV4	EQU	$
		LDA	ENCBFG,X		;地面に着いてる ?
		AND	#00001			;
		BEQ	BABY_REV4001		;  no: BABY_REV4001

		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X

BABY_REV4001	EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	BABY_REV4800		;  no: BABY_REV4800

BABY_REV4000	EQU	$
		LDA	ENMODE+BABY_INDEX
		CMP	#EMOVE
		BEQ	BABY_REV4100
		JMP	ITEM_CUT

BABY_REV4100	EQU	$
		LDA	ENXPSL,X		;赤ちゃんＸ　ＰＯＳ．セット
		STA	ENXPSL+BABY_INDEX	;

		LDA	ENYPSL,X		;赤ちゃんＹ　ＰＯＳ．セット
		SEC				;
		SBC	#0000EH			;
		STA	ENYPSL+BABY_INDEX	;

		STZ	ENYSPD+BABY_INDEX	;赤ちゃんＭＯＶＥロック

		RTS

BABY_REV4800	EQU	$
		PLA
		JMP	>ENCLEAR
;
BABY_REV5	EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	BABY_REV5800		;  no: BABY_REV5800

		JSL	>DISPCK2
		BCC	BABY_REV4000

		STZ	ENXSPD,X
		STZ	ENXPOW,X
		BRA	BABY_REV4000

BABY_REV5800	EQU	$
		JSL	>DISPCK2
		BCS	BABY_REV4800

		RTS
;
;---------------< ムーブサブルーチン >-----------------
;
DOROB_XMAX	EQU	$
		WORD	0FFA7H,00059H		;ウォークスピード
		WORD	0FE40H,001C0H		;リターンスピード／よろこびのスピード
		WORD	0FDE0H,00220H		;リターンスピード／よろこびのスピード
		WORD	0FD80H,00280H		;リターンスピード／よろこびのスピード
		WORD	0FE80H,00180H		;よろこび（にげ）のスピード
		WORD	0FE40H,001C0H		;よろこび（にげ）のスピード
		WORD	0FE00H,00200H		;よろこび（にげ）のスピード
;
DOROB_SUB0	EQU	$
DORB2_SUB00	EQU	$
		TYX

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

		LDA	<ENCONT,X		;振り返り終わり ?
		BEQ	DOROB_SUB0200		;
		DEC	<ENCONT,X		;
		BEQ	DOROB_SUB0200		; yes: DOROB_SUB0200

		LDA	#00010H			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00003			;
		AND	#0000BH			;
		STA	ENCHPT,X		;

DOROB_SUB0100	EQU	$
		LDA	ENMYNO,X
		CMP	#DORB2
		BEQ	DOROB_SUB0180

		JMP	ITEM_SEARCH

DOROB_SUB0180	EQU	$
		JMP	DORB2_PL_SEARCH

DOROB_SUB0200	EQU	$
		LDA	<RANDM0			;プレイヤーをサーチする ?
		BIT	#00003			;
		BNE	DOROB_SUB0300		;  no: DOROB_SUB0300

		LDA	EPXMUK,X		;キャラ向きセット
		AND	#000FFH			;
		BRA	DOROB_SUB0400		;
						;
DOROB_SUB0300	EQU	$			;
		XBA				;
		AND	#00002			;
						;
DOROB_SUB0400	EQU	$			;
		STA	ENMUKI,X		;
		TAY

		LDA	<RANDM0			;目標地セット
		AND	#0001FH			;
		CLC				;
		ADC	#00020H			;
		CPY	#002			;
		BEQ	DOROB_SUB0600		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
DOROB_SUB0600	EQU	$			;
		CLC				;
		ADC	ENXPSL,X		;
						;
DOROB_SUB0700	EQU	$			;
		STA	ENWRKA,X		;

		LDA	!DOROB_XMAX,Y		;Ｘ　ＭＡＸ　ＳＰＥＥＤセット
		STA	ENXMAX,X		;

		LDA	#00002
		STA	ENCHPT,X

		STZ	ENWRK6,X		;キャラパターンフラグクリア

		LDY	#DOROB_RMODE1		;routine mode index set
		STY	<ENWRK2,X		;

DOROB_SUB0800	EQU	$

		RTS
;
DOROB_ENCH_W	EQU	$
		HEX	007,006,005,004,003,002
;
;ENCHPT <- 002
DOROB_SUB1	EQU	$
DORB2_SUB01	EQU	$
		TYX

		JSR	DOROB_BGCK

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

		DEC	ENWRK6,X		;キャラパターンインデックス初期化 ?
		BPL	DOROB_SUB1200		;  no: DOROB_SUB1200

		LDY	#002
		LDA	#00005			;キャラパターンインデックス初期化
		STA	ENWRK6,X		;

DOROB_SUB1200	EQU	$
		LDA	#00003			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		LDY	ENWRK6,X
		LDA	!DOROB_ENCH_W,Y
		AND	#000FFH			;キャラパターンセット
		STA	ENCHPT,X		;

DOROB_SUB1500	EQU	$
		LDA	#0000BH			;Ｘ　ＰＯＷＥＲセット
		STA	ENXPOW,X		;

		LDA	ENXPSL,X		;目的地に着いた ?
		SEC				;
		SBC	ENWRKA,X		;
		CLC				;
		ADC	#00002H			;
		CMP	#00004H			;
		BCS	DOROB_SUB1800		;  no: DOROB_SUB1800

		LDA	<RANDM0			;振り返り回数セット
		AND	#00001H			;
		CLC				;
		ADC	#00003			;
		STA	<ENCONT,X		;

		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリアー
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリアー
		LDA	#00009
		STA	ENCHPT,X		;キャラパターンナンバーセット
		LDY	#000
		STY	<ENWRK2,X		;routine mode index set

DOROB_SUB1800	EQU	$
		LDA	ENMYNO,X
		CMP	#DORB2
		BEQ	DOROB_SUB1900

		JMP	ITEM_SEARCH

DOROB_SUB1900	EQU	$
DORB2_PL_SEARCH EQU	$
		LDY	EPXMUK,X		;プレイヤーが目の前にいる ?
		TYA				;
		CMP	ENMUKI,X		;
		BNE	DORB2_P_S0800		;  no: DORB2_P_S0800

		LDA	EPWIDX,X		;Ｘ　ＲＡＮＧＥ　ＯＫ ?
		CLC				;
		ADC	#00050H			;
		CMP	#000A0H			;
		BCS	DORB2_P_S0800		;  no: DORB2_P_S0800

		LDA	EPWIDY,X		;Ｙ　ＲＡＮＧＥ　ＯＫ ?
		CLC				;
		ADC	#00030H			;
		CMP	#00060H			;
		BCS	DORB2_P_S0800		;  no: DORB2_P_S0800

		LDA	#0FE00H			;驚きのジャンプ
		STA	ENYSPD,X		;

		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリア
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリア

		LDA	#DOROB_R2_CHCT
		STA	ENWRK6,X
		LDA	#DOROB_R2_CHPT
		STA	ENCHPT,X
		LDY	#DORB2_RMODE02
		STY	<ENWRK2,X

DORB2_P_S0800	EQU	$

		RTS
;
DOROB_TIM1_J	EQU	$
;		HEX	002,002,002,002,008,004,004
		HEX	001,001,001,001,004,002,002
DOROB_ENCH_J	EQU	$
		HEX	009,00C,01D,01C,01B,01A,019
;
;ENCHPT <- 017h		WRK6 <- 007	TIM1 <- 000
DOROB_SUB2	EQU	$
DORB2_SUB02	EQU	$
		TYX

		LDA	ENCBFG,X		;カベにぶつかった ?
		BIT	#0000CH			;
		BEQ	DOROB_SUB2100		;  no: DOROB_SUB2100

		PHA
		LDA	ENXPSL,X		;Ｘ　ＰＯＳ．補正
		SEC				;
		SBC	ENMOVX,X		;
		STA	ENXPSL,X		;
		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリア
		PLA

DOROB_SUB2100	EQU	$
		LDA	ENYSPD,X		;上昇中 ?
		BMI	DOROB_SUB2800		; yes: DOROB_SUB2800

		LDA	ENCBFG,X		;地面に着いた ?
		AND	#00001			;
		BNE	DOROB_SUB2200		; yes: DOROB_SUB2200

		LDA	#00018H
		STA	ENCHPT,X

		RTS

DOROB_SUB2200	EQU	$
		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	DOROB_SUB2800		;  no:DOROB_SUB2800

		DEC	ENWRK6,X		;キャラパターンチェンジ終わり ?
		BPL	DOROB_SUB2300		;  no: DOROB_SUB2300

		STZ	ENCHPT,X
		LDY	#DOROB_RMODE3
		LDA	ENMYNO,X
		CMP	#DORB2
		BNE	DOROB_SUB2280

		LDY	EPXMUK,X
		TYA
		EOR	#00002
		STA	ENMUKI,X

		LDY	#DORB2_RMODE11

DOROB_SUB2280	EQU	$
		STY	<ENWRK2,X

		RTS

DOROB_SUB2300	EQU	$
		LDY	ENWRK6,X
		LDA	!DOROB_TIM1_J,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!DOROB_ENCH_J,Y
		AND	#000FFH
		STA	ENCHPT,X

DOROB_SUB2800	EQU	$

		RTS
;
;ENCHPT <- 000
DOROB_SUB3	EQU	$
		TYX

		LDA	<ENCONT,X		;ジャンプした後 ?
		BPL	DOROB_SUB3010		;  no: DOROB_SUB3010

		JSR	DOROB_BGCK3

		STZ	<ENCONT,X
		BRA	DOROB_SUB3020

DOROB_SUB3010	EQU	$
		JSR	DOROB_BGCK2

DOROB_SUB3020	EQU	$
		LDA	#0000BH			;X POWER セット
		STA	ENXPOW,X		;

		LDA	ENXPSL+BABY_INDEX	;アイテムは左にある ?
		LDY	#000			;
		SEC				;
		SBC	ENXPSL,X		;
		PHA				;
		BMI	DOROB_SUB3100		; yes: DOROB_SUB3100

		INY
		INY

DOROB_SUB3100	EQU	$
		TYA				;
		STA	ENMUKI,X		;キャラ向きセット

		LDY	<ENWRK5,X
		TYA
		ASL	A
		ASL	A
		CLC
		ADC	ENMUKI,X
		TAY
		LDA	!DOROB_XMAX+4,Y		;Ｘ　ＭＡＸ　ＳＰＥＥＤセット
		STA	ENXMAX,X		;

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

		LDA	#00002			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00001H			;
		AND	#00001			;
		STA	ENCHPT,X		;

DOROB_SUB3400	EQU	$
		PLA

		CLC				;アイテムは近くにいる ?
		ADC	#00020H			;
		CMP	#00040H			;
		BCS	DOROB_SUB3460		;  no: DOROB_SUB3460

		LDA	ENYPSL+BABY_INDEX	;アイテムは上にいる ?
		SEC				;
		SBC	ENYPSL,X		;
		BPL	DOROB_SUB3460		;  no: DOROB_SUB3460

		CMP	#0FFA0H			;離れ過ぎ ?
		BMI	DOROB_SUB3460		; yes: DOROB_SUB3460

		CMP	#0FFE8H			;近づき過ぎ ?
		BPL	DOROB_SUB3460		; yes: DOROB_SUB3460

		LDY	BABYNO+1		;赤ちゃんプレイヤーに乗ってる ?
		BMI	DOROB_SUB3460		; yes: DOROB_SUB3460

DOROB_SUB3450	EQU	$
		EOR	#0FFFFH
		INC	A
		AND	#000F0H
		LSR	A
		LSR	A
		LSR	A
		TAY
		LDA	!DOROB_JUMP,Y		;ジャンプ Y SPEED セット
		STA	ENYSPD,X

		LDA	ENXSPD,X
		CMP	#08000H
		ROR	A
		CMP	#08000H
		ROR	A
		STA	ENXSPD,X

		LDA	#00002			;ジャンプ種類フラグセット
		STA	ENWRKA,X		;

		LDA	ENXPOW,X
		STA	ENWRK6,X
		STZ	ENXPOW,X

		STZ	ENGPOW,X
		LDY	#DOROB_RMODE60
		STY	<ENWRK2,X
		LDA	#DOROB_R60_CHPT
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X

		PLA				;after routine cansel !!
		RTL

DOROB_SUB3460	EQU	$
		JSR	ITEM_SEARCH2

		JSR	ITEM_CROSS		;目的のアイテムと接触した ?
		BCS	DOROB_SUB3800		;  no: DOROB_SUB3800

		M8
		LDA	<EWORK0			;アイテムのオフセットＸ　ＰＯＳ．セット
		STA	<ENWRK0,X		;
		LDA	<EWORK2			;　　　　　”　　　　Ｙ　ＰＯＳ．セット
		CLC				;
		ADC	#00EH			;
		STA	<ENWRK1,X		;
		M16

		LDY	#DOROB_RMODE5
		STY	<ENWRK2,X		;routine mode index set
		LDA	#DOROB_R5_CHPT
		STA	ENCHPT,X		;キャラパターンナンバーセット

DOROB_SUB3800	EQU	$

		RTS
;CHPT <- 9
DOROB_SUB4	EQU	$
		TYX

		JSR	DOROB_XREVISE

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

		LDA	<ENCONT,X		;振り返り終わり ?
		BEQ	DOROB_SUB4200		;
		DEC	<ENCONT,X		;
		BEQ	DOROB_SUB4200		; yes: DOROB_SUB4200

		LDA	#00008H			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00003			;
		AND	#0000BH			;
		STA	ENCHPT,X		;
		BRA	DOROB_SUB4800

DOROB_SUB4200	EQU	$
		LDY	ENWRK6,X
		LDA	!DOROB_JUMP,Y
		STA	ENYSPD,X
		STZ	ENGPOW,X
		LDA	#DOROB_R60_CHPT
		STA	ENCHPT,X
		LDA	#00004H
		STA	ENTIM1,X
		LDY	#DOROB_RMODE60
		STY	<ENWRK2,X

DOROB_SUB4800	EQU	$
		JMP	DOROB_ITEM_REV
;
;ENCHPT <-00
DOROB_SUB5	EQU	$
		TYX

		LDA	<ENCONT,X		;ジャンプした後 ?
		BPL	DOROB_SUB5100		;  no: DOROB_SUB5100

		JSR	DOROB_BGCK3

		STZ	<ENCONT,X
		BRA	DOROB_SUB5200

DOROB_SUB5100	EQU	$
		JSR	DOROB_BGCK2

DOROB_SUB5200	EQU	$
		LDA	EPXMUK,X		;キャラ向きセット
		AND	#000FFH			;
		STA	ENMUKI,X		;
		EOR	#00002
		TAY

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

		LDA	#00002			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00001			;
		STA	ENCHPT,X		;

DOROB_SUB5300	EQU	$
		LDA	ENMUKI,X		;キャラ向き反転
		EOR	#00002			;
		STA	ENMUKI,X		;
		LDY	<ENWRK5,X
		TYA
		ASL	A
		ASL	A
		CLC
		ADC	ENMUKI,X
		TAY
		LDA	!DOROB_XMAX+10H,Y	;Ｘ　ＭＡＸ　ＳＰＥＥＤセット
		STA	ENXMAX,X		;

		LDA	#0000BH			;Ｘ　ＰＯＷＥＲセット
		STA	ENXPOW,X		;

		LDA	ENTIM0,X		;あせセット ?
		BNE	DOROB_SUB5800		;  no: DOROB_SUB5800

		JSR	DOROB_ASE_SET

DOROB_SUB5800	EQU	$
DOROB_ITEM_REV	EQU	$
		JSR	ITEM_SEARCH2

		JMP	ITEM_LIFT
;
DOROB_SUB60	EQU	$
		TYX

		STZ	ENGPOW,X

		LDA	ENTIM1,X
		BNE	DOROB_SUB60100

		LDY	#DOROB_RMODE6		;routine mode index set
		STY	<ENWRK2,X
		LDA	#DOROB_R6_CHPT
		STA	ENCHPT,X
		LDA	#DOROB_R6_CHCT
		STA	ENWRK6,X

DOROB_SUB60100	EQU	$
		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X
		LDA	ENYPSL,X
		SEC
		SBC	ENMOVY,X
		STA	ENYPSL,X

DOROB_SUB60200	EQU	$
BABY_CHECK	EQU	$
		JSR	ITEM_SEARCH2

		LDA	ENWRKC,X		;アイテムを持ってる ?
		BEQ	DOROB_SUB60800		;  no: DOROB_SUB60800

		JSR	ITEM_LIFT

DOROB_SUB60800	EQU	$
		LDA	ENWRKC,X		;アイテムを持ってる ?
;;;;;;;;		ORA	ENWRKA,X		;赤ちゃんの近くで飛んだ ?
		BNE	DOROB_SUB60600		; yes: DOROB_SUB6600

		JSR	ITEM_CROSS		;目的のアイテムと接触した ?
		BCS	DOROB_SUB60600		;  no: DOROB_SUB6600

		M8
		LDA	<EWORK0			;アイテムのオフセットＸ　ＰＯＳ．セット
		STA	<ENWRK0,X		;
		LDA	<EWORK2			;　　　　　”　　　　Ｙ　ＰＯＳ．セット
		CLC				;
		ADC	#00EH			;
		STA	<ENWRK1,X		;
		M16

DOROB_SUB60600	EQU	$

		RTS
;
DOROB_RET_SUB	EQU	$
		WORD	DOROB_RMODE3
		WORD	DOROB_RMODE5
DOROB_BB_XSPD	EQU	$
		WORD	00200H,0FE00H
;
;ENCHPT <- 017h		WRK6 <- 007	TIM1 <- 000
DOROB_SUB6	EQU	$
DOROB_SUB91	EQU	$
		TYX

		JSR	DOROB_BGCK3

		LDA	ENYSPD,X		;上昇中 ?
		BMI	DOROB_SUB6500		; yes: DOROB_SUB6500

		LDY	<ENWRK2,X		;ただのジャンプ ?
		CPY	#DOROB_RMODE6		;
		BEQ	DOROB_SUB6100		; yes: DOROB_SUB6100

		LDY	ENWRKC,X		;赤ちゃん持ってる ?
		BEQ	DOROB_SUB6100		;  no: DOROB_SUB6100

		JSL	>BABYM_DOROB_C2
		LDA	#00040H			;赤ちゃんプレイヤーチェックロックタイマーセット
		STA	ENTIM3+BABY_INDEX	;
		LDY	EPXMUK,X
		LDA	!DOROB_BB_XSPD,Y
		STA	ENXSPD+BABY_INDEX
		LDA	ENXPSL,X
		STA	ENXPSL+BABY_INDEX
		LDA	ENYPSL,X
		STA	ENYPSL+BABY_INDEX
		STZ	ENWRK8,X		;赤ちゃんロックフラグクリア
		STZ	ENWRKC,X		;アイテムＧＥＴフラグクリア
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリア

DOROB_SUB6100	EQU	$
		LDA	ENCBFG,X		;地面に着いた ?
		AND	#00001			;
		BNE	DOROB_SUB6200		; yes: DOROB_SUB6200

		LDA	#00018H
		STA	ENCHPT,X
		BRA	DOROB_SUB6500

DOROB_SUB6200	EQU	$
		LDA	ENMOVY,X		;落下速度限界 ?
		CMP	#00003			;
		BMI	DOROB_SUB6280		;  no: DOROB_SUB6280

		STZ	ENXSPD,X

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

		DEC	ENWRK6,X		;キャラパターンチェンジ終わり ?
		BPL	DOROB_SUB6300		;  no: DOROB_SUB6300

DOROB_SUB6280	EQU	$
		STZ	ENCHPT,X
		LDY	ENWRKC,X
		LDA	!DOROB_RET_SUB,Y
		TAY
		STY	<ENWRK2,X

		LDA	#0FFFFH			;ジャンプした後フラグセット
		STA	<ENCONT,X		;

		RTS

DOROB_SUB6300	EQU	$
		LDY	ENWRK6,X
		LDA	!DOROB_TIM1_J,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!DOROB_ENCH_J,Y
		AND	#000FFH
		STA	ENCHPT,X

DOROB_SUB6500	EQU	$
		LDY	<ENWRK2,X		;ただのジャンプ ?
		CPY	#DOROB_RMODE6		;
		BEQ	DOROB_SUB6800		; yes: DOROB_SUB6800

		LDY	ENWRKC,X		;赤ちゃん持ってる ?
		BEQ	DOROB_SUB6700		;  no: DOROB_SUB6700

		JSR	ITEM_LIFT

DOROB_SUB6700	EQU	$
		RTS

DOROB_SUB6800	EQU	$
		JMP	BABY_CHECK
;
DOROB_SUB7	EQU	$
		TYX

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

		LDA	#00002			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;
		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00001			;
		STA	ENCHPT,X		;

DOROB_SUB7400	EQU	$
		LDA	ENTIM2,X		;パニック中 ?
		BNE	DOROB_SUB7500		; yes: DOROB_SUB7500

		LDA	#DOROB_R5_CHCT
		STA	ENWRK6,X
		LDY	#DOROB_RMODE5		;routine mode index set
		STY	<ENWRK2,X

DOROB_SUB7500	EQU	$
		JSR	DOROB_BGCK2

		LDA	ENTIM0,X		;あせセット ?
		BNE	DOROB_SUB7700		;  no: DOROB_SUB7700

		JSR	DOROB_ASE_SET

DOROB_SUB7700	EQU	$
		JMP	DOROB_ITEM_REV
;
DOROB_TIM1_RT	EQU	$
		HEX	014,002,002,002,002,002,014,002,002,002
DOROB_ENCH_RT	EQU	$
		HEX	015,016,015,016,015,016,015,014,013,012
DOROB_S81_CHPT	EQU	$
		HEX	015,014,013,012,013,014,015
;
;ENCHPT <- 12	WRK6 <- 0A
DOROB_SUB8	EQU	$
DORB2_SUB10	EQU	$
;ENCHPT <- 15	WRK6 <- 07
DOROB_SUB81	EQU	$
		TYX

		LDA	ENXPOW,X
		BEQ	DOROB_SUB8100

		ASL	A
		STA	<EWORK0
		LSR	A
		CLC
		ADC	ENXSPD,X
		CMP	<EWORK0
		BCS	DOROB_SUB8100

		STZ	ENXSPD,X
		STZ	ENXPOW,X

DOROB_SUB8100	EQU	$
		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	DOROB_SUB8800		;  no: DOROB_SUB8800

		DEC	ENWRK6,X		;キャラパターンチェンジ終わり ?
		BPL	DOROB_SUB8500		;  no: DOROB_SUB8500

		LDA	ENXPOW,X		;止まってる ?
		ASL	A			;
		STA	<EWORK0			;
		LSR	A			;
		CLC				;
		ADC	ENXSPD,X		;
		CMP	<EWORK0			;
		BCS	DOROB_SUB8200		;  no: DOROB_SUB8200

		STZ	ENXPOW,X
		STZ	ENXSPD,X

DOROB_SUB8200	EQU	$
		LDA	ENMYNO,X		;DORB2 ?
		CMP	#DORB2			;
		BEQ	DOROB_SUB8300		; yes: DOROB_SUB8300

		LDY	#DOROB_RMODE0
		STY	<ENWRK2,X

		RTS

DOROB_SUB8300	EQU	$
		LDA	#0000100000000001B	;行ったり来たりしない
		STA	ENMOD1,X
		STZ	ENCHPT,X
		STZ	ENWRK6,X
		LDA	EPXMUK,X
		AND	#000FFH
		EOR	#00002
		STA	ENMUKI,X

		LDY	#DORB2_RMODE11
		STY	<ENWRK2,X

		RTS

DOROB_SUB8500	EQU	$
		LDY	<ENWRK2,X
		LDA	ENMYNO,X		;DORB2 ?
		CMP	#DORB2			;
		BEQ	DOROB_SUB8700		; yes: DOROB_SUB8700

		CPY	#DOROB_RMODE81		;すぐ復帰 ?
		BNE	DOROB_SUB8700		;  no: DOROB_SUB8700

DOROB_SUB8680	EQU	$
		LDY	ENWRK6,X
		INC	ENTIM1,X
		LDA	!DOROB_S81_CHPT,Y
		BRA	DOROB_SUB8780

DOROB_SUB8700	EQU	$
		LDY	ENWRK6,X
		LDA	!DOROB_TIM1_RT,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!DOROB_ENCH_RT,Y

DOROB_SUB8780	EQU	$
		AND	#000FFH
		STA	ENCHPT,X

DOROB_SUB8800	EQU	$

		RTS
;
DORBLR_XSPD	EQU	$
		WORD	0FE9AH,00166H
;
DOROB_SUB9	EQU	$
		TYX

		LDA	ENXPSL+BABY_INDEX
		SEC
		SBC	ENXPSL,X
		STA	<EWORK0
		CLC
		ADC	#00070H
		CMP	#000E0H
		BCS	DOROB_SUB9500

		LDA	BABYNO			;赤ちゃん担がれてる ?
		BNE	DOROB_SUB9500		; yes: DOROB_SUB9500

		LDY	#000
		LDA	<EWORK0			;赤ちゃんは左にある ?
		BMI	DOROB_SUB9300		; yes: DOROB_SUB9300

		INY
		INY

DOROB_SUB9300	EQU	$
		TYA
		STA	ENMUKI,X		;キャラ向きセット
		LDA	ENMYNO,X
		SEC
		SBC	#DORBL
		ASL	A
		TAY
		LDA	!DORBLR_XSPD,Y
		STA	ENXSPD,X

		LDA	#00002
		STA	ENYUSN,X

		LDA	#1111110000100000B	;食える　投げた敵にあたる
		STA	ENMOD0,X		;

		LDA	#0000100000000001B	;敵にする
		STA	ENMOD1,X		;

		INC	ENWRK8,X		;赤ちゃんロックセット

		STZ	ENCHPT,X		;キャラパターンナンバークリア

		LDY	#DOROB_RMODE3		;routine mode index set
		STY	<ENWRK2,X		;

		RTS

DOROB_SUB9500	EQU	$
		LDA	PLCMKI			;プレイヤーが見てる ?
		DEC	A			;
		EOR	EPWIDX,X		;
		BPL	DOROB_SUB9600		;  no: DOROB_SUB9600

		LDA	#00020H
		STA	ENCHPT,X

		RTS

DOROB_SUB9600	EQU	$
		LDY	ENCHPT,X
		CPY	#020H
		BNE	DOROB_SUB9700

		LDA	#0001EH
		STA	ENCHPT,X

DOROB_SUB9700	EQU	$
		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	DOROB_SUB9800		;  no: DOROB_SUB9800

		LDA	<RANDM0			;キャラパターンチェンジタイマーセット
		AND	#0001FH			;
		CLC				;
		ADC	#00010H			;
		STA	ENTIM1,X		;

		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00001			;
		STA	ENCHPT,X		;

DOROB_SUB9800	EQU	$

		RTS
;
;---------------< アイテム位置補正 >-----------------
;
ITEM_LIFT	EQU	$
		LDA	#0000EH

ITEM_LIFT2	EQU	$
		STA	<EWORK4

		LDA	ENWRKC,X
		BEQ	ITEM_LIFT0800

		LDA	<ENWRK0,X
		AND	#000FFH
		BEQ	ITEM_LIFT0200
		CMP	#00080H
		BMI	ITEM_LIFT0100

		ORA	#0FF00H
		INC	A
		BRA	ITEM_LIFT0200

ITEM_LIFT0100	EQU	$
		DEC	A

ITEM_LIFT0200	EQU	$
		STA	<EWORK0

		LDA	<ENWRK1,X
		AND	#000FFH
		BEQ	ITEM_LIFT0400
		CMP	#00080H
		BMI	ITEM_LIFT0300

		ORA	#0FF00H
		INC	A
		BRA	ITEM_LIFT0400

ITEM_LIFT0300	EQU	$
		DEC	A

ITEM_LIFT0400	EQU	$
		STA	<EWORK2

		LDY	ENMUKI,X		;アイテム向きセット
		STY	ENMUKI+BABY_INDEX	;

		LDA	ENXPSL,X		;アイテムＸ　ＰＯＳ．セット
		CLC				;
		ADC	<EWORK0			;
		STA	ENXPSL+BABY_INDEX	;

		LDA	ENYPSL,X		;アイテムＹ　ＰＯＳ．セット
		SEC				;
		SBC	<EWORK4			;
		CLC				;
		ADC	<EWORK2			;
		STA	ENYPSL+BABY_INDEX	;

		STZ	ENYSPD+BABY_INDEX	;アイテムＭＯＶＥロック

		LDY	<EWORK0
		STY	<ENWRK0,X
		LDY	<EWORK2
		STY	<ENWRK1,X

ITEM_LIFT0800	EQU	$

		RTS
;
;---------------< 汗効果セット >-----------------
;
DOROB_ASE	EQU	$
		WORD	0000CH,0FFF4H
;
DOROB_ASE_SET	EQU	$
		LDA	#00010H
		STA	ENTIM0,X

		LDY	ENMUKI,X
		LDA	!DOROB_ASE,Y
		STA	<EWORK4

		LDA	#ASE01
		JSL	>EXINSR

		LDA	ENCBFG,X		;よこかべ ?
		AND	#0000CH			;
		BEQ	DOROB_ASE_SET01		;  no: DOROB_ASE_SET01

		LDA	#00000
		BRA	DOROB_ASE_SET02

DOROB_ASE_SET01 EQU	$
		LDA	ENXSPD,X

DOROB_ASE_SET02 EQU	$
		STA	EXXSPD,Y

		LDA	#0FF40H
		CLC
		ADC	ENYSPD,X
		STA	EXYSPD,Y

		LDA	#00010H
		STA	EXTIM0,Y

		LDA	ENXPSL,X
		CLC
		ADC	<EWORK4
		STA	EXXPSL,Y

		LDA	ENYPSL,X
		SEC
		SBC	#0000EH
		STA	EXYPSL,Y

		LDA	ENMUKI,X
		STA	EXMUKI,Y

		RTS
;
;---------------< 赤ちゃんクロスチェック >-----------------
;
ITEM_CROSS	EQU	$
		LDY	DEATHCT0		;死神に取り付かれてる ?
		BNE	ITEM_CROSS0000		; yes: ITEM_CROSS0000

		LDA	ENXPSL+BABY_INDEX	;赤ちゃんと接触した ?
		SEC				;
		SBC	ENXPSL,X		;
		CLC				;
		ADC	#00010H			;
		CMP	#00020H			;
		BCS	ITEM_CROSS0000		;
						;
		LDA	ENYPSL+BABY_INDEX	;
		SEC				;
		SBC	ENYPSL,X		;
		CLC				;
		ADC	#00010H+4		;
		CMP	#00020H			;
		BCC	ITEM_CROSS0100		; yes: ITEM_CROSS0100

ITEM_CROSS0000	EQU	$
		SEC

		RTS

ITEM_CROSS0100	EQU	$
ITEM_CROSS_S2	EQU	$
		LDA	<ENWRK2+BABY_INDEX	;プレイヤーに飛び乗ってる途中 ?
		CMP	#BABYM_RMODE10		;
		BEQ	ITEM_CROSS0000		; yes: ITEM_CROSS0000

ITEM_CROSS_S	EQU	$
		LDY	DEATHCT0		;死神に赤ちゃん連れ去られてる ?
		BNE	ITEM_CROSS0000		; yes: ITEM_CROSS0000

		LDY	<ENWRK0+BABY_INDEX	;赤ちゃん誰かに取られてる ?
		BNE	ITEM_CROSS0000		; yes: ITEM_CROSS0000

		LDA	ENMODE+BABY_INDEX	;赤ちゃんプレイヤーに食べられてる ?
		CMP	#EEATM			;
		BNE	ITEM_CROSS0200		;  no: ITEM_CROSS0200

		STZ	EATFLG
		STZ	EATSTP

ITEM_CROSS0200	EQU	$
		LDA	BABYNO			;プレイヤーに乗ってた ?
		BPL	ITEM_CROSS0400		;  no: ITEM_CORSS0400

		LDA	#0000BH			;［Ｓ］
		JSL	>SOUND_3_ON
		LDA	#00020H
		CMP	PLFLSH
		BMI	ITEM_CROSS0400

		STA	PLFLSH

ITEM_CROSS0400	EQU	$
		LDA	ENMUKI,X		;
		STA	ENMUKI+BABY_INDEX	;

		JSL	>BABYM_SHABN_C2

		LDA	ENXPSL+BABY_INDEX
		SEC
		SBC	ENXPSL,X
		STA	<EWORK0

		LDA	ENYPSL+BABY_INDEX
		SEC
		SBC	ENYPSL,X
		STA	<EWORK2

		CLC

		RTS
;
;---------------< アイテムサーチ >-----------------
;
BABY_RANGE_CHK	EQU	$
		LDA	ECENTX+BABY_INDEX	;アイテムは範囲外 ?
		SEC				;
		SBC	ECENTX,X		;
		CLC				;
		ADC	#00050H			;
		CMP	#000A0H			;
		BCS	BABY_R_C0800		;  yes: BABY_R_C0800
		LDA	ECENTY+BABY_INDEX	;
		SEC				;
		SBC	ECENTY,X		;
		CLC				;
		ADC	#00040H			;
		CMP	#00080H			;

BABY_R_C0800	EQU	$
ITEM_SEARCH0000 EQU	$

		RTS
;
ITEM_SEARCH	EQU	$
		LDA	ENCBFG,X		;空中にいる ?
		AND	#00001			;
		BEQ	ITEM_SEARCH0000		; yes: ITEM_SEARCH0000

		LDA	ENWRK8,X		;赤ちゃんロック ?
		BNE	ITEM_SEARCH0500		; yes: ITEM_SEARCH0500

		JSR	BABY_RANGE_CHK		;赤ちゃんサーチ範囲内 ?
		BCS	ITEM_SEARCH0000		;  no: ITEM_SEARCH0000

		LDA	ENWRKC+BABY_INDEX	;赤ちゃんは担がれてる ?
		BEQ	ITEM_SEARCH0200		;  no: ITEM_SEARCH0200

		LDA	<ENWRK0+BABY_INDEX	;プレイヤーが乗せている ?
		BNE	ITEM_SEARCH0800		;  no: ITEM_SEARCH0800

ITEM_SEARCH0200 EQU	$
		LDA	#00001			;
		STA	ENWRK8,X		;赤ちゃんロックフラグセット

ITEM_SEARCH0500 EQU	$
		STZ	ENCHPT,X		;キャラパターンナンバークリア
		STZ	ENMUKI,X		;キャラ向きセット

		LDA	ENXPSL+BABY_INDEX	;赤ちゃんは左にある ?
		CMP	ENXPSL,X		;
		BMI	ITEM_SEARCH0600		; yes: ITEM_SEARCH0600

		LDA	#00002			;キャラ向きセット
		STA	ENMUKI,X		;

ITEM_SEARCH0600 EQU	$
		LDA	#0FE00H			;喜びのジャンプ
		STA	ENYSPD,X		;

		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリア
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリア

		LDY	#DOROB_RMODE2		;routine mode index set
		STY	<ENWRK2,X		;
		LDA	#DOROB_R2_CHCT
		STA	ENWRK6,X
		LDA	#DOROB_R2_CHPT
		STA	ENCHPT,X

ITEM_SEARCH0800 EQU	$

		RTS
;
ITEM_SEARCH2	EQU	$
		LDY	<ENWRK2,X
		CPY	#DOROB_RMODE6
		BEQ	ITEM_SEARCH2040
		CPY	#DOROB_RMODE60
		BEQ	ITEM_SEARCH2040

		LDA	ENCBFG,X		;空中にいる ?
		AND	#00001			;
		BEQ	ITEM_SEARCH0800		; yes: ITEM_SEARCH0800

ITEM_SEARCH2040 EQU	$
		LDA	ENMODE+BABY_INDEX	;アイテム存在してる ?
		STA	<EWORK0			;
		BNE	ITEM_SEARCH2050		;
		JMP	ITEM_SEARCH2500		;  no: ITEM_SEARCH2500

ITEM_SEARCH2050 EQU	$
		LDA	<ENWRK2,X
		AND	#000FFH
		CMP	#DOROB_RMODE4
		BEQ	ITEM_SEARCH2080
		CMP	#DOROB_RMODE5
		BEQ	ITEM_SEARCH2080
		CMP	#DOROB_RMODE6
		BEQ	ITEM_SEARCH2070
		CMP	#DOROB_RMODE60
		BNE	ITEM_SEARCH2100

ITEM_SEARCH2070 EQU	$
		LDA	ENWRKC,X		;アイテムを担いでた ?
		BEQ	ITEM_SEARCH2100		;  no:ITEM_SEARCH2100

ITEM_SEARCH2080 EQU	$
		LDA	<EWORK0			;アイテム食われた ?
		CMP	#EEATM			;
		BEQ	ITEM_SEARCH2300		; yes: ITEM_SEARCH2300

ITEM_SEARCH2100 EQU	$
		LDA	ENWRKC+BABY_INDEX	;アイテムは担がれている ?
		BEQ	ITEM_SEARCH2480		;  no: ITEM_SEARCH2480

		CPX	<ENWRK0+BABY_INDEX	;アイテムを担いでるのは自分 ?
		BEQ	ITEM_SEARCH2180		; yes: ITEM_SEARCH2180

		LDY	<ENWRK0+BABY_INDEX	;プレイヤーが乗せている ?
		BNE	ITEM_SEARCH2200		;  no: ITEM_SEARCH2200

		LDA	ENWRKC,X		;アイテム担いでた ?
		BNE	ITEM_SEARCH2500		; yes: ITEM_SEARCH2500

ITEM_SEARCH2180 EQU	$

		RTS

ITEM_SEARCH2200 EQU	$
		LDA	ENMYNO,X
		CMP	#DORB2
		BEQ	ITEM_SEARCH2800
		BRA	ITEM_SEARCH2500

ITEM_SEARCH2300 EQU	$
		STZ	ENWRK0+BABY_INDEX	;dorobo- routine index clear
		STZ	ENWRKC+BABY_INDEX

		LDA	BABYNO			;4000H CLEAR
		AND	#0BFFFH			;
		STA	BABYNO			;

		LDA	ENMYNO,X		;
		CMP	#DORB2			;
		BEQ	ITEM_SEARCH2500		;

ITEM_SEARCH2460 EQU	$
		STZ	ENWRK8,X		;赤ちゃんロックフラグクリア
		STZ	ENWRKC,X		;アイテムＧＥＴフラグクリア
;
		LDA	#0001CH			;［Ｓ］
		JSL	>SOUND_3_ON

		STZ	ENXPOW,X
		STZ	ENXSPD,X
		LDA	#040H*001H		;ストップタイマーセット
		STA	ENTIM1,X		;
		JSL	>DOROB_SIT_DOWN2

		PLA

ITEM_SEARCH2480 EQU	$

		RTS

ITEM_SEARCH2500 EQU	$
		LDY	#DOROB_RMODE0

ITEM_SEARCH2600 EQU	$
		STY	<ENWRK2,X
		LDA	#00080H			;サーチロックタイマーセット
		STA	ENTIM3,X

		LDA	#00018H			;振り返り待ちタイマーセット
		STA	ENTIM1,X		;

		LDA	<RANDM0			;振り返り回数セット
		AND	#00001H			;
		CLC				;
		ADC	#00003			;
		STA	<ENCONT,X		;

		STZ	ENWRK8,X		;赤ちゃんロックフラグクリア
		STZ	ENWRKC,X		;アイテムＧＥＴフラグクリア
		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリア
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリア
		LDA	#00009
		STA	ENCHPT,X		;キャラパターンナンバーセット

		PLA				;直接ＲＴＳ

ITEM_SEARCH2800 EQU	$

		RTS
;
ITEM_SEARCH4	EQU	$
		LDA	ENCBFG,X		;空中にいる ?
		AND	#00001			;
		BEQ	ITEM_SEARCH4800		; yes: ITEM_SEARCH4800

ITEM_SEARCH4500 EQU	$
		LDA	BABYNO			;赤ちゃんは担がれている ?
		AND	#06000H			;
		BEQ	ITEM_SEARCH2500		;  no: ITEM_SEARCH2500

ITEM_SEARCH4800 EQU	$

		RTS
;
;---------------< ＢＧチェック >----------------
;
DOROB_BGCK	EQU	$
		LDA	ENCBFG,X		;side BG = 壁 ?
		BIT	#0000CH			;
		BEQ	DOROB_BGCK0100		;  no: DOROB_BGCK0100

		LDA	ENCBFG,X		;進行方向が壁だった
		AND	#00008H			;
		DEC	A			;
		EOR	ENXSPD,X		;
		BPL	DOROB_BGCK0080		;  no: DOROB_BGCK0080

		JSR	DOROB_XREVISE		;Ｘ　ＰＯＳ．強制補正

		BRA	DOROB_BGCK0300

DOROB_BGCK0080	EQU	$
		LDA	ENCBFG,X

DOROB_BGCK0100	EQU	$
		AND	#00001H			;foot BG = 床 ?
		STA	<EWORK0			;
		LDA	ENSLOP,X		;坂の上 ?
		AND	#000FFH			;
		ORA	<EWORK0			;
		BNE	DOROB_BGCK0400		; yes: DOROB_BGCK0400

		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X

DOROB_BGCK0300	EQU	$
		LDA	#001			;振り返り回数セット
		STA	<ENCONT,X		;

		LDA	#00040H
		STA	ENGPOW,X

		LDA	#00009
		STA	ENCHPT,X		;キャラパターンナンバーセット
		STZ	ENXSPD,X		;Ｘ　ＳＰＥＥＤクリア
		STZ	ENXPOW,X		;Ｘ　ＰＯＷＥＲクリア
		LDY	#DOROB_RMODE0
		STY	<ENWRK2,X		;routine mode index set

		PLA				;after routine cansel !!

DOROB_BGCK0400	EQU	$

		RTS
;
DOROB_JUMP	EQU	$
;			 [00]	[01]   [02]   [03]   [04]   [05]   [06]
;				[10]   [11]   [12]   [13]   [14]   [15]
		WORD	0FCC0H,0FBC0H,0FAC0H,0F9C0H,0F940H,0F8C0H,0F7C0H
M_D_BGCK_H_REV	EQU	$
M_D_BGCK_H_ADD	EQU	$
		WORD	0FFF0H,00010H
DOROB_HH_XSPD	EQU	$
;			 [00]	[01]   [02]   [03]
;			  *	 *	*      *
		WORD	000E0H,00160H,001A0H,001F0H
;			 [10]	[11]   [12]   [13]
;			  *	 *	*      *
		WORD	000F0H,00160H,001C0H,00200H
;			 [20]	[21]   [22]   [23]
;			  *	 *	*      *
		WORD	00100H,00160H,001D0H,00220H
;			 [30]	[31]   [32]   [33]
;			  *	 *	*      *
		WORD	00100H,00170H,001F0H,00240H
;			 [40]	[41]   [42]   [43]
;			  *	 *	*      *
		WORD	00100H,00180H,00200H,00240H
;			 [50]	[51]   [52]   [53]
;			  *	 *	*      *
		WORD	00100H,00190H,00210H,00260H
;			 [60]	[61]   [62]   [63]
;			  *	 *	*      *
		WORD	000E0H,001A0H,00220H,00260H
;			 [70]	[71]   [72]   [73]
;
		WORD	000E0H,001A0H,00220H,00260H
;
DOROB_HH_YSPD	EQU	$
;			 [00]	[01]   [02]   [03]
;			  *	 *	*      *
		WORD	0FF00H,0FE80H,0FD80H,0FD00H
;			 [10]	[11]   [12]   [13]
;			  *	 *	*      *
		WORD	0FE80H,0FDA0H,0FD00H,0FCA0H
;			 [20]	[21]   [22]   [23]
;			  *	 *	*      *
		WORD	0FE00H,0FD00H,0FD00H,0FC60H
;			 [30]	[31]   [32]   [33]
;			  *	 *	*      *
		WORD	0FD20H,0FCA0H,0FC80H,0FC20H
;			 [40]	[41]   [42]   [43]
;			  *	 *	*      *
		WORD	0FC80H,0FC40H,0FC00H,0FB80H
;			 [50]	[51]   [52]   [53]
;			  *	 *	*      *
		WORD	0FBD0H,0FBD0H,0FBA0H,0FB40H
;			 [60]	[61]   [62]   [63]
;			  *	 *	*      *
		WORD	0FB00H,0FB10H,0FB00H,0FAD0H
;			 [70]	[71]   [72]   [73]
;
		WORD	0FA80H,0FA20H,0FA80H,0F980H
;
DOROB_BGCK2	EQU	$
		LDA	ENSLOP,X		;坂にいる ?
		AND	#000FFH			;
		BNE	DOROB_BGCK2000		; yes: DOROB_BGCK2000

		LDA	ENCBFG,X		;地面に着いてる ?
		BIT	#00001H			;
		BEQ	DOROB_BGCK2010		;  no: DOROB_BGCK2010

DOROB_BGCK2000	EQU	$
		JMP	DOROB_BGCK2100		;  no: DOROB_BGCK2100

DOROB_BGCK2010	EQU	$
		BIT	#0000CH			;カベにぶちあたった ?
		BEQ	DOROB_BGCK2020
		JMP	DOROB_BGCK2300		; yes: DOROB_BGCK2300

DOROB_BGCK2020	EQU	$
DOROB_BGCK2030	EQU	$
		LDY	ENMUKI,X
		LDA	ECENTX,X
		CLC
		ADC	!M_D_BGCK_H_REV,Y
		STA	R9
		STA	R2
		LDA	ECENTY,X
		CLC
		ADC	#00040H
		STA	R10
		STA	R3
		LDA	!M_D_BGCK_H_ADD,Y
		STA	R4
;;;		LDA	#00004
;;;		STA	R12
		LDA	#00004H
;;;		LDA	#00007H
		STA	CCWORK10
		STZ	R14

		M_CHIPR M_DOROB_BGCK_H

		LDX	<ENINDX
		LDA	R14			;前方に床があった ?
		BPL	DOROB_BGCK2050		; yes: DOROB_BGCK2050

DOROB_BGCK2031	EQU	$
		LDY	ENWRKC,X		;アイテムを担いでる ?
		BNE	DOROB_BGCK2035		; yes: DOROB_BGCK2035

		LDA	<RANDM0
		AND	#00001
		JMP	DOROB_BGCK2490

DOROB_BGCK2035	EQU	$
		JSR	DOROB_XREVISE		;Ｘ　ＰＯＳ．強制補正

		LDA	ENXMAX,X		;Ｘ　ＭＡＸ　ＳＰＥＥＤ反転
		EOR	#0FFFFH			;
		INC	A			;
		STA	ENXMAX,X		;

		LDA	ENMUKI,X		;向き反転
		EOR	#00002			;
		STA	ENMUKI,X		;

		LDA	ENXSPD,X		;Ｘ　ＳＰＥＥＤ反転
		EOR	#0FFFFH			;
		INC	A			;
		STA	ENXSPD,X		;

		LDA	#00010H
		STA	ENTIM2,X

		LDA	#DORB2_RMODE13
		LDY	ENMYNO,X
		CPY	#DORB2
		BEQ	DOROB_BGCK2040

		LDA	#DOROB_RMODE7		;routine mode index set

DOROB_BGCK2040	EQU	$
		TAY
		STY	<ENWRK2,X

		PLA				;直接ＲＴＳ
		RTS

DOROB_BGCK2050	EQU	$
		AND	#0000FH
		ASL	A
		STA	<EWORK0
		LDA	R14
		AND	#000F0H
		LSR	A
		CLC
		ADC	<EWORK0
		TAY

		LDA	!DOROB_HH_XSPD,Y
		STA	ENXSPD,X
		LDA	!DOROB_HH_YSPD,Y
		STA	ENYSPD,X

DOROB_BGCK2060	EQU	$
		LDY	ENMUKI,X		;右向き ?
		BNE	DOROB_BGCK2070		; yes: DOROB_BGCK2070

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

DOROB_BGCK2070	EQU	$
		STZ	ENWRKA,X		;ジャンプ種類フラグクリア

		LDA	ENXPOW,X
		STA	ENWRK6,X
		STZ	ENXPOW,X
		LDA	#DOROB_R60_CHPT
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X

		STZ	ENGPOW,X
		LDA	ENMYNO,X
		CMP	#DORB2
		BEQ	DOROB_BGCK2078

		LDA	#DOROB_RMODE60
		BRA	DOROB_BGCK2080		;  no: DOROB_BGCK2080

DOROB_BGCK2078	EQU	$
		LDA	#00017H
		STA	ENCHPT,X
		LDA	#00007
		STA	ENWRK6,X
		STZ	ENTIM1,X
		LDA	#DORB2_RMODE12

DOROB_BGCK2080	EQU	$
		TAY
		STY	<ENWRK2,X

		PLA				;直接ＲＴＳ
		RTS

DOROB_BGCK2100	EQU	$
		LDA	ENCBFG,X		;カベにぶちあたった ?
		BIT	#0000CH			;
		BNE	DOROB_BGCK2300

DOROB_BGCK2200	EQU	$
		JMP	DOROB_BGCK2500		;  no: DOROB_BGCK2500

DOROB_BGCK2300	EQU	$
		LDA	ENCBFG,X		;進行方向が壁だった ?
		AND	#00008H			;
		DEC	A			;
		EOR	ENXSPD,X		;
		BPL	DOROB_BGCK2200		;  no: DOROB_BGCK2200

		JSR	DOROB_XREVISE		;Ｘ　ＰＯＳ．強制補正

DOROB_BGCK2400	EQU	$
		LDY	ENMUKI,X
		LDA	ECENTX,X
		STA	R9
		CLC
		ADC	!M_D_BGCK_H_REV,Y
		STA	R2
		LDA	ECENTY,X
		SEC
		SBC	#00010H
		STA	R3
		STA	R10
		LDA	#0FFF0H
		STA	R4
		LDA	#00005H
		STA	R12
		STA	CREG12
		STZ	R14

		M_CHIPR M_DOROB_BGCK_V

		LDX	<ENINDX
		LDA	R14			;飛び越せる壁 ?
		BPL	DOROB_BGCK2480		; yes: DOROB_BGCK2480

		JMP	DOROB_BGCK2031

DOROB_BGCK2480	EQU	$
		STZ	ENWRKA,X		;ジャンプ種類フラグクリア
		CMP	#00010H
		BMI	DOROB_BGCK2490

		SEC
		SBC	#0000FH

DOROB_BGCK2490	EQU	$
		ASL	A
		STA	ENWRK6,X

		LDY	#DORB2_RMODE12
		LDA	ENMYNO,X
		CMP	#DORB2
		BEQ	DOROB_BGCK2498

		LDA	ENWRKC,X		;アイテム持ってる ?
		BEQ	DOROB_BGCK2495		;  no: DOROB_BGCK2495

		LDY	#DOROB_RMODE4
		STY	<ENWRK2,X
		LDA	#00009H
		STA	ENCHPT,X
		LDA	#00002H
		STA	<ENCONT,X

		PLA
		RTS

DOROB_BGCK2495	EQU	$
		LDY	#DOROB_RMODE60

DOROB_BGCK2498	EQU	$
		STY	<ENWRK2,X
		LDA	#DOROB_R60_CHPT
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X
		LDY	ENWRK6,X
		LDA	!DOROB_JUMP,Y		;ジャンプ Y SPEED セット
		STA	ENYSPD,X

		LDA	#00007
		STA	ENWRK6,X
		STZ	ENGPOW,X
		PLA				;after routine cansel !!

DOROB_BGCK2500	EQU	$

		RTS
;
DOROB_BGCK3	EQU	$
		LDA	ENCBFG,X		;カベにぶつかった ?
		BIT	#0000CH			;
		BEQ	DOROB_BGCK3800		;  no: DOROB_BGCK3800

		AND	#00008H			;進行方向が壁だった ?
		DEC	A			;
		EOR	ENXSPD,X		;
		BMI	DOROB_XREVISE		; yes: DOROB_XREVISE

DOROB_BGCK3800	EQU	$

		RTS
;
DOROB_XREV_DT	EQU	$
		WORD	0000EH,00002H
;
DOROB_XREVISE	EQU	$
		LDA	#0000EH			;コース左端 ?
		CMP	ENXPSL,X		;
		BMI	DOROB_XREV0100		;  no: DOROB_XREV0100

		STA	ENXPSL,X
		RTS

DOROB_XREV0100	EQU	$
		LDY	#000
		LDA	ENXSPD,X		;止まってる ?
		BNE	DOROB_XREV0300		;  no: DOROB_XREV0300

		LDA	ENCBFG,X		;壁にあたってる ?
		BEQ	DOROB_XREV0800		;  no: DOROB_XREV0800
		AND	#00008H			;左が壁 ?
		BNE	DOROB_XREV0500		; yes: DOROB_XREV0500
		BRA	DOROB_XREV0400

DOROB_XREV0300	EQU	$
		BMI	DOROB_XREV0500

DOROB_XREV0400	EQU	$
		INY
		INY

DOROB_XREV0500	EQU	$
		LDA	ENXPSL,X		;Ｘ　ＰＯＳ．補正
		AND	#0FFF0H			;
		ORA	!DOROB_XREV_DT,Y	;
		STA	ENXPSL,X		;

DOROB_XREV0800	EQU	$

		RTS
;
;************************************************************************
;*		fail	( dorobo- )					*
;************************************************************************
DOROBFL		EQU	$			;-- dorobfl --
DORB2FL		EQU	$			;-- dorb2fl --
DORBLFL		EQU	$			;-- dorblfl --
DORBRFL		EQU	$			;-- dorbrfl --
		JSR	ITEM_CUT

		JMP	>ENFAIL0
;
;************************************************************************
;*		initial ( コイン持ちどろぼー )				*
;************************************************************************
POSITION_SAVE	EQU	$
		TXY
		BRA	DORB2IN0200

DORB2IN		EQU	$			;-- dorb2in --
		JSL	>EXIST_CHECK
		LDX	<ENINDX

		LDA	#COIN1
		JSL	>ENINSR
		BCS	DORB2IN0100

		JMP	>ENCLEAR

DORB2IN0100	EQU	$
		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDA	ENYPSL,X
		SEC
		SBC	#00010H
		STA	ENYPSL,Y
		LDA	#0FFFFH
		STA	ENTIM0,Y
		STA	ENTIM1,Y
		STA	ENTIM2,Y
		INC	A	;[ LDA	#00000H ]
		STA	ENGPOW,Y
		LDA	#00022H
		STA	ENCLOR,Y
		LDA	#0000100000000000B	;範囲クリアなし
		STA	ENMOD2,Y		;
		STY	<ENWRK0,X
		TXA
		STA	ENWRKA,Y

DORB2IN0200	EQU	$
		LDA	ENYPSL,X
		ASL	A
		ASL	A
		ASL	A
		ASL	A
		AND	#0FF00H
		ORA	#08000H
		STA	<EWORK0
		LDA	ENXPSL,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		AND	#000FFH
		ORA	<EWORK0
		STA	ENWRKC,Y

		RTL
;
;************************************************************************
;*		move	( コイン持ちどろぼー )				*
;************************************************************************
;		ENWRK0	COIN1 の ROUTINE INDEX
;		ENWRK2	ROUTINE MODE INDEX
;B		ENWRK4	タマゴ当てダメージカウンター
;B		ENWRK5	踏まれダメージカウンター
;		ENWRK6
;		ENWRK8	USE
;		ENWRKA	USE
;		ENWRKC	USE
;
;		ENTIM0
;		ENTIM1
;		ENTIM2
;		ENTIM3
;
;		ENCONT	USE
;
DORB2_SUB	EQU	$
DORB2_00	EQU	$
		WORD	DORB2_SUB00	;きょろきょろ
DORB2_01	EQU	$
		WORD	DORB2_SUB01	;歩き　ｏｒ　タックル（ＮＯＲＭＡＬ）
DORB2_02	EQU	$
		WORD	DORB2_SUB02	;逃げる！（プレイヤーがおるやないけっ！！）
DORB2_10	EQU	$
		WORD	DORB2_SUB10	;逃げる！（イニシャル）
DORB2_11	EQU	$
		WORD	DORB2_SUB11	;逃げる！（逃げてる）
DORB2_12	EQU	$
		WORD	DORB2_SUB12	;逃げる！（逃げてる途中で壁ジャンプ）
DORB2_13	EQU	$
		WORD	DORB2_SUB13	;逃げる！（逃げてる途中でちょっとこまった（がけの手前））
;
DORB2_RMODE00	EQU	(DORB2_00-DORB2_SUB)
DORB2_RMODE01	EQU	(DORB2_01-DORB2_SUB)
DORB2_RMODE02	EQU	(DORB2_02-DORB2_SUB)
DORB2_RMODE10	EQU	(DORB2_10-DORB2_SUB)
DORB2_RMODE11	EQU	(DORB2_11-DORB2_SUB)
DORB2_RMODE12	EQU	(DORB2_12-DORB2_SUB)
DORB2_RMODE13	EQU	(DORB2_13-DORB2_SUB)
;
DORB2MV		EQU	$			;-- dorb2mv  --
		LDA	ENMODE,X		;ＭＯＶＥ ?
		CMP	#EMOVE			;
		BNE	DORB2MV0500		;  no: DORB2MV0500

		JSR	DORB2_PLCHK

		JSL	>DISPCK2		;画面内 ?
		BCC	DORB2MV0600		; yes: DORB2MV0600

		LDY	<ENWRK0,X		;コインいる ?
		BMI	DORB2MV0400		;  no: DORB2MV0400

		TYX
		JSL	>ENCLEAR

DORB2MV0400	EQU	$
		LDX	<ENINDX
		JMP	>ENCLEAR

DORB2MV0500	EQU	$
		CMP	#EEATM			;食べられそうになってる ?
		BNE	DORB2MV0550		;  no: DORB2MV0550

		JSR	DORB2_COIN1_PG
		JSR	DORB2_EATCANCEL

		RTL

DORB2MV0550	EQU	$
		JSR	DORB2_COIN1_PG

DORB2MV0600	EQU	$
		JSL	>ENMDCK

		LDA	#00040H
		STA	ENGPOW,X

		TXY
		LDA	<ENWRK2,X
		TAX
		JSR	(DORB2_SUB,X)

		LDY	<ENWRK0,X		;コイン持ってる ?
		BMI	DORB2MV0800		;  no: DORB2MV0800

		LDA	ENMODE,Y
		CMP	#EMOVE
		BNE	DORB2MV0700
		LDA	ENMYNO,Y
		CMP	#COIN1
		BNE	DORB2MV0700
		TXA
		CMP	ENWRKA,Y
		BEQ	DORB2MV0780

DORB2MV0700	EQU	$
		LDA	#0FFFFH
		STA	<ENWRK0,X

		RTL

DORB2MV0780	EQU	$
		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDY	ENCHPT,X
		LDA	!DORB2_COIN1_XRV,Y
		AND	#000FFH
		ORA	#0FF00H
		CLC
		ADC	ENYPSL,X
		LDY	<ENWRK0,X
		STA	ENYPSL,Y

DORB2MV0800	EQU	$

		RTL
;
DORB2_COIN1_XRV EQU	$
;ENCHPT =		[00] [01] [02] [03] [04] [05] [06] [07]
		HEX	0E5, 0E6, 0E8, 0E9, 0EA, 0E9, 0E8, 0E7
;ENCHPT =		[08] [09] [0A] [0B] [0C] [0D] [0E] [0F]
		HEX	0E5, 0E6, 0E6, 0E6, 0E7, 0E7, 0E7, 0E7
;ENCHPT =		[10] [11] [12] [13] [14] [15] [16] [17]
		HEX	0E7, 0E7, 0ED, 0EC, 0EB, 0EA, 0EA, 0E2
;ENCHPT =		[18] [19] [1A] [1B] [1C] [1D] [1E] [1F]
		HEX	0E3, 0EC, 0EC, 0EC, 0EC, 0EA, 0E6, 0E6
;ENCHPT =		[20]
		HEX	0E6
;
DORB2_PLCHK	EQU	$
		LDY	ECRSFG,X		;プレイヤーと接触した ?
		BMI	DORB2_PLCHK1000		; yes: DORB2_PLCHK1000

		LDY	ECRSFG,X
		LDA	ENMODE-1,Y
		CMP	#EMOVE
		BNE	DORB2_PLCHK0200
		LDA	ENSHOT-1,Y
		BEQ	DORB2_PLCHK0200

		JMP	DORB2_SHOT_KILL

DORB2_PLCHK0200 EQU	$
		PLA
		STA	<EWORK0
		JSL	>EPCRCK
		LDA	<EWORK0
		PHA

DORB2_PLCHK0800 EQU	$

		RTS

DORB2_PLCHK1000 EQU	$
		LDA	SUPER_FLAG		;プレイヤーすーぱー赤ちゃんまりお ?
		BNE	DORB2_PLCHK1100		; yes: DORB2_PLCHK1100

		LDY	PLYSPD+1		;プレイヤー上昇中 ?
		BMI	DORB2_PLCHK0800		; yes: DORB2_PLCHK0800

		LDA	EPWIDY,X		;プレイヤーに踏まれた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF8H			;
		BCC	DORB2_PLCHK0800		;  no: DORB2_PLCHK0800

		LDA	PLBGCR			;プレイヤー頭打ってる ?
		AND	#0000000000011000B	;
		BNE	DORB2_PLCHK0800		; yes: DORB2_PLCHK0800

		LDA	#0FA00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP

		LDY	PLDOSN
		BNE	DORB2_PLCHK1100

		JSR	DORB2_COIN1_PG
		INC	<ENWRK5,X
		JSR	DOROB_ECAN0500
		PLA
		RTL

DORB2_PLCHK1100 EQU	$
		JSR	DOROB_TO_DEAD		;MODEがFALLになるからコインの心配はいらない

		PLA
		JMP	>ENDEATH_SET
;
DORB2_COIN1_XSP EQU	$
		WORD	0FE00H,00200H
;
DORB2_COIN1_PG	EQU	$
		LDY	ENMUKI,X
		LDA	!DORB2_COIN1_XSP,Y
		LDY	<ENWRK0,X
		BMI	DORB2_C_PG0500

		STA	ENXSPD,Y
		LDA	#0FD00H
		STA	ENYSPD,Y
		LDA	#00100H
		STA	ENTIM0,Y
		LDA	#00140H
		STA	ENTIM1,Y
		LDA	#00020H
		STA	ENTIM2,Y
		ASL	A
		STA	ENGPOW,Y
		M8
		LDA	ENRETN,X
		STA	ENRETN,Y
		M16

DORB2_C_PG0500	EQU	$
		LDA	ENCLOR,X
		PHA
		LDA	#DOROB
		TXY
		JSL	>ESTATST
		PLA
		STA	ENCLOR,X

		M8
		LDA	#0FFH
		STA	ENRETN,X
		M16

		RTS
;
DORB2_SHOT_KILL EQU	$
		LDY	ECRSFG,X
		DEY
		TYX
		JSL	>SHOT_EN_KILL

		JSR	DORB2_COIN1_PG
		INC	<ENWRK4,X

		LDY	ECRSFG,X
		LDA	ECENTX-1,Y
		LDY	#000
		SEC
		SBC	ECENTX,X
		BMI	DORB2_S_K0040

		INY
		INY

DORB2_S_K0040	EQU	$
		JSR	DOROB_ECAN0600

		PLA
		RTL
;
DORB2_SUB11	EQU	$
		TYX

		LDA	<ENCONT,X		;ジャンプした後 ?
		BPL	DORB2_SUB11100		;  no: DORB2_SUB11100

		JSR	DOROB_BGCK3

		STZ	<ENCONT,X
		BRA	DORB2_SUB11200

DORB2_SUB11100	EQU	$
		JSR	DOROB_BGCK2

DORB2_SUB11200	EQU	$
		LDA	#0000BH			;X POWER セット
		STA	ENXPOW,X		;

		LDY	<ENWRK5,X
		TYA
		ASL	A
		ASL	A
		CLC
		ADC	ENMUKI,X
		TAY
		LDA	!DOROB_XMAX+10H,Y
		STA	ENXMAX,X

		LDA	ENCHPT,X
		EOR	#00001
		STA	ENCHPT,X

		LDA	ENCBFG,X		;壁にぶちあたった ?
		AND	#0000CH			;
		BEQ	DORB2_SUB11800		;  no: DORB2_SUB11800

		LDA	#00017H
		STA	ENCHPT,X
		LDA	#00007
		STA	ENWRK6,X
		STZ	ENTIM1,X
		LDY	#DORB2_RMODE12
		STY	<ENWRK2,X

DORB2_SUB11800	EQU	$

		RTS
;
;ENCHPT <- 017h		WRK6 <- 007	TIM1 <- 000
DORB2_SUB12	EQU	$
		TYX

		JSR	DOROB_BGCK3

		LDA	ENYSPD,X		;上昇中 ?
		BMI	DORB2_SUB12500		; yes: DORB2_SUB12500

		LDA	ENCBFG,X		;地面に着いた ?
		AND	#00001			;
		BNE	DORB2_SUB12200		; yes: DORB2_SUB12200

		LDA	#00018H
		STA	ENCHPT,X
		BRA	DORB2_SUB12500

DORB2_SUB12200	EQU	$
		LDA	ENMOVY,X		;落下速度限界 ?
		CMP	#00003			;
		BMI	DORB2_SUB12280		;  no: DORB2_SUB12280

		STZ	ENXSPD,X

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

		DEC	ENWRK6,X		;キャラパターンチェンジ終わり ?
		BPL	DORB2_SUB12300		;  no: DORB2_SUB12300

DORB2_SUB12280	EQU	$
		STZ	ENCHPT,X

		LDY	#DORB2_RMODE11
		STY	<ENWRK2,X

		LDA	#0FFFFH
		STA	<ENCONT,X

		RTS

DORB2_SUB12300	EQU	$
		LDY	ENWRK6,X
		LDA	!DOROB_TIM1_J,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!DOROB_ENCH_J,Y
		AND	#000FFH
		STA	ENCHPT,X

DORB2_SUB12500	EQU	$
DORB2_SUB13000	EQU	$

		RTS
;
DORB2_SUB13	EQU	$
		TYX

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

		LDA	#00002			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;
		LDA	ENCHPT,X		;キャラパターンチェンジ
		EOR	#00001			;
		STA	ENCHPT,X		;

DORB2_SUB13400	EQU	$
		LDA	ENTIM2,X		;パニック中 ?
		BNE	DORB2_SUB13500		; yes: DORB2_SUB13500

		STZ	ENCHPT,X
		STZ	ENWRK6,X
		LDY	#DORB2_RMODE11
		STY	<ENWRK2,X

DORB2_SUB13500	EQU	$
		JSR	DOROB_BGCK2

		LDA	ENTIM0,X		;あせセット ?
		BNE	DORB2_SUB13000		;  no: DORB2_SUB13000

		JMP	DOROB_ASE_SET
;
;************************************************************************
;*		initial ( dorobou fly )					*
;************************************************************************
DORBFIN		EQU	$			;-- dorbfin --
DRBF2IN		EQU	$			;-- drbf2in --
		LDA	#BABY_INDEX
		STA	<ENWRK4,X

		STZ	ENWRKC,X		;アイテムＧＥＴフラグクリア

		LDA	ENMYNO,X
		CMP	#DORBF
		BEQ	DORBFIN0800

		LDA	ENWRKA,X		;再挑戦 ?
		BEQ	DORBFIN0300		;  no: DORBFIN0300

		JSR	DRBF2_SUB2300

		LDY	#005
		STY	<ENWRK2,X

		RTL

DORBFIN0300	EQU	$
		LDA	ENYPSL,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		XBA
		STA	<EWORK0
		LDA	ENXPSL,X
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		ORA	<EWORK0
		STA	ENWRKA,X

		LDY	#002
		STY	<ENWRK2,X

DORBFIN0800	EQU	$

		RTL
;
;************************************************************************
;*		move	( dorobou fly )					*
;************************************************************************
;B		ENWRK0	アイテムのオフセットＸ　ＰＯＳ．
;B		ENWRK1		”	　　Ｙ　ＰＯＳ．
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4	BABY ROUTINE INDEX  0...nothing	 OTHER...routine index
;		ENWRK6	定位置到着フラグ
;		ENWRK8	USE OTHER
;		ENWRKA	セット位置セーブ
;		ENWRKC	アイテムＧＥＴフラグ  0...nothing  2...get item
;
;		ENTIM0	サーチロックタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2
;		ENTIM3	サーチロックタイマー2
;
DORBF_SUB	EQU	$
		WORD	DORBF_SUB0		;おいかけ
		WORD	DORBF_SUB1		;にげ
		WORD	DRBF2_SUB2		;赤ちゃん待ち
		WORD	DRBF2_SUB3		;赤ちゃんかっさらい
		WORD	DRBF2_SUB4		;赤ちゃんかっさらい＆ふわふわ
		WORD	DRBF2_SUB5		;しっぱい
;
DORBFMV		EQU	$			;-- dorbfmv --
DRBF2MV		EQU	$			;-- drbf2mv --
		LDA	ENMODE,X		;ＭＯＶＥ ?
		CMP	#EMOVE			;
		BNE	DORBFMV0200		;  no: DORBFMV0200

;;;;;;;;		JSL	>EPCRCK
		LDA	ENSHOT,X
		BEQ	DORBFMV0080

		LDA	ENMYNO,X
		CMP	#DORBF
		BEQ	DORBFMV0080

		LDA	#00002
		STA	ENYUSN,X

DORBFMV0080	EQU	$
		LDA	ENXPSL,X		;コースの左端 ?
		SEC				;
		SBC	#00008			;
		CMP	#00FF0H			;
		BCC	DORBFMV0100		;  no: DORBFMV0100

		LDA	ENXPSL,X		;Ｘ　ＰＯＳ．補正
		SEC				;
		SBC	ENMOVX,X		;
		STA	ENXPSL,X		;

		JSR	BABY_REV3
		BRA	DORBFMV0400

DORBFMV0100	EQU	$
		JSL	>DISPCK2		;画面内 ?
		BCC	DORBFMV0400		; yes: DORBFMV0400

		LDY	<ENWRK2,X		;逃げてる ?
		CPY	#001			;
		BEQ	DORBFMV0400		; yes: DORBFMV0400
		CPY	#004
		BEQ	DORBFMV0400

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

		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	DORBFMV0120		;  no: DORBFMV0120

		LDA	ENMODE+BABY_INDEX
		CMP	#EMOVE
		BEQ	DORBFMV0110

		STZ	ENWRKC,X

		RTL

DORBFMV0110	EQU	$
		LDA	ENXPSL,X		;アイテムＸ　ＰＯＳ．セット
		STA	ENXPSL+BABY_INDEX	;

		LDA	ENYPSL,X		;アイテムＹ　ＰＯＳ．セット
		SEC				;
		SBC	#0000EH			;
		STA	ENYPSL+BABY_INDEX	;

		STZ	ENYSPD+BABY_INDEX	;アイテムＭＯＶＥロック

		RTL

DORBFMV0120	EQU	$
		JMP	>ENCLEAR

DORBFMV0200	EQU	$
		JSR	BABY_CHK2

DORBFMV0400	EQU	$
		LDY	<ENWRK2,X		;赤ちゃん待ってる ?
		CPY	#002			;
		BEQ	DORBFMV0500		; yes: DORBFMV0500

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

		LDA	EPWIDY,X		;プレイヤーに上から踏まれた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF6H			;
		BCC	DORBFMV0500		;  no: DORBFMV0500
						;
		LDY	PLYSPD+1		;
		BMI	DORBFMV0500		;
		LDY	PLJUMP			;
		BEQ	DORBFMV0500		;

		LDA	#00020H
		STA	ENGPOW,X
		LDA	#00200H
		STA	ENGMAX,X

		LDA	ENCLOR,X
		ORA	#00080H
		STA	ENCLOR,X

		LDA	#1110111001100000B	;食えない、あたらない
		STA	ENMOD0,X
		LDA	#0001000000000000B	;ＢＧチェック無しに
		STA	ENMOD1,X
		LDA	#0001100000000101B	;範囲クリアー有りに
		STA	ENMOD2,X

		LDY	#03AH			;［Ｓ］
		JSL	>PDON0ST_2
		LDA	#EFAIL
		STA	ENMODE,X
		LDA	#0FC00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDA	#01+8000H
		STA	PLSPJP
		STZ	ENXSPD,X
		STZ	ENYSPD,X
		JSR	BABY_CHK2

		RTL

DORBFMV0500	EQU	$
		JSL	>ENMDCK

		TXY
		LDA	<ENWRK2,X
		ASL	A
		TAX
		JSR	(DORBF_SUB,X)

		LDA	ENTIM1,X
		BNE	DORBFMV0800

		LDA	#00006
		STA	ENTIM1,X

		LDA	ENCHPT,X
		INC	A
		AND	#00003
		STA	ENCHPT,X

DORBFMV0800	EQU	$
		LDY	ENGMAX+1,X
		BPL	DORBFMV0900

		LDA	ENCBFG,X
		AND	#00001
		BEQ	DORBFMV0900

		LDA	#0FFFFH
		STA	ENYSPD,X

DORBFMV0900	EQU	$

		RTL
;
BABY_CHK2	EQU	$
		LDY	ENWRKC,X		;アイテム持ってる ?
		BEQ	BABY_CHK2200		;  no: BABY_CHK2200

		STZ	ENWRKC,X

		JSL	>BABYM_DOROB_CUT

BABY_CHK2200	EQU	$

		RTS

DORBF_XMAX	EQU	$
DORBF_GMAX	EQU	$
		WORD	0FF4DH,000B3H
		WORD	0FEF4H,0010CH
		WORD	0FDE7H,00219H
DORBF_XPOW	EQU	$
DORBF_GPOW	EQU	$
		WORD	00016H,0002CH,00043H
;
DORBF_SUB0	EQU	$
		TYX

		LDA	#00005H
		STA	ENXPOW,X
		STA	ENGPOW,X

		LDA	ENTIM3,X		;サーチロック ?
		BEQ	DORBF_SUB0100		;  no: DORBF_SUB0100

DORBF_SUB0000	EQU	$
		LDA	ENTIM0,X		;赤ちゃんをサーチする ?
		BNE	DORBF_SUB0080		;  no: DORBF_SUB0080

		LDA	#00030H			;サーチロックタイマーセット
		STA	ENTIM0,X		;

		LDA	<RANDM0
		AND	#00002
		TAY
		LDA	DORBF_XMAX,Y
		STA	ENXMAX,X

		TYA
		STA	ENMUKI,X

		LDA	<RANDM0
		XBA
		AND	#00002
		TAY
		LDA	DORBF_GMAX,Y
		STA	ENGMAX,X

DORBF_SUB0080	EQU	$
		RTS

DORBF_SUB0100	EQU	$
		LDY	ECRSFG,X		;プレイヤーと衝突した ?
		BPL	DORBF_SUB0200		;  no: DORBF_SUB0200

		LDY	BABYNO+1		;赤ちゃんが乗ってた ?
		BPL	DORBF_SUB0500		;  no: DORBF_SUB0500

		JSR	DORBF_BABY_REV

		JSR	ITEM_CROSS_S
		BRA	DORBF_SUB0400

DORBF_SUB0200	EQU	$
		DEY				;赤ちゃんと衝突した ?
		BNE	DORBF_SUB0500		;  no: DORBF_SUB0500

		LDA	BABYNO			;赤ちゃんだれかにさらわれてる ?
		AND	#06000H			;
		BNE	DORBF_SUB0000		; yes: DORBF_SUB0000

		JSR	ITEM_CROSS		;赤ちゃんと接触した ?
		BCS	DORBF_SUB0500		;  no: DORBF_SUB0500

DORBF_SUB0400	EQU	$
		INC	<ENWRK2,X		;routine mode index set

		M8
		LDA	<EWORK0			;赤ちゃんオフセットＸ　ＰＯＳ．セット
		STA	<ENWRK0,X		;
		LDA	<EWORK2			;赤ちゃんオフセットＹ　ＰＯＳ．セット
		SEC				;
		SBC	#00EH			;
		STA	<ENWRK1,X		;
		M16

		RTS

DORBF_SUB0500	EQU	$
		LDA	ENTIM0,X		;赤ちゃんをサーチする ?
		BNE	DORBF_SUB0800		;  no: DORBF_SUB0800

		LDA	#00030H			;サーチロックタイマーセット
		STA	ENTIM0,X		;

		LDY	#000
		LDA	ENXPSL+BABY_INDEX
		CMP	ENXPSL,X
		BMI	DORBF_SUB0600

		INY
		INY

DORBF_SUB0600	EQU	$
		LDA	DORBF_XMAX,Y
		STA	ENXMAX,X

		TYA
		STA	ENMUKI,X

		LDY	#000
		LDA	ENYPSL+BABY_INDEX
		CMP	ENYPSL,X
		BMI	DORBF_SUB0700

		INY
		INY

DORBF_SUB0700	EQU	$
		LDA	!DORBF_GMAX,Y		;上昇しようとしてる ?
		STA	ENGMAX,X		;

DORBF_SUB0800	EQU	$

		RTS
;
DORBF_BABY_XREV EQU	$
		WORD	0000FH,0FFF1H
DORBF_BABY_YREV EQU	$
		WORD	00017H,0FFE9H
;
DORBF_BABY_REV	EQU	$
		LDY	#000			;赤ちゃんＸ　ＰＯＳ．補正
		LDA	ENXPSL+BABY_INDEX	;
		SEC				;
		SBC	ENXPSL,X		;
		CLC				;
		ADC	#00010H			;
		CMP	#00020H			;
		BCC	DORBF_BABY_REV1		;
		BPL	DORBF_BABY_REV0		;
						;
		INY				;
		INY				;
						;
DORBF_BABY_REV0 EQU	$			;
		LDA	!DORBF_BABY_XREV,Y	;
		CLC				;
		ADC	ENXPSL,X		;
		STA	ENXPSL+BABY_INDEX	;

DORBF_BABY_REV1 EQU	$
		LDY	#000			;赤ちゃんＹ　ＰＯＳ．補正
		LDA	ENYPSL+BABY_INDEX	;
		SEC				;
		SBC	ENYPSL,X		;
		CLC				;
		ADC	#00018H			;
		CMP	#00030H			;
		BCC	DORBF_BABY_REV3		;
		BPL	DORBF_BABY_REV2		;
						;
		INY				;
		INY				;
						;
DORBF_BABY_REV2 EQU	$			;
		LDA	!DORBF_BABY_YREV,Y	;
		CLC				;
		ADC	ENYPSL,X		;
		STA	ENYPSL+BABY_INDEX	;

DORBF_BABY_REV3 EQU	$

		RTS
;
DORBF_SUB1	EQU	$
		TYX

		LDA	PLXSPD
		BPL	DORBF_SUB1100

		EOR	#0FFFFH
		INC	A

DORBF_SUB1100	EQU	$
		CLC
		ADC	#00080H
		AND	#00200H
		ASL	A
		XBA
		STA	<EWORK0
		LDY	EPXMUK,X
		TYA
		CLC
		ADC	<EWORK0
		EOR	#00002
		TAY
		LDA	!DORBF_XMAX,Y
		ASL	A
		STA	ENXMAX,X
		PHY
		TYA
		AND	#00004
		LSR	A
		TAY
		LDA	!DORBF_XPOW,Y
		ASL	A
		STA	ENXPOW,X
		PLY
		TYA
		EOR	#00002
		AND	#00002
		STA	ENMUKI,X

		STZ	<EWORK0
		LDA	EPWIDY,X
		SEC
		SBC	#00010H
		BPL	DORBF_SUB1180

		INC	<EWORK0
		INC	<EWORK0

DORBF_SUB1180	EQU	$
		LDA	PLYSPD
		BPL	DORBF_SUB1200

		EOR	#0FFFFH
		INC	A

DORBF_SUB1200	EQU	$
		CLC
		ADC	#00080H
		AND	#00200H
		ASL	A
		XBA
		CLC
		ADC	<EWORK0
		EOR	#00002
		TAY
		LDA	!DORBF_GMAX,Y
		ASL	A
		STA	ENGMAX,X
		TYA
		AND	#00004
		LSR	A
		TAY
		LDA	!DORBF_GPOW,Y
		ASL	A
		STA	ENGPOW,X

		LDA	ENDSXL,X		;画面端 ?
		SEC				;
		SBC	#00020H			;
		CMP	#000C0H			;
		BCC	DORBF_SUB1300		;  no: DORBF_SUB1300

		EOR	ENXMAX,X
		BMI	DORBF_SUB1300

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

DORBF_SUB1300	EQU	$
		LDA	EPWIDY,X		;プレイヤーより下にいる ?
		BPL	DORBF_SUB1310		; yes: DORBF_SUB1310

		LDA	ENDSYL,X		;画面端 ?
		SEC				;
		SBC	#00030H			;
		CMP	#000A0H			;
		BCC	DORBF_SUB1400		;  no: DORBF_SUB1400

DORBF_SUB1310	EQU	$
		EOR	ENGMAX,X
		BMI	DORBF_SUB1400

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

DORBF_SUB1400	EQU	$
DORBF_BABY_LIFT EQU	$
		JSR	ITEM_SEARCH5

DORBF_SUB1800	EQU	$
		LDA	#0FFF2H
		JMP	ITEM_LIFT2
;
ITEM_SEARCH5	EQU	$
		LDA	ENMODE+BABY_INDEX	;赤ちゃん存在してる ?
		BEQ	ITEM_SEARCH5300		;  no: ITEM_SEARCH5300

		CMP	#EEATM			;赤ちゃんプレイヤーに食われた ?
		BEQ	ITEM_SEARCH5300		; yes: ITEM_SEARCH5300

		LDA	ENWRKC,X		;赤ちゃんを担いでる ?
		BNE	ITEM_SEARCH5800		;  no: ITEM_SEARCH5800

ITEM_SEARCH5300 EQU	$
		JSL	>BABYM_DOROB_CUT

		PLA				;直接ＲＴＳ

ITEM_SEARCH5800 EQU	$

		RTS
;
DRBF2_SUB2	EQU	$
		TYX

		LDA	BABYNO			;赤ちゃん誰にも捕まっていない ?
		BNE	DRBF2_SUB2800		;  no: DRBF2_SUB2800

		LDA	ESCCH1
		CLC
		ADC	#00080H
		STA	ENXPSL,X
		LDA	ESCCV1
		SEC
		SBC	#00018H
		STA	ENYPSL,X

		INC	<ENWRK2,X

DRBF2_SUB2300	EQU	$
		LDA	#1110111000000000B
		STA	ENMOD0,X
		LDA	#0000100010000001B
		STA	ENMOD1,X
		LDA	#0010100000000001B
		STA	ENMOD2,X
		LDA	#00002H
		STA	ENYUSN,X

DRBF2_SUB2800	EQU	$

		RTS
;
DRBF2_SUB3	EQU	$
		TYX

		LDA	BABYNO			;赤ちゃん誰にも捕まっていない ?
		BEQ	DRBF2_SUB3300		; yes: DRBF2_SUB3300

		LDY	#005
		STY	<ENWRK2,X

		RTS

DRBF2_SUB3300	EQU	$
		LDA	#00002			;赤ちゃん追跡
		STA	ENMUKI,X		;
		LDA	ECENTX+BABY_INDEX	;
		SEC				;
		SBC	ECENTX,X		;
		PHP				;
		BPL	BABYM_CHASE0100		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
BABYM_CHASE0100 EQU	$			;
		LSR	A			;
		CMP	#00018H			;
		BMI	BABYM_CHASE0200		;
						;
		LDA	#00018H			;
						;
BABYM_CHASE0200 EQU	$			;
		CLC				;
		ADC	#00018H			;
		STA	ENXPOW,X		;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		PLP				;
		BPL	BABYM_CHASE0300		;
						;
		EOR	#0FFFFH			;
		INC	A			;
		STZ	ENMUKI,X		;
						;
BABYM_CHASE0300 EQU	$			;
		STA	ENXMAX,X		;
						;
		LDA	ECENTY+BABY_INDEX	;
		SEC				;
		SBC	ECENTY,X		;
		PHP				;
		BPL	BABYM_CHASE0400		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
BABYM_CHASE0400 EQU	$			;
		LSR	A			;
		CMP	#00018H			;
		BMI	BABYM_CHASE0500		;
						;
		LDA	#00018H			;
						;
BABYM_CHASE0500 EQU	$			;
		CLC				;
		ADC	#00018H			;
		STA	ENGPOW,X		;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		PLP				;
		BPL	BABYM_CHASE0600		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
BABYM_CHASE0600 EQU	$			;
		STA	ENGMAX,X		;
;
		JSR	ITEM_CROSS		;赤ちゃんと接触した ?
		BCS	DRBF2_SUB3800		;  no: DRBF2_SUB3800

		STZ	ENWRK6,X		;定位置到着フラグクリア
		INC	<ENWRK2,X

		M8
		LDA	<EWORK0			;赤ちゃんオフセットＸ　ＰＯＳ．セット
		STA	<ENWRK0,X		;
		LDA	<EWORK2			;赤ちゃんオフセットＹ　ＰＯＳ．セット
		SEC				;
		SBC	#00EH			;
		STA	<ENWRK1,X		;
		M16

DRBF2_SUB3800	EQU	$
		RTS
;
DRBF2_S4_GMAX	EQU	$
		WORD	0FF00H,00100H
;
DRBF2_SUB4	EQU	$
		TYX

		LDY	ENWRKA,X
		TYA
		ASL	A
		INC	A
		ASL	A
		ASL	A
		ASL	A
;		CLC
;		ADC	#00008
		STA	<EWORK0
		LDY	ENWRKA+1,X
		TYA
		ASL	A
		INC	A
		ASL	A
		ASL	A
		ASL	A
;		CLC
;		ADC	#00008
		STA	<EWORK2

		LDA	<EWORK0			;定位置の近く ?
		SEC				;
		SBC	ECENTX,X		;
		STA	<EWORK0			;
		CLC				;
		ADC	#00010H			;
		CMP	#00020H			;
		BCC	DRBF2_SUB4300		; yes: DRBF2_SUB4300

		EOR	ENXMAX,X
		BPL	DRBF2_SUB4300

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

DRBF2_SUB4300	EQU	$
		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X

		LDY	ENWRK6,X		;定位置についた ?
		BEQ	DRBF2_SUB4500		;  no: DRBF2_SUB4500

		LDA	ENTIM0,X
		BNE	DRBF2_SUB4400

		LDA	#00020H
		STA	ENTIM0,X

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

DRBF2_SUB4400	EQU	$
		JMP	DORBF_BABY_LIFT

DRBF2_SUB4500	EQU	$
		LDA	<EWORK2			;定位置に近づいた ?
		SEC				;
		SBC	ECENTY,X		;
		STA	<EWORK2			;
		CLC				;
		ADC	#00004H			;
		CMP	#00008H			;
		BCS	DRBF2_SUB4600		;  no: DRBF2_SUB4600

		LDA	#00020H
		STA	ENTIM0,X

		LDY	#000
		LDA	ENYSPD,X
		BMI	DRBF2_SUB4520

		INY
		INY

DRBF2_SUB4520	EQU	$
		LDA	#00020H
		STA	ENGPOW,X
		INC	ENWRK6,X
		LDA	!DRBF2_S4_GMAX,Y
		STA	ENYSPD,X
		EOR	#0FFFFH
		INC	A
		BRA	DRBF2_SUB4900

DRBF2_SUB4600	EQU	$
		LDA	<EWORK2			;
		PHP				;
		BPL	DRBF2_SUB4700		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
DRBF2_SUB4700	EQU	$			;
		LSR	A			;
		CMP	#00018H			;
		BMI	DRBF2_SUB4800		;
						;
		LDA	#00018H			;
						;
DRBF2_SUB4800	EQU	$			;
		CLC				;
		ADC	#00018H			;
		STA	ENGPOW,X		;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		PLP				;
		BPL	DRBF2_SUB4900		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
DRBF2_SUB4900	EQU	$			;
		STA	ENGMAX,X		;

DRBF2_SUB4A00	EQU	$
		JMP	DORBF_BABY_LIFT
;
DRBF2_SUB5	EQU	$
		TYX

		LDA	BABYNO			;赤ちゃん誰にも捕まっていない ?
		BNE	DRBF2_SUB5300		;  no: DRBF2_SUB5300

		LDY	#003
		STY	<ENWRK2,X
		RTS

DRBF2_SUB5300	EQU	$
		STZ	ENXMAX,X
		LDA	#00004H
		STA	ENXPOW,X
		LDA	#0FE00H
		STA	ENGMAX,X
		LDA	#00020H
		STA	ENGPOW,X

		RTS
;
;************************************************************************
;*		initial ( げろぞー )					*
;************************************************************************
GEROZIN		EQU	$			;-- gerozin --
		STZ	ENWRKA,X		;赤ちゃんのオフセットＰＯＳ．クリア
		M8
		LDA	#0FFH			;水中でのスピードを１倍に
		STA	ENWTSP,X		;
		M16
		LDA	ENXPSL,X		;セットタイプフラグセット
		AND	#00010H			;X = 0...２回ジャンプ
		LSR	A			;    1...１回ジャンプ
		LSR	A			;
		LSR	A			;
		INC	A			;
		INC	A			;
		TAY				;
		STY	<ENWRK3,X		;

		RTL
;
;************************************************************************
;*		move	( げろぞー )					*
;************************************************************************
;B		ENWRK0	舌の出る方向   0...横 2...上
;B		ENWRK1	舌の出入フラグ 0...出 2...入
;B		ENWRK2	ROUTINE MODE INDEX
;B		ENWRK3	セットタイプフラグ 2...２回ジャンプ 4...１回ジャンプ
;B		ENWRK4	舌のキャラパターン
;B		ENWRK5	舌の長さ（キャラ数）
;		ENWRK6	陸上でのジャンプ位置
;		ENWRK8	水中での移動範囲の中心
;B		ENWRKA	赤ちゃんのオフセットＹ　ＰＯＳ．
;B		ENWRKB	赤ちゃんのオフセットＸ　ＰＯＳ．
;		ENWRKC	赤ちゃんのせフラグ 0...なし 1...乗せてる
;
;		ENCONT	キャラパターンカウンター
;
;		ENTIM0	ストップタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2	プレイヤーサーチロックタイマー
;		ENTIM3	赤ちゃんサーチロックタイマー
;
GEROZ_SUB	EQU	$
GEROZ_00	EQU	$
		WORD	GEROZ_SUB00		;じっとしてる
GEROZ_10	EQU	$
		WORD	GEROZ_SUB10		;鳴く
GEROZ_11	EQU	$
		WORD	GEROZ_SUB11		;じゃんぷ
GEROZ_20	EQU	$
		WORD	GEROZ_SUB20		;舌を出すパターンまで変化
GEROZ_21	EQU	$
		WORD	GEROZ_SUB21		;舌が出入りしてる
GEROZ_22	EQU	$
		WORD	GEROZ_SUB22		;舌をれろれろ
GEROZ_30	EQU	$
		WORD	GEROZ_SUB30		;赤ちゃんを跳ね上げてる
GEROZ_31	EQU	$
		WORD	GEROZ_SUB31		;プレイヤーから逃げる（ジャンプ中）
GEROZ_40	EQU	$
		WORD	GEROZ_SUB40		;ダメージ
GEROZ_50	EQU	$
		WORD	GEROZ_SUB50		;上昇（水中）
GEROZ_51	EQU	$
		WORD	GEROZ_SUB51		;ぷかぷか（水中）
GEROZ_52	EQU	$
		WORD	GEROZ_SUB52		;沈む（水中）
GEROZ_53	EQU	$
		WORD	GEROZ_SUB53		;瞬間移動（水中）
GEROZ_60	EQU	$
		WORD	GEROZ_SUB60		;かえるボスデモ（じっとしてる）
GEROZ_61	EQU	$
		WORD	GEROZ_SUB61		;かえるボスデモ（じゃんぷ）
GEROZ_62	EQU	$
		WORD	GEROZ_SUB62		;かえるボスデモ（プレイヤーの縮み待ち）
GEROZ_63	EQU	$
		WORD	GEROZ_SUB63		;かえるボスデモ（舌を出すパターンまで変化）
GEROZ_64	EQU	$
		WORD	GEROZ_SUB64		;かえるボスデモ（舌が出入りしてる）
GEROZ_65	EQU	$
		WORD	GEROZ_SUB65		;かえるボスデモ（じっとしてる）
GEROZ_66	EQU	$
		WORD	GEROZ_SUB66		;かえるボスデモ（鳴く）
GEROZ_67	EQU	$
		WORD	GEROZ_SUB67		;かえるボスデモ（待ち）
GEROZ_90	EQU	$
;
GEROZ_RMODE00	EQU	(GEROZ_00-GEROZ_SUB)/2
GEROZ_RMODE10	EQU	(GEROZ_10-GEROZ_SUB)/2
GEROZ_RMODE11	EQU	(GEROZ_11-GEROZ_SUB)/2
GEROZ_RMODE20	EQU	(GEROZ_20-GEROZ_SUB)/2
GEROZ_RMODE21	EQU	(GEROZ_21-GEROZ_SUB)/2
GEROZ_RMODE22	EQU	(GEROZ_22-GEROZ_SUB)/2
GEROZ_RMODE30	EQU	(GEROZ_30-GEROZ_SUB)/2
GEROZ_RMODE31	EQU	(GEROZ_31-GEROZ_SUB)/2
GEROZ_RMODE40	EQU	(GEROZ_40-GEROZ_SUB)/2
GEROZ_RMODE50	EQU	(GEROZ_50-GEROZ_SUB)/2
GEROZ_RMODE51	EQU	(GEROZ_51-GEROZ_SUB)/2
GEROZ_RMODE52	EQU	(GEROZ_52-GEROZ_SUB)/2
GEROZ_RMODE53	EQU	(GEROZ_53-GEROZ_SUB)/2
GEROZ_RMODE60	EQU	(GEROZ_60-GEROZ_SUB)/2
GEROZ_RMODE61	EQU	(GEROZ_61-GEROZ_SUB)/2
GEROZ_RMODE62	EQU	(GEROZ_62-GEROZ_SUB)/2
GEROZ_RMODE63	EQU	(GEROZ_63-GEROZ_SUB)/2
GEROZ_RMODE64	EQU	(GEROZ_64-GEROZ_SUB)/2
GEROZ_RMODE65	EQU	(GEROZ_65-GEROZ_SUB)/2
GEROZ_RMODE66	EQU	(GEROZ_66-GEROZ_SUB)/2
GEROZ_RMODE67	EQU	(GEROZ_67-GEROZ_SUB)/2
GEROZ_RMODE90	EQU	(GEROZ_90-GEROZ_SUB)/2
;
;
;
GEROZMV		EQU	$			;-- gerozmv --
		JSR	GEROZ_OAM_SET

		LDY	<ENWRK2,X		;ボスデモ ?
		CPY	#GEROZ_RMODE60		;
		BPL	GEROZMV2		; yes: GEROZMV2

		LDA	ENWRKA,X		;赤ちゃん捕まえた ?
		BEQ	GEROZMV0200		;  no: GEROZMV0200

		LDA	ENSTFG			;敵ストップ ?
		ORA	BIRIBIRI
		ORA	ITEMNO
		BEQ	GEROZMV0300		;  no: GEROZMV0300

		JSL	>EN_XYMOVE
		JSL	>EN_TIMER
		BRA	GEROZMV0300

GEROZMV0200	EQU	$
		JSR	GEROZ_EAT_CHK		;プレイヤーに食われたかチェック
		JSL	>ENMDCK

GEROZMV0300	EQU	$
		JSR	GEROZ_DISPCK		;画面外チェック

		JSR	GEROZ_WATER_CHK		;水際チェック

		LDY	<ENWRK2,X
		TYA
		ASL	A
		TXY
		TAX
		JSR	(GEROZ_SUB,X)
;
		LDA	ENSTFG
		ORA	BIRIBIRI
		ORA	ITEMNO
		BNE	GEROZMV0700
;
		JSR	GEROZ_OBJ_CHK		;オブジェチェック
;
		JSR	GEROZ_BABY_RIDE		;赤ちゃん補正
;
GEROZMV0700	EQU	$
		JSR	GEROZ_MOD2_SET		;ＯＡＭセット個数セット
;
		STZ	ENXPOW,X
		LDA	ENCBFG,X
		AND	#00001
		BEQ	GEROZMV0800

		LDA	#00040H
		STA	ENXPOW,X

		LDA	ENXSPD,X
		CLC
		ADC	#00010H
		CMP	#00020H
		BCS	GEROZMV0800

		STZ	ENXSPD,X
		STZ	ENXPOW,X

GEROZMV0800	EQU	$

		RTL
;
;かえるボスデモ（ボスデモ）
GEROZMV2	EQU	$
		CPY	#GEROZ_RMODE90		;プレイヤーに吐かれて落ちて行く ?
		BPL	GEROZMV3		; yes: GEROZMV3

		LDA	ENWRKA,X		;赤ちゃん捕まえた ?
		BEQ	GEROZMV2300		;  no: GEROZMV2300

		LDA	ENSTFG			;敵ストップ ?
		ORA	BIRIBIRI
		ORA	ITEMNO
		BEQ	GEROZMV2300		;  no: GEROZMV2300

		JSL	>EN_XYMOVE
		JSL	>EN_TIMER

GEROZMV2300	EQU	$
		LDY	<ENWRK2,X
		TYA
		ASL	A
		TXY
		TAX
		JSR	(GEROZ_SUB,X)
;
		JSR	GEROZ_PL_REV

		JSR	GEROZ_MOD2_SET

		LDA	PLPATN			;プレイヤー魔法にかかってる ?
		CMP	#PC02			;
		BNE	GEROZMV2500		;  no: GEROZMV2500

		LDA	ENTIM0,X
		BNE	GEROZMV2500

		LDA	#00001100B
		STA	PLCLOR

GEROZMV2500	EQU	$

		RTL
;
;プレイヤーに吐かれて落ちて行く（ＦＡＩＬ）
GEROZMV3	EQU	$
		JSL	>ENMDCK

		JSR	GEROZ_DISPCK

		JSR	GEROZ_MOD2_SET

		RTL
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+	プレイヤーに吐かれて落ちて行くようにする	+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_TO_FALL	EQU	$
		LDA	#00400H
		STA	ENGMAX,X
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#0000CH
		STA	ENCHPT,X
		LDA	ENCLOR,X		;Ｖフリップさせる
		ORA	#00080H			;
		STA	ENCLOR,X		;
		LDA	#0100000001100000B	;食えない、投げた敵あたらない、衝突チェックな〜んもしない
		STA	ENMOD0,X		;
		LDA	#1000100001000000B	;ＢＧチェックなし
		STA	ENMOD1,X
		LDY	#GEROZ_RMODE90
		STY	<ENWRK2,X

		RTL
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		ＯＡＭセット				+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BERO_XPOS EQU	$
;			よこ（左） よこ（右） うえ（左）うえ（右）
		HEX	0FE,	   00A,	       003,	 005
GEROZ_BERO_YPOS EQU	$
		HEX	005,	   005,	       001,	 001
;
GEROZ_OAM_SET	EQU	$
		LDA	ENOAML,X
		STA	R4
		BMI	GEROZ_O_SET0100
		LDY	ENYUSN,X
		BPL	GEROZ_O_SET0200

GEROZ_O_SET0100 EQU	$
		RTS

GEROZ_O_SET0200 EQU	$
		LDY	<ENWRK5,X
		TYA
		STA	CCWORK15
		STA	CCWORK16

		LDY	<ENWRK0,X		;横に舌を伸ばしてる ?
		BEQ	GEROZ_O_SET0300		; yes: GEROZ_O_SET0300

		STZ	CCWORK15
		BRA	GEROZ_O_SET0400

GEROZ_O_SET0300 EQU	$
		STZ	CCWORK16

GEROZ_O_SET0400 EQU	$
		LDA	ENMUKI,X		;左を向いてる ?
		STA	R8			;
		BEQ	GEROZ_O_SET0500		; yes: GEROZ_O_SET0500

		INY
		LDA	CCWORK15
		EOR	#0FFFFH
		INC	A
		STA	CCWORK15

GEROZ_O_SET0500 EQU	$
		LDA	!GEROZ_BERO_XPOS,Y
		AND	#000FFH
		STA	CCWORK1C
		LDA	!GEROZ_BERO_YPOS,Y
		AND	#000FFH
		STA	CCWORK1D

		LDY	<ENWRK4,X
		LDA	!GEROZ_ENMOD2_2-1,Y
		AND	#000FFH
		STA	CCWORK12
		TYA				;舌出てる ?
		BEQ	GEROZ_O_SET0600		;  no: GEROZ_O_SET0600

		ASL	A
		TAY
		LDA	!GEROZ_CHAR_ADR2-2,Y

GEROZ_O_SET0600 EQU	$
		STA	CCWORK13

		LDY	ENCHPT,X
		LDA	!GEROZ_ENMOD2,Y
		AND	#000FFH
		STA	R12
		TYA
		ASL	A
		TAY
		LDA	!GEROZ_CHAR_ADR,Y
		STA	R14
		LDA	!GEROZ_CHAR_ADR3,Y
		STA	CCWORK14
;
		LDA	#BANK GEROZ_CHAR_ADR
		STA	R0
		LDA	ENDSXL,X
		STA	R1
		LDA	ENDSYL,X
		STA	R2
		LDA	ENMUKI,X
		STA	R8
		TXA
		STA	R10

		M_CHIP	M_GEROZ_OAMSET
		LDX	<ENINDX

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+	プレイヤーに食われたかチェック			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_EAT_CHK	EQU	$
		LDA	ENMODE,X		;食われた ?
		CMP	#EEATM			;
		BNE	GEROZ_E_CHK0800		;  no: GEROZ_E_CHK0800

		LDY	ENYUSN,X		;プレイヤーの腹の中 ?
		BPL	GEROZ_E_CHK0800		;  no: GEROZ_E_CHK0800

		STZ	ENCHPT,X
		STZ	<ENWRK4,X
		JMP	GEROZ_MOD2_SET

GEROZ_E_CHK0800 EQU	$
		LDY	ENSHOT,X		;吐きだされてる ?
		BEQ	GEROZ_E_CHK0900		;  no: GEROZ_E_CHK0900

		LDY	ENWATR,X		;水中 ?
		BEQ	GEROZ_E_CHK0900		;  no: GEROZ_E_CHK0900

		LDA	#00001
		STA	ENCBFG,X

GEROZ_E_CHK0900 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		画面外チェック				+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_DISPCK	EQU	$
		LDA	#007E0H			;画面最下層 ?
		CMP	ENYPSL,X		;
		BPL	GEROZ_DISPCK008		;  no: GEROZ_DISPCK008

		STA	ENYPSL,X

GEROZ_DISPCK008 EQU	$
		LDA	ENXPSL,X		;コース左端 ?
		SEC				;
		SBC	#00010H			;
		BPL	GEROZ_DISPCK030		;  no: GEROZ_DISPCK030

		EOR	ENXSPD,X		;コースの外に行こうとしてる ?
		BMI	GEROZ_DISPCK030		;  no: GEROZ_DISPCK030

		LDA	#00010H
		STA	ENXPSL,X
		LDA	ENXSPD,X
		EOR	#0FFFFH
		INC	A
		STA	ENXSPD,X
		LDA	ENMUKI,X
		EOR	#00002
		STA	ENMUKI,X
		RTS

GEROZ_DISPCK030 EQU	$
		JSL	>DISPCK2		;画面外 ?
		BCC	GEROZ_DISPCK050		;  no: GEROZ_DISPCK050

		LDY	ENWRKC,X		;赤ちゃん乗ってる ?
		BNE	GEROZ_DISPCK040		; yes: GEROZ_DISPCK040

		PLA
		JMP	>ENCLEAR

GEROZ_DISPCK040 EQU	$
		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X
		LDA	ENYPSL,X
		SEC
		SBC	ENMOVY,X
		STA	ENYPSL,X

GEROZ_DISPCK050 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		水際チェック				+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_WATER_CHK EQU	$
		LDY	<ENWRK2,X		;赤ちゃん乗せてる最中 ?
		CPY	#GEROZ_RMODE30		;
		BEQ	GEROZ_W_CHK0800		; yes: GEROZ_W_CHK0800

		LDA	ENCBFG,X		;足がついてる ?
		AND	#00001			;
		BNE	GEROZ_W_CHK1000		; yes: GEROZ_W_CHK1000

		LDY	ENWATR,X		;水中 ?
		BEQ	GEROZ_W_CHK0800		;  no: GEROZ_W_CHK0800

		LDA	ENWRK8,X		;水中は初めて ?
		BNE	GEROZ_W_CHK0800		;  no: GEROZ_W_CHK0800

		LDA	ENXPSL,X		;水中での移動範囲の中心セット
		STA	ENWRK8,X		;
		STZ	ENXSPD,X

		LDA	#00006
		LDY	BG1TYP			;草コース ?
		CPY	#001			;
		BNE	GEROZ_W_CHK0300		;  no: GEROZ_W_CHK0300

		LDA	#0FFFDH

GEROZ_W_CHK0300 EQU	$
		STA	ENBGYP,X
		LDA	ENMOD1,X		;ひっくり返らない
		AND	#1111011111111111B	;
		STA	ENMOD1,X		;
		LDY	<ENWRK2,X		;ダメージ中 ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_W_CHK0800		; yes: GEROZ_W_CHK0800

		LDY	#GEROZ_RMODE50
		STY	<ENWRK2,X

GEROZ_W_CHK0800 EQU	$

		RTS

GEROZ_W_CHK1000 EQU	$
		LDY	<ENWRK2,X
		CPY	#GEROZ_RMODE40
		BEQ	GEROZ_W_CHK1100
		CPY	#GEROZ_RMODE50
		BEQ	GEROZ_W_CHK1100
		CPY	#GEROZ_RMODE51
		BEQ	GEROZ_W_CHK1100
		CPY	#GEROZ_RMODE52
		BEQ	GEROZ_W_CHK1100
		CPY	#GEROZ_RMODE53
		BNE	GEROZ_W_CHK0800

GEROZ_W_CHK1100 EQU	$
		LDA	ENWRK8,X		;上陸したて ?
		BEQ	GEROZ_W_CHK0800		; no: GEROZ_W_CHK0800

		STZ	ENWRK8,X		;水中での移動範囲の中心クリア
		STZ	ENBGYP,X
		LDA	ENMOD1,X		;ひっくり返る
		ORA	#0000100000000000B	;
		STA	ENMOD1,X		;
		LDA	#00080H
		STA	ENGPOW,X
		LDA	#00800H
		STA	ENGMAX,X
		STZ	ENTIM0,X
		LDY	<ENWRK2,X		;ダメージ中 ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_W_CHK0800		; yes: GEROZ_W_CHK0800

		LDY	#000
		STY	<ENWRK2,X

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		オブジェチェック			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BABY_XS	EQU	$
		WORD	00180H,0FE80H
GEROZ_PL_KICK	EQU	$
		WORD	00040H,0FFC0H
GEROZ_XMAX	EQU	$
		WORD	0FC80H,00380H
;
GEROZ_OBJ_CHK	EQU	$
		LDY	ECRSFG,X		;プレイヤーにあたった ?
		BMI	GEROZ_O_CHK0300		; yes: GEROZ_O_CHK0300

		DEY				;赤ちゃんと衝突した ?
		BNE	GEROZ_O_CHK0200		;  no: GEROZ_O_CHK0200

		LDA	BABYNO			;赤ちゃん、他のどろぼーに取られてる ?
		AND	#06000H			;
		BNE	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDA	ENMODE+BABY_INDEX	;赤ちゃん、正常じゃない ?
		SEC				;
		SBC	#EMOVE			;
		ORA	ENTIM3,X		;赤ちゃんチェックロック ?
		ORA	BABYCTFLG		;赤ちゃん、プレイヤーに乗ろうとしてる ?
		ORA	DEATHCT0		;赤ちゃん、死神に連れ去られてる ?
		BNE	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDY	<ENWRK2+BABY_INDEX	;赤ちゃん、他のげろぞーに跳ね上げられてる ?
		CPY	#BABYM_RMODE40		;
		BEQ	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100
		CPY	#BABYM_RMODE10		;赤ちゃん、プレイヤーに乗ろうとしてる ?
		BEQ	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDY	<ENWRK2,X		;ダメージを受けてる ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100
		CPY	#GEROZ_RMODE50		;水中 ?
		BEQ	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100
		CPY	#GEROZ_RMODE52		;
		BEQ	GEROZ_O_CHK0100		;
		CPY	#GEROZ_RMODE53		;
		BNE	GEROZ_O_CHK0700		;  no: GEROZ_O_CHK0700

GEROZ_O_CHK0100 EQU	$

		RTS

GEROZ_O_CHK0200 EQU	$
		JMP	GEROZ_O_CHK1000		;  no: GEROZ_O_CHK1000

GEROZ_O_CHK0300 EQU	$
		LDA	EPWIDY,X		;プレイヤーに上から踏まれた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF8H			;
		BCC	GEROZ_O_CHK0600		;  no: GEROZ_O_CHK0600

		LDY	PLYSPD+1		;プレイヤー上昇中 ?
		BMI	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDY	ENCHPT,X		;上を向いて口を開けてる ?
		CPY	#008			;
		BEQ	GEROZ_O_CHK0400		; yes: GEROZ_O_CHK0400
		CPY	#009			;
		BNE	GEROZ_O_CHK0500		;  no: GEROZ_O_CHK0500

GEROZ_O_CHK0400 EQU	$
		LDY	<ENWRK2,X		;ダメージを受けてる ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_O_CHK0900		; yes: GEROZ_O_CHK0900

		JSL	>PLFLST
		RTS

GEROZ_O_CHK0500 EQU	$
		LDA	ENTIM2,X		;プレイヤーチェックロック ?
		BNE	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDA	PLBGCR			;プレイヤー頭打ってる ?
		AND	#0000000000011000B	;
		BNE	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		LDA	#0FA00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		STZ	PLDOSN
		JMP	GEROZ_O_CHK2000

GEROZ_O_CHK0600 EQU	$
		LDY	<ENWRK2,X		;ダメージを受けてる ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_O_CHK0900		; yes: GEROZ_O_CHK0900
		CPY	#GEROZ_RMODE50		;水中 ?
		BEQ	GEROZ_O_CHK0900		; yes: GEROZ_O_CHK0900
		CPY	#GEROZ_RMODE52		;
		BEQ	GEROZ_O_CHK0900		;
		CPY	#GEROZ_RMODE53		;
		BEQ	GEROZ_O_CHK0900		;

		LDA	ENTIM2,X		;プレイヤーチェックロック ?
		BNE	GEROZ_O_CHK0900		; yes: GEROZ_O_CHK0900

		LDY	BABYNO+1		;赤ちゃん乗ってた ?
		BPL	GEROZ_O_CHK0900		;  no: GEROZ_O_CHK0900

GEROZ_O_CHK0700 EQU	$
		LDA	ENTIM3,X		;赤ちゃんチェックロック ?
		BNE	GEROZ_O_CHK0100		; yes: GEROZ_O_CHK0100

		JSR	GEROZ_BABY_MOVE
		JSR	GEROZ_BABY_JUMP
		LDA	#00101H			;赤ちゃんオフセットＰＯＳ．セット
		STA	ENWRKA,X		;
		LDY	#GEROZ_RMODE30
		STY	<ENWRK2,X
		LDA	#0000000001000000B	;食えない
		TSB	ENMOD0+BABY_INDEX	;

		LDY	<ENWRK5,X		;舌伸び切ってる ?
		CPY	#058H			;
		BNE	GEROZ_O_CHK0720		;  no: GEROZ_O_CHK0720

		LDA	#0580BH
		LDY	<ENWRK0,X		;横に舌を伸ばしてる ?
		BEQ	GEROZ_O_CHK0710		; yes: GEROZ_O_CHK0710

		LDA	#05816H

GEROZ_O_CHK0710 EQU	$
		STA	<ENWRK4,X

GEROZ_O_CHK0720 EQU	$

		RTS

GEROZ_O_CHK0900 EQU	$
		LDA	PLFLSH			;プレイヤーダメージ中 ?
		BNE	GEROZ_O_CHK0720		; yes: GEROZ_O_CHK0720

		LDY	#000			;プレイヤーにけたおされたときのスピードセット
		LDA	PLXSPD			;
		BNE	GEROZ_O_CHK0930		;
						;
		LDA	PLCMKI			;
		EOR	#00002			;
		DEC	A			;
						;
GEROZ_O_CHK0930 EQU	$			;
		BPL	GEROZ_O_CHK0A00		;
						;
		INY				;
		INY				;
						;
GEROZ_O_CHK0A00 EQU	$			;
		LDA	!GEROZ_PL_KICK,Y	;
		LDY	ENWRK8,X		;	;水中 ?
		BNE	GEROZ_O_CHK0B00		;	; yes: GEROZ_O_CHK0B00
						;
		ASL	A			;
		ASL	A			;
		PHA				;
		LDA	ENCBFG,X		;	;頭打ってる ?
		AND	#00002			;	;
		BNE	GEROZ_O_CHK0A80		;	; yes: GEROZ_O_CHK0A80
						;
		LDA	#0FC00H			;
		STA	ENYSPD,X		;
						;
GEROZ_O_CHK0A80 EQU	$			;
		LDA	#00040H			;
		STA	ENGPOW,X		;
		LDA	#00400H			;
		STA	ENGMAX,X		;
		PLA				;
						;
GEROZ_O_CHK0B00 EQU	$			;
		CLC				;
		ADC	PLXSPD			;
		STA	ENXSPD,X		;
		LDY	#000			;
		CLC				;
		ADC	#00380H			;
		CMP	#00700H			;
		BCC	GEROZ_O_CHK0B70		;
		BMI	GEROZ_O_CHK0B50		;
						;
		INY				;
		INY				;
						;
GEROZ_O_CHK0B50 EQU	$			;
		LDA	!GEROZ_XMAX,Y		;
		STA	ENXSPD,X		;
						;
GEROZ_O_CHK0B70 EQU	$			;
		LDA	ENCBFG,X		;	;壁にあたってる ?
		AND	#0000CH			;	;
		BEQ	GEROZ_O_CHK0B80		;	;  no: GEROZ_O_CHK0B80
						;
		SEC				;	;進行方向の壁にあたってる ?
		SBC	#00008			;	;
		EOR	ENXSPD,X		;	;
		BPL	GEROZ_O_CHK0B80		;	;  no: GEROZ_O_CHK0B80
						;
		STZ	ENXSPD,X		;

GEROZ_O_CHK0B80 EQU	$
;;;;;;;;		LDA	#00010H
;;;;;;;;		STA	ENXPOW,X
		LDA	#00065H			;［Ｓ］
		JSL	>SOUND_3_ON

GEROZ_O_CHK0F00 EQU	$

		RTS

GEROZ_O_CHK1000 EQU	$
		TXA
		STA	R1
		M_CHIP	SHOTENSR
		LDX	<ENINDX
		LDY	R1			;ショットされてるやついた ?
		BMI	GEROZ_O_CHK0F00		;  no: GEROZ_O_CHK0F00

		LDA	EWIDEX,X		;衝突した ?
		CLC				;
		ADC	EWIDEX,Y		;
		ASL	A			;
		STA	<EWORK0			;
		LSR	A			;
		CLC				;
		ADC	ECENTX,X		;
		SEC				;
		SBC	ECENTX,Y		;
		CMP	<EWORK0			;
		BCS	GEROZ_O_CHK0F00		;  no: GEROZ_O_CHK0F00
						;
		LDA	EWIDEY,X		;
		CLC				;
		ADC	EWIDEY,Y		;
		ASL	A			;
		STA	<EWORK0			;
		LSR	A			;
		CLC				;
		ADC	ECENTY,X		;
		SEC				;
		SBC	ECENTY,Y		;
		CMP	<EWORK0			;
		BCS	GEROZ_O_CHK0F00		;  no: GEROZ_O_CHK0F00

		TYX
		JSL	>SHOT_EN_KILL

GEROZ_O_CHK2000 EQU	$
		LDA	#00065H			;［Ｓ］
		JSL	>SOUND_3_ON

		STZ	ENXSPD,X		;その場に落ちる
		STZ	ENYSPD,X		;
		LDA	#00800H			;
		STA	ENGMAX,X		;
		LDA	#00080H			;
		STA	ENGPOW,X		;

		LDA	ENWRK8,X		;水中にいる ?
		BEQ	GEROZ_O_CHK2100		;  no: GEROZ_PLCHK2100

		STZ	ENGPOW,X
		STZ	ENGMAX,X
		LDA	#00080H
		STA	ENYSPD,X

GEROZ_O_CHK2100 EQU	$
		LDA	#0000BH			;ダメージキャラセット
		LDY	ENCHPT,X		;	;上を向いて口を開けてる ?
		CPY	#008			;	;
		BEQ	GEROZ_O_CHK2110		;	; yes: GEROZ_O_CHK2110
		CPY	#009			;	;
		BEQ	GEROZ_O_CHK2110		;	; yes: GEROZ_O_CHK2110
		CPY	#00DH			;	;
		BEQ	GEROZ_O_CHK2110		;	; yes: GEROZ_O_CHK2110
		CPY	#00EH			;	;
		BNE	GEROZ_O_CHK2200		;	;  no: GEROZ_O_CHK2200
						;
GEROZ_O_CHK2110 EQU	$			;
		LDA	#0000DH			;
						;
GEROZ_O_CHK2200 EQU	$			;
		STA	ENCHPT,X		;
		LDA	#00004			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;
		LDY	<ENWRK2,X		;ダメージ中 ?
		CPY	#GEROZ_RMODE40		;
		BEQ	GEROZ_O_CHK2500		; yes: GEROZ_O_CHK2500

		LDY	#GEROZ_RMODE40
		STY	<ENWRK2,X
;;;;;;;;		LDA	#00010H
;;;;;;;;		STA	ENXPOW,X
		LDA	ENMOD1,X		;壁にあたると止まる
		ORA	#0000010010000000B	;
		STA	ENMOD1,X

		LDY	<ENWRK5,X		;舌を目一杯に伸ばしてる ?
		CPY	#058H			;
		BNE	GEROZ_O_CHK2500		;  no: GEROZ_O_CHK2500

		LDA	#0580AH
		LDY	<ENWRK0,X		;横に舌を伸ばしてる ?
		BEQ	GEROZ_O_CHK2400		; yes: GEROZ_O_CHK2400

		LDA	#05816H

GEROZ_O_CHK2400 EQU	$
		STA	<ENWRK4,X

GEROZ_O_CHK2500 EQU	$
		LDA	#00040H			;ストップタイマーセット
		STA	ENTIM0,X		;

		LDY	ENWRKC,X		;赤ちゃん乗ってた ?
		BEQ	GEROZ_O_CHK2800		;  no: GEROZ_O_CHK2800

		JSL	>BABYM_DOROB_CUT

;		LDA	ENXPSL,X		;赤ちゃんをＢＧに食い込ませたままパージしないため
;		STA	ENXPSL+BABY_INDEX	;
;		LDA	ENYPSL,X		;
;		STA	ENYPSL+BABY_INDEX	;

GEROZ_O_CHK2800 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		赤ちゃん補正				+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BABY_RX	EQU	$
;		WORD	0FFF8H,00008H
		WORD	0FFFCH,00004H
;
GEROZ_BABY_RIDE EQU	$
		LDY	ENWRKC,X		;赤ちゃん乗ってる ?
		BEQ	GEROZ_B_RIDE080		;  no: GEROZ_B_RIDE080

		LDA	ENMODE+BABY_INDEX	;赤ちゃん、正常 ?
		CMP	#EMOVE			;
		BEQ	GEROZ_B_RIDE010		; yes: GEROZ_B_RIDE010

		M8
		LDA	#000			;赤ちゃん乗せフラグクリア
		STA	ENWRKC,X		;
		M16
		LDA	#00080H			;赤ちゃんチェックロックタイマーセット
		STA	ENTIM3,X		;

		RTS

GEROZ_B_RIDE010 EQU	$
		LDA	ENMUKI,X
		EOR	#00002
		STA	ENMUKI+BABY_INDEX
		TAY
		LDA	ENXPSL,X
		CLC
		ADC	!GEROZ_BABY_RX,Y
		STA	ENXPSL+BABY_INDEX
		LDA	ENYPSL,X
		SEC
		SBC	#00008
		STA	ENYPSL+BABY_INDEX

GEROZ_B_RIDE080 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		ＯＡＭセット個数セット			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_MOD2_SET	EQU	$
		M8
		LDA	#000
		LDY	<ENWRK4,X		;舌を出してる ?
		BEQ	GEROZ_M2_SET030		; yes: GEROZ_M2_SET030

		LDA	!GEROZ_ENMOD2_2-1,Y

GEROZ_M2_SET030 EQU	$
		LDY	ENCHPT,X
		CLC
		ADC	!GEROZ_ENMOD2,Y
		CLC
		ADC	!GEROZ_ENMOD2_3,Y
		ASL	A
		ASL	A
		ASL	A
		STA	ENMOD2+1,X
		M16

		RTS
;
;****************************************************************
;*		SUBROUTINES					*
;****************************************************************
GEROZ_S00_CKDT0 EQU	$
		WORD	00001,00000
GEROZ_S00_CKDT1 EQU	$
		WORD	00001*2+1,00000*2+1
;
GEROZ_SUB00	EQU	$
		TYX

		LDA	ENCBFG,X		;地面に着いてる ?
		AND	#00001			;
		BEQ	GEROZ_SUB00600		;  no: GEROZ_SUB00600

		STZ	ENXSPD,X

		LDA	ENTIM0,X		;ストップ ?
		BNE	GEROZ_PL_RANGE		; yes: GEROZ_PL_RANGE

		LDY	ENWATR,X		;水中（浅瀬） ?
		BNE	GEROZ_SUB00100		; yes: GEROZ_SUB00100

		LDA	<RANDM0+1		;鳴く ?
		AND	#00001			;
		BNE	GEROZ_SUB00100		;  no: GEROZ_SUB00100

		LDA	#00002
		STA	ENCHPT,X
		ASL	A		;[ LDA	#00004 ]
		STA	<ENCONT,X
		LDA	#00010H
		STA	ENTIM1,X
		LDY	#GEROZ_RMODE10
		STY	<ENWRK2,X

		RTS

GEROZ_SUB00100	EQU	$
GEROZ_JUMP	EQU	$
		LDA	<RANDM0			;向きセット
		AND	#00002			;
		STA	ENMUKI,X		;
		DEC	A			;
		STA	<EWORK0			;

		LDY	<ENWRK3,X
		LDA	ENWRK6,X		;移動してもいい方向 ?
		CLC				;
		ADC	!GEROZ_S00_CKDT0-2,Y	;
		CMP	!GEROZ_S00_CKDT1-2,Y	;
		BCC	GEROZ_SUB00200		; yes: GEROZ_SUB00200
						;
		EOR	<EWORK0			;
		BPL	GEROZ_SUB00200		; yes: GEROZ_SUB00200

		LDA	ENMUKI,X
		EOR	#00002
		STA	ENMUKI,X

GEROZ_SUB00200	EQU	$
		LDY	#GEROZ_RMODE11
		STY	<ENWRK2,X

GEROZ_JUMP2	EQU	$
		LDA	#00002			;キャラパターンチェンジカウンターセット
		STA	<ENCONT,X		;
		LDA	ENMUKI,X
		DEC	A
		CLC
		ADC	ENWRK6,X
		STA	ENWRK6,X

GEROZ_SUB00600	EQU	$

		RTS
;
GEROZ_BODY_CHPT EQU	$
		WORD	00001H,00005H
GEROZ_BODY_TIM1 EQU	$
		WORD	00004H,00008H
GEROZ_BODY_CNT	EQU	$
		WORD	00003H,00004H
;
GEROZ_PL_RANGE	EQU	$
		LDY	ENWRKC,X		;赤ちゃん乗せてる ?
		TYA				;
		ORA	ENTIM2,X		;プレイヤーサーチロック ?
		BNE	GEROZ_P_R0800		; yes: GEROZ_P_R0800

		LDY	BABYNO+1		;プレイヤーが赤ちゃんを持ってる ?
		BPL	GEROZ_P_R1000		;  no: GEROZ_P_R1000

		LDA	EPWIDX,X
		STA	<EWORK0
		LDA	EPWIDY,X
		JSR	GEROZ_P_R_SB		;プレイヤー発見 ?
		BCS	GEROZ_P_R0800		;  no: GEROZ_P_R0800
;
;舌を出す
GEROZ_P_R0100	EQU	$
		LDA	!GEROZ_BODY_CHPT,Y
		STA	ENCHPT,X
		LDA	!GEROZ_BODY_CNT,Y
		STA	<ENCONT,X
		LDA	!GEROZ_BODY_TIM1,Y
		STA	ENTIM1,X
		STY	<ENWRK0,X		;舌の出てる向きセット
		STZ	ENWRKA,X		;赤ちゃんオフセットＰＯＳ．クリア

		STZ	ENYSPD,X
		LDY	#GEROZ_RMODE20
		STY	<ENWRK2,X

GEROZ_P_R0800	EQU	$

		RTS

GEROZ_P_R1000	EQU	$
		LDA	ECENTX,X
		SEC
		SBC	ECENTX+BABY_INDEX
		STA	<EWORK0
		LDA	ECENTY,X
		SEC
		SBC	ECENTY+BABY_INDEX
		JSR	GEROZ_P_R_SB		;赤ちゃん発見 ?
		BCC	GEROZ_P_R0100		; yes: GEROZ_P_R0100

		RTS
;
GEROZ_P_R_SB	EQU	$
		STA	<EWORK2
		LDY	#002
		LDA	<EWORK0			;上を通過中 ?
		CLC				;
		ADC	#00030H			;
		CMP	#00060H			;
		BCS	GEROZ_P_R_SB010		;  no: GEROZ_P_R_SB010
		LDA	<EWORK2			;
		CMP	#00040H			;
		BCS	GEROZ_P_R_SB010		;
		CMP	#00018H			;
		BCS	GEROZ_P_R_SB040		; yes: GEROZ_P_R_SB040

GEROZ_P_R_SB010 EQU	$
		LDA	ENWRK8,X		;水中 ?
		BEQ	GEROZ_P_R_SB020		;  no: GEROZ_P_R_SB020

		SEC
		RTS

GEROZ_P_R_SB020 EQU	$
		LDA	ENMUKI,X		;向いてる方向にいる ?
		DEC	A			;
		EOR	<EWORK0			;
		BMI	GEROZ_P_R_SB030		; yes: GEROZ_P_R_SB030

		LDA	ENMUKI,X
		EOR	#00002
		STA	ENMUKI,X

GEROZ_P_R_SB030 EQU	$
		LDA	<EWORK0			;横にいる ?
		CLC				;
		ADC	#00050H			;
		CMP	#000A0H			;
		BCS	GEROZ_P_R_SB080		;  no: GEROZ_P_R_SB080
		LDA	<EWORK2			;
		CLC				;
		ADC	#00018H			;
		CMP	#00030H			;
		BCS	GEROZ_P_R_SB080		;  no: GEROZ_P_R_SB080

		DEY
		DEY

GEROZ_P_R_SB040 EQU	$
		CLC

GEROZ_P_R_SB080 EQU	$
		RTS
;
GEROZ_S10_CHPT	EQU	$-1
		HEX	03,02,03
GEROZ_S10_TIM1	EQU	$-1
		HEX	10,10,10
;
GEROZ_SUB10	EQU	$
		TYX

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

		DEC	<ENCONT,X		;鳴きパターン終わり ?
		BNE	GEROZ_SUB10500		;  no: GEROZ_SUB10500

		JMP	GEROZ_STOP2

GEROZ_SUB10500	EQU	$
		LDY	<ENCONT,X
		LDA	!GEROZ_S10_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X
		LDA	!GEROZ_S10_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		CMP	#00002			;サウンド立てる ?
		BNE	GEROZ_SUB10800		;  no: GEROZ_SUB10800

		LDA	#0005EH			;［Ｓ］
		JSL	>SOUND_3_ON

GEROZ_SUB10800	EQU	$

		RTS
;
GEROZ_S11_CHPT	EQU	$
		HEX	0A,02,01
GEROZ_S11_TIM1	EQU	$
		HEX	00,10,04
		HEX	00,06,02
GEROZ_S11_XSPD	EQU	$
		WORD	0FE60H,001A0H
		WORD	0FE00H,00200H
;
GEROZ_SUB11	EQU	$
GEROZ_SUB31	EQU	$
GEROZ_SUB61	EQU	$
		TYX

		LDY	<ENCONT,X		;ジャンプした ?
		BMI	GEROZ_SUB11500		; yes: GEROZ_SUB11500

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

		LDA	!GEROZ_S11_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	ENWRKC,X		;赤ちゃんを連れて逃げてる ?
		AND	#000FFH			;
		BNE	GEROZ_SUB11100		; yes: GEROZ_SUB11100

		LDA	!GEROZ_S11_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

GEROZ_SUB11100	EQU	$
		DEY				;ジャンプする ?
		STY	<ENCONT,X		;
		BPL	GEROZ_SUB11400		;  no: GEROZ_SUB11400

		LDA	#00035H			;［Ｓ］
		JSL	>SOUND_3_ON

		LDA	#0F980H
		LDY	<ENWRK2,X		;かえるボスデモ ?
		CPY	#GEROZ_RMODE61		;
		BNE	GEROZ_SUB11200		;  no: GEROZ_SUB11200

		LDA	#0F680H

GEROZ_SUB11200	EQU	$
		STA	ENYSPD,X
		LDA	#00080H
		STA	ENGPOW,X
		LDA	#00800H
		STA	ENGMAX,X
;
		LDY	ENMUKI,X
		LDA	ENWRKC,X		;赤ちゃんを連れて逃げてる ?
		AND	#000FFH			;
		BEQ	GEROZ_SUB11300		;  no: GEROZ_SUB11300

		TYA
		CLC
		ADC	#00004
		TAY
		LDA	#0F800H
		STA	ENYSPD,X

GEROZ_SUB11300	EQU	$
		LDA	!GEROZ_S11_XSPD,Y
		STA	ENXSPD,X
		LDY	#000			;舌だしフラグセット
		STY	<ENWRK1,X		;

GEROZ_SUB11400	EQU	$

		RTS

GEROZ_SUB11500	EQU	$
		LDA	ENCBFG,X		;地面に着いた ?
		AND	#00001			;
		BEQ	GEROZ_SUB11800		;  no: GEROZ_SUB11800

		STZ	ENXSPD,X

		LDY	ENCHPT,X		;着地ポーズ ?
		CPY	#00BH			;
		BEQ	GEROZ_SUB11700		; yes: GEROZ_SUB11700

		INC	ENCHPT,X

		LDA	#00004
		LDY	ENWRKC,X		;赤ちゃんを連れて逃げてる ?
		BNE	GEROZ_SUB11600		; yes: GEROZ_SUB110600

		LDA	#0000AH

GEROZ_SUB11600	EQU	$
		STA	ENTIM1,X

GEROZ_SUB11700	EQU	$
		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	GEROZ_SUB11800		;  no: GEROZ_SUB11800

		LDY	ENWRKC,X		;赤ちゃん連れて逃げてる ?
		BNE	GEROZ_SUB11780		; yes: GEROZ_SUB11780

		LDY	<ENWRK2,X		;かえるボスデモ ?
		CPY	#GEROZ_RMODE61		;
		BEQ	GEROZ_SUB11750		; yes: GEROZ_SUB11750
		JMP	GEROZ_STOP2		;  no: GEROZ_STOP2

GEROZ_SUB11750	EQU	$
		STZ	ENCHPT,X
		INC	BOSS_START		;カメック登場させる

		LDA	#00000H			;ストップタイマーセット
		LDY	BOSS_RETRY		;ボス１回目 ?
		BNE	GEROZ_SUB11770		;  no: GEROZ_SUB11770

		LDA	#00180H			;ストップタイマーセット

GEROZ_SUB11770	EQU	$
		STA	ENTIM0,X
		INC	<ENWRK2,X

		RTS

GEROZ_SUB11780	EQU	$
		STZ	ENCHPT,X
		LDA	#00002			;キャラパターンチェンジカウンターセット
		STA	<ENCONT,X		;
		STA	ENMUKI,X		;向き固定
		STZ	ENTIM1,X		;キャラパターンチェンジタイマークリア

GEROZ_SUB11800	EQU	$

		RTS
;
GEROZ_S20_CHPT	EQU	$
		HEX	04,03,02
		HEX	09,08,07,06
GEROZ_S20_TIM1	EQU	$
		HEX	00,02,08
		HEX	00,02,08,02
GEROZ_S20_BERO	EQU	$
		WORD	00801H,0080CH
;
GEROZ_SUB20	EQU	$
GEROZ_SUB63	EQU	$
		TYX

		LDA	ENTIM1,X		;ストップ ?
		BNE	GEROZ_SUB20800		; yes: GEROZ_SUB20800

		DEC	<ENCONT,X		;最後のパターン ?
		LDA	<ENCONT,X		;
		BNE	GEROZ_SUB20300		;  no: GEROZ_SUB20300

		LDY	<ENWRK0,X		;舌の初期長セット
		LDA	!GEROZ_S20_BERO,Y	;舌キャラ初期値セット
		STA	<ENWRK4,X		;
		LDA	#0003EH			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X
		LDA	#00000

GEROZ_SUB20300	EQU	$
		LDY	<ENWRK0,X		;横に舌を出してる ?
		BEQ	GEROZ_SUB20500		; yes: GEROZ_SUB20500

		CLC
		ADC	#00003

GEROZ_SUB20500	EQU	$
		TAY
		LDA	!GEROZ_S20_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!GEROZ_S20_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

GEROZ_SUB20800	EQU	$
		JMP	GEROZ_PUKAPUKA
;
GEROZ_SUB21	EQU	$
GEROZ_SUB64	EQU	$
		TYX

		LDA	ENTIM1,X		;ストップ ?
		BEQ	GEROZ_SUB21100		;  no: GEROZ_SUB21100
		JMP	GEROZ_SUB21800		; yes: GEROZ_SUB21800

GEROZ_SUB21100	EQU	$
		LDY	<ENWRK1,X		;舌、伸ばしてる ?
		BNE	GEROZ_SUB21500		;  no: GEROZ_SUB21500

		LDA	<ENWRK4,X		;舌伸び切った ?
		CLC				;
		ADC	#00801H			;
		STA	<ENWRK4,X		;
		XBA				;
		TAY				;
		CPY	#060H			;
		BEQ	GEROZ_SUB21380		; yes: GEROZ_SUB21380
		JMP	GEROZ_SUB21800		;  no: GEROZ_SUB21800

GEROZ_SUB21380	EQU	$
		LDY	<ENWRK2,X		;かえるボスデモ ?
		CPY	#GEROZ_RMODE64		;
		BNE	GEROZ_SUB21400		;  no: GEROZ_SUB21400

		LDA	#0580BH
		STA	<ENWRK4,X
		LDA	#00006
		STA	ENTIM1,X
		LDY	#002			;舌の出入フラグセット
		STY	<ENWRK1,X		;

		LDA	PLXPSL
		SEC
		SBC	ENXPSL,X
		SEC
		SBC	CCWORK1C
		AND	#000FFH
		XBA
		ORA	#00058H
		STA	ENWRKA,X		;プレイヤーのオフセットＰＯＳ．セット

		RTS

GEROZ_SUB21400	EQU	$
		LDA	#05817H
		LDY	<ENWRK0,X		;横に舌を伸ばしてる ?
		BEQ	GEROZ_SUB21480		; yes: GEROZ_SUB21480

		LDA	#0581BH

GEROZ_SUB21480	EQU	$
		STA	<ENWRK4,X

		LDA	#00008			;れろれろカウンターセット
		STA	<ENCONT,X		;
		LDA	#00035H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X

		RTS

GEROZ_SUB21500	EQU	$
		LDA	<ENWRK4,X		;舌縮み切った ?
		SEC				;
		SBC	#00801H			;
		STA	<ENWRK4,X		;
		XBA				;
		TAY				;
		CPY	#000			;
		BNE	GEROZ_SUB21800		;  no: GEROZ_SUB21800

		STZ	ENCHPT,X		;ボディーキャラパターン初期化
		STZ	<ENWRK4,X		;舌キャラパターン＆長さ初期化
		LDY	#000			;舌の出入フラグクリア
		STY	<ENWRK1,X

		LDY	<ENWRK2,X		;かえるボスデモ ?
		CPY	#GEROZ_RMODE64		;
		BNE	GEROZ_SUB21600		;  no: GEROZ_SUB21600

		LDA	#00014H			;［Ｓ］
		JSL	>SOUND_3_ON
		LDA	#00040H			;ストップタイマーセット
		STA	ENTIM1,X		;
		INC	<ENWRK2,X

		RTS

GEROZ_SUB21600	EQU	$
		LDA	ENWRK8,X		;水中 ?
		BEQ	GEROZ_SUB21700		;  no: GEROZ_SUB21700

		LDA	#00006			;潜航タイマーセット
		STA	ENTIM0,X		;
		LDY	#GEROZ_RMODE52
		STY	<ENWRK2,X

GEROZ_SUB21680	EQU	$
GEROZ_SUB22000	EQU	$

		RTS

GEROZ_SUB21700	EQU	$
		JMP	GEROZ_JUMP

GEROZ_SUB21800	EQU	$
		LDY	<ENWRK2,X		;かえるボスデモ ?
		CPY	#GEROZ_RMODE64		;
		BEQ	GEROZ_SUB21680		; yes: GEROZ_SUB21680

		JSR	GEROZ_BABY_GET
		JMP	GEROZ_PUKAPUKA
;
GEROZ_S22_CHPT	EQU	$
		HEX	0B,19,1A,19,1A,17,18,17
		HEX	16,1D,1E,1D,1E,1C,1B,1C
;
GEROZ_SUB22	EQU	$
		TYX
		STX	<EWORK0

		DEC	<ENCONT,X		;れろれろ終わり ?
		BNE	GEROZ_SUB22800		;  no: GEROZ_SUB22800

		LDA	#00006
		STA	ENTIM1,X
		LDY	#002
		STY	<ENWRK1,X
		DEC	<ENWRK2,X

GEROZ_SUB22800	EQU	$
		LDA	<ENCONT,X
		LDY	<ENWRK0,X		;横に舌を伸ばしてた ?
		BEQ	GEROZ_SUB22900		; yes: GEROZ_SUB22900

		CLC
		ADC	#00008

GEROZ_SUB22900	EQU	$
		TAY
		LDA	!GEROZ_S22_CHPT,Y
		AND	#000FFH
		ORA	#05800H
		STA	<ENWRK4,X

		LDY	<ENWRK2,X		;ROUTINE MODEが（舌縮める）に変わった ?
		CPY	<EWORK0			;
		BNE	GEROZ_SUB22000		; yes: GEROZ_SUB22000

		JSR	GEROZ_BABY_GET		;赤ちゃん、舌取りチェック
		JMP	GEROZ_PUKAPUKA
;
GEROZ_SUB30	EQU	$
		TYX

		LDA	<ENWRK4,X		;舌縮み切った ?
		SEC				;
		SBC	#00801H			;
		STA	<ENWRK4,X		;
		XBA				;
		TAY				;
		CPY	#000			;
		BEQ	GEROZ_SUB30100		; yes: GEROZ_SUB30100
		BPL	GEROZ_SUB30500		;  no: GEROZ_SUB30500

GEROZ_SUB30100	EQU	$
		STZ	ENCHPT,X
		STZ	<ENWRK4,X		;舌カット

GEROZ_SUB30500	EQU	$
		LDA	BABYRTFLG		;赤ちゃんジャンプさせてる ?
		BNE	GEROZ_SUB30600		; yes: GEROZ_SUB30600

		JMP	GEROZ_BABY_REV

GEROZ_SUB30600	EQU	$
		LDY	ENYSPD+1+BABY_INDEX	;赤ちゃんと接触した ?
		BMI	GEROZ_SUB30800		;
		LDA	ECENTY+BABY_INDEX	;
		SEC				;
		SBC	ECENTY,X		;
		CMP	#00008			;
		BCS	GEROZ_SUB30800		;  no: GEROZ_SUB30800

		INC	ENWRKC,X		;赤ちゃん乗せフラグセット
		STZ	ENWRKA,X		;赤ちゃん補正値クリア
		LDA	#00020H			;プレイヤーチェックロックタイマーセット
		STA	ENTIM2,X		;
		LDA	#0000000001000000B	;食える
		TRB	ENMOD0+BABY_INDEX	;

		JSL	>BABYM_SHABN_C2

		LDA	#00020H
		STA	ENTIM3+BABY_INDEX	;プレイヤーチェックロックタイマー解除
		STZ	BABYRTFLG

		STZ	PLSTFG
		STZ	ENSTFG

		LDA	ENWRK8,X		;水中 ?
		BNE	GEROZ_SUB30680		; yes: GEROZ_SUB30680

		LDA	#00002			;キャラパターンチェンジカウンターセット
		STA	<ENCONT,X		;
		STA	ENMUKI,X		;向き固定
		STZ	ENTIM1,X		;キャラパターンチェンジタイマークリア

		LDY	#GEROZ_RMODE31
		LDA	ENWRKC,X		;赤ちゃん乗ってる ?
		BNE	GEROZ_SUB30700		; yes: GEROZ_SUB30700

		JMP	GEROZ_STOP2
;
GEROZ_SUB30680	EQU	$
		LDA	#00006			;潜航タイマーセット
		STA	ENTIM0,X		;
		LDY	#GEROZ_RMODE52

GEROZ_SUB30700	EQU	$
		STY	<ENWRK2,X

GEROZ_SUB30800	EQU	$

		RTS
;
GEROZ_SUB40	EQU	$
		TYX

		LDA	ENTIM0,X		;ストップ ?
		BNE	GEROZ_SUB40800		; yes: GEROZ_SUB40800

		LDA	<ENWRK4,X
		SEC
		SBC	#00801H
		STA	<ENWRK4,X
		XBA
		TAY				;舌縮み切った ?
		CPY	#001			;
		BPL	GEROZ_SUB40900		;  no: GEROZ_SUB40900

		LDA	ENMOD1,X		;壁にあたると反転させる
		AND	#1111101101111111B	;
		STA	ENMOD1,X		;

		STZ	ENCHPT,X		;ボディーキャラパターン初期化
		STZ	<ENWRK4,X		;舌キャラパターン＆長さ初期化
		LDY	#000			;舌の出入フラグクリア
		STY	<ENWRK1,X
		LDA	#00020H			;プレイヤーサーチロックタイマーセット
		STA	ENTIM2,X

GEROZ_STOP2	EQU	$
		LDA	<RANDM0			;ストップタイマーセット
		AND	#0001FH			;
		CLC				;
		ADC	#00020H			;
		STA	ENTIM0,X		;
		STZ	<ENWRK2,X
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#00400H
		STA	ENGMAX,X

		LDA	ENWRK8,X		;水中 ?
		BEQ	GEROZ_SUB40600		;  no: GEROZ_SUB40600

		LDA	#00006			;潜航タイマーセット
		STA	ENTIM0,X		;
		LDY	#GEROZ_RMODE52
		STY	<ENWRK2,X

GEROZ_SUB40600	EQU	$

		RTS

GEROZ_SUB40800	EQU	$
		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	GEROZ_SUB40900		;  no: GEROZ_SUB40900

		LDA	ENCHPT,X		;パターンチェンジ終わってる ?
		BIT	#00001			;
		BEQ	GEROZ_SUB40900		; yes: GEROZ_SUB40900

		INC	ENCHPT,X		;C OR E

GEROZ_SUB40900	EQU	$

		RTS
;
GEROZ_SUB50	EQU	$
		TYX

		LDA	#0FC00H			;急速上昇
		STA	ENYSPD,X		;
		STZ	ENGPOW,X		;

		LDY	ENWATR,X		;水中 ?
		BNE	GEROZ_SUB50800		; yes: GEROZ_SUB50800

		LDA	#00060H			;ゆっくり沈ませる
		STA	ENYSPD,X		;
		STA	ENGMAX,X		;
		LDA	#00004			;
		STA	ENGPOW,X		;
		INC	<ENWRK2,X

GEROZ_SUB50800	EQU	$

		RTS

GEROZ_SUB51	EQU	$
		TYX

		LDY	ENWATR,X		;水中 ?
		BEQ	GEROZ_SUB51300		;  no: GEROZ_SUB51300

		LDA	#0FFA0H			;
		STA	ENGMAX,X		;
		BRA	GEROZ_SUB51800

GEROZ_SUB51300	EQU	$
		LDY	ENGMAX+1,X		;下降重力 ?
		BPL	GEROZ_SUB51800		; yes: GEROZ_SUB51800

		LDA	#00006			;潜航タイマーセット
		STA	ENTIM0,X		;
		LDA	#0FFFFH
		STA	ENTIM2,X		;プレイヤーチェックロックタイマーセット
		STA	ENTIM3,X		;赤ちゃんチェックロックタイマーセット

		INC	<ENWRK2,X

		RTS

GEROZ_SUB51800	EQU	$
		M8
		LDA	#0FFH
		STA	ENWATR,X
		M16

		JSR	GEROZ_TARGET_LK

		JMP	GEROZ_PL_RANGE
;
GEROZ_SUB52	EQU	$
		TYX

		LDA	#00600H			;急速潜航
		STA	ENYSPD,X		;
		STZ	ENGPOW,X		;

		LDA	ENTIM0,X		;ストップ ?
		BNE	GEROZ_SUB52800		; yes: GEROZ_SUB52800

		STZ	ENXSPD,X		;停止
		STZ	ENYSPD,X		;

		LDA	<RANDM0			;潜航停止タイマーセット
		AND	#00007H			;
		CLC				;
		ADC	#00020H			;
		STA	ENTIM0,X		;
		INC	<ENWRK2,X

GEROZ_SUB52800	EQU	$
GEROZ_SUB53000	EQU	$

		RTS
;
GEROZ_S53_XREV	EQU	$
		WORD	00020H,0FFE0H
		WORD	00040H,0FFC0H
GEROZ_S53_REVDT EQU	$
		WORD	0FFF0H,00010H
;
GEROZ_SUB53	EQU	$
		TYX

		LDA	ENTIM0,X		;潜航停止 ?
		BNE	GEROZ_SUB53000		; yes: GEROZ_SUB53000

		STZ	ENTIM2,X		;プレイヤーチェックロックタイマークリア
		STZ	ENTIM3,X		;赤ちゃんサーチロックタイマークリア

		LDY	ENWRKC,X		;赤ちゃん乗せてる ?
		BEQ	GEROZ_SUB53080		;  no: GEROZ_SUB53080

		STZ	ENTIM3+BABY_INDEX	;赤ちゃん、プレイヤーチェックロックタイマークリア

GEROZ_SUB53080	EQU	$
		LDA	#00003			;チェック回数セット
		STA	<EWORK0			;
		LDA	ENXPSL,X
		STA	<EWORK2
		LDA	<RANDM0
		AND	#00002
		TAY
		LDA	!GEROZ_S53_REVDT,Y
		STA	<EWORKE
		TYA
		LDY	ENWRKC,X		;赤ちゃん乗せてる ?
		BEQ	GEROZ_SUB53100		;  no: GEROZ_SUB53100

		CLC
		ADC	#00004

GEROZ_SUB53100	EQU	$
		TAY
		LDA	PLXPSL
		CLC
		ADC	!GEROZ_S53_XREV,Y

GEROZ_SUB53200	EQU	$
		STA	ENXPSL,X		;行動範囲内 ?
		SEC				;
		SBC	ENWRK8,X		;
		CLC				;
		ADC	#00050H			;
		CMP	#000A0H			;
		BCS	GEROZ_SUB53500		;  no: GEROZ_SUB53500

		LDA	ENXPSL,X		;全あたりＢＧ ?
		STA	R8			;
		LDA	ENYPSL,X		;
		STA	R0			;
		M_CHIPR M_BGUNIT_READ		;
		LDX	<ENINDX			;
		LDA	R5			;
		BEQ	GEROZ_SUB53600		;  no: GEROZ_SUB53600

GEROZ_SUB53500	EQU	$
		DEC	<EWORK0			;いい場所がなかった ?
		BNE	GEROZ_SUB53580		;  no: GEROZ_SUB53580

		LDA	<EWORK2
		STA	ENXPSL,X
		BRA	GEROZ_SUB53600

GEROZ_SUB53580	EQU	$
		LDA	ENXPSL,X		;出現位置補正
		CLC				;
		ADC	<EWORKE			;
		BRA	GEROZ_SUB53200		;

GEROZ_SUB53600	EQU	$
		LDA	ENXPSL,X
		CLC
		ADC	#00008
		STA	ECENTX,X

		JSR	GEROZ_TARGET_LK

		LDY	#GEROZ_RMODE50
		STY	<ENWRK2,X

		RTS
;
;
;
;
;
GEROZ_SUB60	EQU	$
		TYX

		LDA	ENXPSL,X		;プレイヤー近寄ってきた ?
		SEC				;
		SBC	PLXPSL			;
		CMP	#00090H			;
		BPL	GEROZ_SUB60800		;  no: GEROZ_SUB60800

		LDA	#KAMC2
		JSL	>ENINSR_I

		LDA	#00000
		STA	ENXPSL,Y

		JSR	GEROZ_JUMP2
		STZ	ENGPOW,X
		STZ	ENYSPD,X
		M8
		LDA	#0FFH
		STA	ENWTSP,X
		M16
		INC	<ENWRK2,X

		RTS

GEROZ_SUB60800	EQU	$
		LDA	#00004
		STA	ENGPOW,X
		LDA	#00040H
		LDY	ENWATR,X		;水中 ?
		BEQ	GEROZ_SUB60900		;  no: GEROZ_SUB60900

		LDA	#0FFA0H

GEROZ_SUB60900	EQU	$
		PHA
		EOR	ENGMAX,X
		BPL	GEROZ_SUB60A00

		M8
		LDA	#0FFH
		STA	ENWATR,X
		M16

GEROZ_SUB60A00	EQU	$
		PLA
		STA	ENGMAX,X

		RTS
;
GEROZ_SUB62	EQU	$
		TYX

		LDA	ENTIM0,X		;ストップ ?
		BNE	GEROZ_SUB62800		; yes: GEROZ_SUB62800

		LDA	BOSS_START		;カメック存在してる ?
		BNE	GEROZ_SUB62300		; yes: GEROZ_SUB62300

		LDA	GEROZ_PLZOM
		DEC	A
		CMP	#00060H
		BPL	GEROZ_SUB62100

		LDA	#00060H

GEROZ_SUB62100	EQU	$
		STA	GEROZ_PLZOM

		JSR	GEROZ_PLSET2

		LDA	GEROZ_PLZOM		;プレイヤー小さくなった ?
		CMP	#00060H			;
		BNE	GEROZ_SUB62800		;  no: GEROZ_SUB62800

		LDY	#000
		STY	<ENWRK0,X		;舌の出てる向きセット
		LDA	#00001
		STA	ENCHPT,X
		LDA	#00003
		STA	<ENCONT,X
		INC	A		;[ LDA	#00004 ]
		STA	ENTIM1,X
		STZ	ENWRKA,X		;赤ちゃんオフセットＰＯＳ．クリア
		LDA	#00020H+40H		;ストップタイマーセット
		STA	ENTIM1,X		;
		INC	<ENWRK2,X

		RTS

GEROZ_SUB62300	EQU	$
		BPL	GEROZ_SUB62500		;カメック、退場した ?
						;  no: GEROZ_SUB62500
		STZ	BOSS_START
		RTS

GEROZ_SUB62500	EQU	$
		CMP	#00002			;プレイヤーに魔法がかかった ?
		BNE	GEROZ_SUB62800		;  no: GEROZ_SUB62800

		LDA	#00100H
		CMP	GEROZ_PLZOM
		BEQ	GEROZ_SUB62800

		STA	GEROZ_PLZOM
		LDA	#00030H
		STA	ENTIM0,X
		JSR	GEROZ_PLSET2
		JSL	>EGGKILL_ALL

GEROZ_SUB62800	EQU	$

		RTS
;
GEROZ_PLSET2	EQU	$
		LDA	#PSTP		;プレイヤーＳＴＯＰモードセット
		STA	PLMODE
		LDA	#PC02		;プレイヤーパターンＮｏ．セット
		STA	PLPATN
;
GEROZ_PLSET	EQU	$
		LDA	GEROZ_PLZOM
		STA	R6		;(R6) <-- 倍率
		LDA	#020H
		STA	R2		;(R2) <-- ビットマップ座標＿Ｙ
		STZ	R3		;(R3) <--	 ”	  ＿Ｘ
		LSR	A		;[ LDA	#010H ]
		STA	R8		;(R8) <-- 中心＿Ｘ
		LDA	#01FH
		STA	R9		;(R9) <--   ”＿Ｙ
		LDA	#CIPCHD+0040H
		STA	R12		;(R12) <-- キャラクターアドレス（Ｌ，Ｈ）
		LDA	#BANK CIPCHD
		STA	R13		;(R13) <--	   ”		(Ｂ）
		M_CHIP	C_32_ZOOM
;
		LDX	<ENINDX

		RTS
;
GEROZ_SUB65	EQU	$
		TYX

		LDA	ENTIM1,X		;ストップ ?
		BNE	GEROZ_SUB65800		; yes: GEROZ_SUB65800

		LDA	#00002
		STA	ENCHPT,X
		INC	A		;[ LDA	#00003 ]
		STA	<ENCONT,X
		LDA	#00010H
		STA	ENTIM1,X
		INC	<ENWRK2,X

GEROZ_SUB65800	EQU	$

		RTS
;
GEROZ_S66_CHPT	EQU	$-1
		HEX	02,03
GEROZ_S66_TIM1	EQU	$-1
		HEX	10,20
;
GEROZ_SUB66	EQU	$
		TYX

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

		DEC	<ENCONT,X		;鳴きパターン終わり ?
		BNE	GEROZ_SUB66500		;  no: GEROZ_SUB66500

		LDA	#00040H			;ストップタイマーセット
		STA	ENTIM1,X		;
		LDA	#00002
		STA	ENCHPT,X
		INC	<ENWRK2,X

		RTS

GEROZ_SUB66500	EQU	$
		M8
		LDY	<ENCONT,X
		LDA	!GEROZ_S66_TIM1,Y
		STA	ENTIM1,X
		LDA	!GEROZ_S66_CHPT,Y
		STA	ENCHPT,X
		M16
		DEY
		BEQ	GEROZ_SUB66800

		LDA	#00065H			;［Ｓ］
		JSL	>SOUND_3_ON

		LDA	#0FE00H
		STA	<EWORK0
		LDA	#0FF80H
		STA	<EWORK2
		LDA	ENXPSL,X
		STA	<EWORKA
		LDA	ENYPSL,X
		STA	<EWORKC
		JSL	>GEPPU_SET

GEROZ_SUB66800	EQU	$

		RTS
;
GEPPU_SET	EQU	$
		LDA	#SMK02
		JSL	>EXINSR

		LDA	<EWORKA
		STA	EXXPSL,Y
		LDA	<EWORKC
		STA	EXYPSL,Y
		LDA	#0000CH
		STA	EXTIM0,Y
		LDA	#00002H
		STA	EXWRK0,Y
		ASL	A		;[ LDA	#00004H ]
		STA	EXXPOW,Y
		STA	EXGPOW,Y
		STA	EXYUSN,Y
		LDA	<EWORK0
		STA	EXXSPD,Y
		LDA	<EWORK2
		STA	EXGMAX,Y

		RTL
;
GEROZ_SUB67	EQU	$
		TYX

		LDA	ENTIM1,X		;ストップ ?
		BNE	GEROZ_SUB67800		; yes: GEROZ_SUB67800

		JSL	>GO_NEXTGOTO

GEROZ_SUB67800	EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+	赤ちゃん、舌で取れたかチェック			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_B_GET_DT	EQU	$
		WORD	0FF00H,000FFH
GEROZ_BABY_INIT EQU	$
;下の伸ばしてる方向	 [左]	[右]   [上]
		WORD	0FF00H,00100H,00001H
;
GEROZ_BABY_GET	EQU	$
		LDY	<ENWRK5,X		;舌出てる ?
		CPY	#001			;
		BMI	GEROZ_B_GET2200		;  no: GEROZ_B_GET2200

		TYA
		LSR	A
		LDY	<ENWRK0,X		;上に舌を伸ばしてる ?
		BNE	GEROZ_B_GET1200		; yes: GEROZ_B_GET1200

		STA	CCWORK2
		LDA	#00004
		STA	CCWORK3

		LDA	ENMUKI,X		;チェックしていい方向に赤ちゃんいる ?
		DEC	A			;
		STA	<EWORK0			;
		LDA	ECENTX+BABY_INDEX	;
		SEC				;
		SBC	ECENTX,X		;
		EOR	<EWORK0			;
		BPL	GEROZ_B_GET1300		; yes: GEROZ_B_GET1300

		RTS

GEROZ_B_GET1200 EQU	$
		STA	CCWORK3
		LDA	#00004
		STA	CCWORK2
		LDA	ECENTY+BABY_INDEX	;チェックしていい方向に赤ちゃんいる ?
		CMP	ECENTY,X		;
		BPL	GEROZ_B_GET2200		;  no: GEROZ_B_GET2200

GEROZ_B_GET1300 EQU	$
		LDA	ENXPSL,X		;(CWRK1) <- チェックＸ　ＰＯＳ．
		CLC
		ADC	CCWORK1E
		STA	CCWORK0
		LDA	ENYPSL,X		;(CWRK1) <- チェックＹ　ＰＯＳ．
		CLC
		ADC	CCWORK1F
		STA	CCWORK1

		LDA	CCWORK2			;赤ちゃん捕まえられた ?
		CLC				;
		ADC	EWIDEX+BABY_INDEX	;
		ASL	A			;
		STA	<EWORK4			;
		LSR	A			;
		CLC				;
		ADC	CCWORK0			;
		SEC				;
		SBC	ECENTX+BABY_INDEX	;
		CMP	<EWORK4			;
		BCS	GEROZ_B_GET2200		;  no: GEROZ_B_GET2200
						;
		LDA	CCWORK3			;
		CLC				;
		ADC	EWIDEY+BABY_INDEX	;
		ASL	A			;
		STA	<EWORK4			;
		LSR	A			;
		CLC				;
		ADC	CCWORK1			;
		SEC				;
		SBC	ECENTY+BABY_INDEX	;
		CMP	<EWORK4			;
		BCC	GEROZ_B_GET2300		; yes: GEROZ_B_GET2300

GEROZ_B_GET2200 EQU	$

		RTS

GEROZ_B_GET2300 EQU	$
		LDA	BABYNO			;赤ちゃん、他のどろぼーに取られてる ?
		AND	#06000H			;
		BNE	GEROZ_B_GET2200		; yes: GEROZ_B_GET2200

		LDA	ENTIM3,X		;赤ちゃんチェックロック ?
		ORA	BABYCTFLG		;赤ちゃん、プレイヤーに乗ろうとしてる ?
		ORA	DEATHCT0		;赤ちゃん、死神に連れ去られてる ?
		BNE	GEROZ_B_GET2200		; yes: GEROZ_B_GET2200

		LDY	<ENWRK2+BABY_INDEX	;赤ちゃん、他のげろぞーに跳ね上げられてる ?
		CPY	#BABYM_RMODE40		;
		BEQ	GEROZ_B_GET2200		; yes: GEROZ_B_GET2200

		JSL	>BABYM_DOROB_CUT

		JSR	GEROZ_BABY_MOVE

		LDA	ENXPSL+BABY_INDEX
		SEC
		SBC	ENXPSL,X
		SEC
		SBC	CCWORK1C
		AND	#000FFH
		XBA
		STA	<EWORK6

		LDA	ENYPSL+BABY_INDEX
		SEC
		SBC	ENYPSL,X
		SEC
		SBC	CCWORK1D
		AND	#000FFH
		ORA	<EWORK6
		STA	<EWORK6			;赤ちゃんのオフセットＰＯＳ．セット

		LDY	<ENWRK0,X
		LDA	!GEROZ_B_GET_DT,Y
		AND	<EWORK6
		STA	ENWRKA,X
		BNE	GEROZ_B_GET2380		;無限ループ予防
						;
		LDA	<ENWRK0,X		;
		ASL	A			;
		TAY				;
		BNE	GEROZ_B_GET2350		;
						;
		LDY	ENMUKI,X		;
						;
GEROZ_B_GET2350 EQU	$			;
		LDA	!GEROZ_BABY_INIT,Y	;
		STA	ENWRKA,X		;

GEROZ_B_GET2380 EQU	$
		LDY	#002			;舌を引っ込める
		STY	<ENWRK1,X

		LDY	#GEROZ_RMODE30
		STY	<ENWRK2,X

		LDY	<ENWRK5,X		;舌伸び切ってる ?
		CPY	#058H			;
		BNE	GEROZ_B_GET2500		;  no: GEROZ_B_GET2500

		LDA	#0580BH
		LDY	<ENWRK0,X		;横に舌を伸ばしてる ?
		BEQ	GEROZ_B_GET2400		; yes: GEROZ_B_GET2400

		LDA	#05816H

GEROZ_B_GET2400 EQU	$
		STA	<ENWRK4,X

GEROZ_B_GET2500 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+	赤ちゃんのモードをＭＯＶＥにする		+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BABY_MOVE EQU	$
		LDA	BABYNO			;赤ちゃん、プレイヤーに乗ってた ?
		BPL	GEROZ_B_MOV0100		;  no: GEROZ_B_MOV0100

		LDA	#00100H
		STA	PROTSP
		LSR	A		;[ LDA	#080H ]
		STA	PLFLSH
		STZ	PLXSPD
		STZ	PLMVSP
		JSL	>BERO_CANCEL
		LDA	BABYNO

GEROZ_B_MOV0100 EQU	$
		AND	#07FFFH			;clear 8000h
		STA	BABYNO

		LDA	#EMOVE			;enemy mode set
		STA	ENMODE+BABY_INDEX
		LDY	#000
		STY	ENWATR+BABY_INDEX

		LDY	#BABYM_RMODE40
		STY	<ENWRK2+BABY_INDEX
		LDA	#0110000001000000B	;ＢＧチェックなし
		STA	ENMOD1+BABY_INDEX	;
		STZ	<ENCONT+BABY_INDEX	;キャラパターンカウンタークリア
		STZ	ENWRKC+BABY_INDEX	;乗ってるフラグクリア
		LDA	#0FFFFH
		STA	NOSEIDX
		STA	ENTIM3+BABY_INDEX	;プレイヤーチェックロックタイマーセット

		STZ	ENXSPD,X
		STZ	ENYSPD,X
		STZ	ENXPOW,X
		STZ	ENGPOW,X
		INC	PLSTFG
		INC	ENSTFG

GEROZ_B_REV0000 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		赤ちゃんを引き寄せる			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BABY_JX	EQU	$
		WORD	00100H,0FF00H
;
GEROZ_BABY_REV	EQU	$
		LDA	ENWRKA,X		;赤ちゃんを捕まえた ?
		BEQ	GEROZ_B_REV0000		;  no: GEROZ_B_REV0000

		M8
		LDY	<ENWRK0,X		;舌を横に伸ばしてた ?
		BEQ	GEROZ_B_REV0100		; yes: GEROZ_B_REV0100

		LDA	ENWRKA,X		;赤ちゃん近くに来た ?
		CLC				;
		ADC	#008H			;
		ORA	#001H			;
		STA	ENWRKA,X		;
		CMP	#0F0H			;
		BPL	GEROZ_B_REV0500		; yes: GEROZ_B_REV0500
		BRA	GEROZ_B_REV0800		;  no: GEROZ_B_REV0800

GEROZ_B_REV0100 EQU	$
		LDA	#008			;赤ちゃん近くに来た ?
		LDY	ENMUKI,X		;
		BEQ	GEROZ_B_REV0200		;
						;
		LDA	#0F8H			;
						;
GEROZ_B_REV0200 EQU	$			;
		CLC				;
		ADC	ENWRKB,X		;
		ORA	#001H			;
		STA	ENWRKB,X		;
		CLC				;
		ADC	#010H			;
		CMP	#020H			;
		BCS	GEROZ_B_REV0800		;  no: GEROZ_B_REV0800

GEROZ_B_REV0500 EQU	$
		M16
		JMP	GEROZ_BABY_JUMP

GEROZ_B_REV0800 EQU	$
		M16				;赤ちゃんの位置補正
		LDY	ENWRKB,X		;
		TYA				;
		CPY	#000			;
		BPL	GEROZ_B_REV0810		;
						;
		ORA	#0FF00H			;
						;
GEROZ_B_REV0810 EQU	$			;
		CLC				;
		ADC	ENXPSL,X		;
		STA	ENXPSL+BABY_INDEX	;
						;
		LDY	ENWRKA,X		;
		TYA				;
		CPY	#000			;
		BPL	GEROZ_B_REV0820		;
						;
		ORA	#0FF00H			;
						;
GEROZ_B_REV0820 EQU	$			;
		CLC				;
		ADC	ENYPSL,X		;
		STA	ENYPSL+BABY_INDEX	;

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		プレイヤーを引き寄せる			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_PL_REV	EQU	$
		LDY	ENWRKB,X		;赤ちゃんを捕まえた ?
		BEQ	GEROZ_P_REV0900		;  no: GEROZ_P_REV0900

		M8
		LDA	ENWRKA,X
		SEC
		SBC	<ENWRK5,X
		BEQ	GEROZ_P_REV0200

		PHA
		LDA	<ENWRK5,X
		STA	ENWRKA,X
		PLA

GEROZ_P_REV0200 EQU	$
;		LDA	#008H			;口の中に入り切った ?
		CLC				;
		ADC	ENWRKB,X		;
		STA	ENWRKB,X		;
		BMI	GEROZ_P_REV0300		;  no: GEROZ_P_REV0300

		STZ	ENWRKB,X

GEROZ_P_REV0300 EQU	$
		M16

		LDY	ENWRKB,X		;赤ちゃんの位置補正
		TYA				;
		CPY	#000			;
		BPL	GEROZ_P_REV0700		;
						;
		ORA	#0FF00H			;
						;
GEROZ_P_REV0700 EQU	$			;
		CLC				;
		ADC	ENXPSL,X		;
		STA	PLXPSL			;

GEROZ_P_REV0900 EQU	$

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		赤ちゃんを跳ね上げる			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_BABY_JUMP EQU	$
		LDY	#000
		LDA	ECENTX+BABY_INDEX
		SEC
		SBC	ENXPSL,X
		SEC
		SBC	CCWORK1C
		ASL	A
		ASL	A
		ASL	A
		EOR	#0FFFFH
		INC	A
		STA	<EWORK0
		CLC
		ADC	#00100H
		CMP	#00200H
		BCC	GEROZ_B_J0700
		BPL	GEROZ_B_J0600

		INY
		INY

GEROZ_B_J0600	EQU	$
		LDA	!GEROZ_BABY_JX,Y
		STA	<EWORK0

GEROZ_B_J0700	EQU	$
		LDA	<EWORK0
		STA	ENXSPD+BABY_INDEX
		LDA	#0FC00H
		STA	ENYSPD+BABY_INDEX
		LDA	#00040H
		STA	ENGPOW+BABY_INDEX
		STA	BABYRTFLG
		LDA	#00400H
		STA	ENGMAX+BABY_INDEX

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		目標に体を向ける			+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_TARGET_LK EQU	$
		LDA	PCENTX
		LDY	BABYNO+1		;赤ちゃんプレイヤーに乗ってる ?
		BMI	GEROZ_T_LK0100		; yes: GEROZ_T_LK0100

		LDY	ENWRKC,X		;赤ちゃん乗ってる ?
		BNE	GEROZ_T_LK0100		; yes: GEROZ_T_LK0100

		LDA	ECENTX+BABY_INDEX

GEROZ_T_LK0100	EQU	$
		LDY	#000
		CMP	ECENTX,X
		BMI	GEROZ_T_LK0200

		INY
		INY

GEROZ_T_LK0200	EQU	$
		TYA
		STA	ENMUKI,X

		RTS
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+		ぷかぷか処理				+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GEROZ_PUKAPUKA	EQU	$
		LDA	ENWRK8,X		;水中 ?
		BEQ	GEROZ_PP0900		;  no: GEROZ_PP0900

		LDA	#00004
		STA	ENGPOW,X
		LDA	#00040H
		LDY	ENWATR,X		;水中 ?
		BEQ	GEROZ_PP0300		;  no: GEROZ_PP0300

		LDA	#0FFA0H

GEROZ_PP0300	EQU	$
		PHA
		EOR	ENGMAX,X
		BPL	GEROZ_PP0500

		M8
		LDA	#0FFH
		STA	ENWATR,X
		M16

GEROZ_PP0500	EQU	$
		PLA
		STA	ENGMAX,X

		STZ	ENXSPD,X

GEROZ_PP0900	EQU	$

		RTS
;
;
;
;
GEROZ_ENMOD2	EQU	$
		BYTE	((GEROZ_C_01-GEROZ_C_00)/5)
		BYTE	((GEROZ_C_02-GEROZ_C_01)/5)
		BYTE	((GEROZ_C_03-GEROZ_C_02)/5)
		BYTE	((GEROZ_C_04-GEROZ_C_03)/5)
		BYTE	((GEROZ_C_05-GEROZ_C_04)/5)
		BYTE	((GEROZ_C_06-GEROZ_C_05)/5)
		BYTE	((GEROZ_C_07-GEROZ_C_06)/5)
		BYTE	((GEROZ_C_08-GEROZ_C_07)/5)
		BYTE	((GEROZ_C_09-GEROZ_C_08)/5)
		BYTE	((GEROZ_C_0A-GEROZ_C_09)/5)
		BYTE	((GEROZ_C_0B-GEROZ_C_0A)/5)
		BYTE	((GEROZ_C_0C-GEROZ_C_0B)/5)
		BYTE	((GEROZ_C_0D-GEROZ_C_0C)/5)
		BYTE	((GEROZ_C_0E-GEROZ_C_0D)/5)
		BYTE	((GEROZ_C_0F-GEROZ_C_0E)/5)
		BYTE	((GEROZ_C_10-GEROZ_C_0F)/5)
		BYTE	((GEROZ_C_EN-GEROZ_C_10)/5)
;
GEROZ_CHAR_ADR	EQU	$
		WORD	GEROZ_C_00
		WORD	GEROZ_C_01
		WORD	GEROZ_C_02
		WORD	GEROZ_C_03
		WORD	GEROZ_C_04
		WORD	GEROZ_C_05
		WORD	GEROZ_C_06
		WORD	GEROZ_C_07
		WORD	GEROZ_C_08
		WORD	GEROZ_C_09
		WORD	GEROZ_C_0A
		WORD	GEROZ_C_0B
		WORD	GEROZ_C_0C
		WORD	GEROZ_C_0D
		WORD	GEROZ_C_0E
		WORD	GEROZ_C_0F
		WORD	GEROZ_C_10
;
GEROZ_C_00	EQU	$
		BYTE	0FCH,00AH	;[00]
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	004H,0FBH
		HEX	0C,02,00
		BYTE	0FDH,0FBH
		HEX	0C,02,00
		BYTE	000H,000H
		HEX	01,02,02
		BYTE	0F8H,000H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_01	EQU	$
		BYTE	0FCH,00AH	;[01]
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	005H,0FBH
		HEX	0C,02,00
		BYTE	0FEH,0FBH
		HEX	0C,02,00
		BYTE	001H,000H
		HEX	01,02,02
		BYTE	0F9H,000H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_02	EQU	$
		BYTE	0FFH,0FCH	;[02]
		HEX	0B,42,00
		BYTE	006H,0FCH
		HEX	0B,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	002H,001H
		HEX	01,02,02
		BYTE	0FAH,001H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_03	EQU	$
		BYTE	0FDH,0FBH	;[03]
		HEX	0B,42,00
		BYTE	004H,0FBH
		HEX	0B,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	008H,008H
		HEX	12,02,00
		BYTE	000H,008H
		HEX	14,02,00
		BYTE	008H,000H
		HEX	05,02,00
		BYTE	000H,000H
		HEX	04,02,00
		BYTE	0F8H,000H
		HEX	03,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
;
GEROZ_C_04	EQU	$
		BYTE	0FBH,0FBH	;[04]
		HEX	0B,42,00
		BYTE	002H,0FBH
		HEX	0B,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	006H,008H
		HEX	12,02,00
		BYTE	0FEH,008H
		HEX	14,02,00
		BYTE	006H,000H
		HEX	05,02,00
		BYTE	0FEH,000H
		HEX	04,02,00
		BYTE	0F6H,000H
		HEX	03,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
;
GEROZ_C_05	EQU	$
		BYTE	004H,0FBH	;[05]
		HEX	1A,02,00
		BYTE	0FDH,0FBH
		HEX	1A,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	000H,000H
		HEX	01,02,02
		BYTE	0F8H,000H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_06	EQU	$
		BYTE	005H,0FBH	;[06]
		HEX	1A,02,00
		BYTE	0FEH,0FBH
		HEX	1A,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	001H,000H
		HEX	01,02,02
		BYTE	0F9H,000H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_07	EQU	$
		BYTE	006H,0FCH	;[07]
		HEX	1A,02,00
		BYTE	0FFH,0FCH
		HEX	1A,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	002H,001H
		HEX	01,02,02
		BYTE	0FAH,001H
		HEX	00,02,02
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_08	EQU	$
		BYTE	0FCH,00AH	;[08]
		HEX	06,02,00
		BYTE	0FDH,000H
		HEX	15,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	00DH,002H
		HEX	1B,02,00
		BYTE	00EH,0FBH
		HEX	1B,02,00
		BYTE	009H,008H
		HEX	13,02,00
		BYTE	001H,008H
		HEX	11,02,00
		BYTE	0F9H,008H
		HEX	10,02,00
		BYTE	009H,000H
		HEX	17,02,00
		BYTE	009H,0F8H
		HEX	07,02,00
		BYTE	004H,002H
		HEX	06,02,00
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_09	EQU	$
		BYTE	0FCH,0FEH	;[09]
		HEX	15,02,00
		BYTE	0FCH,00AH
		HEX	06,02,00
		BYTE	005H,00AH
		HEX	06,02,00
		BYTE	00EH,00AH
		HEX	18,02,00
		BYTE	00EH,002H
		HEX	08,02,00
		BYTE	00CH,000H
		HEX	1B,02,00
		BYTE	00DH,0F9H
		HEX	1B,02,00
		BYTE	008H,006H
		HEX	13,02,00
		BYTE	000H,006H
		HEX	11,02,00
		BYTE	0F8H,006H
		HEX	10,02,00
		BYTE	008H,0FEH
		HEX	17,02,00
		BYTE	008H,0F6H
		HEX	07,02,00
		BYTE	003H,000H
		HEX	06,02,00
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_0A	EQU	$
		BYTE	00AH,00DH	;[0A]
		HEX	19,02,00
		BYTE	001H,00DH
		HEX	19,02,00
		BYTE	004H,0FBH
		HEX	0C,02,00
		BYTE	0FDH,0FBH
		HEX	0C,02,00
		BYTE	000H,000H
		HEX	01,02,02
		BYTE	0F8H,000H
		HEX	00,02,02
		BYTE	004H,00BH
		HEX	09,02,00
		BYTE	00EH,00BH
		HEX	09,02,00
		BYTE	013H,010H
		HEX	19,02,00
		BYTE	00AH,010H
		HEX	19,02,00
;
GEROZ_C_0B	EQU	$
		BYTE	0FDH,0FEH	;[0B]
		HEX	0B,42,00
		BYTE	004H,0FEH
		HEX	0B,02,00
		BYTE	0FCH,00BH
		HEX	06,02,00
		BYTE	005H,00BH
		HEX	06,02,00
		BYTE	00EH,009H
		HEX	18,02,00
		BYTE	00EH,001H
		HEX	08,02,00
		BYTE	000H,003H
		HEX	01,02,02
		BYTE	0F8H,003H
		HEX	00,02,02
		BYTE	0FEH,007H
		HEX	18,42,00
		BYTE	0FEH,0FFH
		HEX	08,42,00
;
GEROZ_C_0C	EQU	$
		BYTE	005H,00BH	;[0C]
		HEX	06,02,00
		BYTE	00EH,009H
		HEX	18,02,00
		BYTE	00EH,001H
		HEX	08,02,00
		BYTE	004H,0FDH
		HEX	1A,02,00
		BYTE	0FDH,0FDH
		HEX	1A,02,00
		BYTE	008H,00BH
		HEX	12,02,00
		BYTE	000H,00BH
		HEX	14,02,00
		BYTE	008H,003H
		HEX	05,02,00
		BYTE	000H,003H
		HEX	04,02,00
		BYTE	0F8H,003H
		HEX	03,02,00
		BYTE	0FCH,00BH
		HEX	06,02,00
;
GEROZ_C_0D	EQU	$
		BYTE	0FAH,00AH	;[0D]
		HEX	06,02,00
		BYTE	003H,00AH
		HEX	06,02,00
		BYTE	00EH,001H
		HEX	08,02,00
		BYTE	00EH,009H
		HEX	18,02,00
		BYTE	00FH,0FBH
		HEX	1A,02,00
		BYTE	00EH,002H
		HEX	1A,02,00
		BYTE	008H,008H
		HEX	13,02,00
		BYTE	000H,008H
		HEX	11,02,00
		BYTE	0F8H,008H
		HEX	10,02,00
		BYTE	008H,000H
		HEX	17,02,00
		BYTE	008H,0F8H
		HEX	07,02,00
		BYTE	0FCH,000H
		HEX	15,02,00
		BYTE	003H,002H
		HEX	06,02,00
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_0E	EQU	$
		BYTE	0FDH,002H	;[0E]
		HEX	15,02,00
		BYTE	003H,00AH
		HEX	06,02,00
		BYTE	00EH,008H
		HEX	18,02,00
		BYTE	00EH,000H
		HEX	08,02,00
		BYTE	011H,006H
		HEX	1A,02,00
		BYTE	012H,0FDH
		HEX	1A,02,00
		BYTE	009H,00AH
		HEX	13,02,00
		BYTE	001H,00AH
		HEX	11,02,00
		BYTE	0F9H,00AH
		HEX	10,02,00
		BYTE	009H,002H
		HEX	17,02,00
		BYTE	009H,0FAH
		HEX	07,02,00
		BYTE	004H,004H
		HEX	06,02,00
		BYTE	0FAH,00AH
		HEX	06,02,00
		BYTE	0FEH,00AH
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C_0F	EQU	$
		BYTE	024H,01CH	;[0F]
		HEX	0C,02,00
		BYTE	01EH,00DH
		HEX	19,C2,00
		BYTE	020H,010H
		HEX	12,C2,00
		BYTE	028H,00FH
		HEX	14,C2,00
		BYTE	028H,018H
		HEX	04,C2,00
		BYTE	029H,013H
		HEX	16,82,00
		BYTE	01AH,00EH
		HEX	09,02,00
		BYTE	020H,018H
		HEX	05,C2,00
		BYTE	022H,00DH
		HEX	09,02,00
		BYTE	02AH,00CH
		HEX	19,82,00
		BYTE	031H,013H
		HEX	0D,02,00
		BYTE	030H,018H
		HEX	03,C2,00
		BYTE	01DH,008H
		HEX	19,C2,00
		BYTE	015H,009H
		HEX	19,C2,00
		BYTE	02BH,01CH
		HEX	0C,42,00
;
GEROZ_C_10	EQU	$
		BYTE	02EH,010H	;[10]
		HEX	0D,02,00
		BYTE	01FH,00EH
		HEX	19,C2,00
		BYTE	024H,01BH
		HEX	0C,02,00
		BYTE	01AH,00DH
		HEX	09,02,00
		BYTE	028H,010H
		HEX	14,C2,00
		BYTE	029H,012H
		HEX	16,02,00
		BYTE	020H,00FH
		HEX	12,C2,00
		BYTE	020H,016H
		HEX	05,C2,00
		BYTE	028H,019H
		HEX	04,C2,00
		BYTE	024H,00CH
		HEX	09,02,00
		BYTE	029H,00CH
		HEX	19,82,00
		BYTE	030H,01AH
		HEX	03,42,00
		BYTE	01FH,007H
		HEX	19,C2,00
		BYTE	016H,009H
		HEX	19,C2,00
		BYTE	02BH,01DH
		HEX	0C,42,00
;
GEROZ_C_EN	EQU	$
;
GEROZ_ENMOD2_2	EQU	$
		BYTE	((GEROZ_C2_01-GEROZ_C2_00)/5)
		BYTE	((GEROZ_C2_02-GEROZ_C2_01)/5)
		BYTE	((GEROZ_C2_03-GEROZ_C2_02)/5)
		BYTE	((GEROZ_C2_04-GEROZ_C2_03)/5)
		BYTE	((GEROZ_C2_05-GEROZ_C2_04)/5)
		BYTE	((GEROZ_C2_06-GEROZ_C2_05)/5)
		BYTE	((GEROZ_C2_07-GEROZ_C2_06)/5)
		BYTE	((GEROZ_C2_08-GEROZ_C2_07)/5)
		BYTE	((GEROZ_C2_09-GEROZ_C2_08)/5)
		BYTE	((GEROZ_C2_0A-GEROZ_C2_09)/5)
		BYTE	((GEROZ_C2_0B-GEROZ_C2_0A)/5)
		BYTE	((GEROZ_C2_0C-GEROZ_C2_0B)/5)
		BYTE	((GEROZ_C2_0D-GEROZ_C2_0C)/5)
		BYTE	((GEROZ_C2_0E-GEROZ_C2_0D)/5)
		BYTE	((GEROZ_C2_0F-GEROZ_C2_0E)/5)
		BYTE	((GEROZ_C2_10-GEROZ_C2_0F)/5)
		BYTE	((GEROZ_C2_11-GEROZ_C2_10)/5)
		BYTE	((GEROZ_C2_12-GEROZ_C2_11)/5)
		BYTE	((GEROZ_C2_13-GEROZ_C2_12)/5)
		BYTE	((GEROZ_C2_14-GEROZ_C2_13)/5)
		BYTE	((GEROZ_C2_15-GEROZ_C2_14)/5)
		BYTE	((GEROZ_C2_16-GEROZ_C2_15)/5)
		BYTE	((GEROZ_C2_17-GEROZ_C2_16)/5)
		BYTE	((GEROZ_C2_18-GEROZ_C2_17)/5)
		BYTE	((GEROZ_C2_19-GEROZ_C2_18)/5)
		BYTE	((GEROZ_C2_1A-GEROZ_C2_19)/5)
		BYTE	((GEROZ_C2_1B-GEROZ_C2_1A)/5)
		BYTE	((GEROZ_C2_1C-GEROZ_C2_1B)/5)
		BYTE	((GEROZ_C2_1D-GEROZ_C2_1C)/5)
		BYTE	((GEROZ_C2_EN-GEROZ_C2_1D)/5)
;
GEROZ_CHAR_ADR2 EQU	$
		WORD	GEROZ_C2_00
		WORD	GEROZ_C2_01
		WORD	GEROZ_C2_02
		WORD	GEROZ_C2_03
		WORD	GEROZ_C2_04
		WORD	GEROZ_C2_05
		WORD	GEROZ_C2_06
		WORD	GEROZ_C2_07
		WORD	GEROZ_C2_08
		WORD	GEROZ_C2_09
		WORD	GEROZ_C2_0A
		WORD	GEROZ_C2_0B
		WORD	GEROZ_C2_0C
		WORD	GEROZ_C2_0D
		WORD	GEROZ_C2_0E
		WORD	GEROZ_C2_0F
		WORD	GEROZ_C2_10
		WORD	GEROZ_C2_11
		WORD	GEROZ_C2_12
		WORD	GEROZ_C2_13
		WORD	GEROZ_C2_14
		WORD	GEROZ_C2_15
		WORD	GEROZ_C2_16
		WORD	GEROZ_C2_17
		WORD	GEROZ_C2_18
		WORD	GEROZ_C2_19
		WORD	GEROZ_C2_1A
		WORD	GEROZ_C2_1B
		WORD	GEROZ_C2_1C
		WORD	GEROZ_C2_1D
;
GEROZ_C2_00	EQU	$
		BYTE	0FCH,004H	;[00]
		HEX	0D,02,00
;
GEROZ_C2_01	EQU	$
		BYTE	0FCH,005H	;[01]
		HEX	16,02,00
		BYTE	0F5H,004H
		HEX	0D,02,00
;
GEROZ_C2_02	EQU	$
		BYTE	0FCH,003H	;[02]
		HEX	16,82,00
		BYTE	0F4H,005H
		HEX	16,02,00
		BYTE	0EDH,004H
		HEX	0D,02,00
;
GEROZ_C2_03	EQU	$
		BYTE	0FCH,005H	;[03]
		HEX	16,02,00
		BYTE	0F4H,003H
		HEX	16,82,00
		BYTE	0ECH,005H
		HEX	16,02,00
		BYTE	0E5H,004H
		HEX	0D,02,00
;
GEROZ_C2_04	EQU	$
		BYTE	0FCH,005H	;[04]
		HEX	16,82,00
		BYTE	0F4H,007H
		HEX	16,02,00
		BYTE	0ECH,005H
		HEX	16,82,00
		BYTE	0E4H,007H
		HEX	16,02,00
		BYTE	0DDH,006H
		HEX	0D,02,00
;
GEROZ_C2_05	EQU	$
		BYTE	0FCH,007H	;[05]
		HEX	16,02,00
		BYTE	0F4H,006H
		HEX	16,82,00
		BYTE	0ECH,007H
		HEX	16,02,00
		BYTE	0E4H,006H
		HEX	16,82,00
		BYTE	0DCH,007H
		HEX	16,02,00
		BYTE	0D5H,006H
		HEX	0D,02,00
;
GEROZ_C2_06	EQU	$
		BYTE	0FCH,006H	;[06]
		HEX	16,82,00
		BYTE	0F4H,007H
		HEX	16,02,00
		BYTE	0ECH,006H
		HEX	16,82,00
		BYTE	0E4H,007H
		HEX	16,02,00
		BYTE	0DCH,006H
		HEX	16,82,00
		BYTE	0D4H,007H
		HEX	16,02,00
		BYTE	0CDH,006H
		HEX	0D,02,00
;
GEROZ_C2_07	EQU	$
		BYTE	0FCH,006H	;[07]
		HEX	1C,02,00
		BYTE	0F4H,005H
		HEX	1C,02,00
		BYTE	0ECH,006H
		HEX	1C,02,00
		BYTE	0E4H,005H
		HEX	1C,02,00
		BYTE	0DCH,006H
		HEX	1C,02,00
		BYTE	0D4H,005H
		HEX	1C,02,00
		BYTE	0CCH,006H
		HEX	1C,02,00
		BYTE	0C5H,006H
		HEX	0D,02,00
;
GEROZ_C2_08	EQU	$
		BYTE	0FCH,005H	;[08]
		HEX	1C,02,00
		BYTE	0F4H,006H
		HEX	1C,02,00
		BYTE	0ECH,005H
		HEX	1C,02,00
		BYTE	0E4H,006H
		HEX	1C,02,00
		BYTE	0DCH,005H
		HEX	1C,02,00
		BYTE	0D4H,006H
		HEX	1C,02,00
		BYTE	0CCH,005H
		HEX	1C,02,00
		BYTE	0C4H,006H
		HEX	1C,02,00
		BYTE	0BDH,006H
		HEX	0D,02,00
;
GEROZ_C2_09	EQU	$
		BYTE	0FCH,006H	;[09]
		HEX	1C,02,00
		BYTE	0F4H,006H
		HEX	1C,02,00
		BYTE	0ECH,006H
		HEX	1C,02,00
		BYTE	0E4H,006H
		HEX	1C,02,00
		BYTE	0DCH,006H
		HEX	1C,02,00
		BYTE	0D4H,006H
		HEX	1C,02,00
		BYTE	0CCH,006H
		HEX	1C,02,00
		BYTE	0C4H,006H
		HEX	1C,02,00
		BYTE	0BCH,006H
		HEX	1C,02,00
		BYTE	0B5H,006H
		HEX	0D,02,00
;
GEROZ_C2_0A	EQU	$
		BYTE	0B4H,006H	;[0A]
		HEX	1C,02,00
		BYTE	0ADH,006H
		HEX	0D,02,00
		BYTE	0FCH,006H
		HEX	1C,02,00
		BYTE	0F4H,006H
		HEX	1C,02,00
		BYTE	0ECH,006H
		HEX	1C,02,00
		BYTE	0E4H,006H
		HEX	1C,02,00
		BYTE	0DCH,006H
		HEX	1C,02,00
		BYTE	0D4H,006H
		HEX	1C,02,00
		BYTE	0CCH,006H
		HEX	1C,02,00
		BYTE	0C4H,006H
		HEX	1C,02,00
		BYTE	0BCH,006H
		HEX	1C,02,00
;
GEROZ_C2_0B	EQU	$
		BYTE	002H,0FDH	;[0B]
		HEX	0D,02,00
;
GEROZ_C2_0C	EQU	$
		BYTE	002H,0FDH	;[0C]
		HEX	0A,02,00
		BYTE	003H,0F6H
		HEX	0D,02,00
;
GEROZ_C2_0D	EQU	$
		BYTE	002H,0FDH	;[0D]
		HEX	0A,42,00
		BYTE	000H,0F5H
		HEX	0A,02,00
		BYTE	001H,0EEH
		HEX	0D,02,00
;
GEROZ_C2_0E	EQU	$
		BYTE	000H,0EDH	;[0E]
		HEX	0A,02,00
		BYTE	000H,0FDH
		HEX	0A,02,00
		BYTE	002H,0F5H
		HEX	0A,42,00
		BYTE	001H,0E6H
		HEX	0D,02,00
;
GEROZ_C2_0F	EQU	$
		BYTE	000H,0E5H	;[0F]
		HEX	0A,02,00
		BYTE	001H,0DEH
		HEX	0D,02,00
		BYTE	002H,0EDH
		HEX	0A,42,00
		BYTE	002H,0FDH
		HEX	0A,42,00
		BYTE	000H,0F5H
		HEX	0A,02,00
;
GEROZ_C2_10	EQU	$
		BYTE	000H,0DDH	;[10]
		HEX	0A,02,00
		BYTE	001H,0E5H
		HEX	0A,42,00
		BYTE	000H,0EDH
		HEX	0A,02,00
		BYTE	000H,0FDH
		HEX	0A,02,00
		BYTE	001H,0F5H
		HEX	0A,42,00
		BYTE	001H,0D6H
		HEX	0D,02,00
;
GEROZ_C2_11	EQU	$
		BYTE	000H,0D5H	;[11]
		HEX	0A,02,00
		BYTE	001H,0CEH
		HEX	0D,02,00
		BYTE	001H,0DDH
		HEX	0A,42,00
		BYTE	000H,0E5H
		HEX	0A,02,00
		BYTE	001H,0EDH
		HEX	0A,42,00
		BYTE	001H,0FDH
		HEX	0A,42,00
		BYTE	000H,0F5H
		HEX	0A,02,00
;
GEROZ_C2_12	EQU	$
		BYTE	002H,0FDH	;[12]
		HEX	1D,02,00
		BYTE	003H,0F5H
		HEX	1D,02,00
		BYTE	002H,0EDH
		HEX	1D,02,00
		BYTE	003H,0E5H
		HEX	1D,02,00
		BYTE	002H,0DDH
		HEX	1D,02,00
		BYTE	003H,0D5H
		HEX	1D,02,00
		BYTE	002H,0CDH
		HEX	1D,02,00
		BYTE	002H,0C6H
		HEX	0D,02,00
;
GEROZ_C2_13	EQU	$
		BYTE	000H,0FDH	;[13]
		HEX	1D,42,00
		BYTE	001H,0F5H
		HEX	1D,42,00
		BYTE	000H,0EDH
		HEX	1D,42,00
		BYTE	001H,0E5H
		HEX	1D,42,00
		BYTE	000H,0DDH
		HEX	1D,42,00
		BYTE	001H,0D5H
		HEX	1D,42,00
		BYTE	000H,0CDH
		HEX	1D,42,00
		BYTE	001H,0C5H
		HEX	1D,42,00
		BYTE	001H,0BEH
		HEX	0D,02,00
;
GEROZ_C2_14	EQU	$
		BYTE	001H,0FDH	;[14]
		HEX	1D,42,00
		BYTE	001H,0F5H
		HEX	1D,42,00
		BYTE	001H,0EDH
		HEX	1D,42,00
		BYTE	001H,0E5H
		HEX	1D,42,00
		BYTE	001H,0DDH
		HEX	1D,42,00
		BYTE	001H,0D5H
		HEX	1D,42,00
		BYTE	001H,0CDH
		HEX	1D,42,00
		BYTE	001H,0C5H
		HEX	1D,42,00
		BYTE	001H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B6H
		HEX	0D,02,00
;
GEROZ_C2_15	EQU	$
		BYTE	001H,0FDH	;[15]
		HEX	1D,42,00
		BYTE	001H,0F5H
		HEX	1D,42,00
		BYTE	001H,0EDH
		HEX	1D,42,00
		BYTE	001H,0E5H
		HEX	1D,42,00
		BYTE	001H,0DDH
		HEX	1D,42,00
		BYTE	001H,0D5H
		HEX	1D,42,00
		BYTE	001H,0CDH
		HEX	1D,42,00
		BYTE	001H,0C5H
		HEX	1D,42,00
		BYTE	001H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B5H
		HEX	1D,42,00
		BYTE	001H,0AEH
		HEX	0D,02,00
;
GEROZ_C2_16	EQU	$
		BYTE	0B4H,006H	;[16]
		HEX	1C,02,00
		BYTE	0ADH,006H
		HEX	0D,02,00
		BYTE	0FCH,006H
		HEX	1C,02,00
		BYTE	0F4H,007H
		HEX	1C,02,00
		BYTE	0ECH,007H
		HEX	1C,02,00
		BYTE	0E4H,008H
		HEX	1C,02,00
		BYTE	0DCH,008H
		HEX	1C,02,00
		BYTE	0D4H,008H
		HEX	1C,02,00
		BYTE	0CCH,008H
		HEX	1C,02,00
		BYTE	0C4H,007H
		HEX	1C,02,00
		BYTE	0BCH,007H
		HEX	1C,02,00
;
GEROZ_C2_17	EQU	$
		BYTE	0B4H,006H	;[17]
		HEX	1C,02,00
		BYTE	0ADH,006H
		HEX	0D,02,00
		BYTE	0FCH,006H
		HEX	1C,02,00
		BYTE	0F4H,005H
		HEX	1C,02,00
		BYTE	0ECH,005H
		HEX	1C,02,00
		BYTE	0E4H,004H
		HEX	1C,02,00
		BYTE	0DCH,004H
		HEX	1C,02,00
		BYTE	0D4H,004H
		HEX	1C,02,00
		BYTE	0CCH,004H
		HEX	1C,02,00
		BYTE	0C4H,005H
		HEX	1C,02,00
		BYTE	0BCH,005H
		HEX	1C,02,00
;
GEROZ_C2_18	EQU	$
		BYTE	0B4H,006H	;[18]
		HEX	1C,02,00
		BYTE	0ADH,006H
		HEX	0D,02,00
		BYTE	0FCH,006H
		HEX	1C,02,00
		BYTE	0F4H,006H
		HEX	1C,02,00
		BYTE	0ECH,007H
		HEX	1C,02,00
		BYTE	0E4H,007H
		HEX	1C,02,00
		BYTE	0DCH,008H
		HEX	1C,02,00
		BYTE	0D4H,008H
		HEX	1C,02,00
		BYTE	0CCH,007H
		HEX	1C,02,00
		BYTE	0C4H,007H
		HEX	1C,02,00
		BYTE	0BCH,006H
		HEX	1C,02,00
;
GEROZ_C2_19	EQU	$
		BYTE	0B4H,006H	;[19]
		HEX	1C,02,00
		BYTE	0ADH,006H
		HEX	0D,02,00
		BYTE	0FCH,006H
		HEX	1C,02,00
		BYTE	0F4H,006H
		HEX	1C,02,00
		BYTE	0ECH,005H
		HEX	1C,02,00
		BYTE	0E4H,005H
		HEX	1C,02,00
		BYTE	0DCH,004H
		HEX	1C,02,00
		BYTE	0D4H,004H
		HEX	1C,02,00
		BYTE	0CCH,005H
		HEX	1C,02,00
		BYTE	0C4H,005H
		HEX	1C,02,00
		BYTE	0BCH,006H
		HEX	1C,02,00
;
GEROZ_C2_1A	EQU	$
		BYTE	001H,0FDH	;[1A]
		HEX	1D,42,00
		BYTE	002H,0F5H
		HEX	1D,42,00
		BYTE	002H,0EDH
		HEX	1D,42,00
		BYTE	003H,0E5H
		HEX	1D,42,00
		BYTE	003H,0DDH
		HEX	1D,42,00
		BYTE	003H,0D5H
		HEX	1D,42,00
		BYTE	003H,0CDH
		HEX	1D,42,00
		BYTE	002H,0C5H
		HEX	1D,42,00
		BYTE	002H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B5H
		HEX	1D,42,00
		BYTE	001H,0AEH
		HEX	0D,02,00
;
GEROZ_C2_1B	EQU	$
		BYTE	001H,0FDH	;[1B]
		HEX	1D,42,00
		BYTE	000H,0F5H
		HEX	1D,42,00
		BYTE	000H,0EDH
		HEX	1D,42,00
		BYTE	0FFH,0E5H
		HEX	1D,42,00
		BYTE	0FFH,0DDH
		HEX	1D,42,00
		BYTE	0FFH,0D5H
		HEX	1D,42,00
		BYTE	0FFH,0CDH
		HEX	1D,42,00
		BYTE	000H,0C5H
		HEX	1D,42,00
		BYTE	000H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B5H
		HEX	1D,42,00
		BYTE	001H,0AEH
		HEX	0D,02,00
;
GEROZ_C2_1C	EQU	$
		BYTE	001H,0FDH	;[1C]
		HEX	1D,42,00
		BYTE	001H,0F5H
		HEX	1D,42,00
		BYTE	000H,0EDH
		HEX	1D,42,00
		BYTE	000H,0E5H
		HEX	1D,42,00
		BYTE	0FFH,0DDH
		HEX	1D,42,00
		BYTE	0FFH,0D5H
		HEX	1D,42,00
		BYTE	000H,0CDH
		HEX	1D,42,00
		BYTE	000H,0C5H
		HEX	1D,42,00
		BYTE	001H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B5H
		HEX	1D,42,00
		BYTE	001H,0AEH
		HEX	0D,02,00
;
GEROZ_C2_1D	EQU	$
		BYTE	001H,0FDH	;[1D]
		HEX	1D,42,00
		BYTE	001H,0F5H
		HEX	1D,42,00
		BYTE	002H,0EDH
		HEX	1D,42,00
		BYTE	002H,0E5H
		HEX	1D,42,00
		BYTE	003H,0DDH
		HEX	1D,42,00
		BYTE	003H,0D5H
		HEX	1D,42,00
		BYTE	002H,0CDH
		HEX	1D,42,00
		BYTE	002H,0C5H
		HEX	1D,42,00
		BYTE	001H,0BDH
		HEX	1D,42,00
		BYTE	001H,0B5H
		HEX	1D,42,00
		BYTE	001H,0AEH
		HEX	0D,02,00
;
GEROZ_C2_EN	EQU	$
;
GEROZ_ENMOD2_3	EQU	$
		BYTE	000			;[00]
		BYTE	000			;[01]
		BYTE	000			;[02]
		BYTE	002			;[03]
		BYTE	002			;[04]
		BYTE	000			;[05]
		BYTE	000			;[06]
		BYTE	000			;[07]
		BYTE	000			;[08]
		BYTE	000			;[09]
		BYTE	000			;[0A]
		BYTE	000			;[0B]
		BYTE	002			;[0C]
		BYTE	000			;[0D]
		BYTE	000			;[0E]
		BYTE	000			;[0F]
		BYTE	000			;[10]
;
GEROZ_CHAR_ADR3 EQU	$
		WORD	00000			;[00]
		WORD	00000			;[01]
		WORD	00000			;[02]
		WORD	GEROZ_C3_00		;[03]
		WORD	GEROZ_C3_00		;[04]
		WORD	00000			;[05]
		WORD	00000			;[06]
		WORD	00000			;[07]
		WORD	00000			;[08]
		WORD	00000			;[09]
		WORD	00000			;[0A]
		WORD	00000			;[0B]
		WORD	GEROZ_C3_01		;[0C]
		WORD	00000			;[0D]
		WORD	00000			;[0E]
		WORD	00000			;[0F]
		WORD	00000			;[10]
;
GEROZ_C3_00	EQU	$
		BYTE	0FEH,00AH		;[00]
		HEX	18,42,00
		BYTE	0FEH,002H
		HEX	08,42,00
;
GEROZ_C3_01	EQU	$
		BYTE	0FEH,009H		;[01]
		HEX	18,42,00
		BYTE	0FEH,001H
		HEX	08,42,00
;
GEROZ_C3_EN	EQU	$
;
;
;************************************************************************
;*		fail	( げろぞー )					*
;************************************************************************
GEROZFL		EQU	$			;-- gerozfl --
		LDA	PLMODE
		CMP	#PDEM
		BEQ	GEROZFL_0050	;プレイヤーズーム終了？ ( yes:GEROZFL_0050 )
;
		LDA	#0CH		;プレイヤーカラー変更
		STA	PLCLOR
		JSR	GEROZ_PLSET2
GEROZFL_0050	EQU	$
;
;-------------- ＯＡＭセット --------------------------------------------
		JSL	>GEROZMV
;
		LDA	ENTIM0,X
		BNE	GEROZFL_0150	;プレイヤーズームＯＫ？ ( no:GEROZFL_0150 )
;
		LDA	GEROZ_PLZOM
		CMP	#0100H
		BCC	GEROZFL_0100	;プレイヤーズーム終了？ ( no:GEROZFL_0100 )
;
		JSL	>TO_PLDEMO_2
		RTL
;
GEROZFL_0100	EQU	$
;;;;		    CLC
		ADC	#02H
		STA	GEROZ_PLZOM
		RTL
;
GEROZFL_0150	EQU	$
		CMP	#040H
		BNE	GEROZFL_0260	;ボスクリアーウィンドウ効果セット？ ( no:GEROZFL_0260 )
;
;-------------- ボスクリアーウィンドウ効果セット ----------------
		LDA	PLXPSL
		STA	<EWORK0		;(EWK0,1) <-- Ｘ座標
		LDA	PLYPSL
		CLC
		ADC	#08H
		STA	<EWORK2		;(EWK2,3) <-- Ｙ座標
		JSL	>BSCLW_SET_M
		LDA	#PSTP
		STA	PLMODE
		RTL
;
GEROZFL_0260	EQU	$
		BCC	GEROZFL_0400	;パターン切り替えＳＴＯＰ？ ( yes:GEROZFL_0400 )
;
		LDY	#0FH
		LDA	<FRCNT2
		BIT	#04H
		BEQ	GEROZFL_0350
;
		AND	#03H
		BNE	GEROZFL_0320	;サウンドセット？ ( no:GEROZFL_0320 )
;
		LDA	#05EH		;[♪]
		JSL	>SOUND_3_ON
;
GEROZFL_0320	EQU	$
		LDY	#010H
GEROZFL_0350	EQU	$
		TYA
		STA	ENCHPT,X
;
GEROZFL_0400	EQU	$
		RTL
;
;************************************************************************
;*		initial ( 釣りジュゲム )				*
;************************************************************************
TJUGM_I_XSPD	EQU	$
		WORD	0FF00H,00100H
;
TJUGMIN		EQU	$			;-- tjugmin --
		LDY	MAPOINT			;速いほうの釣りジュゲム ?
		CPY	#026H			;
		BNE	TJUGMIN0100		;  no: TJUGMIN0100

		LDY	#002			;スピードフラグセット
		STY	<ENWRK4,X		;

TJUGMIN0100	EQU	$
		LDA	#00100H
		STA	ENYSPD,X

		LDY	ENMUKI,X
		LDA	!TJUGM_I_XSPD,Y
		STA	ENXSPD,X

		STZ	ENMUKI,X
		STZ	TJUGMSPD
		STZ	TJUGMPOW
		STZ	TJUGMITO

		RTL
;
;************************************************************************
;*		move	 ( 釣りジュゲム )				*
;************************************************************************
;		ENWRK0	KINTO の ROUTINE MODE
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4	スピードフラグ 0..遅い 2..速い
;		ENWRK6
;		ENWRK8	アイテムチェックフラグ（赤ちゃんロック）0...free !0...lock
;		ENWRKA	TJUGMITO を計算するデータ
;		ENWRKC	アイテムＧＥＴフラグ  0...nothing  2...get item
;
;		ENCONT	キャラパターンチェンジカウンター
;
;		ENTIM0	ストップタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2	揺れ反転タイマー
;		ENTIM3	プレイヤーチェックロックタイマー ／出現ロックタイマー
;
;		EWORK8	赤ちゃんのぶら下がり位置Ｘ　ＰＯＳ．
;		EWORKA	赤ちゃんのぶら下がり位置Ｙ　ＰＯＳ．
;		EWORKC	釣り針のＸ　ＰＯＳ．
;		EWORKE	釣り針のＹ　ＰＯＳ．
;
;		TJUGMPOW	パワー
;		TJUGMSPD	加速値
;		TJUGMITO	糸の長さ*100H
;
;		TJUGM_TIMER	効果セットタイマー
;
TJUGM_SUB	EQU	$
TJUGM_0		EQU	$
		WORD	TJUGM_SUB0		;登場
TJUGM_1		EQU	$
		WORD	TJUGM_SUB1		;赤ちゃんサーチ
TJUGM_2		EQU	$
		WORD	TJUGM_SUB2		;赤ちゃんつり上げ
TJUGM_3		EQU	$
		WORD	TJUGM_SUB3		;赤ちゃん引き上げ
TJUGM_4		EQU	$
		WORD	TJUGM_SUB4		;プレイヤーから逃げ
TJUGM_5		EQU	$
		WORD	TJUGM_SUB5		;復帰待ち
;
TJUGM_RMODE0	EQU	(TJUGM_0-TJUGM_0)/2
TJUGM_RMODE1	EQU	(TJUGM_1-TJUGM_0)/2
TJUGM_RMODE2	EQU	(TJUGM_2-TJUGM_0)/2
TJUGM_RMODE3	EQU	(TJUGM_3-TJUGM_0)/2
TJUGM_RMODE4	EQU	(TJUGM_4-TJUGM_0)/2
TJUGM_RMODE5	EQU	(TJUGM_5-TJUGM_0)/2
;
TJUGMMV		EQU	$			;-- tjugmmv --
		JSR	TJUGM_OAM_SET
;
		JSR	TJUGM_EAT_CHK

		JSL	>ENMDCK
;
		JSR	TJUGM_BGCHK		;ＢＧチェック＆コースリミッター
;
		TXY
		LDA	<ENWRK2,X
		ASL	A
		TAX
		JSR	(TJUGM_SUB,X)
;
		JSR	TJUGM_ITO_CALC		;釣糸の加速値計算
;
		JSR	TJUGM_SMK_SET		;効果オブジェセット
;
		LDA	ENXSPD,X
		CLC
		ADC	#00300H
		CMP	#00600H
		BCC	TJUGMMV0600

		LDA	#00300H
		LDY	ENXSPD+1,X
		BPL	TJUGMMV0500

		LDA	#0FD00H

TJUGMMV0500	EQU	$
		STA	ENXSPD,X

TJUGMMV0600	EQU	$
		LDA	ENYSPD,X
		CLC
		ADC	#00300H
		CMP	#00600H
		BCC	TJUGMMV0800

		LDA	#00300H
		LDY	ENYSPD+1,X
		BPL	TJUGMMV0700

		LDA	#0FD00H

TJUGMMV0700	EQU	$
		STA	ENYSPD,X

TJUGMMV0800	EQU	$
		JSR	TJUGM_ENCHK
		JSR	TJUGM_BBCHK
		JSR	TJUGM_PLCHK
;
		RTL
;
;ジュゲム本体
TJUGM_CHAR_ADR	EQU	$
		BYTE	0FDH,0FAH	;[00]
		HEX	04,02,02
		BYTE	003H,0F3H
		HEX	0D,02,00
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	009H,0FDH
		HEX	1D,00,00
;
		BYTE	0FDH,0FAH	;[01]
		HEX	04,02,02
		BYTE	004H,0F3H
		HEX	0D,02,00
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	009H,0FDH
		HEX	1D,00,00
;
		BYTE	001H,0F5H	;[02]
		HEX	02,02,02
		BYTE	008H,0F0H
		HEX	0D,02,00
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	00AH,0FDH
		HEX	1D,00,00
;
		BYTE	0FDH,0FAH	;[03]
		HEX	04,02,02
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	004H,0F3H
		HEX	0D,02,00
		BYTE	009H,0FEH
		HEX	1D,00,00
;
		BYTE	0FEH,0F5H	;[04]
		HEX	02,02,02
		BYTE	005H,0F0H
		HEX	0D,02,00
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	00AH,0FDH
		HEX	1D,00,00
;
		BYTE	0FEH,0F7H	;[05]
		HEX	02,02,02
		BYTE	005H,0F2H
		HEX	0D,02,00
		BYTE	0FCH,004H
		HEX	08,04,02
		BYTE	004H,004H
		HEX	08,44,02
		BYTE	00AH,0FDH
		HEX	1D,00,00
;
		BYTE	0FFH,0FBH	;[06]
		HEX	02,02,02
		BYTE	002H,0F5H
		HEX	0D,42,00
		BYTE	002H,0F5H
		HEX	0D,42,00
		BYTE	002H,0F5H
		HEX	0D,42,00
		BYTE	001H,000H
		HEX	06,02,02
;
TJUGM_FAIL_XSPD EQU	$
		WORD	0FF00H,00100H
;
TJUGM_TO_FAIL2	EQU	$
		LDA	ECENTX,X
		STA	<EWORK0
		LDA	ECENTY,X
		STA	<EWORK2
		LDA	#FSMK0
		JSL	>FSMK0_SET2
		BRA	TJUGM_TO_FAIL

TJUGM_EAT_CHK	EQU	$
		LDA	ENMODE,X		;食われてる ?
		CMP	#EEATM			;
		BNE	TJUGM_E_CHK0800		;  no: TJUGM_E_CHK0800

		LDA	#KINTO			;敵エリア確保ＯＫ ?
		JSL	>ENINSR			;
		BCC	TJUGM_E_CHK0800		;  no: TJUGM_E_CHK0800

		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDA	ENYPSL,X
		STA	ENYPSL,Y
		LDA	#EEATM
		STA	ENMODE,Y
		TYA
		INC	A
		STA	EATFLG
		LDA	ENMOD2,X		;範囲クリアなし
		AND	#1111111111110011B	;
		STA	ENMOD2,X		;
		TXA
		INC	A
		STA	ENCONT,Y
		STY	<ENWRK0,X
;
TJUGM_TO_FAIL	EQU	$
		JSR	ITEM_CUT
;
		LDA	#EFAIL
		STA	ENMODE,X
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#00400H
		STA	ENGMAX,X
		LDA	#00006
		STA	ENCHPT,X
		LDA	#0FFFFH
		STA	ENTIM3,X
		LDY	#000
		LDA	ENXSPD,X
		BMI	TJUGM_T_F0100

		INY
		INY

TJUGM_T_F0100	EQU	$
		LDA	!TJUGM_FAIL_XSPD,Y
		STA	ENXSPD,X
		STZ	ENXPOW,X

TJUGM_E_CHK0800 EQU	$
TJUGM_O_SET0000 EQU	$

		RTS
;
TJUGM_ITO_CDT	EQU	$
		WORD	00003H,00002H
;
TJUGM_OAM_SET	EQU	$
		STZ	<EWORKC
		STZ	<EWORKE
		LDA	ENOAML,X		;ＯＡＭセットする ?
		STA	R4			;
		BMI	TJUGM_O_SET0000		;  no: TJUGM_O_SET0000
		LDY	ENYUSN,X
		BMI	TJUGM_O_SET0000

		LDY	ENCHPT,X		;サオ出てる ?
		CPY	#003			;
		BPL	TJUGM_O_SET1000		;  no: TJUGM_O_SET1000

		TXA
		STA	R10
		LDA	TJUGMPOW
		STA	R8
		LDY	ENWRKC,X
		LDA	!TJUGM_ITO_CDT,Y
		STA	R6
		LDY	TJUGMITO+1
		TYA
		STA	R11

		M_CHIP	M_TJUGM_OAMSET
		LDX	<ENINDX
		LDA	R1
		SEC
		SBC	ENDSXL,X
		STA	<EWORKC
		CLC
		ADC	R9
		STA	<EWORK8
		LDA	R2
		SEC
		SBC	ENDSYL,X
		STA	<EWORKE
		CLC
		ADC	#00008H
		STA	<EWORKA

TJUGM_O_SET1000 EQU	$
		TXA
		STA	R10		;(R10) <-- 敵のインデックス
		LDA	#BANK TJUGM_CHAR_ADR
		STA	R0		;(R0)  <-- ＯＡＭセットデータアドレス
		LDA	#TJUGM_CHAR_ADR
		STA	R14		;(R14) <--		”
		LDA	ENDSXL,X
		STA	R1
		LDA	ENDSYL,X
		STA	R2
		LDA	ENMUKI,X
		STA	R8
		LDA	#00005
		STA	R12
		LDA	ENCHPT,X
		STA	R3

		M_CHIP	M_OAMSET_SB
		LDX	<ENINDX

TJUGM_O_SET3000 EQU	$

		RTS
;
TJUGM_PLCHK	EQU	$
		LDY	ECRSFG,X		;プレイヤーと接触した ?
		BPL	TJUGM_PLCHK0800		;  no: TJUGM_PLCHK0800

		LDA	EPWIDY,X		;プレイヤーに踏まれた ?
		SEC				;
		SBC	EWIDEY,X		;
		SEC				;
		SBC	PWIDEY			;
		CMP	#0FFF8H			;
		BCC	TJUGM_PLCHK0500		;  no: TJUGM_PLCHK0500

		LDY	PLYSPD+1		;プレイヤー上昇中 ?
		BMI	TJUGM_PLCHK0800		;
		LDY	PLJUMP			;
		BEQ	TJUGM_PLCHK0800		;  no: TJUGM_PLCHK0800

		LDA	PLBGCR			;プレイヤー頭打ってる ?
		AND	#0000000000011000B	;
		BNE	TJUGM_PLCHK0100		; yes: TJUGM_PLCHK0100

		LDA	#0FC00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP

TJUGM_PLCHK0100 EQU	$
		LDA	#KINTO
		JSL	>ENINSR_I
		BCC	TJUGM_PLCHK0800

		LDA	ENXPSL,X
		STA	ENXPSL,Y
		LDA	ENYPSL,X
		CLC
		ADC	#00004
		STA	ENYPSL,Y
		TXA
		INC	A
		STA	ENCONT,Y
		STY	<ENWRK0,X

		JSR	TJUGM_TO_FAIL

		PLA		;直接ＲＴＬ
		RTL

TJUGM_PLCHK0500 EQU	$
		PLA
		STA	<EWORK0
		JSL	>EPCRCK
		LDA	<EWORK0
		PHA

TJUGM_PLCHK0800 EQU	$
TJUGM_ENCHK0000 EQU	$
TJUGM_BBCHK0000 EQU	$

		RTS
;
TJUGM_ENCHK	EQU	$
		LDY	ECRSFG,X
		DEY
		BMI	TJUGM_ENCHK0000

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

		TYX
		JSL	>SHOT_EN_KILL
		JSR	TJUGM_TO_FAIL2

		PLA		;直接ＲＴＬ
		RTL
;
TJUGM_B_XREV	EQU	$
;ENCHPT =		 [3]	[4]    [5]
		WORD	0FFF4H,0FFFAH,0FFFDH
TJUGM_B_YREV	EQU	$
		WORD	0FFF0H,0FFEAH,0FFE8H
;
TJUGM_BBCHK	EQU	$
		LDA	ENTIM3,X
		BNE	TJUGM_BBCHK0000

		LDY	ENWRKC,X		;赤ちゃん持ってる ?
		BNE	TJUGM_BBCHK1000		; yes: TJUGM_BBCHK1000

		LDA	ECENTX+BABY_INDEX
		SEC
		SBC	ECENTX,X
		SEC
		SBC	<EWORKC
		CLC
		ADC	#00008H
		CMP	#00008H*2
		BCS	TJUGM_BBCHK0800

		LDA	ECENTY+BABY_INDEX
		SEC
		SBC	ECENTY,X
		SEC
		SBC	<EWORKE
		CLC
		ADC	#00008H
		CMP	#00008H*2
		BCS	TJUGM_BBCHK0800

		JSR	ITEM_CROSS_S2
		BCS	TJUGM_BBCHK0800

;		LDA	#0FF80H			;TJUGMITO を計算するデータセット
		LDA	#0FEC0H			;TJUGMITO を計算するデータセット
		STA	ENWRKA,X		;
		LDA	#00002
		STA	ENCHPT,X
		LDY	#TJUGM_RMODE2
		STY	<ENWRK2,X

TJUGM_BBCHK0800 EQU	$

		RTS

TJUGM_BBCHK1000 EQU	$
		LDA	ENMODE+BABY_INDEX	;赤ちゃんいる ?
		CMP	#EMOVE			;
		BEQ	TJUGM_BBCHK2000		; yes: TJUGM_BBCHK2000

		LDY	ENWRKC+BABY_INDEX	;赤ちゃんは担がれている ?
		BEQ	TJUGM_BBCHK1100		;  no: TJUGM_BBCHK1100

		CPX	<ENWRK0+BABY_INDEX	;赤ちゃんを担いでるのは自分 ?
		BEQ	TJUGM_BBCHK2000		; yes: TJUGM_BBCHK2000

TJUGM_BBCHK1100 EQU	$
		JMP	ITEM_CUT
;
TJUGM_BBCHK2000 EQU	$
		STZ	ENYSPD+BABY_INDEX	;アイテムＭＯＶＥロック

		LDA	<EWORKC			;釣り針まだ出てる ?
		ORA	<EWORKE			;
		BNE	TJUGM_B_R0500		; yes: TJUGM_B_R0500

		LDA	ENCHPT,X
		SEC
		SBC	#00003
		ASL	A
		TAY
		LDA	!TJUGM_B_YREV,Y
		CLC
		ADC	ENYPSL,X
		STA	ENYPSL+BABY_INDEX
		LDA	!TJUGM_B_XREV,Y
		LDY	ENMUKI,X
		BEQ	TJUGM_B_R0300

		EOR	#0FFFFH
		INC	A

TJUGM_B_R0300	EQU	$
		CLC
		ADC	ENXPSL,X
		BRA	TJUGM_B_R0700

TJUGM_B_R0500	EQU	$
		LDA	ENYPSL,X
		CLC
		ADC	<EWORKA
		STA	ENYPSL+BABY_INDEX

		LDA	ENXPSL,X
		CLC
		ADC	<EWORK8

TJUGM_B_R0700	EQU	$
		STA	ENXPSL+BABY_INDEX

		LDY	ENMUKI,X
		STY	ENMUKI+BABY_INDEX

TJUGM_B_R0800	EQU	$

		RTS
;
TJUGM_BGCHK	EQU	$
		LDA	ENXPSL,X		;コース右端 ?
		SEC				;
		SBC	PLSCRL_MINX		;
		BMI	TJUGM_BGCHK0300		;
		LDA	ENXPSL,X		;コース左端 ?
		SEC				;
		SBC	#00100H			;
		SEC				;
		SBC	PLSCRL_MAXX		;
		BMI	TJUGM_BGCHK0500		;  no: TJUGM_BGCHK0500

TJUGM_BGCHK0300 EQU	$
		EOR	ENXSPD,X		;進行方向側コースの端 ?
		BMI	TJUGM_BGCHK1000		;  no: TJUGM_BGCHK1000
		BRA	TJUGM_BGCHK0700		; yes: TJUGM_BGCHK0700

TJUGM_BGCHK0500 EQU	$
		LDA	ENCBFG,X		;横壁にあたった ?
		BIT	#0000CH			;
		BEQ	TJUGM_BGCHK1000		;  no: TJUGM_BGCHK1000

		AND	#00008H			;進行方向のＢＧにあたった ?
		DEC	A			;
		EOR	ENXSPD,X		;
		BPL	TJUGM_BGCHK1000		;  no: TJUGM_BGCHK1000

TJUGM_BGCHK0700 EQU	$
		LDA	ENXMAX,X
		EOR	#0FFFFH
		INC	A
		STA	ENXMAX,X
		LDA	ENXSPD,X
		EOR	#0FFFFH
		INC	A
		STA	ENXSPD,X
		LDA	ENXPSL,X
		SEC
		SBC	ENMOVX,X
		STA	ENXPSL,X

TJUGM_BGCHK1000 EQU	$
		LDA	ENYPSL,X		;コース上端 ?
		SEC				;
		SBC	PLSCRL_MINY		;
		BMI	TJUGM_BGCHK1300		;
		LDA	ENYPSL,X		;コース下端 ?
		SEC				;
		SBC	#00100H			;
		SEC				;
		SBC	PLSCRL_MAXY		;
		BMI	TJUGM_BGCHK1500		;  no: TJUGM_BGCHK1500

TJUGM_BGCHK1300 EQU	$
		EOR	ENYSPD,X		;進行方向側コースの端 ?
		BPL	TJUGM_BGCHK1700		; yes: TJUGM_BGCHK1700

TJUGM_BGCHK1500 EQU	$
		LDA	ENXPSL,X		;足元全あたりＢＧ ?
		CLC				;
		ADC	#00008H			;
		STA	R8			;
		LDA	ENYPSL,X		;
		CLC				;
		ADC	#00014H			;
		STA	R0			;
		M_CHIPR M_BGUNIT_READ		;
		LDX	<ENINDX			;
		LDA	R7			;
		AND	#AL			;
		BNE	TJUGM_BGCHK1700		; yes: TJUGM_BGCHK1700

		LDA	ENCBFG,X
		AND	#00002			;頭あたった ?
		BEQ	TJUGM_BGCHK1800		;  no: TJUGM_BGCHK1800

TJUGM_BGCHK1700 EQU	$
		LDA	ENYSPD,X
		EOR	#0FFFFH
		INC	A
		STA	ENYSPD,X
		LDA	ENYPSL,X
		SEC
		SBC	ENMOVY,X
		STA	ENYPSL,X

TJUGM_BGCHK1800 EQU	$

		RTS
;
TJUGM_ITO_CDT2	EQU	$
		WORD	00010H,00014H
;
TJUGM_ITO_CALC	EQU	$
		LDA	TJUGMITO		;
		CLC				;
		ADC	ENWRKA,X		;縮み切った ?
		BPL	TJUGM_I_C0100		;  no: TJUGM_I_C0100

		LDA	#00000

TJUGM_I_C0100	EQU	$
		CMP	#00800H*8+1		;伸び切った ?
		BPL	TJUGM_I_C0200		; yes: TJUGM_I_C0200

		STA	TJUGMITO

TJUGM_I_C0200	EQU	$
		LDA	TJUGMITO		;ＯＡＭセット数計算
		CLC				;
		ADC	#00700H			;
		AND	#0F800H			;
		CLC				;
		ADC	#0011100000000010B	;
		STA	ENMOD2,X		;

		LDA	ENXSPD,X		;糸が進行方向と逆の方向にたなびいてる ?
		EOR	TJUGMPOW		;
		BPL	TJUGM_I_C0380		;  no: TJUGM_I_C0380

		LDA	ENXSPD,X		;針のスピード計算
		SEC				;
		SBC	TJUGMSPD		;
		BEQ	TJUGM_I_C0800		;
						;
		STA	R0			;
		LDY	ENWRKC,X		;
		LDA	!TJUGM_ITO_CDT2,Y	;
		STA	R6			;
		M_CHIP	MULTIPLY		;
		LDX	<ENINDX			;
		LDA	R0			;
		CLC				;
		ADC	TJUGMSPD		;
		STA	TJUGMSPD		;

TJUGM_I_C0380	EQU	$
		LDA	TJUGMSPD
		SEC
		SBC	ENXSPD,X
		CLC
		ADC	TJUGMPOW
		STA	TJUGMPOW

TJUGM_I_C0800	EQU	$

		RTS
;
TJUGM_SMK_SET	EQU	$
		LDA	TJUGM_TIMER
		BNE	TJUGM_S_SET0800

		LDA	#KINTS
		JSL	>EXINSR

		LDA	#00002
		STA	EXCHPT,Y
		LDA	<RANDM0
		AND	#00003
		SEC
		SBC	#00002+8
		CLC
		ADC	ECENTX,X
		STA	EXXPSL,Y
		LDA	<RANDM0
		AND	#00007
		SEC
		SBC	#00004+8
		CLC
		ADC	ECENTY,X
		STA	EXYPSL,Y
		LDA	#00008
		STA	EXTIM0,Y
		STA	TJUGM_TIMER

TJUGM_S_SET0800 EQU	$

		RTS
;
TJUGM_SUB0	EQU	$
		TYX

		LDA	ECENTX,X		;赤ちゃんの近くに来た ?
		SEC				;
		SBC	ECENTX+BABY_INDEX	;
		CLC				;
		ADC	#00040H			;
		CMP	#00080H			;
		BCS	TUMUJ_SUB0800		;  no: TUMUJ_SUB0800

		LDA	#00200H			;TJUGMITO を計算するデータセット
		STA	ENWRKA,X		;
		INC	<ENWRK2,X

TUMUJ_SUB0800	EQU	$

		RTS
;
TJUGM_S1_XPOW	EQU	$
		WORD	00040H,00080H
TJUGM_S1_XPOWCK EQU	$
		WORD	00020H,00040H
TJUGM_S1_YMULDT EQU	$
		WORD	-00020H,-00030H
;
TJUGM_SUB1	EQU	$
		TYX

		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X
		LDA	ECENTX+BABY_INDEX	;赤ちゃん追跡
		SEC				;
		SBC	ECENTX,X		;
		SEC				;
		SBC	<EWORKC			;
		PHP				;
		BPL	TJUGM_SUB1100		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
TJUGM_SUB1100	EQU	$			;
		LSR	A			;
		CMP	#00018H			;
		BMI	TJUGM_SUB1200		;
						;
		LDA	#00018H			;
						;
TJUGM_SUB1200	EQU	$			;
		CLC				;
		ADC	#00018H			;
		STA	ENXPOW,X		;
		ASL	A			;
		ASL	A			;
		ASL	A			;
		PLP				;
		BPL	TJUGM_SUB1300		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
TJUGM_SUB1300	EQU	$			;
		STA	ENXMAX,X		;
						;
		LDA	ECENTY+BABY_INDEX	;
		SEC				;
		SBC	ECENTY,X		;
		SEC				;
		SBC	<EWORKE			;
		SEC				;
		SBC	#00010H			;
		PHP
		BPL	TJUGM_SUB1400		;
						;
		EOR	#0FFFFH			;
		INC	A			;
						;
TJUGM_SUB1400	EQU	$			;
		LSR	A			;
		CMP	#00018H			;
		BMI	TJUGM_SUB1500		;
						;
		LDA	#00018H			;
						;
TJUGM_SUB1500	EQU	$			;
		CLC				;
		ADC	#00018H			;
		PLP
		BPL	TJUGM_SUB1700

		EOR	#0FFFFH
		INC	A

TJUGM_SUB1700	EQU	$
		CLC				;
		ADC	ENYSPD,X		;
		STA	ENYSPD,X		;

		LDA	ENTIM1,X
		BNE	TJUGM_SUB1800

		LDA	#00004
		STA	ENTIM1,X

		LDA	ENCHPT,X
		EOR	#00001H
		STA	ENCHPT,X

TJUGM_SUB1800	EQU	$
		LDA	ENTIM2,X		;揺れ反転 ?
		BNE	TJUGM_SUB1900		;  no: TJUGM_SUB1900

		LDA	#00050H			;揺れ反転タイマーセット
		STA	ENTIM2,X		;

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

TJUGM_SUB1900	EQU	$
;
		RTS
;
TJUGM_SUB2	EQU	$
		TYX

		LDA	TJUGMITO		;縮み切った ?
		BNE	TJUGM_SUB2800		; yes: TJUGM_SUB2800

		INC	ENCHPT,X
		LDA	#00002			;キャラパターンチェンジカウンター
		STA	<ENCONT,X		;
		LDA	#00008H			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;
		INC	<ENWRK2,X

TJUGM_SUB2800	EQU	$
TJUGM_RANGE	EQU	$
		JSR	TJUGM_RANGE_SB

		INX
		INX
		JSR	TJUGM_RANGE_SB

		LDX	<ENINDX

		RTS
;
TJUGM_RANGE_SB	EQU	$
		LDA	EPWIDX,X
		STA	R0
		CLC
		ADC	#00030H
		CMP	#00060H
		BCS	TJUGM_R_SB1000

		PHX
		LDA	R0
		PHP
		BPL	TJUGM_R_SB0100

		EOR	#0FFFFH
		INC	A

TJUGM_R_SB0100	EQU	$
		I16
		ASL	A
		TAX
		LDA	>DIVBUF,X
		PLP
		BPL	TJUGM_R_SB0200

		EOR	#0FFFFH
		INC	A

TJUGM_R_SB0200	EQU	$
		STA	R0
		I8

		LDA	#00050H
		STA	R6
		M_CHIP	MULTIPLY
		BRA	TJUGM_R_SB2000

TJUGM_R_SB1000	EQU	$
		CLC
		ADC	#00050H-30H
		CMP	#000A0H
		BCC	TJUGM_R_SB3000

		LDA	#0FD00H
		STA	R6
		PHX
		M_CHIP	MULTIPLY

TJUGM_R_SB2000	EQU	$
		PLX
		LDA	R0
		STA	ENXMAX,X
		BPL	TJUGM_R_SB2500

		EOR	#0FFFFH
		INC	A

TJUGM_R_SB2500	EQU	$
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		STA	ENXPOW,X

TJUGM_R_SB3000	EQU	$

		RTS
;
TJUGM_S3_TIM1	EQU	$
		HEX	10,20
;CHPT <- 2
TJUGM_SUB3	EQU	$
		TYX

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

		DEC	<ENCONT,X		;キャラパターンチェンジ終わり ?
		BPL	TJUGM_SUB3500		;  no: TJUGM_SUB3500

		LDY	<ENWRK4,X		;４ー３のやつ ?
		BEQ	TJUGM_SUB3100		;  no: TJUGM_SUB3100

		INC	<ENWRK2,X

TJUGM_SUB3100	EQU	$
		INC	<ENWRK2,X

TJUGM_SUB5000	EQU	$

		RTS

TJUGM_SUB3500	EQU	$
		LDY	<ENCONT,X
		LDA	!TJUGM_S3_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X
		INC	ENCHPT,X

TJUGM_SUB3800	EQU	$
		JMP	TJUGM_RANGE
;
TJUGM_SUB4	EQU	$
		TYX
		JMP	TJUGM_RANGE
;
;;;;;;;;		LDA	#000F0H
;;;;;;;;		SEC
;;;;;;;;		SBC	ENDSXL,X
;;;;;;;;		ASL	A
;;;;;;;;		ASL	A
;;;;;;;;		ASL	A
;;;;;;;;		CMP	#00200H
;;;;;;;;		BMI	TJUGM_SUB4100
;;;;;;;;
;;;;;;;;		LDA	#00200H
;;;;;;;;
;;;;;;;;TJUGM_SUB4100	EQU	$
;;;;;;;;		STA	ENXMAX,X
;;;;;;;;		SEC
;;;;;;;;		SBC	ENXSPD,X
;;;;;;;;		BPL	TJUGM_SUB4300
;;;;;;;;
;;;;;;;;		EOR	#0FFFFH
;;;;;;;;		INC	A
;;;;;;;;
;;;;;;;;TJUGM_SUB4300	EQU	$
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		STA	ENXPOW,X
;;;;;;;;
;;;;;;;;		LDY	EPXMUK,X
;;;;;;;;		TYA
;;;;;;;;		STA	ENMUKI,X
;;;;;;;;
;;;;;;;;		LDA	EPWIDY,X
;;;;;;;;		CLC
;;;;;;;;		ADC	#00040H
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		CMP	#08000H
;;;;;;;;		ROR	A
;;;;;;;;		EOR	#0FFFFH
;;;;;;;;		SEC
;;;;;;;;		ADC	ENYSPD,X
;;;;;;;;		STA	ENYSPD,X
;;;;;;;;
;;;;;;;;		RTS
;
TJUGM_SUB5	EQU	$
		TYX

		LDA	ENTIM3,X
		BNE	TJUGM_SUB5000

		LDA	ESCCH1
		CLC
		ADC	#000A0H
		STA	ENXPSL,X
		CLC
		ADC	#00008
		STA	<EWORK0
		LDA	ESCCV1
		SEC
		SBC	#00020H
		STA	ENYPSL,X
		CLC
		ADC	#00008H
		STA	<EWORK2
		JSL	>COURSE_CHECK		;コース外 ?
		BMI	TJUGM_SUB5800		; yes: TJUGM_SUB5800

		LDA	<EWORK0
		STA	R8
		LDA	<EWORK2
		CLC
		ADC	#00008
		STA	R0
		M_CHIPR M_BGUNIT_READ
		LDX	<ENINDX			;再セット位置はＢＧの中 ?
		LDY	R5			;
		BNE	TJUGM_SUB5800		; yes: TJUGM_SUB5800

		LDA	<EWORK0
		STA	R8
		LDA	<EWORK2
		SEC
		SBC	#00010H
		STA	R0
		M_CHIPR M_BGUNIT_READ
		LDX	<ENINDX			;再セット位置はＢＧの中 ?
		LDY	R5			;
		BNE	TJUGM_SUB5800		; yes: TJUGM_SUB5800

		LDA	#00005H
		STA	ENYUSN,X
		LDA	#0011100000000010B
		STA	ENMOD2,X
		LDA	#00100H
		STA	ENGMAX,X
		LDA	#00008H
		STA	ENGPOW,X
		LDA	!TJUGM_I_XSPD
		STA	ENXSPD,X
		STZ	ENXPOW,X
		LDA	#00100H
		STA	ENYSPD,X
		STZ	ENMUKI,X
		STZ	ENCHPT,X
		STZ	TJUGMSPD
		STZ	TJUGMPOW
		STZ	TJUGMITO
		STZ	<ENWRK2,X

TJUGM_SUB5800	EQU	$

		RTS
;
;************************************************************************
;*		fail	 ( 釣りジュゲム )				*
;************************************************************************
TJUGMFL		EQU	$			;-- tjugmfl --
		JSR	TJUGM_OAM_SET

		JSL	>DISPCK2
		BCC	TJUGMFL0800

		LDY	<ENWRK0,X
		BEQ	TJUGMFL0200

		LDA	ENMODE,Y
		CMP	#EMOVE
		BNE	TJUGMFL0200
		LDA	ENMYNO,Y
		CMP	#KINTO
		BEQ	TJUGMFL0800

TJUGMFL0200	EQU	$
		LDA	ENTIM3,X		;復帰させる ?
		CMP	#0FF00H			;
		BCS	TJUGMFL0800		;  no: TJUGMFL0800
		AND	#0FF00H			;
		BEQ	TJUGMFL0300		; yes: TJUGMFL0300

		LDA	#00040H
		STA	ENTIM3,X

TJUGMFL0300	EQU	$
		STZ	<ENWRK0,X
		LDA	#EMOVE
		STA	ENMODE,X
		LDA	#000FFH
		STA	ENYUSN,X
		LDY	#TJUGM_RMODE5
		STY	<ENWRK2,X

TJUGMFL0800	EQU	$

		RTL
;
;[IN]	EWORK0 <- チェックＸ　ＰＯＳ．EWORK2 <- チェックＹ　ＰＯＳ．
;
;[OUT]	Sign Flag  Minus...コース外 Plus...コース内
;
COURSE_CHECK	EQU	$
		PHX
		I16
		LDA	<EWORK2
		AND	#0FF00H
		LSR	A
		LSR	A
		LSR	A
		LSR	A
		STA	<EWORK4
		LDA	<EWORK0
		AND	#0FF00H
		XBA
		ORA	<EWORK4
		TAX
		LDA	UNBUFAD,X
		I8
		PLX
		TAY

		RTL
;
;
;
;
;
;
;
;
;
;
;
		END
