;************************************************************************
;*									*
;*	title name	: "yossy"					*
;*	proccess	: enemy sub.1					*
;*	file name	: ys_enmy5					*
;*									*
;************************************************************************
;
;
		SALL
;
		include		ys_header.inc
		include		ys_unit.h
		include		ys_pld.h
		include		ys_presno.h
		include		ys_color.h
		include		ys_ename.h
;
		XALL
;
;
;------------------------------------------------------------------------
;-		global symbol						-
;------------------------------------------------------------------------
		GLB	BOSS0IN
		GLB	DMPLCIN
		GLB	PURININ,PURI0IN,HARIOIN,TUMUJIN,SUIKTIN
;
		GLB	BOSS0MV
		GLB	DMPLCMV
		GLB	PURINMV,PURI0MV,HARIOMV,TUMUJMV,SUIKTMV
;
		GLB	CURTAIN_SET,SUIKT_DOWN_ST
;
		GLB	SLIME_START_ST,SLIME_START_ED
		GLB	MPACK_START_ST,MPACK_START_ED
;
;------------------------------------------------------------------------
;-		extern symbol						-
;------------------------------------------------------------------------
;
;-------------< ys_main >------------------------------------------------
		EXT	BS_SCRE
		EXT	SOUND_3_ON
;
;-------------< ys_rpro >------------------------------------------------
		EXT	JSRSUB
		EXT	CHIPON
		EXT	B3CL
		EXT	CHIPON_RAM_READ
;
;-------------< ys_play >------------------------------------------------
		EXT	EBSTAT
		EXT	PFAL,PSTP,PMOV,PDEM,PGOL
		EXT	PFLP
;
		EXT	BERO_CANCEL
;
;-------------< ys_bgsc >------------------------------------------------
		EXT	BGCG
;
		EXT	UNITCHG
;
;-------------< ys_enmy >------------------------------------------------
		EXT	ENEMY,ENINSB
		EXT	ENCLEAR,ENCLEAR_NORETN,DISPCK0,DISPCK2
		EXT	ENINSR,ENINSR2,EEXCHK,EEYCHK,EEXYCK,ESTATST
		EXT	ENINSR_I,ENINSR2_I,ENRINT
		EXT	SCOREST
		EXT	ENMDCK,XSDOWN,EPCRCK,MUKEOR,XSPEOR,MKEOR2,PLFLST
		EXT	PLFLST_2
		EXT	SHOT_EN_KILL,SHOT_EN_KILL_S,ENDEATH_SET,ENDEATH_SET_4
;
		EXT	EINIT,EFAIL,EMOVE,EEATM,ENOSE,EBABL
;
		EXT	EATMXS,NOSWT
;
		EXT	EGGKILL_ALL
;
		EXT	FSMK0_SET
;
		EXT	TROBJ_CANCEL
		EXT	TROBJ_SR_2x2,TROBJ_SR_4x4,TROBJ_SR_8x8
		EXT	TROBJ_SR_2x2_CL,TROBJ_SR_4x4_CL,TROBJ_SR_8x8_CL
		EXT	TROBJ_OAM_2x2,TROBJ_OAM_4x4,TROBJ_OAM_8x8
		EXT	TROBJ_OAM_2x2_I,TROBJ_OAM_4x4_I,TROBJ_OAM_8x8_I
		EXT	TROBJ_CLEAR
		EXT	TROBJ_PLOT_X,TROBJ_PLOT_Y
;
;-------------< ys_enmy2 >------------------------------------------------
		EXT	NMZ_HOSEI
;
;-------------< ys_enmy3 >------------------------------------------------
		EXT	BSCLW_SET_B,BSCLW_SET_M,BSCLW_SET_B_T
		EXT	BOSS_CLEAR,BOSS_CLEAR_M
		EXT	BOSS_EN_CHANGE
;
;-------------< ys_enmy4 >------------------------------------------------
;
;-------------< ys_enmy6 >------------------------------------------------
		EXT	LOCKON_TARGET,LOCKON_TARGET2
		EXT	MBALL_ENCHK
;
;-------------< ys_exst >------------------------------------------------
		EXT	EXINSR
;
;-------------< ys_babym >------------------------------------------------
		EXT	BABYM_SHABN_C7
;
;-------------< ys_dorobo >------------------------------------------------
		EXT	GEPPU_SET
;
;-------------< ys_unit >------------------------------------------------
		EXT	UNDTADD,UNDATA,RUTDATA
;
;-------------< ys_init >------------------------------------------------
		EXT	UNCOMPRES,VRAMDX_ST,VRAMDX_H_ST,VRAMDX_L_ST,VRAMDX_L_C_ST
		EXT	M_DMA_BFST
;
;-------------< ys_play >------------------------------------------------
		EXT	TIMEUP_SET
;
;-------------< ys_game >------------------------------------------------
		EXT	BS1_MSG
;
;-------------< ys_data >------------------------------------------------
		EXT	SIN,COS
;
;------------------------------------------------------------------------
;-		define symbol						-
;------------------------------------------------------------------------
BABY_INDEX	EQU	00
;
;
;
;************************************************************************
;*									*
;*		program start						*
;*									*
;************************************************************************
;
		EXTEND
;
		MEM16
		IDX8
;
		DPAGE	EN0RAM
;
Group_1		GROUP	Enemy5_pro
Enemy5_pro	SECT	REL
;
;************************************************************************
;*		DUMMY SUB-ROUTINE					*
;************************************************************************
DUMMY_SUB	EQU	$
		TYX
		RTS
;
;
;
;
;
;
;
;
;************************************************************************
;*		initial ( モード７カメボス )				*
;************************************************************************
BOSS0IN		EQU	$			;-- boss0in --
		LDY	<ENWRK0,X
		TYX
		JSR	(!BOSS0_INIT,X)
;
		LDA	SCCH1
		STA	PLSCRL_MINX
;
		LDA	#EINIT		;初期モードへ戻す
		STA	ENMODE,X
		RTL
;
;------------------------------------------------------------------------
;-		モード７カメボス初期セットルーチンテーブル		-
;------------------------------------------------------------------------
BOSS0_INIT	EQU	$
		WORD	BOSS0_INIT_0	;[0]	初期データセット
		WORD	BOSS0_INIT_D0	;[2]	ＢＧ消去デモ（ＢＧ３霧スクロール）
		WORD	BOSS0_INIT_D1	;[4]	ＢＧ消去デモ（ＢＧ２消去）
		WORD	BOSS0_INIT_D2	;[6]	ＢＧ消去デモ（ＢＧ３消去）
		WORD	BOSS0_INIT_D3	;[8]	ＢＧ３キャラクター転送（メッセージ用）
		WORD	BOSS0_INIT_D4	;[A]	ＢＧ３キャラクター転送（メッセージ用）
		WORD	BOSS0_INIT_D5	;[C]	ＢＧ３スクリーン転送（メッセージ用）
;;;;;;;;		WORD	BOSS0_INIT_D6	;[E]	抜きカラーを青空にフェード＆DMPLC,KAMC2セット
		WORD	BOSS0_INIT_3	;[E]	初期設定
;
;------------------------------------------------------------------------
;-		初期データセット					-
;------------------------------------------------------------------------
;
BOSS0_INIT_0	EQU	$
		LDX	<ENINDX
;
;-------------- ＢＧ消去デモ初期データセット ----------------------------
		STZ	ESCCH3		;ＢＧ３スクロールカウンター初期セット
		STZ	SCCH3
		STZ	ESCCV3		;
		STZ	SCCV3
		LDA	#00000100B+(00010011B*100H) ;画面設定
		STA	MANSEL		;[ STA SUBSEL ]
		LDY	#00100100B
		STY	SUBADF		;加算フラグセット
;
		JMP	BOSS0_MODINC	;go to next mode !!
;
;------------------------------------------------------------------------
;-		ＢＧ消去デモ（ＢＧ３霧スクロール）			-
;------------------------------------------------------------------------
BOSS0_INIT_D0	EQU	$
		LDX	<ENINDX
;
		LDA	ENTIM0,X
		BNE	BOSS0_INIT_D000
		LDA	#04H
		STA	ENTIM0,X
		DEC	ENXPSL,X
BOSS0_INIT_D000 EQU	$
;
		I16
;
		LDY	#00		;(Y) <-- ＢＧ３スクロールカウンターＶ
		LDA	ENDSXL,X
		SEC
		SBC	#0120H
		EOR	#0FFFFH
		INC	A
		BPL	BOSS0_INIT_D010 ;ヌキ画面？ ( no:BOSS0_INIT_D010 )
		LDA	#00
BOSS0_INIT_D010 EQU	$
		CMP	#00E0H
		BCC	BOSS0_INIT_D020 ;上画面？ ( yes:BOSS0_INIT_D020 )
;
		LDY	#0100H
;;;;		    SEC
		SBC	#00E0H
		CMP	#00E0H
		BCC	BOSS0_INIT_D020 ;霧覆われ？ ( no:BOSS0_INIT_D020 )
;
;-------------- ＢＧ２消去デモへ ----------------------------------------
		PHY			;(Y) save
;
		LDA	#DATACOL
		STA	R1		;(R1)  <-- 転送元ポインター
		LDA	#CHNGCOL
		STA	R2		;(R2)  <-- 転送先ポインター
		LDA	#200H
		STA	R12		;(R12) <-- 転送バイト数
;
		I8
;
		M_CHIP	MRAM_MOVE	;ＲＡＭブロック転送
;
		LDA	#7FFFH
		STA	>CHNGCOL+(10H*2)
		LDX	#(0FH-1)*2
BOSS0_INIT_D012 EQU	$
		STA	>CHNGCOL+(61H*2),X
		STA	>CHNGCOL+(71H*2),X
		DEX
		DEX
		BPL	BOSS0_INIT_D012
;
		LDA	#00
		STA	>CLFDCNT	;カラーフェード用カウンターリセット
;
		JSR	BOSS0_MODINC	;go to next mode !!
;
		I16
;
		PLY			;(Y) load
		LDA	#00E0H
BOSS0_INIT_D020 EQU	$
		STY	ESCCV3		;ＢＧ３スクロールカウンターＶセット
		STY	SCCV3
		STA	ESCCH3		;ＢＧ３スクロールカウンターＨセット
		STA	SCCH3
		STA	R1		;(R1) <-- スクロールカウンターＨ
;
		LDA	<FRCNT2
		LSR	A
		STA	R2		;(R2) <-- Ｈラスターデータポインター
		LDA	#070H
		STA	R3		;(R3) <-- Ｈラスター周期
		LDA	#0FH
		STA	R4		;(R4) <-- Ｈラスター振幅幅
		STZ	R5		;(R5) <-- Ｈラスター傾斜率
		LDA	#HDMABF2
		STA	R6		;(R6) <-- Ｈ−ＤＭＡバッファポインター
;
		I8
;
		M_CHIP	RASTER_SET
;
		JSL	>M_DMA_BFST
		LWORD	HDMABUF2	;転送先アドレス
		LWORD	HDMABF2		;転送元アドレス
		WORD	0D2H*2*2	;転送バイト数
;
		LDA	#00001000B	;ラスターＨ−ＤＭＡ”ＯＮ”
		TSB	HD420C
;
		LDX	<ENINDX
		RTS
;
;------------------------------------------------------------------------
;-		ＢＧ消去デモ（ＢＧ２消去）				-
;------------------------------------------------------------------------
BOSS0_INIT_D1	EQU	$
		LDA	<FRCNT2
		AND	#07H
		BNE	BOSS0_INIT_D100
		LDA	>CLFDCNT
		CMP	#020H
		BCS	BOSS0_INIT_D110 ;カラーフェード終了？ ( yes:BOSS0_INIT_D110 )
;
;-------------- カラーフェード ------------------------------------------
BOSS0_COL_FADE	EQU	$
		LDA	#MOTOCOL	;元カラーデータポインターセット
		STA	>MOTOADR
		LDA	#CHNGCOL	;先	       ”
		STA	>CHNGADR
		M_CHIP	COLFADE		;カラーフェード処理
;
		LDA	>DATACOL+(10H*2)
		STA	NUKCOL
;
BOSS0_INIT_D100 EQU	$
		LDX	<ENINDX
		RTS
;
;-------------- ＢＧ３消去デモへ ----------------------------------------
BOSS0_INIT_D110 EQU	$
		LDA	#00001000B	;ラスターＨ−ＤＭＡ”ＯＦＦ”
		TRB	HD420C
		LDA	#00000010B	;ＢＧ２消去
		TRB	SUBSEL
;
		LDA	#00
		STA	>CHNGCOL+(01H*2)
		STA	>CHNGCOL+(02H*2)
		STA	>CHNGCOL+(03H*2)
;
		STA	>CLFDCNT	;カラーフェード用カウンターリセット
;
;--------------	 カラー初期化 ----------------------------------------
		LDX	#(0FH-1)*2
BOSS0_INIT_D150 EQU	$
		LDA	>COL_ADDRESS+M7_KAME_COL+(10H+1)*2,X	;ＯＢＪカラーセット
		STA	>CHNGCOL+(80H+71H)*2,X
		DEX
		DEX
		BPL	BOSS0_INIT_D150

		LDA	>COL_ADDRESS+M7_KAME_COL+10H*2		;ＯＢＪカラーセット
		STA	>CHNGCOL+(80H+70H)*2
;
		JSR	BOSS0_MODINC	;go to next mode !!
;
		LDA	#BG_00		;(A) <-- 敵Ｎｏ．
		JSL	>ENINSR_I
;
		RTS
;
;------------------------------------------------------------------------
;-		ＢＧ消去デモ（ＢＧ３消去）				-
;------------------------------------------------------------------------
BOSS0_INIT_D2	EQU	$
		LDA	<FRCNT2
		AND	#07H
		BNE	BOSS0_INIT_D100
		LDA	>CLFDCNT
		CMP	#020H
		BCC	BOSS0_COL_FADE	;カラーフェード終了？ ( yes:BOSS0_COL_FADE )
;
;-------------- 転送エリア開放 ------------------------------------------
		LDX	<ENINDX
		JSL	>TROBJ_CANCEL
;
		STZ	CHNG_CHR_CNT
		STZ	CHNG_CHR_BYTE
		LDA	#04H		;ＢＧキャラクター転送まったく無しセット
		STA	CHRTRP
		STZ	COLTRP		;カラー転送まったく無しセット
		STZ	BG2SPF		;ＢＧ２
		STZ	BG3SPF
;
BOSS0_MODINC	EQU	$		;go to next mode !!
;
		I8
;
		LDX	<ENINDX
		INC	<ENWRK0,X
		INC	<ENWRK0,X

		RTS
;
;------------------------------------------------------------------------
;-		ＢＧ３メッセージキャラクター転送			-
;------------------------------------------------------------------------
BOSS0_INIT_D3	EQU	$
		LDA	#CHRE8A		;(A) <-- キャラクターバンク（メッセージ）
		I16			; index 16bit mode
		LDY	#2800H		;(Y) <-- ＶＲＡＭアドレス
		BRA	BOSS0_I_D3100
;
BOSS0_INIT_D4	EQU	$
		LDA	#CHRE8B		;(A) <-- キャラクターバンク（メッセージ）
		I16			; index 16bit mode
		LDY	#2C00H		;(Y) <-- ＶＲＡＭアドレス
BOSS0_I_D3100	EQU	$
		JSR	UNCOM_VRAMTR
		IDX8
;
		LDA	#00000100B+(00000100B*100H) ;ＢＧ３表示”ＯＦＦ”
		TRB	MANSEL		;[ & SUBSEL ]
;
		BRA	BOSS0_MODINC
;
;------------------------------------------------------------------------
;-		ＢＧ３メッセージスクリーン転送				-
;------------------------------------------------------------------------
BOSS0_INIT_D5	EQU	$
		JSL	>CURTAIN_SET
;;;;;;;;		LDA	#00
;;;;;;;;		STA	>CLFDCNT	;カラーフェード用カウンターリセット
;;;;;;;;		LDA	>DATACOL+(10H*2)
;;;;;;;;		STA	>MOTOCOL+(10H*2)
;;;;;;;;		LDA	#07F96H
;;;;;;;;		STA	>CHNGCOL+(10H*2)
;
;-------------- サウンドフェード ------------------------------------------
		LDA	#000F1H			;［Ｓ］
		STA	SOUND_0
;
;-------------- デモセット ------------------------------------------
		LDA	#DMPLC
		JSL	>ENINSR
		LDA	#BOSS0_START_ST
		STA	ENWRK0,Y
		LDA	#BOSS0_START_ED
		STA	ENWRKC,Y
		STZ	BOSS0FLG
		INC	TIMER_STOP
;
;-------------- カメックセット ------------------------------------------
		LDA	#KAMC2
		JSL	>ENINSR_I
		LDA	#00010H
		STA	ENXPSL,Y
;
		JSL	>BERO_CANCEL
;;;;;;;;		STZ	PLCMKI
		BRA	BOSS0_MODINC
;
CURTAIN_SET	EQU	$
		I16
		LDA	#B3MAGIC
		LDY	#03400H
		JSR	UNCOM_VRAMTR
		IDX8
;
;-------------- ＢＧ３のカラー転送 ---------------------------------------
		LDX	#(007H-1)*2
BOSS0_I_D5100	EQU	$			;ＢＧカラーセット
		LDA	>COL_ADDRESS+BG3_SUB_A_COL+(8*2),X
		STA	>MOTOCOL+1*2+(8*2),X
		STA	>DATACOL+1*2+(8*2),X
		STA	>CHNGCOL+1*2+(8*2),X
		DEX
		DEX
		BPL	BOSS0_I_D5100

		RTL
;
		MEM16
		IDX16
;
UNCOM_VRAMTR	EQU	$
		PHY			;(Y) save
;
;-------------- 圧縮データの解凍 ----------------------------------------
		LDX	#WOB7CHR+1000H	;(X) <-- 圧縮データ格納アドレスセット
		JSL	>UNCOMPRES	;[ (A) <-- 展開データバイト数 ]
;
;-------------- 展開データ転送 ------------------------------------------
		PLY			;(Y) <-- ＶＲＡＭアドレス
		LDX	#BANK WOB7CHR
		STX	WORK1		;(WK1,2) <-- 転送元アドレス（Ｂ）
		LDX	#WOB7CHR+1000H	;(X)	 <-- 転送元アドレス（Ｌ，Ｈ）
		JSL	>VRAMDX_ST
;
		I8
;
BOSS0_I_D6000	EQU	$
BOSS0_INIT_3000 EQU	$
		RTS
;;;;;;;;;
;;;;;;;;;------------------------------------------------------------------------
;;;;;;;;;-		抜きカラーを青空にフェード＆DMPLCセット			-
;;;;;;;;;------------------------------------------------------------------------
;;;;;;;;BOSS0_INIT_D6	EQU	$
;;;;;;;;		LDX	<ENINDX
;;;;;;;;
;;;;;;;;		LDA	<FRCNT2
;;;;;;;;		AND	#03H
;;;;;;;;		BNE	BOSS0_I_D6000
;;;;;;;;		LDA	>CLFDCNT		;カラーフェード終了?
;;;;;;;;		CMP	#020H			;
;;;;;;;;		BCS	BOSS0_I_D6100		; yes: BOSS0_I_D6100
;;;;;;;;		JMP	BOSS0_COL_FADE		;
;;;;;;;;
;;;;;;;;BOSS0_I_D6100	EQU	$
;;;;;;;;;
;;;;;;;;;-------------- デモセット ------------------------------------------
;;;;;;;;		LDA	#DMPLC
;;;;;;;;		JSL	>ENINSR
;;;;;;;;		LDA	#BOSS0_START_ST
;;;;;;;;		STA	ENWRK0,Y
;;;;;;;;		LDA	#BOSS0_START_ED
;;;;;;;;		STA	ENWRKC,Y
;;;;;;;;		STZ	BOSS0FLG
;;;;;;;;;
;;;;;;;;;-------------- カメックセット ------------------------------------------
;;;;;;;;		LDA	#KAMC2
;;;;;;;;		JSL	>ENINSR_I
;;;;;;;;		LDA	#00010H
;;;;;;;;		STA	ENXPSL,Y
;;;;;;;;;
;;;;;;;;		STZ	PLCMKI
;;;;;;;;		JMP	BOSS0_MODINC
;
;------------------------------------------------------------------------
;-		初期デモ処理						-
;------------------------------------------------------------------------
;
BOSS0_INIT_3	EQU	$
		LDX	<ENINDX

		STZ	PLCMKI

		LDY	BOSS0FLG		;デモ終わり ?
		BEQ	BOSS0_INIT_3000		;  no: BOSS0_INIT_3000

		STZ	TROBJ_ARIA	;転送エリア開放
;
;-------------- カメボス登場位置セット ----------------------------------
		LDA	SCCH1
		CLC
		ADC	#00120H
		STA	ENXPSL,X

		LDA	PLYPSL
		STA	ENYPSL,X

		STZ	ATSCRL_H

		LDA	SCCH1
		STA	PLSCRL_MINX
		CLC
		ADC	#00100H
		STA	BOSS0_CENTX
		STA	PLSCRL_MAXX
;
;-------------- カメボス処理へ ------------------------------------------
;;;;;;;;;;
;;;;;;;;;;
;;;;;;;;;;
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#00400H
		STA	ENGMAX,X
		STA	BOSS0MVF		;移動許可フラグセット
		XBA			;[ LDA	#00004 ]
		STA	ENYUSN,X
		LDA	#0FF80H
		STA	ENXSPD,X

		STZ	BOSS0_BG3USE		;ＢＧ３威容フラグクリア
;
		STZ	ESCCV3
		LDA	#00015H		;MANSEL <- 15
		STA	MANSEL		;SUBSEL <- 0
;
		LDA	#00009			;［Ｓ］
		STA	SOUND_0
;
		LDY	#BOSS0_RMODE90
		STY	<ENWRK2,X
;;;;;;;;;;
;;;;;;;;;;
;;;;;;;;;;
;;
;;-------------- タマゴ花セット ------------------------------------------
;		LDA	#EGFLW
;		JSL	>ENINSR_I
;
;		LDA	ENXPSL,X
;		STA	ENXPSL,Y
;		LDA	ENYPSL,X
;		STA	ENYPSL,Y
;		LDA	ENMOD2,X		;範囲クリアなし
;		AND	#0FFF3H			;
;		STA	ENMOD2,X		;
;
		PLA			;[ pull pull return !! ]
		RTL
;
;		各部位セット位置計算用回転角データ
;
KAMESAN_PDT	EQU	$
;front FOOT
;front HAND
;TAIL
;HEAD
;back  HAND
;back  FOOT
;BODY
		HEX	02,DF,14,B9,06		;[00] ４足歩行（０）
		HEX	00,B4,0E,D8,09
		HEX	00,FF,20,DF,07
		HEX	00,90,16,7A,0C
		HEX	01,9B,15,BC,07
		HEX	00,EA,1A,D3,08
		HEX	00,F3,06,00,00
;
		HEX	02,E5,17,B9,06		;[01] ４足歩行（１）
		HEX	00,A4,0C,D9,08
		HEX	00,FD,1F,E2,07
		HEX	00,8A,15,79,0C
		HEX	01,A0,13,B9,07
		HEX	00,EC,14,D7,08
		HEX	00,02,06,00,00
;
		HEX	02,E8,1A,BC,06		;[02] ４足歩行（２）
		HEX	01,A2,0C,B0,08
		HEX	00,FC,1E,E1,07
		HEX	00,85,14,7B,0D
		HEX	01,A6,10,BD,07
		HEX	02,F0,14,B6,06
		HEX	00,0C,06,00,00
;
		HEX	02,EC,1D,BA,06		;[03] ４足歩行（３）
		HEX	02,A4,0C,AD,06
		HEX	00,FC,1D,DD,07
		HEX	00,89,17,7A,0C
		HEX	01,B0,0E,B9,07
		HEX	01,EF,14,AF,09
		HEX	00,02,06,00,00
;
		HEX	00,EC,1D,D5,07		;[04] ４足歩行（４）
		HEX	01,9f,13,B8,07
		HEX	00,FB,1C,E1,07
		HEX	00,8E,17,7A,0C
		HEX	00,AE,0E,D4,08
		HEX	02,DE,12,BB,06
		HEX	00,F3,06,00,00
;
		HEX	00,EF,18,D0,07		;[05] ４足歩行（５）
		HEX	01,A5,11,BC,07
		HEX	00,FC,1D,E3,07
		HEX	00,89,17,79,0C
		HEX	01,9E,0E,CC,07
		HEX	02,E1,15,B4,05
		HEX	00,02,06,00,00
;
		HEX	02,F2,17,BA,06		;[06] ４足歩行（６）
		HEX	01,AF,0E,B9,07
		HEX	00,FC,1E,DE,07
		HEX	00,84,15,79,0C
		HEX	01,9C,0B,BC,07
		HEX	02,E6,18,BA,06
		HEX	00,0C,06,00,00
;
		HEX	01,F0,18,A8,08		;[07] ４足歩行（７）
		HEX	01,B9,0D,BC,07
		HEX	00,FD,1F,DF,07
		HEX	00,8A,15,79,0C
		HEX	02,9D,0E,AF,08
		HEX	02,EA,1B,B7,06
		HEX	00,02,06,00,00
;
		HEX	02,AD,0E,BA,07		;[08] ２足歩行（０）
		HEX	03,63,0F,B2,06
		HEX	00,E2,0F,DF,08
		HEX	00,57,1C,78,0C
		HEX	05,76,14,A6,09
		HEX	00,C9,0E,D5,07
		HEX	00,24,07,00,00
;
		HEX	02,B9,0D,BA,07		;[09] ２足歩行（１）
		HEX	04,64,0E,AA,08
		HEX	00,E1,10,E0,08
		HEX	00,53,1D,78,0C
		HEX	04,73,13,A9,08
		HEX	00,BC,0A,D2,07
		HEX	00,27,09,00,00
;
		HEX	02,C5,0D,B7,07		;[0A] ２足歩行（２）
		HEX	04,6D,0F,AB,08
		HEX	00,E4,11,E0,09
		HEX	00,50,1E,78,0C
		HEX	04,70,11,AA,08
		HEX	02,BC,07,BC,07
		HEX	00,2A,0B,00,00
;
		HEX	02,D1,0E,BB,07		;[0B] ２足歩行（３）
		HEX	05,6D,0F,A5,0A
		HEX	00,E6,12,E1,08
		HEX	00,53,1D,7A,0C
		HEX	03,6F,13,BB,07
		HEX	01,B9,04,AA,09
		HEX	00,27,09,00,00
;
		HEX	00,D0,0F,D4,07		;[0C] ２足歩行（４）
		HEX	05,70,10,A6,0A
		HEX	00,E8,12,E1,08
		HEX	00,57,1C,7A,0C
		HEX	03,6A,11,B8,07
		HEX	02,A8,10,B9,07
		HEX	00,24,07,00,00
;
		HEX	00,CA,0A,D4,07		;[0D] ２足歩行（５）
		HEX	04,70,10,AB,08
		HEX	00,E6,12,DF,08
		HEX	00,53,1D,79,0C
		HEX	04,6C,10,AA,08
		HEX	02,B2,0E,BB,07
		HEX	00,27,09,00,00
;
		HEX	02,CE,07,B9,07		;[0E] ２足歩行（６）
		HEX	04,6B,0F,AB,08
		HEX	00,E4,11,E1,08
		HEX	00,4F,1E,78,0C
		HEX	04,70,11,A8,08
		HEX	02,BC,0D,BB,07
		HEX	00,2A,0B,00,00
;
		HEX	01,DD,05,A6,0A		;[0F] ２足歩行（７）
		HEX	03,6B,0F,B2,06
		HEX	00,E1,10,E1,08
		HEX	00,53,1D,79,0C
		HEX	05,72,12,A8,09
		HEX	02,CB,0D,BC,07
		HEX	00,27,09,00,00
;
		HEX	01,C7,10,A5,0A		;[10] ダッシュ（０）
		HEX	05,B8,0A,A6,0A
		HEX	00,F4,1C,D7,07
		HEX	00,6E,15,78,0C
		HEX	03,81,0F,B3,06
		HEX	00,E9,1B,D2,07
		HEX	00,13,07,00,00
;
		HEX	02,CE,12,B8,07		;[11] ダッシュ（１）
		HEX	04,A5,0A,AD,08
		HEX	00,F2,1B,D6,07
		HEX	00,6D,15,7A,0C
		HEX	04,87,0C,AC,08
		HEX	00,E8,12,D3,07
		HEX	00,14,09,00,00
;
		HEX	02,DD,16,BA,07		;[12] ダッシュ（２）
		HEX	04,98,09,AC,08
		HEX	00,EF,19,D9,07
		HEX	00,69,14,7A,0C
		HEX	04,92,0B,A9,08
		HEX	02,E0,10,BA,07
		HEX	00,13,0B,00,00
;
		HEX	00,E1,19,D0,08		;[13] ダッシュ（３）
		HEX	03,89,0C,B5,06
		HEX	00,ED,17,D7,07
		HEX	00,65,14,78,0C
		HEX	05,A3,09,A8,0A
		HEX	01,D8,0E,A4,0A
		HEX	00,13,0D,00,00
;
		HEX	00,ED,1D,D1,08		;[14] ダッシュ（４）
		HEX	03,92,0F,B5,06
		HEX	00,EF,15,D6,07
		HEX	00,6F,15,78,0C
		HEX	05,AD,0B,A5,0A
		HEX	01,C0,10,A7,0A
		HEX	00,13,07,00,00
;
		HEX	00,EC,14,D1,08		;[15] ダッシュ（５）
		HEX	04,89,09,A8,08
		HEX	00,ED,17,DA,07
		HEX	00,6B,15,79,0C
		HEX	04,9D,0C,AA,08
		HEX	02,C8,11,BD,07
		HEX	00,14,09,00,00
;
		HEX	02,E9,10,BA,07		;[16] ダッシュ（６）
		HEX	04,98,09,AB,08
		HEX	00,F0,19,D6,07
		HEX	00,68,14,79,0C
		HEX	04,93,0B,A9,08
		HEX	02,D7,14,BD,07
		HEX	00,13,0B,00,00
;
		HEX	01,DE,10,A4,0A		;[17] ダッシュ（７）
		HEX	05,B1,07,A7,0A
		HEX	00,F2,1B,D7,07
		HEX	00,66,14,7A,0C
		HEX	03,88,0F,B3,06
		HEX	00,DC,17,D1,07
		HEX	00,13,0D,00,00
;
		HEX	02,C0,0C,00,00		;[18] 甲羅に引っ込む
		HEX	05,60,08,00,00		;3
		HEX	00,80,08,00,00
		HEX	00,00,00,00,00
		HEX	05,60,08,00,00
		HEX	02,C0,0C,00,00
		HEX	00,00,00,00,00
;
		HEX	02,00,00,00,00		;[19] 甲羅に引っ込む
		HEX	05,00,00,00,00		;4
		HEX	00,00,00,00,00
		HEX	00,80,05,00,00
		HEX	05,00,00,00,00
		HEX	02,00,00,00,00
		HEX	00,00,00,00,00
;
		HEX	02,F2,24,00,00		;[1A] ジャンプ
		HEX	05,8C,24,00,00		;5
		HEX	00,0C,22,00,00
		HEX	00,84,2B,00,00
		HEX	05,86,15,00,00
		HEX	02,01,22,00,00
		HEX	00,00,00,00,00
;
		HEX	02,FC,22,00,00		;[1B] リバウンド
		HEX	05,8B,1E,00,00		;6
		HEX	00,04,1B,00,00
		HEX	00,83,28,00,00
		HEX	05,87,24,00,00
		HEX	02,01,21,00,00
		HEX	00,00,00,00,00
;
		HEX	02,06,22,00,00		;[1C] つんのめり
		HEX	05,8A,23,00,00		;7
		HEX	00,14,22,00,00
		HEX	00,82,27,00,00
		HEX	05,84,20,00,00
		HEX	02,0F,1D,00,00
		HEX	00,00,00,00,00
;
		HEX	02,BD,1F,B9,04		;[1D] 小ダメージ１ー１
		HEX	05,64,1F,43,05		;8
		HEX	00,CE,20,B4,00
		HEX	00,53,28,2A,06
		HEX	05,5A,21,50,09
		HEX	01,9A,20,C6,03
		HEX	00,00,00,00,00
;
		HEX	02,BD,1F,A8,04		;[1E] 小ダメージ１ー２
		HEX	05,64,1F,9D,05		;9
		HEX	00,CE,20,01,04
		HEX	00,53,28,1A,08
		HEX	05,5A,21,BF,09
		HEX	01,9A,20,BF,06
		HEX	00,00,00,00,00
;
		HEX	02,AF,23,9A,04		;[1F] 小ダメージ２ー１
		HEX	05,54,20,37,05		;A
		HEX	00,C3,1D,D2,04
		HEX	00,40,28,3E,02
		HEX	05,4C,22,4E,07
		HEX	01,9B,23,64,07
		HEX	00,00,00,00,00
;
		HEX	02,AF,23,6B,03		;[20] 小ダメージ２ー２
		HEX	05,54,20,90,08		;B
		HEX	00,C3,1D,99,04
		HEX	00,40,28,F7,04
		HEX	05,4C,22,93,08
		HEX	01,9B,23,60,0A
		HEX	00,00,00,00,00
;
		HEX	02,75,23,4F,04		;[21] 大ダメージ（ひっくり返り＆じたばた）
		HEX	05,0D,1D,17,06		;C
		HEX	00,7B,22,98,04
		HEX	00,0A,22,07,03
		HEX	05,11,20,1B,08
		HEX	02,6B,1C,50,0B
		HEX	00,00,00,00,00
;
		HEX	02,75,23,A9,04		;[22] 大ダメージ（リバウンド＆じたばた）
		HEX	05,0D,1D,EC,0A		;D
		HEX	00,7B,22,C0,0A
		HEX	00,0A,22,EB,08
		HEX	05,11,20,F0,08
		HEX	02,6B,1C,AB,0A
		HEX	00,00,00,00,00
;
		HEX	02,5F,1B,29,08		;[23] 大ダメージ（つんのめり）
		HEX	05,F6,23,F7,04		;E
		HEX	00,65,1A,73,07
		HEX	00,EF,21,16,07
		HEX	05,F5,25,35,07
		HEX	02,4E,1A,3E,04
		HEX	00,00,00,00,00
;
		HEX	02,67,1D,3B,04		;[24] 大ダメージ（踏まれた）
		HEX	05,16,1D,3C,07		;F
		HEX	00,77,1D,5F,04
		HEX	00,16,25,5D,04
		HEX	05,12,1E,3C,07
		HEX	02,58,1D,74,04
		HEX	00,00,00,00,00
;
		HEX	02,00,00,00,00		;[25] スタートデモ（甲羅に引っ込む）
		HEX	05,00,00,00,00		;13,14
		HEX	00,00,00,00,00
		HEX	00,00,00,00,00
		HEX	05,00,00,00,00
		HEX	02,00,00,00,00
		HEX	00,00,00,00,00
;
		HEX	02,C0,0C,00,00		;[26] スタートデモ（甲羅に引っ込む）
		HEX	05,60,08,00,00		;12
		HEX	00,80,08,00,00
		HEX	00,00,00,00,00
		HEX	05,60,08,00,00
		HEX	02,C0,0C,00,00
		HEX	00,00,00,00,00
;
		HEX	02,80,08,00,00		;[27] エンドデモ（甲羅に引っ込む）
		HEX	05,80,08,00,00		;15
		HEX	00,00,00,00,00
		HEX	00,80,08,00,00
		HEX	05,80,08,00,00
		HEX	02,80,08,00,00
		HEX	00,00,00,00,00
;
		HEX	02,DF,14,B9,06		;[28] ４足歩行＜甲羅踏み＞（０）
		HEX	00,B4,0E,D8,09
		HEX	00,F2,20,DF,07
		HEX	00,A0,16,7A,0C
		HEX	01,9B,15,BC,07
		HEX	00,EA,1A,D3,08
		HEX	00,E0,08,00,00
;
		HEX	02,E5,17,B9,06		;[29] ４足歩行＜甲羅踏み＞（１）
		HEX	00,A4,0C,D9,08
		HEX	00,F0,1F,E2,07
		HEX	00,9A,15,79,0C
		HEX	01,A0,13,B9,07
		HEX	00,EC,14,D7,08
		HEX	00,EF,08,00,00
;
		HEX	02,E8,1A,BC,06		;[2A] ４足歩行＜甲羅踏み＞（２）
		HEX	01,A2,0C,B0,08
		HEX	00,EF,1E,E1,07
		HEX	00,95,14,7B,0D
		HEX	01,A6,10,BD,07
		HEX	02,F0,14,B6,06
		HEX	00,F9,08,00,00
;
		HEX	02,EC,1D,BA,06		;[2B] ４足歩行＜甲羅踏み＞（３）
		HEX	02,A4,0C,AD,06
		HEX	00,EF,1D,DD,07
		HEX	00,99,17,7A,0C
		HEX	01,B0,0E,B9,07
		HEX	01,EF,14,AF,09
		HEX	00,EF,08,00,00
;
		HEX	00,EC,1D,D5,07		;[2C] ４足歩行＜甲羅踏み＞（４）
		HEX	01,9f,13,B8,07
		HEX	00,EE,1C,E1,07
		HEX	00,9E,17,7A,0C
		HEX	00,AE,0E,D4,08
		HEX	02,DE,12,BB,06
		HEX	00,E0,08,00,00
;
		HEX	00,EF,18,D0,07		;[2D] ４足歩行＜甲羅踏み＞（５）
		HEX	01,A5,11,BC,07
		HEX	00,EF,1D,E3,07
		HEX	00,99,17,79,0C
		HEX	01,9E,0E,CC,07
		HEX	02,E1,15,B4,05
		HEX	00,EF,08,00,00
;
		HEX	02,F2,17,BA,06		;[2E] ４足歩行＜甲羅踏み＞（６）
		HEX	01,AF,0E,B9,07
		HEX	00,EF,1E,DE,07
		HEX	00,94,15,79,0C
		HEX	01,9C,0B,BC,07
		HEX	02,E6,18,BA,06
		HEX	00,F9,08,00,00
;
		HEX	01,F0,18,A8,08		;[2F] ４足歩行＜甲羅踏み＞（７）
		HEX	01,B9,0D,BC,07
		HEX	00,F0,1F,DF,07
		HEX	00,9A,15,79,0C
		HEX	02,9D,0E,AF,08
		HEX	02,EA,1B,B7,06
		HEX	00,EF,08,00,00
;
;		各部位の絵の回転角データ
;
KAMESAN_ADT	EQU	$
;FOOT HAND TAIL HEAD BODY
		HEX	00,00,00,00,F6		;[0]  ４足歩行
		HEX	00,00,00,00,D5		;[1]  ２足歩行
		HEX	00,00,00,00,EC		;[2]  ダッシュ
		HEX	C0,40,C0,20,00		;[3]  甲羅に引っ込む（４足歩行）
		HEX	95,15,95,20,D5		;[4]  甲羅に引っ込む（２足歩行）
		HEX	60,F0,40,E0,00		;[5]  ジャンプ
		HEX	70,E0,00,10,00		;[6]  リバウンド
		HEX	60,D0,40,E8,0C		;[7]  つんのめり
		HEX	00,A0,00,C0,C8		;[8]  小ダメージ１ー１
		HEX	FC,E0,10,C0,C4		;[9]  小ダメージ１ー２
		HEX	00,A0,00,B0,B0		;[A]  小ダメージ２ー１
		HEX	F0,C0,10,B0,A8		;[B]  小ダメージ２ー２
		HEX	AC,5C,AC,7C,7C		;[C]  大ダメージ（ひっくり返り＆じたばた）
		HEX	E4,54,C4,64,84		;[D]  大ダメージ（リバウンド＆じたばた）
		HEX	78,50,70,88,70		;[E]  大ダメージ（つんのめり）
		HEX	88,80,80,98,80		;[F]  大ダメージ（踏まれた）
		HEX	40,C0,40,A0,80		;[10] 大ダメージ（手足引っ込め）
		HEX	30,B0,30,90,70		;[11] 大ダメージ（手足引っ込めて傾く）
		HEX	C0,40,A0,60,00		;[12] スタートデモ（手足引っ込め）
		HEX	00,00,00,00,E0		;[13] スタートデモ（手足引っ込めて傾く）
		HEX	00,00,00,00,20		;[14] スタートデモ（手足引っ込めて傾く）
		HEX	40,C0,40,D0,80		;[15] エンドデモ（手足引っ込め）
		HEX	00,00,00,00,80		;[16] エンドデモ（手足引っ込め）
		HEX	00,00,00,10,F6		;[17] ４足歩行（頭踏みダメージ）
		HEX	00,00,04,10,F6		;[18] ４足歩行（甲羅踏みダメージ）
;
;************************************************************************
;*		move	( モード７カメボス )				*
;************************************************************************
;		ENWRK0	モーフィング率加算値
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4	ＴＯ　ＥＮＣＨＰＴ
;B		ENWRK6	モーフィング率　　（１００Ｈ＝１００％）
;B		ENWRK7
;		ENWRK8	モーフィング方向フラグ
;		ENWRKA	モーフィングフラグ
;		ENWRKC	絵の回転角データモーフィング方向フラグ
;
;		モーフィング方向フラグ 前足、前手、尾、頭、後手、後足
;
;		ENCHPT	ＦＲＯＭ　ＥＮＣＨＰＴ
;
;		EWORKA	甲羅セット中心Ｘ　ＰＯＳ．
;		EWORKC	甲羅セット中心Ｙ　ＰＯＳ．
;
;		ENTIM0	ストップタイマー
;		ENTIM1	行動タイマー
;		ENTIM2	ダメージタイマー
;
;		BOSS0AID	絵の回転角ＦＲＯＭデータのインデックス
;		BOSS0AI2	絵の回転角ＴＯデータのインデックス
;		BBODYANG	甲羅の回転角
;		BHANDANG	手の	"
;		BFOOTANG	足の	"
;		BHEADANG	尾の	"
;		BTAILANG	頭の	"
;		BOSS0FFT	前足のオフセットＸ　ＰＯＳ．
;		BOSS0RFT	後足のオフセットＸ　ＰＯＳ．
;		BOSS0MVF	移動ロックフラグ
;		BOSS0ART	回転オブジェ使用フラグ
;		BOSS0BLK	ＢＧチェックポジションロックフラグ
;		BHEADPAT	頭のキャラパターンＮＯ．
;		BDMGCNT0	小ダメージカウンター
;		BDMGCNT1	大ダメージカウンター
;		BOSS0_BG3USE	ＢＧ３使用フラグ
;		BOSS0_CENTX	行動半径の中心Ｘ　ＰＯＳ．
;		BOSS0LXP	最後のダメージを受けた場所のＸ　ＰＯＳ．
;		BOSS0LYP	最後のダメージを受けた場所のＹ　ＰＯＳ．
;		BOSS0ACP	甲羅の回転角ＣＭＰデータ
;
BOSS0_SUB	EQU	$
BOSS0_00	EQU	$
		WORD	BOSS0_SUB00		;考える
BOSS0_10	EQU	$
		WORD	BOSS0_SUB10		;４足歩行
BOSS0_11	EQU	$
		WORD	BOSS0_SUB11		;４足歩行（頭踏みダメージ、タマゴ出し）
BOSS0_12	EQU	$
		WORD	BOSS0_SUB12		;４足歩行（頭踏みダメージ、タマゴ出し）
BOSS0_13	EQU	$
		WORD	BOSS0_SUB13		;４足歩行（頭踏みダメージ、タマゴ出し）
BOSS0_14	EQU	$
		WORD	BOSS0_SUB14		;４足歩行（甲羅踏みダメージ、タマゴ出し）
BOSS0_15	EQU	$
		WORD	BOSS0_SUB15		;４足歩行（甲羅踏みダメージ、タマゴ出し）
BOSS0_16	EQU	$
		WORD	BOSS0_SUB16		;４足歩行（甲羅踏みダメージ、タマゴ出し）
BOSS0_20	EQU	$
		WORD	BOSS0_SUB20		;ため
BOSS0_21	EQU	$
		WORD	BOSS0_SUB21		;待ち
BOSS0_22	EQU	$
		WORD	BOSS0_SUB22		;４足歩行ー＞２足歩行
BOSS0_23	EQU	$
		WORD	BOSS0_SUB23		;２足歩行
BOSS0_24	EQU	$
		WORD	BOSS0_SUB24		;２足歩行ー＞ダッシュ
BOSS0_30	EQU	$
		WORD	BOSS0_SUB30		;４足歩行（ダメージ＆立ち上がり）
BOSS0_40	EQU	$
		WORD	BOSS0_SUB40		;ダッシュ
BOSS0_41	EQU	$
		WORD	BOSS0_SUB41		;ジャンプ
BOSS0_42	EQU	$
		WORD	BOSS0_SUB42		;リバウンドモーフィング
BOSS0_43	EQU	$
		WORD	BOSS0_SUB43		;リバウンドジャンプ
BOSS0_44	EQU	$
		WORD	BOSS0_SUB44		;着地モーフィングその１
BOSS0_45	EQU	$
		WORD	BOSS0_SUB45		;着地モーフィングその２
BOSS0_46	EQU	$
		WORD	BOSS0_SUB46		;ぱちくり
BOSS0_47	EQU	$
		WORD	BOSS0_SUB47		;４足歩行に戻る
BOSS0_50	EQU	$
		WORD	BOSS0_SUB50		;反転（４足歩行から：甲羅に引っ込む）
BOSS0_51	EQU	$
		WORD	BOSS0_SUB51		;反転（４足歩行から：甲羅から出る）
BOSS0_60	EQU	$
		WORD	BOSS0_SUB60		;反転（２足歩行から：甲羅に引っ込む）
BOSS0_61	EQU	$
		WORD	BOSS0_SUB61		;反転（２足歩行から：甲羅回転）
BOSS0_62	EQU	$
		WORD	BOSS0_SUB62		;反転（２足歩行から：甲羅回転）
BOSS0_63	EQU	$
		WORD	BOSS0_SUB63		;反転（２足歩行から：甲羅から出る）
BOSS0_70	EQU	$
		WORD	BOSS0_SUB70		;小ダメージ（倒れるモーフィング）
BOSS0_71	EQU	$
		WORD	BOSS0_SUB71		;小ダメージ（ばたばたモーフィング）
BOSS0_72	EQU	$
		WORD	BOSS0_SUB72		;小ダメージ（元通りモーフィング）
BOSS0_80	EQU	$
		WORD	BOSS0_SUB80		;大ダメージ（倒れるモーフィング）
BOSS0_81	EQU	$
		WORD	BOSS0_SUB81		;大ダメージ（リバウンドモーフィング）
BOSS0_82	EQU	$
		WORD	BOSS0_SUB82		;大ダメージ（つんのめる＆停止モーフィング）
BOSS0_83	EQU	$
		WORD	BOSS0_SUB83		;大ダメージ（ぐったりモーフィング）
BOSS0_84	EQU	$
		WORD	BOSS0_SUB84		;大ダメージ（じたばたモーフィング）
BOSS0_85	EQU	$
		WORD	BOSS0_SUB85		;大ダメージ（ひっこみモーフィング）
BOSS0_86	EQU	$
		WORD	BOSS0_SUB86		;大ダメージ（ぐりぐりモーフィング）
BOSS0_87	EQU	$
		WORD	BOSS0_SUB87		;大ダメージ（ジャンプ＆モーフィング）
BOSS0_88	EQU	$
		WORD	BOSS0_SUB88		;大ダメージ（ジャンプ攻撃）
BOSS0_89	EQU	$
		WORD	BOSS0_SUB89		;大ダメージ（４足歩行に戻る）
BOSS0_8A	EQU	$
		WORD	BOSS0_SUB8A		;大ダメージ（踏まれた）
BOSS0_8B	EQU	$
		WORD	BOSS0_SUB8B		;大ダメージ（甲羅元通りモーフィング）
BOSS0_90	EQU	$
		WORD	BOSS0_SUB90		;スタートデモ（のこのこ登場）
BOSS0_91	EQU	$
		WORD	BOSS0_SUB91		;スタートデモ（カメック退場待ち）
BOSS0_92	EQU	$
		WORD	BOSS0_SUB92		;スタートデモ（キャラクタデータセット）
BOSS0_93	EQU	$
		WORD	BOSS0_SUB93		;スタートデモ（スクリーンデータセット）
BOSS0_94	EQU	$
		WORD	BOSS0_SUB94		;スタートデモ（小ジャンプ）
BOSS0_95	EQU	$
		WORD	BOSS0_SUB95		;スタートデモ（着地チェック）
BOSS0_96	EQU	$
		WORD	BOSS0_SUB96		;スタートデモ（ぐりぐりモーフィング）
BOSS0_97	EQU	$
		WORD	BOSS0_SUB97		;スタートデモ（４足歩行に戻る）
BOSS0_A0	EQU	$
		WORD	BOSS0_SUBA0		;エンドデモ（踏まれたモーフィング）
BOSS0_A1	EQU	$
		WORD	BOSS0_SUBA1		;エンドデモ（ひっこみモーフィング）
BOSS0_A2	EQU	$
		WORD	BOSS0_SUBA2		;エンドデモ（縦縮み）
BOSS0_A3	EQU	$
		WORD	BOSS0_SUBA3		;エンドデモ（はだかのこのこ）
BOSS0_A4	EQU	$
		WORD	BOSS0_SUBA4		;エンドデモ（ストップ）
;
BOSS0_RMODE00	EQU	(BOSS0_00-BOSS0_SUB)/2
BOSS0_RMODE10	EQU	(BOSS0_10-BOSS0_SUB)/2
BOSS0_RMODE11	EQU	(BOSS0_11-BOSS0_SUB)/2
BOSS0_RMODE12	EQU	(BOSS0_12-BOSS0_SUB)/2
BOSS0_RMODE13	EQU	(BOSS0_13-BOSS0_SUB)/2
BOSS0_RMODE14	EQU	(BOSS0_14-BOSS0_SUB)/2
BOSS0_RMODE15	EQU	(BOSS0_15-BOSS0_SUB)/2
BOSS0_RMODE16	EQU	(BOSS0_16-BOSS0_SUB)/2
BOSS0_RMODE20	EQU	(BOSS0_20-BOSS0_SUB)/2
BOSS0_RMODE21	EQU	(BOSS0_21-BOSS0_SUB)/2
BOSS0_RMODE22	EQU	(BOSS0_22-BOSS0_SUB)/2
BOSS0_RMODE23	EQU	(BOSS0_23-BOSS0_SUB)/2
BOSS0_RMODE24	EQU	(BOSS0_24-BOSS0_SUB)/2
BOSS0_RMODE30	EQU	(BOSS0_30-BOSS0_SUB)/2
BOSS0_RMODE40	EQU	(BOSS0_40-BOSS0_SUB)/2
BOSS0_RMODE41	EQU	(BOSS0_41-BOSS0_SUB)/2
BOSS0_RMODE42	EQU	(BOSS0_42-BOSS0_SUB)/2
BOSS0_RMODE43	EQU	(BOSS0_43-BOSS0_SUB)/2
BOSS0_RMODE44	EQU	(BOSS0_44-BOSS0_SUB)/2
BOSS0_RMODE45	EQU	(BOSS0_45-BOSS0_SUB)/2
BOSS0_RMODE46	EQU	(BOSS0_46-BOSS0_SUB)/2
BOSS0_RMODE47	EQU	(BOSS0_47-BOSS0_SUB)/2
BOSS0_RMODE50	EQU	(BOSS0_50-BOSS0_SUB)/2
BOSS0_RMODE51	EQU	(BOSS0_51-BOSS0_SUB)/2
BOSS0_RMODE60	EQU	(BOSS0_60-BOSS0_SUB)/2
BOSS0_RMODE61	EQU	(BOSS0_61-BOSS0_SUB)/2
BOSS0_RMODE62	EQU	(BOSS0_62-BOSS0_SUB)/2
BOSS0_RMODE63	EQU	(BOSS0_63-BOSS0_SUB)/2
BOSS0_RMODE70	EQU	(BOSS0_70-BOSS0_SUB)/2
BOSS0_RMODE71	EQU	(BOSS0_71-BOSS0_SUB)/2
BOSS0_RMODE72	EQU	(BOSS0_72-BOSS0_SUB)/2
BOSS0_RMODE80	EQU	(BOSS0_80-BOSS0_SUB)/2
BOSS0_RMODE81	EQU	(BOSS0_81-BOSS0_SUB)/2
BOSS0_RMODE82	EQU	(BOSS0_82-BOSS0_SUB)/2
BOSS0_RMODE83	EQU	(BOSS0_83-BOSS0_SUB)/2
BOSS0_RMODE84	EQU	(BOSS0_84-BOSS0_SUB)/2
BOSS0_RMODE85	EQU	(BOSS0_85-BOSS0_SUB)/2
BOSS0_RMODE86	EQU	(BOSS0_86-BOSS0_SUB)/2
BOSS0_RMODE87	EQU	(BOSS0_87-BOSS0_SUB)/2
BOSS0_RMODE88	EQU	(BOSS0_88-BOSS0_SUB)/2
BOSS0_RMODE89	EQU	(BOSS0_89-BOSS0_SUB)/2
BOSS0_RMODE8A	EQU	(BOSS0_8A-BOSS0_SUB)/2
BOSS0_RMODE8B	EQU	(BOSS0_8B-BOSS0_SUB)/2
BOSS0_RMODE90	EQU	(BOSS0_90-BOSS0_SUB)/2
BOSS0_RMODE91	EQU	(BOSS0_91-BOSS0_SUB)/2
BOSS0_RMODE92	EQU	(BOSS0_92-BOSS0_SUB)/2
BOSS0_RMODE93	EQU	(BOSS0_93-BOSS0_SUB)/2
BOSS0_RMODE94	EQU	(BOSS0_94-BOSS0_SUB)/2
BOSS0_RMODE95	EQU	(BOSS0_95-BOSS0_SUB)/2
BOSS0_RMODE96	EQU	(BOSS0_96-BOSS0_SUB)/2
BOSS0_RMODE97	EQU	(BOSS0_97-BOSS0_SUB)/2
BOSS0_RMODEA0	EQU	(BOSS0_A0-BOSS0_SUB)/2
BOSS0_RMODEA1	EQU	(BOSS0_A1-BOSS0_SUB)/2
BOSS0_RMODEA2	EQU	(BOSS0_A2-BOSS0_SUB)/2
BOSS0_RMODEA3	EQU	(BOSS0_A3-BOSS0_SUB)/2
BOSS0_RMODEA4	EQU	(BOSS0_A4-BOSS0_SUB)/2
;
;
BOSS0MV		EQU	$			;-- boss0mv --
;		BRA	BOSS0MV0100
;
;		JSR	KAMESAN_CHAR
;
;		RTL
;
;BOSS0MV0100	EQU	$
		LDY	BOSS0_BG3USE		;ＢＧ３を使ってる ?
		BEQ	BOSS0MV0200		;  no: BOSS0MV0200
		DEY
		BNE	BOSS0MV0300

		JSR	BOSS0_OAM_SET

		JSR	BOSS0_BODY_SET
		BRA	BOSS0MV0400

BOSS0MV0200	EQU	$
		JSR	BOSS0_OAM_SET2
		BRA	BOSS0MV0400

BOSS0MV0300	EQU	$
		JSR	BOSS0_OAM_SET3

BOSS0MV0400	EQU	$
		JSL	>ENMDCK

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

		LDY	BOSS0_BG3USE		;ＢＧ３を使ってる ?
		BEQ	BOSS0MV0800		;  no: BOSS0MV0800
		DEY
		BNE	BOSS0MV0800

		JSR	BOSS0_ENCHK

		JSR	BOSS0_MORPH_CAL

		JSR	BOSS0_ROT_SET

		JSR	BOSS0_FLASH

		JSR	BOSS0_MOV_LIM

BOSS0MV0800	EQU	$

		RTL
;
;B		ENWRK0	データインデックスＮＯ．
;B		ENWRK1	部位インデックスＮＯ．
;		ENWRK2
;		ENWRK4
;		ENWRK6
;B		ENWRK8	作業数値インデックス 0...Ａ１＆Ｒ１ 2...Ａ２＆Ｒ２ 3...Ｒ３
;B		ENWRK9	セットＮＯ．
;B		ENWRKA	接続点角度　Ａ１
;B		ENWRKB	接続点半径　Ｒ１
;B		ENWRKC	接続点−部位中心角度　Ａ２
;B		ENWRKD	接続点−部位中心半径　Ｒ２
;
;		EWORKC	データバッファのブロック先頭インデックス
;		EWORKE	データバッファインデックス
;
;KAMESAN_CHAR	EQU	$
;		LDY	#01CH
;
;KAMESAN_CHAR010 EQU	$
;		LDA	!KAMESAN_PDT,Y
;		STA	KAMESAN_DT,Y
;		DEY
;		DEY
;		BPL	KAMESAN_CHAR010
;
;		LDA	#000ECH
;		STA	BBODYANG
;
;		LDY	<ENWRK0,X
;		TYA
;		STA	R0
;		LDA	#5*7*100H
;		STA	R6
;		M_CHIP	MULTIPLY
;		LDX	<ENINDX
;		LDA	R0
;		STA	<EWORKC
;		LDY	<ENWRK1,X
;		TYA
;		STA	R0
;		LDA	#5*100H
;		STA	R6
;		M_CHIP	MULTIPLY
;		LDX	<ENINDX
;		LDA	R0
;		CLC
;		ADC	<EWORKC
;		STA	<EWORKE
;;
;		JSR	KAMESAN_OAM
;
;		JSR	KAMESAN_BLINK
;
;		JSR	KAMESAN_KEY
;
;		JSR	BOSS0_BODY_SET2
;
;		JSR	KAMESAN_BGCHK
;
;		JSR	BOSS0_FOOT_SET
;		JSR	BOSS0_HAND_SET
;		JSR	BOSS0_HEAD_SET
;		JSR	BOSS0_TAIL_SET
;		INC	OBM7WF
;		LDX	<ENINDX
;
;		RTS
;;
;KAMESAN_OAM	EQU	$
;		LDA	ENXPSL,X
;		SEC
;		SBC	ESCCH1
;		STA	<EWORK0
;		LDA	ENYPSL,X
;		SEC
;		SBC	ESCCV1
;		STA	<EWORK2
;		LDA	<EWORKC
;		STA	<EWORKA
;		LDA	ENMUKI,X
;		STA	CCWORK1F
;
;		I16
;		LDA	ENOAML,X
;		STA	CREG4
;;前足
;		JSR	BASE_P_CALC
;		LDA	#00004			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_FFOOT_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_FFOOT_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+0
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+2
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		I16
;;前手
;		JSR	BASE_P_CALC
;		LDA	#00004			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_FHAND_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_FHAND_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+4
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+6
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		I16
;;尾
;		JSR	BASE_P_CALC
;		LDA	#00001			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_TAIL_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_TAIL_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+8
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+0AH
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		I16
;;頭
;		JSR	BASE_P_CALC
;		LDA	#00004			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_HEAD_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_HEAD_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+0CH
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+0EH
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		I16
;;後手
;		JSR	BASE_P_CALC
;		LDA	#00004			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_BHAND_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_BHAND_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+10H
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+12H
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		I16
;;後足
;		JSR	BASE_P_CALC
;		LDA	#00004			;R12 <- ＯＡＭセット数
;		STA	R12			;
;		LDA	<ENINDX
;		STA	R10
;		LDA	#BANK KAME_BFOOT_CHR
;		STA	CCWORK0
;		LDA	<EWORK4
;		STA	CCWORK10
;		LDA	#KAME_BFOOT_CHR
;		STA	CCWORK9
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+14H
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+16H
;		I8
;		M_CHIP	M_BOSS0_OAMSET2
;		LDX	<ENINDX
;
;		LDA	<ENWRK1,X
;		AND	#000FFH
;		ASL	A
;		ASL	A
;		TAY
;		LDA	BPS0,Y
;		STA	BPS0+1CH
;		LDA	BPS0+2,Y
;		STA	BPS0+1EH
;
;		RTS
;;
;		IDX16
;;
;BASE_P_CALC	EQU	$
;		LDX	<EWORKA
;		LDA	KAMESAN_DT,X
;		AND	#000FFH
;		STA	<EWORK4
;		LDA	KAMESAN_DT+1,X
;		AND	#000FFH
;		LDY	CCWORK1F
;		BEQ	BASE_P_C0100
;
;		SEC
;		SBC	#00080H
;		EOR	#0FFFFH
;		INC	A
;		AND	#000FFH
;
;BASE_P_C0100	EQU	$
;		ASL	A
;		STA	R1
;		LDA	KAMESAN_DT+2,X
;		AND	#000FFH
;		STA	R6
;		PHX
;		I8
;		M_CHIP	M_ENMY_1P_ROT
;		I16
;		PLX
;		LDA	R0
;		STA	<EWORK6
;		LDA	R1
;		STA	<EWORK8
;
;		LDA	KAMESAN_DT+3,X
;		AND	#000FFH
;		LDY	CCWORK1F
;		BEQ	BASE_P_C0300
;
;		SEC
;		SBC	#00080H
;		EOR	#0FFFFH
;		INC	A
;		AND	#000FFH
;
;BASE_P_C0300	EQU	$
;		ASL	A
;		STA	R1
;		LDA	KAMESAN_DT+4,X
;		AND	#000FFH
;		STA	R6
;		I8
;		M_CHIP	M_ENMY_1P_ROT
;		I16
;		LDA	R0
;		CLC
;		ADC	<EWORK6
;		CLC
;		ADC	<EWORK0
;		STA	CCWORK11
;		LDA	R1
;		CLC
;		ADC	<EWORK8
;		CLC
;		ADC	<EWORK2
;		STA	CCWORK12
;		LDA	<EWORKA
;		CLC
;		ADC	#00005
;		STA	<EWORKA
;
;		RTS
;;
;		IDX8
;;
;KAMESAN_OPOS	EQU	$
;;			FFT FHD TL  HD	BHD BFT
;		HEX	000,004,008,009,00D,011
;KAMESAN_BCOL	EQU	$
;		WORD	02*200H,03*200H
;;
;KAMESAN_BLINK	EQU	$
;		LDY	ENWRK8,X
;		LDA	!KAMESAN_BCOL,Y
;		STA	<EWORK2
;
;		LDA	#00001
;		LDY	<ENWRK1,X
;		CPY	#002			;尾 ?
;		BEQ	KAMESAN_B0080		; yes: KAMESAN_B0080
;
;		LDA	#00004
;
;KAMESAN_B0080	EQU	$
;		STA	<EWORK0
;		LDA	!KAMESAN_OPOS,Y
;		AND	#000FFH
;		ASL	A
;		ASL	A
;		ASL	A
;		CLC
;		ADC	ENOAML,X
;		I16
;		TAY
;
;KAMESAN_B0100	EQU	$
;		LDA	SOAM_DX+04,Y
;		AND	#0F1FFH
;		ORA	<EWORK2
;		STA	SOAM_DX+04,Y
;
;		TYA
;		CLC
;		ADC	#00008
;		TAY
;
;		DEC	<EWORK0
;		BNE	KAMESAN_B0100
;
;		I8
;
;		RTS
;;
;KAMESAN_KEY	EQU	$
;		M8
;		LDA	KEYB2L			;CHPT変更（Ｌ−Ｒ） ?
;		AND	#030H			;
;		BEQ	K_KEY1000		;  no: K_KEY1000
;
;		AND	#010H
;		LSR	A
;		LSR	A
;		LSR	A
;		DEC	A
;		CLC
;		ADC	<ENWRK0,X
;		BPL	K_KEY0100
;
;		LDA	#007H
;
;K_KEY0100	EQU	$
;		CMP	#007H+1
;		BMI	K_KEY0200
;
;		LDA	#000
;
;K_KEY0200	EQU	$
;		STA	<ENWRK0,X
;		LDA	ESCCV1
;		STA	ENYPSL,X
;		STZ	ENWRK8,X		;作業数値フラグ初期化
;		BRA	K_KEY8800
;
;K_KEY1000	EQU	$
;		LDA	KEYB2L			;作業部位変更（Ａ） ?
;		BPL	K_KEY2000		;  no: K_KEY2000
;
;		LDA	<ENWRK1,X
;		INC	A
;		CMP	#007
;		BMI	K_KEY1100
;
;		LDA	#000
;
;K_KEY1100	EQU	$
;		STA	<ENWRK1,X
;		BRA	K_KEY8800
;
;K_PAT_LIM	EQU	$
;;			[前足]	[前手]	[尾]   [頭]  [後手] [後足] [甲羅]
;		HEX	 003,	 006,	001,   001,   006,   003,   001
;
;K_KEY2000	EQU	$
;		LDY	KEYB2L+1		;セットＮＯ．変更（Ｂ） ?
;		BPL	K_KEY3000		;  no: K_KEY3000
;
;		LDY	<ENWRK1,X
;		LDA	ENWRK9,X
;		INC	A
;		CMP	!K_PAT_LIM,Y
;		BMI	K_KEY2100
;
;		LDA	#00000
;
;K_KEY2100	EQU	$
;		STA	ENWRK9,X
;
;K_KEY3000	EQU	$
;		LDA	KEYB2L+1		;作業数値変更（Ｙ） ?
;		ASL	A			;
;		BPL	K_KEY4000		;  no: K_KEY4000
;
;		LDA	ENWRK8,X
;		EOR	#002
;		STA	ENWRK8,X
;
;K_KEY4000	EQU	$
;		PHX
;		TXA
;		CLC
;		ADC	ENWRK8,X
;		TAX
;
;		LDA	KEYB1L+1		;半径変更（左−右） ?
;		AND	#003H			;
;		BEQ	K_KEY5000		;  no: K_KEY5000
;
;		AND	#001H
;		ASL	A
;		DEC	A
;		CLC
;		ADC	ENWRKB,X
;		BMI	K_KEY5000
;
;		STA	ENWRKB,X
;
;K_KEY5000	EQU	$
;		LDA	KEYB1L+1		;角度変更（上ー下） ?
;		AND	#00CH			;
;		BEQ	K_KEY6000		;  no: K_KEY6000
;
;		AND	#004H
;		LSR	A
;		DEC	A
;		CLC
;		ADC	ENWRKA,X
;		STA	ENWRKA,X
;
;K_KEY6000	EQU	$
;		PLX
;
;K_KEY8000	EQU	$
;		M16
;
;K_KEY8800	EQU	$
;		JSR	KAMESAN_DTTR
;
;		RTS
;;
;;B		ENWRK9	セットＮＯ．
;;B		ENWRKA	接続点角度　Ａ１
;;B		ENWRKB	接続点半径　Ｒ１
;;B		ENWRKC	接続点−部位中心角度　Ａ２
;;B		ENWRKD	接続点−部位中心半径　Ｒ２
;;
;KAMESAN_DTTR	EQU	$
;		M8
;		I16
;		LDY	<EWORKE
;		LDA	ENWRK9,X		;セットＮＯ．セーブ
;		STA	KAMESAN_DT,Y		;
;		LDA	ENWRKA,X		;接続点角度　Ａ１セーブ
;		STA	KAMESAN_DT+1,Y		;
;		LDA	ENWRKB,X		;接続点半径　Ｒ１セーブ
;		STA	KAMESAN_DT+2,Y		;
;		LDA	ENWRKC,X		;接続点−部位中心角度　Ａ２セーブ
;		STA	KAMESAN_DT+3,Y		;
;		LDA	ENWRKD,X		;接続点−部位中心半径　Ｒ２セーブ
;		STA	KAMESAN_DT+4,Y		;
;		I8
;		M16
;
;		LDY	<ENWRK0,X
;		TYA
;		STA	R0
;		LDA	#5*7*100H
;		STA	R6
;		M_CHIP	MULTIPLY
;		LDX	<ENINDX
;		LDA	R0
;		STA	<EWORKC
;		LDY	<ENWRK1,X
;		TYA
;		STA	R0
;		LDA	#5*100H
;		STA	R6
;		M_CHIP	MULTIPLY
;		LDX	<ENINDX
;		LDA	R0
;		CLC
;		ADC	<EWORKC
;		STA	<EWORKE
;
;		M8
;		I16
;		LDY	<EWORKE
;		LDA	KAMESAN_DT,Y		;セットＮＯ．ロード
;		STA	ENWRK9,X		;
;		LDA	KAMESAN_DT+1,Y		;接続点角度　Ａ１ロード
;		STA	ENWRKA,X		;
;		LDA	KAMESAN_DT+2,Y		;接続点半径　Ｒ１ロード
;		STA	ENWRKB,X		;
;		LDA	KAMESAN_DT+3,Y		;接続点−部位中心角度　Ａ２ロード
;		STA	ENWRKC,X		;
;		LDA	KAMESAN_DT+4,Y		;接続点−部位中心半径　Ｒ２ロード
;		STA	ENWRKD,X		;
;		I8
;		M16
;
;K_DTTR0800	EQU	$
;
;		RTS
;;
;KAMESAN_BGCHK	EQU	$
;		I16
;		STZ	<EWORK2
;		LDA	<EWORKC
;		STA	<EWORKA
;		JSR	BASE_P_CALC
;		I8
;		LDX	<ENINDX
;		LDA	CCWORK12
;		CLC
;		ADC	#0004-1-8
;		STA	ENBGYP,X
;		LDY	BOSS0BLK
;		BEQ	K_BGCHK0100
;
;		LDA	#0000AH
;		STA	ENBGYP,X
;
;K_BGCHK0100	EQU	$
;
;		RTS
;
;BOSS0_BODY_SET2 EQU	$
;		LDA	BBODYANG		;角度
;		ASL	A
;		LDY	ENMUKI,X
;		BEQ	B_BODY_S2100
;
;		EOR	#0FFFFH
;		INC	A
;		AND	#001FEH
;
;B_BODY_S2100	EQU	$
;		STA	R1
;
;		LDA	#00100H
;		ASL	A
;		STA	R6			;
;		STA	R2			;
;
;		M_CHIP	M_BOSS0_MODE7
;
;		LDA	R3
;		STA	M7B
;		LDA	R5
;		STA	M7A
;		LDA	R7
;		STA	M7C
;		LDA	R8
;		STA	M7D
;;
;		LDX	<ENINDX
;		LDA	<EWORKC
;		CLC
;		ADC	#00005*6
;		STA	<EWORKA
;		LDA	ENXPSL,X
;		SEC
;		SBC	ESCCH1
;		STA	<EWORK0
;		LDA	ENYPSL,X
;		SEC
;		SBC	ESCCV1
;		STA	<EWORK2
;		I16
;
;		JSR	BASE_P_CALC
;
;		I8
;		LDX	<ENINDX
;		LDA	#00020H
;		SEC
;		SBC	CCWORK11
;		STA	SCCH3
;
;		LDA	#0001CH
;		SEC
;		SBC	CCWORK12
;		STA	SCCV3
;
;		LDA	CCWORK11
;		SEC
;		SBC	<EWORK0
;		STA	BPS0+18H
;		LDA	CCWORK12
;		SEC
;		SBC	<EWORK2
;		STA	BPS0+1AH
;
;		LDY	#00000001B		;
;		STY	OBJ_BG_FG
;
;		RTS
;
BOSS0_BODY_SET	EQU	$
		LDA	BBODYANG		;角度
		ASL	A
		LDY	ENMUKI,X
		BEQ	B_BODY_S0100

		EOR	#0FFFFH
		INC	A
		AND	#001FEH

B_BODY_S0100	EQU	$
		STA	R1

		LDA	BBODYXZM
		ASL	A
		STA	R6			;
		LDA	BBODYYZM
		ASL	A
		STA	R2			;

		M_CHIP	M_BOSS0_MODE7

		LDA	R3
		STA	M7B
		LDA	R5
		STA	M7A
		LDA	R7
		STA	M7C
		LDA	R8
		STA	M7D
;
		LDX	<ENINDX

		RTS
;
BOSS0_ROT_SET	EQU	$
		LDY	BOSS0ART		;回転オブジェ使用 ?
		BEQ	BOSS0_R_SET0800		;  no: BOSS0_R_SET0800

		LDA	FRCNT2
		AND	#00001
		BEQ	BOSS0_R_SET0100

		JSR	BOSS0_FOOT_SET
		JSR	BOSS0_HEAD_SET
		BRA	BOSS0_R_SET0300

BOSS0_R_SET0100 EQU	$
		JSR	BOSS0_HAND_SET
		JSR	BOSS0_TAIL_SET

BOSS0_R_SET0300 EQU	$
		INC	OBM7WF
		LDX	<ENINDX

BOSS0_R_SET0800 EQU	$

		RTS
;
BOSS0_HAND_SET	EQU	$
		LDA	#CIPCHD2+60E0H+001	;(R12) <-- 転送元アドレスセット
		STA	R12			;
		LDY	#BANK CIPCHD2+60E0H+001 ;(R13) <-- 転送元バンクセット

		LDA	#00060H			;(R3) <- ビットマップ座標＿Ｘセット
		STA	R3			;
		LDA	BHANDANG
		BRA	BOSS0_R_SET_SB
;
BOSS0_FOOT_SET	EQU	$
		LDA	#CIPCHD2+6080H+001	;(R12) <-- 転送元アドレスセット
		STA	R12			;
		LDY	#BANK CIPCHD2+6080H+001 ;(R13) <-- 転送元バンクセット

;;;;;;;;		LDA	#00000H			;(R3) <- ビットマップ座標＿Ｘセット
		STZ	R3			;
		LDA	BFOOTANG
		BRA	BOSS0_R_SET_SB
;
BOSS0_HEAD_CHAR EQU	$
		WORD	CIPCHD2+60C0H+001	;ふつう
		WORD	CIPCHD2+40C0H+001	;はぉぁ
		WORD	CIPCHD2+4080H+001	;なく
		WORD	CIPCHD2+40A0H+001	;目をつぶる
;
BOSS0_HEAD_SET	EQU	$
		LDY	BHEADPAT
		LDA	!BOSS0_HEAD_CHAR,Y	;(R12) <-- 転送元アドレスセット
		STA	R12			;
		LDY	#BANK CIPCHD2+60C0H+001 ;(R13) <-- 転送元バンクセット

		LDA	#00040H			;(R3) <- ビットマップ座標＿Ｘセット
		STA	R3			;
		LDA	BHEADANG

BOSS0_R_SET_SB	EQU	$
		STA	R5			;(R5) <- 回転角セット
		TYA				;(R13) <-- 転送元バンクセット
		STA	R13			;
		LDA	BBODYXZM		;(R6) <- Ｘ倍率セット
		STA	R6			;
		LDA	BBODYYZM		;(R11) <- Ｙ倍率セット
		STA	R11			;

		STZ	R2			;(R2) <- ビットマップ座標＿Ｙセット
;
;-------------- OBJ mode 7 set ----------------------------------
		M_CHIP	C_32_RTZ_32_XY

		RTS
;
BOSS0_TAIL_SET	EQU	$
		LDA	#CIPCHD2+60A0H+001	;(R12) <-- 転送元アドレスセット
		STA	R12			;
		LDA	#BANK CIPCHD2+60A0H+001 ;(R13) <-- 転送元バンクセット
		STA	R13			;

		LDA	BTAILANG
		STA	R5			;(R5) <- 回転角セット
		LDA	BBODYXZM		;(R6) <- Ｘ倍率セット
		STA	R6			;
		LDA	BBODYYZM		;(R11) <- Ｙ倍率セット
		STA	R11			;

		LDA	#00020H			;(R3) <- ビットマップ座標＿Ｘセット
		STA	R3			;
		STZ	R2			;(R2) <- ビットマップ座標＿Ｙセット
;
;-------------- OBJ mode 7 set ----------------------------------
		M_CHIP	C_32_RTZ_16_XY

		RTS
;
;
KAME_FFOOT_CHR	EQU	$
		BYTE	0FCH,0FCH	;[00]
		HEX	20,0D,00
		BYTE	00CH,00CH
		HEX	1E,0D,00
		BYTE	0FCH,004H
		HEX	0C,0D,02
		BYTE	004H,0FCH
		HEX	0E,0D,02
;
		BYTE	0FCH,0FCH	;[01]
		HEX	3A,0D,00
		BYTE	00CH,00CH
		HEX	1A,0D,00
		BYTE	0FCH,004H
		HEX	08,0D,02
		BYTE	004H,0FCH
		HEX	0A,0D,02
;
		BYTE	0F8H,0F8H	;[02]
		HEX	C0,0D,02
		BYTE	008H,0F8H
		HEX	C2,0D,02
		BYTE	0F8H,008H
		HEX	E0,0D,02
		BYTE	008H,008H
		HEX	E2,0D,02
;
KAME_FHAND_CHR	EQU	$
		BYTE	0FCH,00CH	;[00]
		HEX	35,0D,00
		BYTE	004H,004H
		HEX	26,0D,02
		BYTE	0FCH,0FCH
		HEX	24,0D,02
		BYTE	0FCH,0FCH
		HEX	24,0D,00
;
		BYTE	004H,0FCH	;[01]
		HEX	22,0D,02
		BYTE	0FCH,00CH
		HEX	2C,0D,00
		BYTE	004H,004H
		HEX	20,0D,02
		BYTE	004H,004H
		HEX	20,0D,00
;
		BYTE	00CH,00CH	;[02]
		HEX	21,0D,00
		BYTE	0FCH,004H
		HEX	28,0D,02
		BYTE	004H,0FCH
		HEX	2A,0D,02
		BYTE	004H,0FCH
		HEX	2A,0D,00
;
		BYTE	0FCH,004H	;[03]
		HEX	00,0D,02
		BYTE	00CH,00CH
		HEX	12,0D,00
		BYTE	004H,0FCH
		HEX	02,0D,02
		BYTE	004H,0FCH
		HEX	02,0D,00
;
		BYTE	00CH,00CH	;[04]
		HEX	16,0D,00
		BYTE	0FCH,004H
		HEX	04,0D,02
		BYTE	004H,0FCH
		HEX	06,0D,02
		BYTE	004H,0FCH
		HEX	06,0D,00
;
		BYTE	0F8H,0F8H	;[05]
		HEX	CC,0D,02
		BYTE	008H,0F8H
		HEX	CE,0D,02
		BYTE	0F8H,008H
		HEX	EC,0D,02
		BYTE	008H,008H
		HEX	EE,0D,02
;
KAME_TAIL_CHR	EQU	$
		BYTE	000H,000H	;[00]
		HEX	D5,0D,02
;
KAME_HEAD_CHR	EQU	$
		BYTE	0F8H,0F8H	;[00]
		HEX	C8,0D,02
		BYTE	008H,0F8H
		HEX	CA,0D,02
		BYTE	0F8H,008H
		HEX	E8,0D,02
		BYTE	008H,008H
		HEX	EA,0D,02
;
KAME_BHAND_CHR	EQU	$
		BYTE	0FCH,00CH	;[00]
		HEX	35,0F,00
		BYTE	004H,004H
		HEX	26,0F,02
		BYTE	0FCH,0FCH
		HEX	24,0F,02
		BYTE	0FCH,0FCH
		HEX	24,0F,00
;
		BYTE	004H,0FCH	;[01]
		HEX	22,0F,02
		BYTE	0FCH,00CH
		HEX	2C,0F,00
		BYTE	004H,004H
		HEX	20,0F,02
		BYTE	004H,004H
		HEX	20,0F,00
;
		BYTE	00CH,00CH	;[02]
		HEX	21,0F,00
		BYTE	0FCH,004H
		HEX	28,0F,02
		BYTE	004H,0FCH
		HEX	2A,0F,02
		BYTE	004H,0FCH
		HEX	2A,0F,00
;
		BYTE	0FCH,004H	;[03]
		HEX	00,0F,02
		BYTE	00CH,00CH
		HEX	12,0F,00
		BYTE	004H,0FCH
		HEX	02,0F,02
		BYTE	004H,0FCH
		HEX	02,0F,00
;
		BYTE	00CH,00CH	;[04]
		HEX	16,0F,00
		BYTE	0FCH,004H
		HEX	04,0F,02
		BYTE	004H,0FCH
		HEX	06,0F,02
		BYTE	004H,0FCH
		HEX	06,0F,00
;
		BYTE	0F8H,0F8H	;[05]
		HEX	CC,0F,02
		BYTE	008H,0F8H
		HEX	CE,0F,02
		BYTE	0F8H,008H
		HEX	EC,0F,02
		BYTE	008H,008H
		HEX	EE,0F,02
;
KAME_BFOOT_CHR	EQU	$
		BYTE	0FCH,0FCH	;[00]
		HEX	20,0F,00
		BYTE	00CH,00CH
		HEX	1E,0F,00
		BYTE	0FCH,004H
		HEX	0C,0F,02
		BYTE	004H,0FCH
		HEX	0E,0F,02
;
		BYTE	0FCH,0FCH	;[01]
		HEX	3A,0F,00
		BYTE	00CH,00CH
		HEX	1A,0F,00
		BYTE	0FCH,004H
		HEX	08,0F,02
		BYTE	004H,0FCH
		HEX	0A,0F,02
;
		BYTE	0F8H,0F8H	;[02]
		HEX	C0,0F,02
		BYTE	008H,0F8H
		HEX	C2,0F,02
		BYTE	0F8H,008H
		HEX	E0,0F,02
		BYTE	008H,008H
		HEX	E2,0F,02
;
;
BOSS0_OAM_SET3	EQU	$
		I16
		LDY	ENOAML,X
		LDA	SOAM_DX+4+8*4,Y
		AND	#0FFF0H
		ORA	#00004H
		STA	SOAM_DX+4+8*4,Y
;
BOSS0_OAM_SET2	EQU	$
		I16
		LDA	#00006
		STA	<EWORK0
		LDY	ENOAML,X
		LDA	BOSS_START
		CMP	#00002
		BEQ	BOSS0_O_SET2300

BOSS0_O_SET2100 EQU	$
		LDA	SOAM_DX+4,Y
		AND	#0F1FFH
		ORA	#00200H
		STA	SOAM_DX+4,Y

		TYA
		CLC
		ADC	#00008
		TAY
		DEC	<EWORK0
		BNE	BOSS0_O_SET2100

		I8
		RTS

		IDX16

BOSS0_O_SET2300 EQU	$
		LDA	SOAM_DX+4,Y
		AND	#0F1FFH
		ORA	#00C00H
		STA	SOAM_DX+4,Y

		TYA
		CLC
		ADC	#00008
		TAY
		DEC	<EWORK0
		BNE	BOSS0_O_SET2300

		I8
		RTS
;
BOSS0_OAM_SET	EQU	$
		TXA				;R10 <-	 敵のインデックス
		STA	R10			;
		LDA	#BANK KAMESAN_PDT	;WRK0 <- ＦＲＯＭデータバンク
		STA	CCWORK0			;
		LDA	ENCHPT,X		;WRK1 <- ＦＲＯＭデータＣＨＰＴ
		STA	CCWORK1			;
		LDY	<ENWRK4,X		;WRK2 <- ＴＯデータＣＨＰＴ
		TYA				;
		STA	CCWORK2			;
		LDA	ENWRK6,X		;WRK3 <- モーフィング率（０〜１００Ｈ）
		STA	CCWORK3			;
		LDA	ENWRK8,X		;WRK4 <- モーフィング方向フラグ
		STA	CCWORK4			;
		LDA	ENWRKA,X		;WRK5 <- モーフィングフラグ
		STA	CCWORK5			;
		LDA	ENDSXL,X		;WRK7 <- ENDSXL+8
		CLC				;
		ADC	#00008			;
		STA	CCWORK7			;
		LDA	ENDSYL,X		;WRK8 <- ENDSYL+8
		CLC				;
		ADC	#00008			;
		STA	CCWORK8			;
		LDA	#KAME_FFOOT_CHR		;WRK9 <- 前足オフセット位置データアドレス
		STA	CCWORK9			;
		LDA	#KAME_FHAND_CHR		;WRKA <- 前手オフセット位置データアドレス
		STA	CCWORKA			;
		LDA	#KAME_TAIL_CHR		;WRKB <- 尾オフセット位置データアドレス
		STA	CCWORKB			;
		LDA	#KAME_HEAD_CHR		;WRKC <- 頭オフセット位置データアドレス
		STA	CCWORKC			;
		LDA	#KAME_BHAND_CHR		;WRKD <- 後手オフセット位置データアドレス
		STA	CCWORKD			;
		LDA	#KAME_BFOOT_CHR		;WRKE <- 後足オフセット位置データアドレス
		STA	CCWORKE			;
		LDA	#KAMESAN_PDT		;WRKF <- ＯＡＭデータベースアドレス
		STA	CCWORKF			;
		LDA	BOSS0FFT		;WRK13 <- 前足のオフセットＸ　ＰＯＳ．
		STA	CCWORK13		;
		LDA	BOSS0RFT		;WRK14 <- 後足のオフセットＸ　ＰＯＳ．
		STA	CCWORK14		;
		LDA	BOSS0AID		;WRK15 <- 絵の回転角ＦＲＯＭデータインデックス
		STA	CCWORK15		;
		LDA	BOSS0AI2		;WRK16 <- 絵の回転角ＴＯデータインデックス
		STA	CCWORK16		;
		LDA	#KAMESAN_ADT		;WRK17 <- 絵の回転角データアドレス
		STA	CCWORK17		;
		LDA	ENWRKC,X		;WRK18 <- 絵の回転角データモーフィング方向フラグ
		STA	CCWORK18		;
		LDA	BOSS0MVF		;WRK19 <- 移動ロックフラグ
		STA	CCWORK19		;
		LDA	BDMGCNT0		;REG3  <- 小ダメージカウンター
		STA	CREG3			;
		LDA	BBODYXZM		;REG8  <- BBODYXZM
		STA	CREG8			;
		LDA	BBODYYZM		;REG9  <- BBODYYZM
		STA	CREG9			;
;
		M_CHIP	M_BOSS0_OAMSET
;
		LDX	<ENINDX
		LDA	CCWORK13
		STA	BOSS0FFT
		LDA	CCWORK14
		STA	BOSS0RFT

		LDA	CCWORK1A
		STA	BFOOTANG
		LDA	CCWORK1B
		STA	BHANDANG
		LDA	CCWORK1C
		STA	BTAILANG
		LDA	CCWORK1D
		STA	BHEADANG
		LDA	CCWORK1E
		STA	BBODYANG
;頭の衝突チェック
		JSR	BOSS0_HEAD_CHK
;ＢＧチェック位置補正
		LDY	BOSS0BLK
		BNE	BOSS0_O_SET0400

		LDA	ENBGYP,X
		STA	<EWORK0
		LDA	CCWORK1F		;ＢＧチェック位置補正
		SEC				;
		SBC	ENDSYL,X		;
		CLC				;
		ADC	#00004-1-8		;
		STA	ENBGYP,X		;
		SEC
		SBC	<EWORK0
		STA	<EWORK0
		CLC
		ADC	#00004
		CMP	#00008
		BCC	BOSS0_O_SET0400

		LDA	ENYPSL,X
		SEC
		SBC	<EWORK0
		STA	ENYPSL,X

BOSS0_O_SET0400 EQU	$
;甲羅用処理
		LDA	CCWORK11		;EWORKA <- 甲羅セット中心Ｘ　ＰＯＳ．(ENDSXL)
		STA	<EWORKA
		LDA	CCWORK12		;EWORKC <- 甲羅セット中心Ｙ　ＰＯＳ．(ENDSYL)
		STA	<EWORKC

		LDA	ENDSXL,X		;画面外 ?
		CLC				;
		ADC	#00060H			;
		CMP	#00100H+60H*2		;
		BCC	BOSS0_O_SET0480		;  no: BOSS0_O_SET0480

		LDA	#00160H
		STA	SCCH3
		BRA	BOSS0_O_SET0600

BOSS0_O_SET0480 EQU	$
		LDA	#00020H			;
		SEC
		SBC	<EWORKA
		STA	SCCH3

		LDA	#0001CH
		SEC
		SBC	<EWORKC
		STA	SCCV3

BOSS0_O_SET0600 EQU	$
;衝突中心ポジション
		LDA	<EWORKA
		SEC
		SBC	ENDSXL,X
		STA	ECNTXW,X
		LDA	<EWORKC
		SEC
		SBC	ENDSYL,X
		STA	ECNTYW,X
;
		LDA	#00010001B		;
		STA	OBJ_BG_FG
;
		LDA	BOSS0MVF		;移動ロックフラグクリアする ?
		AND	#0FF00H			;
		BEQ	BOSS0_O_SET0700		;  no: BOSS0_O_SET0700

		STZ	BOSS0MVF		;移動ロックフラグクリア

BOSS0_O_SET0700 EQU	$
		LDY	<ENWRK2,X		;エンドデモ中 ?
		CPY	#BOSS0_RMODEA0		;
		BMI	BOSS0_O_SET0780		;  no: BOSS0_O_SET0780

		LDA	CREG12
		SEC
		SBC	CREG11
		SEC
		SBC	PWIDEY
		BRA	BOSS0_O_SET1180

BOSS0_O_SET0780 EQU	$
		LDA	CREG13			;プレイヤーにあたってる ?
		BIT	#00001			;
		BEQ	BOSS0_O_SET1000		; yes: BOSS0_O_SET1000

BOSS0_O_SET0800 EQU	$

		RTS

BOSS0_O_SET1000 EQU	$
		CMP	#00008H			;ボディにあたった ?
		BNE	BOSS0_O_SET1080		;  no: BOSS0_O_SET1080

		LDA	CREG12			;下にあたった ?
		BPL	BOSS0_O_SET1100		;  no: BOSS0_O_SET1100

BOSS0_O_SET1080 EQU	$
		JMP	BOSS0_O_SET1700

BOSS0_O_SET1100 EQU	$
		SEC				;プレイヤーが上に減り込んでる ?
		SBC	CREG11			;
		SEC				;
		SBC	PWIDEY			;
		CMP	#0FFF4H			;
		BCC	BOSS0_O_SET1080		; yes: BOSS0_O_SET1080

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

		LDY	ENCHPT,X		;腹が上になってる ?
		CPY	#028H			;
		BPL	BOSS0_O_SET1500		;
		CPY	#021H			;
		BMI	BOSS0_O_SET1500		;  no: BOSS0_O_SET1500

BOSS0_O_SET1180 EQU	$
		CLC				;足が離れるのを防ぐため
		ADC	#00003			;
		CLC
		ADC	PLYPSL
		STA	PLYPSL

		STZ	PLYSPD
		STZ	PLJUMP
		INC	ONLFFG

		LDY	<ENWRK2,X
		CPY	#BOSS0_RMODE8A
		BEQ	BOSS0_O_SET1190
		CPY	#BOSS0_RMODE8B
		BEQ	BOSS0_O_SET1190
		CPY	#BOSS0_RMODEA0
		BMI	BOSS0_O_SET1200

BOSS0_O_SET1190 EQU	$
;		LDA	#000CDH
		LDA	#PD11
		STA	PLPATN
		RTS

BOSS0_O_SET1200 EQU	$
		LDY	PLDOSN			;ぷれいやー、どすん ?
		BEQ	BOSS0_O_SET1400		;  no: BOSS0_O_SET1400

		LDY	BDMGCHK0		;はじめて ?
		CPY	BDMGCNT1		;
		BNE	BOSS0_O_SET1400		;  no: BOSS0_O_SET1400

		LDA	#00060H			;ダメージタイマーセット
		STA	ENTIM2,X		;

		LDA	#PDEM
		STA	PLMODE
		LDA	#BOSS0_RMODE8A
		INC	BDMGCNT1
		INC	BDMGCNT1
		LDY	BDMGCNT1		;ダメージＭＡＸ ?
		CPY	#006			;
		BNE	BOSS0_O_SET1300		;  no: BOSS0_O_SET1300

		JSL	>BOSS_EN_CHANGE

		INC	TIMER_STOP
		LDA	#BOSS0_RMODEA0

BOSS0_O_SET1300 EQU	$
		STA	<ENWRK2,X
		LDA	#00001
		STA	ENWRK6,X		;モーフィング率クリア
		LDY	#024H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#00FH			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00030H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00080H			;［Ｓ］
		JSL	>SOUND_3_ON

BOSS0_O_SET1400 EQU	$

		RTS

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

;		LDY	ENCHPT,X		;４足歩行中 ?
;		CPY	#008			;
;		BPL	BOSS0_O_SET1580		;  no: BOSS0_O_SET1580
		LDY	<ENWRK2,X		;
		CPY	#BOSS0_RMODE21+1	;
		BMI	BOSS0_O_SET1600		; yes: BOSS0_O_SET1600

BOSS0_O_SET1580 EQU	$
		LDA	#0FC00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDA	#001+8000H
		STA	PLSPJP
		STZ	PLDOSN
		RTS

BOSS0_O_SET1600 EQU	$
		JSR	BOSS0_EGG_SPIT

		LDA	ENCHPT,X		;ＴＯ　ＥＮＣＨＰＴセット
		AND	#00007H			;
		CLC				;
		ADC	#00028H			;
		STA	<ENWRK4,X		;

		LDY	#BOSS0_RMODE14
		STY	<ENWRK2,X

		LDY	#018H
		BRA	BOSS0_ITE2

BOSS0_O_SET1700 EQU	$
		CMP	#00006			;頭にあたった ?
		BNE	BOSS0_O_SET1710		;  no: BOSS0_O_SET1710

		LDA	CREG12			;上からあたった ?
		BPL	BOSS0_O_SET1720		; yes: BOSS0_O_SET1720

BOSS0_O_SET1710 EQU	$
		JMP	BOSS0_O_SET1800

BOSS0_O_SET1720 EQU	$
		SEC				;プレイヤーが上に減り込んでる ?
		SBC	CREG11			;
		SEC				;
		SBC	PWIDEY			;
		CMP	#0FFF4H			;
		BCC	BOSS0_O_SET1710		; yes: BOSS0_O_SET1710

;		LDY	ENCHPT,X		;４足歩行中 ?
;		CPY	#008			;
;		BPL	BOSS0_O_SET1400		;  no: BOSS0_O_SET1400
		LDY	<ENWRK2,X		;
		CPY	#BOSS0_RMODE21+1	;
		BMI	BOSS0_O_SET1730		; yes: BOSS0_O_SET1730

		LDA	#0FB00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDA	#001+8000H
		STA	PLSPJP
		STZ	PLDOSN
		RTS

BOSS0_O_SET1730 EQU	$
		LDY	PLYSPD+1		;プレイヤー上昇中 ?
		BMI	BOSS0_O_SET1400		; yes: BOSS0_O_SET1400

		JSR	BOSS0_EGG_SPIT

BOSS0_ITE	EQU	$
		LDA	#00039H			;［Ｓ］
		JSL	>SOUND_3_ON

		LDY	#BOSS0_RMODE11
		STY	<ENWRK2,X

		LDY	#017H			;絵の回転角ＴＯデータのインデックスセット

BOSS0_ITE2	EQU	$
		STY	BOSS0AI2		;
		LDA	#00001			;モーフィング率セット
		STA	ENWRK6,X		;
		INC	BOSS0ART		;回転オブジェ使用フラグセット
		LDY	#002
		STY	BHEADPAT
		LDA	#00040H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		RTS

BOSS0_O_SET1800 EQU	$
		LDY	<ENWRK2,X		;ダメージ中 ?
		CPY	#BOSS0_RMODE70		;
		BMI	BOSS0_O_SET1880		;  no: BOSS0_O_SET1880
		CPY	#BOSS0_RMODE88		;
		BMI	BOSS0_O_SET1900		; yes: BOSS0_O_SET1900

BOSS0_O_SET1880 EQU	$
		JSL	>PLFLST

BOSS0_O_SET1900 EQU	$

		RTS
;
BOSS0_EGG_SPIT	EQU	$
		LDA	#0FB00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDA	#001+8000H
		STA	PLSPJP
		STZ	PLDOSN

		LDA	<RANDM0
		AND	#0003EH
		STA	R1
		LDA	#0FD00H
		STA	R6
		M_CHIP	M_ENMY_1P_ROT
		LDX	<ENINDX
		LDA	R0
		LDY	ENMUKI,X
		BEQ	BOSS0_E_S0100

		EOR	#0FFFFH
		INC	A

BOSS0_E_S0100	EQU	$
		STA	<EWORK0
		LDA	R1
		STA	<EWORK4

		LDA	ECENTX,X
		CLC
		ADC	CREG0
		SEC
		SBC	#00008
		STA	<EWORKA
		LDA	ECENTY,X
		CLC
		ADC	CREG10
		SEC
		SBC	#00004
		STA	<EWORKC

		M_CHIP	EGGSEARCH		;タマゴ６個以上有る ?
		LDX	<ENINDX			;
		LDY	R6			;
		CPY	#006			;
		BMI	BOSS0_E_S0500		;  no: BOSS0_E_S0500

BOSS0_E_S0300	EQU	$
		STZ	<EWORK2
		JSL	>GEPPU_SET
		LDA	<EWORK4
		STA	EXYSPD,Y
		LDA	#00028H
		STA	EXCLOR,Y
		LDA	#00005H
		STA	EXYUSN,Y
		LDA	#00000H
		STA	EXGMAX,Y
		LDA	#00008H
		STA	EXGPOW,Y
		STA	EXXPOW,Y

		RTS

BOSS0_E_S0500	EQU	$
		LDA	#EGG03
		JSL	>ENINSR
		BCC	BOSS0_E_S0300

		LDA	<EWORKA
		STA	ENXPSL,Y
		LDA	<EWORKC
		STA	ENYPSL,Y
		LDA	<EWORK0
		STA	ENXSPD,Y
		LDA	<EWORK4
		STA	ENYSPD,Y
		LDA	#00040H
		STA	ENGPOW,Y

		RTS
;
BOSS0_HEAD_CHK	EQU	$
		LDA	ECENTX,X
		PHA
		CLC
		ADC	CREG0
		STA	ECENTX,X
		LDA	ECENTY,X
		PHA
		CLC
		ADC	CREG10
		STA	ECENTY,X

		LDA	EWIDEX,X
		PHA
		LDA	EWIDEY,X
		PHA
		LDA	#0000CH
		STA	EWIDEX,X
		STA	EWIDEY,X

		TXA
		STA	R1
		M_CHIP	MY_ENCROS2
		BRA	BOSS0_H_CHK0300

BOSS0_H_CHK0100 EQU	$
		LDX	#BANK MY_ENCROS2
		LDA	R15
		JSL	>CHIPON

BOSS0_H_CHK0300 EQU	$
		LDX	<ENINDX
		LDY	R14
		BMI	BOSS0_H_CHK2000
		BEQ	BOSS0_H_CHK2000

		LDA	ENSHOT,Y		;あたったやつはショットされてた ?
		BEQ	BOSS0_H_CHK0100		;  no: BOSS0_H_CHK0100

		LDA	ENXSPD,Y
		STA	<EWORK0
		LDA	ENGPOW,Y
		STA	<EWORK2
		TYX
		JSL	>SHOT_EN_KILL

;		LDY	ENCHPT,X		;４足歩行中 ?
;		CPY	#008			;
;		BPL	BOSS0_H_CHK1000		;  no: BOSS0_H_CHK1000
		LDY	<ENWRK2,X		;
		CPY	#BOSS0_RMODE22+1	;
		BPL	BOSS0_H_CHK1000		;  no: BOSS0_H_CHK1000

		INC	BOSS0ART		;回転オブジェ使用フラグセット
		LDY	#006
		STY	BHEADPAT
		LDY	#017H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00010H			;ストップタイマーセット
		STA	ENTIM0,X		;
		LDY	#BOSS0_RMODE30
		STY	<ENWRK2,X
		LDA	#0003FH			;［Ｓ］
		JSL	>SOUND_3_ON
		BRA	BOSS0_H_CHK2000

BOSS0_H_CHK1000 EQU	$
		JSR	BOSS0_DMG_SET

BOSS0_H_CHK2000 EQU	$
		PLA
		STA	EWIDEY,X
		PLA
		STA	EWIDEX,X
		PLA
		STA	ECENTY,X
		PLA
		STA	ECENTX,X

BOSS0_D_SET0000 EQU	$

		RTS
;
BOSS0_DMG_CHPT	EQU	$
		HEX	1D,1F
BOSS0_DMG_ANG	EQU	$
		HEX	08,0A
BOSS0_BDMG_XSPD EQU	$
		WORD	00200H,0FE00H
;
BOSS0_DMG_SET	EQU	$
		LDA	<EWORK2			;ＭＡＸ投げ ?
		BNE	BOSS0_D_SET0000		;  no: BOSS0_D_SET0000

		LDA	ENMUKI,X		;前からあたった ?
		DEC	A			;
		EOR	<EWORK0			;
		BPL	BOSS0_D_SET0000		;  no: BOSS0_D_SET0000

		LDY	<ENWRK2,X		;２足歩行ｏｒダッシュｏｒ小ダメージ中 ?
		CPY	#BOSS0_RMODE41		;
		BMI	BOSS0_D_SET0100		;
		CPY	#BOSS0_RMODE70		;
		BMI	BOSS0_D_SET0800		;
		CPY	#BOSS0_RMODE80		;
		BPL	BOSS0_D_SET0800		;  no: BOSS0_D_SET0800

BOSS0_D_SET0100 EQU	$
		INC	BOSS0ART		;回転オブジェ使用フラグセット
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		STZ	ENWRK6,X		;モーフィング率クリア

;;;;;;;;		LDA	#00040H			;ダメージタイマーセット
;;;;;;;;		STA	ENTIM2,X		;

		INC	BDMGCNT0		;小ダメージカウンターINC.
		LDY	BDMGCNT0		;倒れる ?
		CPY	#003			;
		BMI	BOSS0_D_SET0500		;  no: BOSS0_D_SET0500

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

		INC	BOSS0MVF		;移動ロックフラグセット
		INC	BOSS0BLK		;ＢＧチェックポジションロック
		LDA	#00012H
		STA	ENBGYP,X
		LDY	#021H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#00CH			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#0FC00H
		STA	ENYSPD,X
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDY	#BOSS0_RMODE80
		STY	<ENWRK2,X

		RTS

BOSS0_D_SET0500 EQU	$
		M8
		LDA	!BOSS0_DMG_CHPT-1,Y	;ＴＯ　ＥＮＣＨＰＴセット
		STA	<ENWRK4,X		;
		LDA	!BOSS0_DMG_ANG-1,Y	;絵の回転角ＴＯデータのインデックスセット
		STA	BOSS0AI2		;
		M16
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDY	#004
		STY	BHEADPAT
		LDY	#BOSS0_RMODE70
		STY	<ENWRK2,X

BOSS0_D_SET0800 EQU	$
BOSS0_ENCHK0000 EQU	$

		RTS
;
BOSS0_ENCHK	EQU	$
		TXA
		STA	R1
		M_CHIP	MY_ENCROS2
		BRA	BOSS0_ENCHK0300

BOSS0_ENCHK0100 EQU	$
		LDX	#BANK MY_ENCROS2
		LDA	R15
		JSL	>CHIPON

BOSS0_ENCHK0300 EQU	$
		LDX	<ENINDX
		LDY	R14			;誰とも接触してない ?
		BMI	BOSS0_ENCHK0000		;赤ちゃんと接触してない ?
		BEQ	BOSS0_ENCHK0000		; yes: BOSS0_ENCHK0000

		LDA	ENMODE,Y		;飛んできたやつにあたった ?
		CMP	#EMOVE			;
		BNE	BOSS0_ENCHK0100		;
		LDA	ENSHOT,Y		;
		BEQ	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		LDA	ENGPOW,Y
		STA	<EWORK0
		LDA	ENXSPD,Y
		STA	<EWORK2
		TYX
		PHY
		JSL	>SHOT_EN_KILL
		PLY

		LDA	<EWORK0			;ＭＡＸ投げ ?
		BNE	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		LDA	ENMUKI,X		;前からあたった ?
		DEC	A			;
		EOR	<EWORK2			;
		BPL	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		LDA	ECENTY,Y		;上の方にあたった ?
		SEC				;
		SBC	ECENTY,X		;
		BPL	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		LDA	#0003FH			;［Ｓ］
		JSL	>SOUND_3_ON
		LDY	BDMGCNT0		;倒れる ?
		CPY	#002			;
		BMI	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		LDY	<ENWRK2,X		;小ダメージ中 ?
		CPY	#BOSS0_RMODE70		;
		BMI	BOSS0_ENCHK0100		;
		CPY	#BOSS0_RMODE80		;
		BPL	BOSS0_ENCHK0100		;  no: BOSS0_ENCHK0100

		JMP	BOSS0_D_SET0100		;  no: BOSS0_D_SET0100
;
;
;
BOSS0_MORPH_CAL EQU	$
		LDA	ENWRK6,X		;モーフィング終わり ?
		CLC				;
		ADC	<ENWRK0,X		;
		CMP	#00100H			;
		BMI	BOSS0_M_C0800		;  no: BOSS0_M_C0800

		M8
		LDA	<ENWRK4,X		;ＦＲＯＭ　ＥＮＣＨＰＴセット
		STA	ENCHPT,X		;
		M16
		LDA	BOSS0AI2		;絵の回転角ＦＲＯＭデータのインデックスセット
		STA	BOSS0AID
		LDA	#00000
		STA	<ENWRK0,X		;モーフィング率加算値クリア

BOSS0_M_C0800	EQU	$
		STA	ENWRK6,X

BOSS0_FLASH0000 EQU	$

		RTS
;
BOSS0_FLASH	EQU	$
		LDA	ENTIM2,X		;ダメージを受けてる ?
		BEQ	BOSS0_FLASH0000		;  no: BOSS0_FLASH0000

		DEC	A			;元の色に戻る ?
		BEQ	BOSS0_FLASH1000		; yes: BOSS0_FLASH1000

		AND	#00004H
		BNE	BOSS0_FLASH1000

		LDX	#(0BH-1)*2
BOSS0_FLASH0100 EQU	$
		LDA	>COL_ADDRESS+OBJ_SUB_B_COL+0FH*2,X	;ＢＧカラーセット
		STA	>MOTOCOL+01H*2,X
		STA	>DATACOL+01H*2,X
		STA	>MOTOCOL+(80H+61H)*2,X			;ＯＢＪカラーセット
		STA	>DATACOL+(80H+61H)*2,X
		STA	>MOTOCOL+(80H+71H)*2,X
		STA	>DATACOL+(80H+71H)*2,X
		DEX
		DEX
		BPL	BOSS0_FLASH0100

		LDX	#(0FH-1-0BH)*2
BOSS0_FLASH0300 EQU	$
		LDA	>COL_ADDRESS+OBJ_SUB_B_COL+(0FH+0BH)*2,X	;ＢＧカラーセット
		STA	>MOTOCOL+(01H+0BH)*2,X
		STA	>DATACOL+(01H+0BH)*2,X
		DEX
		DEX
		BPL	BOSS0_FLASH0300

		LDX	<ENINDX

		RTS

BOSS0_FLASH1000 EQU	$
BOSS0_COL_INIT	EQU	$
;
;-------------- カラーセット --------------------------------------------
		LDX	#(0FH-1)*2
BOSS0_C_I0100	EQU	$
		LDA	>COL_ADDRESS+M7_KAME_BG_COL,X	;ＢＧカラーセット
		STA	>MOTOCOL+01H*2,X
		STA	>DATACOL+01H*2,X
		LDA	>COL_ADDRESS+M7_KAME_COL+1*2,X	;ＯＢＪカラーセット
		STA	>MOTOCOL+(80H+61H)*2,X
		STA	>DATACOL+(80H+61H)*2,X
		LDA	>COL_ADDRESS+M7_KAME_COL+(10H+1)*2,X
		STA	>MOTOCOL+(80H+71H)*2,X
		STA	>DATACOL+(80H+71H)*2,X
		DEX
		DEX
		BPL	BOSS0_C_I0100

		LDA	>COL_ADDRESS+M7_KAME_COL	;ＯＢＪカラーセット
		STA	>MOTOCOL+(80H+60H)*2
		STA	>DATACOL+(80H+60H)*2
		LDA	>COL_ADDRESS+M7_KAME_COL+10H*2
		STA	>MOTOCOL+(80H+70H)*2
		STA	>DATACOL+(80H+70H)*2
		LDX	<ENINDX

		RTS
;
BOSS0_M_L_DT	EQU	$
		WORD	0FF20H,000E0H
;
BOSS0_MOV_LIM	EQU	$
		LDA	ENXPSL,X
		SEC
		SBC	BOSS0_CENTX
		CLC
		ADC	#00100H-20H
		CMP	#(00100H-20H)*2
		BCC	BOSS0_M_L0800

		STA	<EWORK0
		LDA	ENXSPD,X
		BNE	BOSS0_M_L0200

		LDA	ENMUKI,X
		DEC	A

BOSS0_M_L0200	EQU	$
		EOR	<EWORK0
		BMI	BOSS0_M_L0800

		LDY	#000
		LDA	<EWORK0
		BMI	BOSS0_M_L0300

		INY
		INY

BOSS0_M_L0300	EQU	$
		LDA	BOSS0_CENTX
		CLC
		ADC	!BOSS0_M_L_DT,Y
		STA	ENXPSL,X
		STZ	ENXSPD,X
		STZ	ENXPOW,X

BOSS0_M_L0800	EQU	$

		RTS
;
;
;
BOSS0_SUB00	EQU	$
		TYX

		LDY	#BOSS0_RMODE10
		STY	<ENWRK2,X
		LDA	#00040H			;歩きタイマーセット
		STA	ENTIM1,X		;

		LDA	<RANDM0			;ジャンプ攻撃 ?
		AND	#00001			;
		BEQ	BOSS0_SUB00800		;  no: BOSS0_SUB00800

		LDA	ENXPSL,X		;コースの端の方 ?
		SEC				;
		SBC	BOSS0_CENTX		;
		CLC				;
		ADC	#00100H-00060H		;
		CMP	#(00100H-00060H)*2	;
		BCC	BOSS0_SUB00300		;  no: BOSS0_SUB00300

		STA	<EWORK0			;コースの中の方にジャンプする ?
		LDA	ENMUKI,X		;
		DEC	A			;
		EOR	<EWORK0			;
		BPL	BOSS0_SUB00800		;  no: BOSS0_SUB00800

BOSS0_SUB00300	EQU	$
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		AND	#00007			;
		CLC				;
		ADC	#00028H			;
		STA	<ENWRK4,X		;
		LDY	#018H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00001			;モーフィング率セット
		STA	ENWRK6,X		;
		INC	BOSS0ART		;回転オブジェ使用フラグセット
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

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

		LDY	#BOSS0_RMODE20
		STY	<ENWRK2,X

BOSS0_SUB00800	EQU	$

		RTS
;
BOSS0_SUB10	EQU	$
		TYX

		STZ	BOSS0AID
		STZ	BOSS0AI2
		STZ	BOSS0ART		;回転オブジェ使用フラグクリア
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット

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

		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	ENWRK6,X		;モーフィング終わってる ?
		BNE	BOSS0_SUB10800		;  no: BOSS0_SUB10800

		LDA	ENTIM1,X		;まだ歩く ?
		BNE	BOSS0_SUB10300		; yes: BOSS0_SUB10300

		STZ	<ENWRK2,X

		RTS

BOSS0_SUB10300	EQU	$
		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	A			;
		AND	#007H			;
		STA	<ENWRK4,X		;
		M16
		LDA	ENCHPT,X		;ストップさせる ?
		AND	#00003H			;
		BNE	BOSS0_SUB10800		;  no: BOSS0_SUB10800

		LDA	#00008
		STA	ENTIM0,X
		LDA	#00056H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	ENWRK6,X		;モーフィング率セット
		STZ	<ENWRK0,X		;モーフィング率加算値クリア

BOSS0_SUB10800	EQU	$
		JSR	BOSS0_MUKI_CHK

		RTS
;
BOSS0_MUKI_CHK	EQU	$
		LDA	EPXMUK,X		;プレイヤーに後ろに回られた ?
		AND	#000FFH			;
		CMP	ENMUKI,X		;
		BEQ	BOSS0_M_CHK0800		;  no: BOSS0_M_CHK0800

		INC	BOSS0ART		;回転オブジェ使用フラグセット
		INC	BOSS0MVF		;移動ロックフラグセット
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		STZ	ENWRK6,X		;モーフィング率クリア
		LDY	#018H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#003			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDY	<ENWRK2,X
		CPY	#BOSS0_RMODE10
		BNE	BOSS0_M_CHK0300

		LDY	#BOSS0_RMODE50
		STY	<ENWRK2,X

		RTS

BOSS0_M_CHK0300 EQU	$
		LDA	#0FC00H
		STA	ENYSPD,X

		INC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDY	#BOSS0_RMODE60
		STY	<ENWRK2,X

BOSS0_M_CHK0800 EQU	$

		RTS
;
BOSS0_SUB11	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB11800		;  no: BOSS0_SUB11800

		STZ	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00040H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00030H			;ストップタイマーセット
		STA	ENTIM0,X		;
		INC	<ENWRK2,X

BOSS0_SUB11800	EQU	$

		RTS
;
BOSS0_SUB12	EQU	$
		TYX

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

		STZ	BHEADPAT
		LDA	#00080H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		INC	<ENWRK2,X

BOSS0_SUB12800	EQU	$

		RTS
;
BOSS0_SUB13	EQU	$
BOSS0_SUB16	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB13800		;  no: BOSS0_SUB13800

		LDA	#00040H			;歩きタイマーセット
		STA	ENTIM1,X		;
		LDY	#BOSS0_RMODE10
		STY	<ENWRK2,X

BOSS0_SUB13800	EQU	$
		RTS
;
BOSS0_SUB14	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB14800		;  no: BOSS0_SUB14800

		LDA	ENCHPT,X		;ＴＯ　ＥＮＣＨＰＴセット
		SEC				;
		SBC	#00028H			;
		STA	<ENWRK4,X		;

		STZ	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00040H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00030H			;ストップタイマーセット
		STA	ENTIM0,X		;
		INC	<ENWRK2,X

BOSS0_SUB14800	EQU	$

		RTS
;
BOSS0_SUB15	EQU	$
		TYX

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

		STZ	BHEADPAT
		LDA	#00080H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		INC	<ENWRK2,X

BOSS0_SUB15800	EQU	$

		RTS
;
BOSS0_SUB20	EQU	$
BOSS0_SUB22	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB20800		;  no: BOSS0_SUB20800

		INC	<ENWRK2,X

BOSS0_SUB20800	EQU	$

		RTS
;
BOSS0_SUB21	EQU	$
		TYX

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

		INC	<ENWRK2,X

BOSS0_TO_2FOOT	EQU	$
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		SEC				;
		SBC	#00028H+1		;
		AND	#00007			;
		ORA	#00008H			;
		STA	<ENWRK4,X		;
		LDY	#001			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

BOSS0_SUB21800	EQU	$

		RTS
;
BOSS0_SUB23	EQU	$
		TYX

		LDA	#00001
		STA	BOSS0AID
		STA	BOSS0AI2
		STZ	BOSS0MVF
		LDA	FRCNT2
		AND	#00001
		BNE	BOSS0_SUB23000

		STZ	BOSS0ART		;回転オブジェ使用フラグクリア

BOSS0_SUB23000	EQU	$
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット

		LDA	ENTIM0,X		;ストップ ?
		BEQ	BOSS0_SUB23100		;  no: BOSS0_SUB23100
		JMP	BOSS0_SUB23800		; yes: BOSS0_SUB23800

BOSS0_SUB23100	EQU	$
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB23800		;  no: BOSS0_SUB23800

		LDA	ENTIM1,X		;まだ歩く ?
		BNE	BOSS0_SUB23700		; yes: BOSS0_SUB23700

		LDY	EPXMUK,X		;プレイヤーが前にいる ?
		TYA				;
		CMP	ENMUKI,X		;
		BNE	BOSS0_SUB23700		;  no: BOSS0_SUB23700

		LDA	EPWIDX,X		;プレイヤーが近くにいる ?
		CLC				;
		ADC	#00070H			;
		CMP	#000E0H			;
		BCS	BOSS0_SUB23700		;  no: BOSS0_SUB23700

;		LDA	ENXPSL,X		;コースの端にいる ?
;		SEC				;
;		SBC	BOSS0_CENTX		;
;		CLC				;
;		ADC	#00100H-00060H		;
;		CMP	#(00100H-00060H)*2	;
;		BCC	BOSS0_SUB23500		;  no: BOSS0_SUB23500
;
;		STA	<EWORK0			;コースの中に向かってる ?
;		LDA	ENMUKI,X		;
;		DEC	A			;
;		EOR	<EWORK0			;
;		BMI	BOSS0_SUB23700		;  no: BOSS0_SUB23700
;
;BOSS0_SUB23500 EQU	$
		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	A			;
		AND	#007			;
		ORA	#010H			;
		STA	<ENWRK4,X		;
		M16
		LDY	#002			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		STY	BHEADPAT
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		INC	<ENWRK2,X

		RTS

BOSS0_SUB23700	EQU	$
		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	A			;
		AND	#007H			;
		ORA	#008H			;
		STA	<ENWRK4,X
		M16
		LDA	ENCHPT,X		;ストップさせる ?
		AND	#00003			;
		BNE	BOSS0_SUB23800		;  no: BOSS0_SUB23800

		LDA	#00008
		STA	ENTIM0,X
		LDA	#00056H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	ENWRK6,X		;モーフィング率セット
		STZ	<ENWRK0,X		;モーフィング率加算値クリア

BOSS0_SUB23800	EQU	$
		JSR	BOSS0_MUKI_CHK

		RTS
;
BOSS0_SUB24	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB24800		;  no: BOSS0_SUB24800

		LDA	#00040H
		STA	ENTIM0,X
		LDA	#000C0H
		STA	ENTIM1,X
		LDY	#BOSS0_RMODE40
		STY	<ENWRK2,X

BOSS0_SUB24800	EQU	$
BOSS0_SUB30000	EQU	$
BOSS0_SUB40000	EQU	$

		RTS
;
BOSS0_SUB30	EQU	$
		TYX

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

		INC	BOSS0ART
		STZ	BHEADPAT
		LDY	#BOSS0_RMODE22
		STY	<ENWRK2,X
		JMP	BOSS0_TO_2FOOT
;
;
;BOSS0_S40_XSPD EQU	$
;		WORD	0FE80H,00180H
BOSS0_S40_MULDT EQU	$
		WORD	00500H,00060H
BOSS0_S40_XSPD	EQU	$
		WORD	0FD80H,00280H
BOSS0_S40_SUKA	EQU	$
		WORD	0FF40H,000C0H
		WORD	0FF00H,00100H
;
BOSS0_SUB40	EQU	$
		TYX

		LDA	#00002
		STA	BOSS0AID
		STA	BOSS0AI2
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		LDA	#00040H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB40000		;  no: BOSS0_SUB40000

		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	A			;
		AND	#007H			;
		ORA	#010H			;
		STA	<ENWRK4,X		;
		M16
		LDA	ENCHPT,X
		AND	#00003
		BNE	BOSS0_SUB40100

		LDA	#00056H			;［Ｓ］
		JSL	>SOUND_3_ON

BOSS0_SUB40100	EQU	$
;		LDA	EPWIDX,X		;プレイヤー近づいてきた ?
;		CLC				;
;		ADC	#00058H			;
;		CMP	#000B0H			;
;		BCS	BOSS0_SUB40000		;  no: BOSS0_SUB40000

		LDY	#008
		LDA	ENMUKI,X		;左向き ?
		BEQ	BOSS0_SUB40140		; yes: BOSS0_SUB40140

		INY
		INY

		SEC				;コース右端近く ?
		SBC	#00100H-70H-70H		;
		CMP	PLSCRL_MAXX		;
		BPL	BOSS0_SUB40160		; yes: BOSS0_SUB40160
		BRA	BOSS0_SUB40150

BOSS0_SUB40140	EQU	$
		LDY	#008
		LDA	ENXPSL,X		;コース左端近く ?
		SEC				;
		SBC	#00070H			;
		CMP	PLSCRL_MINX		;
		BMI	BOSS0_SUB40160		; yes: BOSS0_SUB40160

BOSS0_SUB40150	EQU	$
		LDA	ENTIM0,X		;突進させる ?
		BNE	BOSS0_SUB40188		; yes: BOSS0_SUB40188

		LDY	EPXMUK,X		;プレイヤーが前にいる ?
		TYA				;
		CMP	ENMUKI,X		;
		BEQ	BOSS0_SUB40180		; yes: BOSS0_SUB40180

		LDA	ENTIM1,X		;突進終わり ?
		BNE	BOSS0_SUB40188		;  no: BOSS0_SUB40188

		LDA	ENMUKI,X
		CLC
		ADC	#00004
		TAY

BOSS0_SUB40160	EQU	$
		JMP	BOSS0_SUB40570

BOSS0_SUB40180	EQU	$
		LDA	EPWIDX,X		;プレイヤー近くにいる ?
		STA	R1			;
		CLC				;
		ADC	#00050H			;
		CMP	#000A0H			;
		BCC	BOSS0_SUB40190		; yes: BOSS0_SUB40190

BOSS0_SUB40188	EQU	$
		RTS

BOSS0_SUB40190	EQU	$
		CLC				;プレイヤー近すぎる ?
		ADC	#00020H-00050H		;
		CMP	#00040H			;
		BCC	BOSS0_SUB40188		; yes: BOSS0_SUB40188

		LDA	PLXSPD			;
		BMI	BOSS0_SUB40200

		EOR	#0FFFFH
		INC	A

BOSS0_SUB40200	EQU	$
		STA	R6			;
		LDY	#000
		LDA	PLXSPD			;プレイヤー近づいてきてる ?
		EOR	R1			;
		BMI	BOSS0_SUB40300		;  no: BOSS0_SUB40300

		INY
		INY

BOSS0_SUB40300	EQU	$
		LDA	!BOSS0_S40_MULDT,Y
		STA	R0
		M_CHIP	MULTIPLY

		LDA	R1
		STA	R6
		LDA	R0
		SEC
		SBC	#00100H
		STA	R0
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		STA	ENXSPD,X		;真上にジャンプ ?
		BNE	BOSS0_SUB40400		;  no: BOSS0_SUB40400

		LDA	ENMUKI,X
		CLC
		ADC	#00004
		TAY
		BRA	BOSS0_SUB40570

BOSS0_SUB40400	EQU	$
		LDY	#000			;スピード出過ぎ ?
		CLC				;
		ADC	#00400H			;
		CMP	#00800H			;
		BCC	BOSS0_SUB40500		;  no: BOSS0_SUB40500
		BMI	BOSS0_SUB40570		;

		INY
		INY
		BRA	BOSS0_SUB40570

BOSS0_SUB40500	EQU	$
		CLC				;スピード遅すぎる ?
		ADC	#000C0H-00400H		;
		CMP	#000C0H*2		;
		BCS	BOSS0_SUB40600		;  no: BOSS0_SUB40600

		LDY	#004
		CMP	#000C0H
		BMI	BOSS0_SUB40570

		INY
		INY

BOSS0_SUB40570	EQU	$
		LDA	!BOSS0_S40_XSPD,Y

BOSS0_SUB40580	EQU	$
		STA	ENXSPD,X

BOSS0_SUB40600	EQU	$
		INC	BOSS0ART		;回転オブジェ使用フラグセット
		INC	BOSS0MVF		;移動ロックフラグセット
		INC	BOSS0BLK		;ＢＧチェックポジションロック
		LDA	#0000AH
		STA	ENBGYP,X
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		LDY	#01AH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDA	#0FB00H
		STA	ENYSPD,X
		LDA	#00280H
		STA	ENGMAX,X
		LDA	#00028H
		STA	ENGPOW,X
		LDY	#005			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
;		LDY	ENMUKI,X
;		LDA	!BOSS0_S40_XSPD,Y
;		STA	ENXSPD,X

		INC	<ENWRK2,X

		RTS
;
BOSS0_S41_XSPD	EQU	$
		WORD	0FF00H,00100H
;
BOSS0_SUB41	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB41800		;  no: BOSS0_SUB41800

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

		LDY	ENMUKI,X
		LDA	!BOSS0_S41_XSPD,Y
		STA	ENXSPD,X
		LDA	#00400H
		STA	ENGMAX,X
		LDA	#00040H
		STA	ENGPOW,X
		LDY	#01BH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#006			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		STA	TILTCT
		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X

BOSS0_SUB41800	EQU	$

		RTS
;
BOSS0_SUB42	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB42800		;  no: BOSS0_SUB42800

		LDY	#01AH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#005			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDA	#0FE00H
		STA	ENYSPD,X
		INC	<ENWRK2,X

BOSS0_SUB42800	EQU	$

		RTS
;
BOSS0_SUB43	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB43800		;  no: BOSS0_SUB43800

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

		LDY	#006
		STY	BHEADPAT
		LDA	#00008
		STA	ENXPOW,X
		LDY	#01CH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#007			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		STA	TILTCT
		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X

BOSS0_SUB43800	EQU	$

		RTS
;
BOSS0_SUB44	EQU	$
		TYX

		LDY	#002
		STY	<EWORK0

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB44500		;  no: BOSS0_SUB44500

		DEC	<EWORK0

BOSS0_SUB44500	EQU	$
		LDA	ENXSPD,X
		CLC
		ADC	#00008
		CMP	#00010H
		BCS	BOSS0_SUB44600

		STZ	ENXPOW,X
		STZ	ENXSPD,X
		DEC	<EWORK0

BOSS0_SUB44600	EQU	$
		LDY	<EWORK0
		BNE	BOSS0_SUB44900

		LDY	#01AH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#005			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		INC	<ENWRK2,X

BOSS0_SUB44900	EQU	$

		RTS
;
BOSS0_SUB45	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB45800		;  no: BOSS0_SUB45800

		LDA	#00004*2		;ぱちくり回数セット
		STA	<ENCONT,X		;
		INC	<ENWRK2,X

BOSS0_SUB45800	EQU	$

		RTS
;
BOSS0_SUB46	EQU	$
		TYX

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

		DEC	<ENCONT,X		;ぱちくり終わり ?
		BPL	BOSS0_SUB46300		;  no: BOSS0_SUB46300

		LDY	#003			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		STZ	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	BOSS0MVF		;移動ロックフラグ解除
		ORA	#0FF00H			;
		STA	BOSS0MVF		;
		STZ	BOSS0BLK		;ＢＧチェックポジションクリア
		STZ	BHEADPAT

		INC	<ENWRK2,X

		RTS

BOSS0_SUB46300	EQU	$
		LDA	BHEADPAT
		EOR	#00006
		STA	BHEADPAT

		LDA	#00008			;ストップタイマーセット
		STA	ENTIM0,X		;

BOSS0_SUB46800	EQU	$

		RTS
;
BOSS0_SUB47	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB47800		;  no: BOSS0_SUB47800

		LDA	#00040H
		STA	ENTIM1,X
		LDY	#BOSS0_RMODE10
		STY	<ENWRK2,X

BOSS0_SUB47800	EQU	$

		RTS
;
BOSS0_SUB50	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB50800		;  no: BOSS0_SUB50800

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

		LDA	#0FC00H
		STA	ENYSPD,X
		STA	<ENCONT,X

		INC	<ENWRK2,X

BOSS0_SUB50800	EQU	$

		RTS
;
BOSS0_SUB51	EQU	$
		TYX

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

		LDA	<ENCONT,X		;はじめて ?
		BEQ	BOSS0_SUB51100		;  no: BOSS0_SUB51100

		STZ	<ENCONT,X
		LDY	#002			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		STZ	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		RTS

BOSS0_SUB51100	EQU	$
		LDA	ENWRK6,X		;モーフィング終わってる ?
		BNE	BOSS0_SUB51800		;  no: BOSS0_SUB51800

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

		LDA	BOSS0MVF		;移動ロックフラグ解除
		ORA	#0FF00H			;
		STA	BOSS0MVF		;

		LDA	#00040H
		STA	ENTIM1,X
		LDY	#BOSS0_RMODE10
		STY	<ENWRK2,X

BOSS0_SUB51800	EQU	$

		RTS
;
BOSS0_SUB60	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB60800		;  no: BOSS0_SUB60800

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

		STZ	ENYSPD,X
		STZ	ENGPOW,X
		DEC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		LDY	#003			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		INC	<ENWRK2,X

BOSS0_SUB60800	EQU	$

		RTS
;
BOSS0_SUB61	EQU	$
BOSS0_SUB62	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB61800		;  no: BOSS0_SUB61800

		LDY	<ENWRK2,X
		CPY	#BOSS0_RMODE61
		BEQ	BOSS0_SUB61300

		LDY	#00AH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00001			;絵の回転角ＴＯデータのインデックスセット
		BRA	BOSS0_SUB61600

BOSS0_SUB61300	EQU	$
		INC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		LDA	ENMUKI,X		;向き反転
		EOR	#00002			;
		STA	ENMUKI,X		;
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00004			;絵の回転角ＴＯデータのインデックスセット

BOSS0_SUB61600	EQU	$
		STA	BOSS0AI2		;
		INC	<ENWRK2,X

BOSS0_SUB61800	EQU	$

		RTS
;
BOSS0_SUB63	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB63800		;  no: BOSS0_SUB63800

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

		LDA	BOSS0MVF		;移動ロックフラグ解除
		ORA	#0FF00H			;
		STA	BOSS0MVF		;

		LDA	#00040H
		STA	ENTIM1,X
		LDY	#BOSS0_RMODE21
		STY	<ENWRK2,X

BOSS0_SUB63800	EQU	$

		RTS
;
BOSS0_SUB70	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB70800		;  no: BOSS0_SUB70800

		LDA	#0000AH*2		;ぶんぶんカウンターセット
		STA	<ENCONT,X		;

		INC	<ENWRK2,X

BOSS0_SUB70800	EQU	$

		RTS
;
BOSS0_SUB71	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB71800		;  no: BOSS0_SUB71800

		DEC	<ENCONT,X		;ぶんぶん終わり ?
		BPL	BOSS0_SUB71300		;  no: BOSS0_SUB71300

		LDY	#006
		STY	BHEADPAT
		LDY	#00AH			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDA	#00001			;絵の回転角ＴＯデータのインデックスセット
		STA	BOSS0AI2		;
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		INC	<ENWRK2,X

		RTS

BOSS0_SUB71300	EQU	$
		LDA	<ENCONT,X
		AND	#00001
		ASL	A
		DEC	A
		STA	<EWORK0
		CLC
		ADC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		STA	BOSS0AI2		;
		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		CLC				;
		ADC	<EWORK0			;
		STA	<ENWRK4,X		;
		M16
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

BOSS0_SUB71800	EQU	$

		RTS
;
BOSS0_SUB72	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB72800		;  no: BOSS0_SUB72800

		STZ	BHEADPAT
		STZ	BDMGCNT0		;小ダメージカウンタークリア
		LDA	#00040H
		STA	ENTIM1,X
		LDY	#BOSS0_RMODE21
		STY	<ENWRK2,X

BOSS0_SUB72800	EQU	$

		RTS
;
BOSS0_S80_XSPD	EQU	$
		WORD	00100H,0FF00H
;
BOSS0_SUB80	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB80800		;  no: BOSS0_SUB80800

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

		LDY	ENMUKI,X
		LDA	!BOSS0_S80_XSPD,Y
		STA	ENXSPD,X
		INC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		STA	TILTCT
		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X

BOSS0_SUB80800	EQU	$

		RTS
;
BOSS0_SUB81	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB81800		;  no: BOSS0_SUB81800

		INC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		INC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00010H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDA	#0FE00H
		STA	ENYSPD,X
		INC	<ENWRK2,X

BOSS0_SUB81800	EQU	$

		RTS
;
BOSS0_SUB82	EQU	$
		TYX

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

		LDY	#006
		CPY	BHEADPAT
		BEQ	BOSS0_SUB82300

		STY	BHEADPAT

		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON

BOSS0_SUB82300	EQU	$
		LDA	#00008			;止まった ?
		STA	ENXPOW,X		;
		CLC				;
		ADC	ENXSPD,X		;
		CMP	#00010H			;
		BCS	BOSS0_SUB82800		;  no: BOSS0_SUB82800

		STZ	ENXPOW,X
		STZ	ENXSPD,X

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB82800		;  no: BOSS0_SUB82800

		DEC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		DEC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		LDA	#00020H
		STA	TILTCT
		INC	<ENWRK2,X

BOSS0_SUB82800	EQU	$

		RTS
;
BOSS0_SUB83	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB83800		;  no: BOSS0_SUB83800

		LDA	#0000AH*2		;じたばた回数セット
		STA	<ENCONT,X		;
		LDY	#004
		STY	BHEADPAT
		DEC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		DEC	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		INC	<ENWRK2,X

BOSS0_SUB83800	EQU	$

		RTS
;
BOSS0_SUB84	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB84800		;  no: BOSS0_SUB84800

		DEC	<ENCONT,X		;じたばた終わり ?
		BPL	BOSS0_SUB84300		;  no: BOSS0_SUB84300

		LDY	#002
		STY	BHEADPAT
		LDA	#00040H			;ストップタイマーセット
		STA	ENTIM0,X		;
		LDY	#018H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#010H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		INC	<ENWRK2,X
		RTS

BOSS0_SUB84300	EQU	$
		LDA	<ENCONT,X		;絵の回転角ＴＯデータのインデックスセット
		AND	#00001			;
		ASL	A			;
		DEC	A			;
		STA	<EWORK0			;
		CLC				;
		ADC	BOSS0AI2		;
		STA	BOSS0AI2		;
		M8
		LDA	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		CLC				;
		ADC	<EWORK0			;
		STA	<ENWRK4,X		;
		M16
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

BOSS0_SUB84800	EQU	$
		LDA	ENTIM1,X
		BNE	BOSS0_SUB84900

		LDA	#00008H
		STA	ENTIM1,X

BOSS0_SUB84900	EQU	$

		RTS
;
BOSS0_SUB85	EQU	$
		TYX

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

		LDA	<ENCONT,X		;はじめて ?
		BEQ	BOSS0_SUB85100		;  no: BOSS0_SUB85100

		STZ	<ENCONT,X
		LDA	#00020H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		RTS

BOSS0_SUB85100	EQU	$
		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB85800		;  no: BOSS0_SUB85800

		LDA	#00006H*2		;ぐりぐり回数セット
		STA	<ENCONT,X		;
		LDA	BBODYANG
		SEC
		SBC	#00080H
		LDY	ENMUKI,X
		BNE	BOSS0_SUB85300

		EOR	#0FFFFH
		INC	A

BOSS0_SUB85300	EQU	$
		STA	BBODYACP
		INC	<ENWRK2,X

BOSS0_SUB85800	EQU	$

		RTS
;
BOSS0_S86_XSPD	EQU	$
		WORD	0FE00H,00200H
;
BOSS0_SUB86	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB86800		;  no: BOSS0_SUB86800

		DEC	<ENCONT,X		;ぐりぐり終わり ?
		BPL	BOSS0_SUB86300		;  no: BOSS0_SUB86300

		LDA	#00008H
		STA	ENTIM0,X
		INC	<ENWRK2,X
		RTS
;
BOSS0_SUB86300	EQU	$
		LDA	<ENCONT,X		;絵の回転角ＴＯデータのインデックスセット
		AND	#00001			;
		PHP				;
		ASL	A			;
		DEC	A			;
		CLC				;
		ADC	BOSS0AI2		;
		STA	BOSS0AI2		;

		LDA	#00030H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		PLP				;向きを変える ?
		BEQ	BOSS0_SUB86800		;  no: BOSS0_SUB86800

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

BOSS0_SUB86800	EQU	$
		LDA	BBODYANG
		STA	R1
		LDA	BBODYACP
		STA	R2
		LDA	#00080H
		STA	R3
		LDA	#018H*3
		STA	R6
		TXA
		STA	R10
		M_CHIP	M_BOSS0_XPS_REV
		LDX	<ENINDX
		LDA	R1
		STA	BBODYACP

BOSS0_SUB87000	EQU	$

		RTS
;
BOSS0_SUB87	EQU	$
		TYX

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

		LDY	<ENCONT,X		;初めて ?
		BEQ	BOSS0_SUB87100		;  no: BOSS0_SUB87100

		STZ	<ENCONT,X
		LDY	EPXMUK,X
		LDA	!BOSS0_S86_XSPD,Y
		STA	ENXSPD,X
		LDA	#0FA00H
		STA	ENYSPD,X

		LDY	#003H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		STZ	ENWRKC,X		;絵の回転角モーフィング方向フラグセット
		RTS

BOSS0_SUB87100	EQU	$
		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB87800		;  no: BOSS0_SUB87800

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

		LDA	ENXMAX,X
		BNE	BOSS0_SUB87500

		LDA	#00020H			;ストップタイマーセット
		STA	ENTIM0,X		;
		STA	ENXMAX,X
		LDA	#0000CH
		STA	ENBGYP,X
		RTS

BOSS0_SUB87500	EQU	$
		LDA	#00060H
		STA	ENGPOW,X
		LDA	#00800H
		STA	ENYSPD,X
		STA	ENGMAX,X

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

		LDA	#00003H
		STA	<ENCONT,X
		STZ	ENXMAX,X
		LDA	#00020H
		STA	TILTCT2
		LDA	#00004H			;ストップタイマーセット
		STA	ENTIM0,X
		STZ	BHEADPAT
		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON
		INC	<ENWRK2,X

BOSS0_SUB87800	EQU	$

		RTS
;
BOSS0_S88_XSPD	EQU	$
		WORD	0FE00H,00200H
BOSS0_S88_AID	EQU	$
		HEX	03,10
BOSS0_S88_MF	EQU	$
		WORD	0000000000000000B
		WORD	1111110000000000B
;
BOSS0_SUB88	EQU	$
		TYX

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

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

		LDA	<ENCONT,X		;着地処理 ?
		AND	#00001			;
		BNE	BOSS0_SUB88400		;  no: BOSS0_SUB88400

		STZ	ENXSPD,X
		LDA	#00020H
		STA	TILTCT2
		LDA	#00004H			;ストップタイマーセット
		STA	ENTIM0,X		;
		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON

		DEC	<ENCONT,X		;攻撃終わり ?
		BPL	BOSS0_SUB88800		;  no: BOSS0_SUB88800

		LDA	#00080H			;ストップタイマーセット
		STA	ENTIM0,X		;
		STZ	BOSS0BLK		;ＢＧチェックポジションロックフラグクリア
		LDA	#00040H
		STA	ENGPOW,X
		LDA	#00400H
		STA	ENGMAX,X
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		STZ	ENWRKC,X		;絵の回転角モーフィング方向フラグセット
		INC	<ENWRK2,X

		RTS

BOSS0_SUB88400	EQU	$
		DEC	<ENCONT,X
		LDA	<ENCONT,X
		LSR	A
		TAY
		M8
		LDA	!BOSS0_S88_AID,Y	;絵の回転角ＴＯデータのインデックスセット
		STA	BOSS0AI2		;
		M16
		LDY	<ENCONT,X
		LDA	!BOSS0_S88_MF,Y		;モーフィング方向フラグセット
		STA	ENWRK8,X		;
		STA	ENWRKC,X		;絵の回転角モーフィング方向フラグセット

		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDA	#0F800H
		STA	ENYSPD,X
		LDY	EPXMUK,X
		LDA	!BOSS0_S88_XSPD,Y
		STA	ENXSPD,X
		TYA
		STA	ENMUKI,X

BOSS0_SUB88800	EQU	$

		RTS
;
BOSS0_SUB89	EQU	$
BOSS0_SUB97	EQU	$
		TYX

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

		LDA	<ENCONT,X		;はじめて ?
		BEQ	BOSS0_SUB89100		;  no: BOSS0_SUB89100

		STZ	<ENCONT,X
		LDY	#002			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		STZ	BOSS0AI2		;絵の回転角ＴＯデータのインデックスセット
		LDA	#00008H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		RTS

BOSS0_SUB89100	EQU	$
		LDA	ENWRK6,X		;モーフィング終わってる ?
		BNE	BOSS0_SUB89800		;  no: BOSS0_SUB89800

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

		LDA	BOSS0MVF		;移動ロックフラグ解除
		ORA	#0FF00H			;
		STA	BOSS0MVF		;

		STZ	BDMGCNT0		;小ダメージカウンタークリア
		LDY	BDMGCNT1		;大ダメージカウンターＣＭＰデータセット
		STY	BDMGCHK0		;

		LDA	#00040H
		STA	ENTIM0,X
		LDA	#00080H
		STA	ENTIM1,X

		LDY	<ENWRK2,X		;大ダメージから復帰 ?
		CPY	#BOSS0_RMODE89		;
		BEQ	BOSS0_SUB89700		; yes: BOSS0_SUB89700

		STZ	PLMODE
		STZ	TIMER_STOP

BOSS0_SUB89700	EQU	$
		LDY	#BOSS0_RMODE10
		STY	<ENWRK2,X

BOSS0_SUB89800	EQU	$

		RTS
;
BOSS0_SUB8A	EQU	$
BOSS0_SUBA0	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB8A800		;  no: BOSS0_SUB8A800

		LDY	<ENWRK2,X
		CPY	#BOSS0_RMODE8A
		BEQ	BOSS0_SUB8A300

		LDY	#027H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#015H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDA	#00001H
		STA	ENWRK6,X
		LDA	#00040H
		BRA	BOSS0_SUB8A500

BOSS0_SUB8A300	EQU	$
		STZ	<ENCONT,X
		LDA	#00020H

BOSS0_SUB8A500	EQU	$
		STA	ENTIM0,X		;

		INC	<ENWRK2,X

BOSS0_SUB8A800	EQU	$
		LDA	BBODYYZM
		SEC
		SBC	#00008H
		CMP	#000C0H
		BMI	BOSS0_SUB8A900

		STA	BBODYYZM
		STA	R0
		LDA	#00012H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		STA	ENBGYP,X

BOSS0_SUB8A900	EQU	$

		RTS
;
BOSS0_S8B_PXSPD EQU	$
		WORD	0FC00H,00400H
;
BOSS0_SUB8B	EQU	$
		TYX

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

		LDA	BBODYYZM		;甲羅元に戻った ?
		CLC				;
		ADC	#00008H			;
		CMP	#00100H+1		;
		BMI	BOSS0_SUB8B700		;  no: BOSS0_SUB8B700

		STZ	PLMODE
		LDY	#000
		LDA	ENDSXL,X
		CMP	#00080H
		BPL	BOSS0_SUB8B300

		INY
		INY

BOSS0_SUB8B300	EQU	$
		LDA	!BOSS0_S8B_PXSPD,Y
		STA	PLXSPD
		STA	PLMVSP
		LDA	#0FA00H
		STA	PLYSPD
		LDA	#P006
		STA	PLJUMP
		LDA	#001+8000H
		STA	PLSPJP
		STZ	ONLFFG

		LDY	#002
		STY	BHEADPAT
		STY	<ENCONT,X
		LDA	#00020H			;ストップタイマーセット
		STA	ENTIM0,X		;
		LDY	#018H			;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#010H			;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		LDY	#BOSS0_RMODE85
		STY	<ENWRK2,X

		RTS

BOSS0_SUB8B700	EQU	$
		STA	BBODYYZM
		STA	R0
		LDA	#00012H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		STA	ENBGYP,X

BOSS0_SUB8B800	EQU	$

		RTS
;
BOSS0_SUB90	EQU	$
		TYX

		LDA	EPWIDX,X		;定位置まで進んだ ?
		CMP	#000A0H			;
		BPL	BOSS0_SUB90500		;  no: BOSS0_SUB90500

		LDA	#00008
		STA	ENCHPT,X
		STZ	ENXSPD,X

		INC	BOSS_START		;カメック登場させる
		INC	<ENWRK2,X

		RTS

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

		LDA	#00005
		STA	ENTIM1,X

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

BOSS0_SUB90800	EQU	$

		RTS
;
BOSS0_SUB91	EQU	$
		TYX

		LDA	BOSS_START		;カメック、退場した ?
		BPL	BOSS0_SUB91800		;  no: BOSS0_SUB91800

		STZ	BOSS_START		;カメック退場
		INC	<ENWRK2,X

BOSS0_SUB91800	EQU	$

		RTS
;
BOSS0_CHR_VRAD	EQU	$
		WORD	0000H,	    1000H
BOSS0_CHR_BFAD	EQU	$
		WORD	WOB7CHR+1800H,WOB7CHR+1800H
BOSS0_CHR_BANK	EQU	$
		WORD	CHRCCA,	    CHRCCB
;
;------------------------------------------------------------------------
;-		モード７カメボスキャラクターセット			-
;------------------------------------------------------------------------
BOSS0_SUB92	EQU	$
		I16
;
		LDA	#0800H		;(EWK0,1) <-- 最大転送バイト数
		STA	<EWORK0
;
		LDA	CHNG_CHR_BYTE
		BNE	BOSS0_SUB92200	;圧縮データの解凍？ ( no:BOSS0_SUB92200 )
;
		LDA	CHNG_CHR_CNT
		CMP	#02H
		BCC	BOSS0_SUB92100	;キャラクターセット終了？ ( no:BOSS0_SUB92100 )
;
;-------------- キャラクターセット終了 ----------------------------------
		STZ	CHNG_CHR_VRAM	;スクリーンクリアースタートＶＲＡＭアドレスセット
;
		I8
		LDX	<ENINDX
		INC	<ENWRK2,X
		RTS
;
		IDX16
;
BOSS0_SUB92100	EQU	$
		ASL	A
		TAY
		LDA	!BOSS0_CHR_VRAD,Y
		STA	CHNG_CHR_VRAM	;転送先ＶＲＡＭアドレスセット
		LDA	#WOB7CHR+1000H
		STA	CHNG_CHR_DTAD	;転送元アドレスセット
;
;-------------- 圧縮データの解凍 ----------------------------------------
		LDX	!BOSS0_CHR_BFAD,Y ;(X) <-- 圧縮データ格納アドレスセット
		LDA	!BOSS0_CHR_BANK,Y ;(A) <-- キャラクターバンク
		JSL	>UNCOMPRES
;
		STA	CHNG_CHR_BYTE	;解凍データバイト数セット
		INC	CHNG_CHR_CNT	;カウンターＵＰ
;
;-------------- モード７キャラクター８ビット変換 ----------------
		PHA			;(A) save
;
		I8
;
		STA	R12		;(R12) <-- 変換バイト数
		M_CHIP	M7_CHR_CNV
;
		I16
;
		PLA			;(A) load
		ASL	A
		STA	CHNG_CHR_BYTE	;解凍データバイト数セット（×２）

BOSS0_SUB92200	EQU	$
		SEC
		SBC	#0800H
		BCS	BOSS0_SUB92300	;解凍データ終り？ ( no:BOSS0_SUB92300 )
;
;;;;		    CLC
		ADC	#0800H
		STA	<EWORK0		;(EWK0,1) <-- 転送バイト数
		LDA	#00
BOSS0_SUB92300	EQU	$
		STA	CHNG_CHR_BYTE	;余りの解凍データバイト数セット
;
		LDX	CHNG_CHR_DTAD	;(X) <----- 転送元アドレス（Ｌ，Ｈ）
		TXA
		CLC
		ADC	<EWORK0
		STA	CHNG_CHR_DTAD	;次の転送元アドレスセット
		LDA	#BANK WOB7CHR
		STA	WORK1		;(WK1,2) <-- 転送元アドレス（Ｂ）
		LDY	CHNG_CHR_VRAM	;(Y) <----- ＶＲＡＭアドレス
;
;-------------- モード７キャラクター転送 ------------------------
		LDA	<EWORK0		;(A) <-- 転送バイト数
		JSL	>VRAMDX_H_ST
;
		LDA	<EWORK0		;(A) <-- ＶＲＡＭアドレス加算データ
		CLC
		ADC	CHNG_CHR_VRAM
		STA	CHNG_CHR_VRAM	;次のＶＲＡＭアドレスセット
		I8
		LDX	<ENINDX
		RTS
;
;------------------------------------------------------------------------
;-		モード７カメボススクリーンセット			-
;------------------------------------------------------------------------
;
;-------------- モード７カメボススクリーンデータ ------------------------
BOSS0_SCR_DATA	EQU	$			;[line]
		HEX	00,01,02,03,04,05,06,00 ;[0]
		HEX	10,11,12,13,14,15,16,17 ;[1]
		HEX	20,21,22,23,24,25,26,27 ;[2]
		HEX	30,31,32,33,34,35,36,37 ;[3]
		HEX	40,41,42,43,44,45,46,47 ;[4]
		HEX	00,51,52,53,54,55,56,00 ;[5]
		HEX	00,00,62,63,64,65,00,00 ;[6]
;
;-------------- ＢＧモード切り替えＨ−ＤＭＡデータ ----------------------
BOSS0_HDMA_PR	EQU	$
		BYTE	00000000B	;DMA control parameter
		BYTE	05H		;    B bus address
		BYTE	LOW  HDMABUF	;    A	    "     (L)
		BYTE	HIGH HDMABUF	;	    "     (H)
		BYTE	BANK HDMABUF	;	    "     (B)
BOSS0_HDMA_PR_E EQU	$
BOSS0_HDMA_D0	EQU	$
		BYTE	70H		;line no.
		BYTE	07H		;   BG mode 7
		BYTE	2BH		;line no.
		BYTE	07H		;   BG mode 7
		BYTE	01H		;line no.
		BYTE	49H		;   BG mode 1
		HEX	00		;end code
BOSS0_HDMA_D0_E EQU	$
;
BOSS0_HDMA_D1	EQU	$
		BYTE	70H		;line no.
		BYTE	11H,00H		;   BG1,OBJ
		BYTE	2BH		;line no.
		BYTE	11H,00H		;   BG1,OBJ
		BYTE	01H		;line no.
		BYTE	12H,00H		;   BG2,OBJ
		HEX	00		;end code
BOSS0_HDMA_D1_E EQU	$
;
BOSS0_SUB93	EQU	$
;
		I16
;
		LDA	CHNG_CHR_VRAM
		CMP	#04000H
		BCS	BOSS0_SUB93100	;スクリーンクリアー終了？ ( yes:BOSS0_SUB93100 )
;
;-------------- スクリーンクリアー --------------------------------------
		TAY			;(Y) <-- ＶＲＡＭアドレス
;;;;		    CLC
		ADC	#0800H
		STA	CHNG_CHR_VRAM
		LDA	#0800H		;(A) <-- 転送バイト数
		LDX	#00		;(X) <-- 転送データ
		JSL	>VRAMDX_L_C_ST
;
		I8
		LDX	<ENINDX
		RTS
;
		IDX16
;
;-------------- カメボススクリーンセット --------------------------------
BOSS0_SUB93100	EQU	$
		LDA	#0000H		;(EWK0,1) <-- ＶＲＡＭアドレス
		STA	<EWORK0
		LDA	#BOSS0_SCR_DATA ;(EWK2,3) <-- スクリーンデータアドレス（Ｌ，Ｈ）
		STA	<EWORK2
		LDA	#BANK BOSS0_SCR_DATA
		STA	WORK1		;(WK1,2)  <-- スクリーンデータアドレス（Ｂ）
;
		LDA	#7		;(EWK4,5) <-- ライン数
		STA	<EWORK4
BOSS0_SUB93200	EQU	$
		LDY	<EWORK0		;(Y) <-- ＶＲＡＭアドレス
		TYA
		CLC
		ADC	#(20H*4)
		STA	<EWORK0
		LDX	<EWORK2		;(X) <-- 転送元アドレス
		TXA
		CLC
		ADC	#08H
		STA	<EWORK2
		LDA	#08H		;(A) <-- 転送バイト数
		JSL	>VRAMDX_L_ST
;
		DEC	<EWORK4
		BNE	BOSS0_SUB93200
;
;--------------	 カラー初期化 ----------------------------------------
		I8
		JSR	BOSS0_COL_INIT
		I16
;
;-------------- ＢＧモード切り替えＨ−ＤＭＡセット ----------------------
		M8
;
		LDX	#BOSS0_HDMA_PR_E-BOSS0_HDMA_PR-1
BOSS0_SUB93400	EQU	$
		LDA	!BOSS0_HDMA_PR,X
		STA	4370H,X
		DEX
		BPL	BOSS0_SUB93400
		LDX	#BOSS0_HDMA_D1_E-BOSS0_HDMA_D1-1
BOSS0_SUB93500	EQU	$
		LDA	!BOSS0_HDMA_D0,X
		STA	>HDMABUF,X
		LDA	!BOSS0_HDMA_D1,X
		STA	>HDMABUF2,X
		DEX
		BPL	BOSS0_SUB93500
		LDA	#11000000B	;Ｈ−ＤＭＡ”ＯＮ”
		TSB	HD420C
;
;-------------- モード７用パラメータセット ------------------------------
		LDA	#0AH		;ＮＭＩタイプＮｏ．セット
		STA	NMITYP
		LDA	#69H		;ＢＧ２スクリーンベース変更（ＢＧ２←ＢＧ１）
		STA	BG2SCF
;
		M16
;
		LDA	#00010010B	;ＢＧ２表示
		STA	MANSEL
;
		LDA	#100H
		STA	M7A		;拡大、縮小、回転パラメータ
		STA	M7D		;
		STZ	M7B		;
		STZ	M7C		;
		LDA	#(40H/2)
		STA	M7X		;回転の中心Ｘ
		LDA	#(38H/2)
		STA	M7Y		;回転の中心Ｙ
		LDA	#0080H
		STA	SCCV3		;モード７ＢＧのスクロールカウンターＶ
;
		I8
		LDX	<ENINDX
		LDA	#00004			;キャラパターンカウンターセット
		STA	<ENCONT,X
		LDA	#0FD00H
		STA	ENYSPD,X
		LDA	#0000AH			;キャラパターンチェンジタイマーセット
		STA	ENTIM1,X		;

		INC	<ENWRK2,X

BOSS0_SUB94000	EQU	$

		RTS
;
BOSS0_S94_CHPT	EQU	$
		HEX	0F,0B,0C,0D
;
BOSS0_SUB94	EQU	$
		TYX

		LDA	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	BOSS0_SUB94000		;  no: BOSS0_SUB94000
;
		DEC	<ENCONT,X		;キャラパターンチェンジ終わり ?
		BMI	BOSS0_SUB94500		; yes: BOSS0_SUB94500
;
		LDY	<ENCONT,X
		LDA	!BOSS0_S94_CHPT,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X

BOSS0_SUB94400	EQU	$

		RTS

BOSS0_SUB94500	EQU	$
		LDA	ENCBFG,X		;地面に着いてる ?
		BEQ	BOSS0_SUB94400		;  no: BOSS0_SUB94400
;
		LDA	#0110111001101100B
		STA	ENMOD0,X
		LDA	#0010000001000001B
		STA	ENMOD1,X
		LDA	#1010100100000010B
		STA	ENMOD2,X
;
		INC	BOSS0_BG3USE		;ＢＧ３使用フラグセット
;
		LDA	ENXPSL,X
		SEC
		SBC	#00002
		STA	ENXPSL,X
		LDA	ENYPSL,X
		CLC
		ADC	#00004H
		STA	ENYPSL,X
;
		STZ	<ENWRK0,X		;モーフィング率加算値
		STZ	ENWRK6,X		;ＴＯ　ＥＮＣＨＰＴ
		STZ	ENCLOR,X
		STZ	<ENCONT,X
;		LDA	#00040H			;甲羅のＸ倍率セット
		LDA	#00050H			;甲羅のＸ倍率セット
		STA	BBODYXZM		;
		STA	BBODYYZM		;甲羅のＹ倍率セット
		JSR	BOSS0_FOOT_SET
		JSR	BOSS0_HAND_SET
		JSR	BOSS0_HEAD_SET
		JSR	BOSS0_TAIL_SET
		INC	OBM7WF
		LDX	<ENINDX
;
		INC	BOSS0ART		;回転オブジェ使用フラグセット
		LDA	#00001
		STA	BOSS0MVF		;移動ロックフラグセット
		INC	BOSS0BLK		;ＢＧチェックポジションロック
		LDA	#0FFFEH
		STA	ENBGYP,X
;
		LDA	#1111111000000000B	;モーフィングフラグセット
		STA	ENWRKA,X		;
		STZ	ENWRK8,X		;モーフィング方向フラグセット
		STZ	ENWRK6,X		;モーフィング率クリア
;
		LDA	#025H			;ＦＲＯＭ　ＥＮＣＨＰＴセット
		STA	ENCHPT,X		;
		TAY				;ＴＯ　ＥＮＣＨＰＴセット
		STY	<ENWRK4,X		;
		LDY	#012H			;絵の回転角ＦＲＯＭデータのインデックスセット
		STY	BOSS0AID		;絵の回転角ＴＯデータのインデックスセット
		STY	BOSS0AI2		;
		INC	<ENWRK2,X

		PLA				;直接ＲＴＬ
		RTL
;
BOSS0_SUB95	EQU	$
		TYX

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

;		LDA	#00008H			;ぐりぐり回数セット
		LDA	#00010H			;ぐりぐり回数セット
		STA	<ENCONT,X		;
		STZ	ENWRK6,X		;モーフィング率クリア
		INC	BOSS0AI2
		LDA	#00018H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;

		LDA	#00087H			;［Ｓ］
		JSL	>SOUND_3_ON

		INC	<ENWRK2,X

BOSS0_SUB95800	EQU	$

		RTS
;
BOSS0_SUB96	EQU	$
		TYX

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUB96600		;  no: BOSS0_SUB96600

		LDA	<ENCONT,X		;ぐりぐり終わり ?
		BPL	BOSS0_SUB96200		;  no: BOSS0_SUB96200

		STZ	BOSS0BLK		;ＢＧチェックポジションロックフラグクリア
		LDA	#00080H			;ストップタイマーセット
		STA	ENTIM0,X		;
		INC	<ENWRK2,X

		RTS

BOSS0_SUB96200	EQU	$
		DEC	<ENCONT,X		;ぐりぐり終わり ?
		BPL	BOSS0_SUB96300		;  no: BOSS0_SUB96300

		INC	<ENWRK4,X		;ＴＯ　ＥＮＣＨＰＴセット
		LDA	#00012H
		BRA	BOSS0_SUB96500

BOSS0_SUB96300	EQU	$
		LDA	<ENCONT,X		;絵の回転角ＴＯデータのインデックスセット
		AND	#00001
		ASL	A
		DEC	A
		CLC
		ADC	BOSS0AI2

BOSS0_SUB96500	EQU	$
		STA	BOSS0AI2

		LDA	#00018H			;モーフィング率加算値セット
		STA	<ENWRK0,X		;
		STZ	ENWRK6,X		;モーフィング率クリア

BOSS0_SUB96600	EQU	$
		LDA	BBODYXZM
		CLC
		ADC	#00001
		CMP	#00100H
		BMI	BOSS0_SUB96900

		LDA	#00100H

BOSS0_SUB96900	EQU	$
		STA	BBODYXZM
		STA	BBODYYZM
		STA	R6
		LDA	#00018H-2
		STA	R0
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		SEC
		SBC	#00008H
		STA	ENBGYP,X

		RTS
;
BOSS0_SUBA1	EQU	$
		TYX

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

		LDA	ENWRK6,X		;モーフィング終わり ?
		BNE	BOSS0_SUBA1300		;  no: BOSS0_SUBA1300

		LDA	#00005*2H
		STA	<ENCONT,X

;;		LDA	#000C0H			;ストップタイマーセット
;;		STA	ENTIM0,X

		INC	GOAL_BOSS_CLEAR

		INC	BOSS0AID		;手足を隠す
		INC	<ENWRK2,X

		LDA	ENXPSL,X
		STA	<EWORK0
		LDA	ENYPSL,X
		STA	<EWORK2
;		LDA	#00380H
		LDA	#00340H
		JSL	>BSCLW_SET_B_T

		RTS

BOSS0_SUBA1300	EQU	$
		LDA	#00008H
		STA	<ENWRK0,X

BOSS0_SUBA1800	EQU	$

		RTS
;
BOSS0_SA2_XZADD EQU	$
;		WORD	00005H,0FFFCH
		WORD	00003H,0FFFEH,00002H,0FFFFH,00001H
BOSS0_SA2_YZADD EQU	$
;		WORD	0FFFBH,00004H
		WORD	0FFFDH,00002H,0FFFEH,00001H,0FFFFH
BS0BR_I_XPOS	EQU	$
		WORD	00004H,00008H,0000EH,00014H,0001CH,00020H,00028H,0002CH
BS0BR_I_YPOS	EQU	$
		WORD	0FFFCH,0FFF8H,00000H,0FFF0H,0FFF4H,00008H,00002H,0FFFCH
BS0BR_I_CHPT	EQU	$
		WORD	00000H,00001H,00002H,00001H,00000H,00001H,00000H,00002H
BS0BR_I_XSPD	EQU	$
		WORD	00100H,00480H,00180H,00300H,001C0H,00240H,00080H,00200H
		WORD	0FD00H,0FF00H,0FE00H,0F840H,0FD80H,0FF80H,0FAC0H,0FE80H
BS0BR_I_YSPD	EQU	$
		WORD	0FA00H,0FD80H,0FC00H,0FF80H,0FC80H,0FB00H,0F780H,0FE00H
		WORD	0FB80H,0FF00H,0F800H,0FB00H,0FE80H,0FD00H,0FB80H,0FA80H
;
BOSS0_SUBA2	EQU	$
		TYX

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

		LDA	ENTIM1,X		;縮ませる ?
		BNE	BOSS0_SUBA2300		; yes: BOSS0_SUBA2300

		DEC	<ENCONT,X		;縮むの終わり ?
		DEC	<ENCONT,X		;
		BMI	BOSS0_SUBA2500		; yes: BOSS0_SUBA2500
		BNE	BOSS0_SUBA2100

		LDA	#00040H
		BRA	BOSS0_SUBA2200

BOSS0_SUBA2100	EQU	$
;		LDA	#00010H
		LDA	#00020H

BOSS0_SUBA2200	EQU	$
		STA	ENTIM1,X

BOSS0_SUBA2300	EQU	$
		LDA	<ENCONT,X		;最後の縮み ?
		BNE	BOSS0_SUBA2380		;  no: BOSS0_SUBA2380

		LDA	FRCNT2
		AND	#00001
		BNE	BOSS0_SUBA2400

		LDY	#004
		BRA	BOSS0_SUBA2390

BOSS0_SUBA2380	EQU	$
		AND	#00002
		TAY

BOSS0_SUBA2390	EQU	$
		LDA	!BOSS0_SA2_XZADD,Y
		CLC
		ADC	BBODYXZM
		STA	BBODYXZM
		LDA	!BOSS0_SA2_YZADD,Y
		CLC
		ADC	BBODYYZM
		STA	BBODYYZM
		STA	R0
		LDA	#00016H
		STA	R6
		M_CHIP	MULTIPLY
		LDX	<ENINDX
		LDA	R0
		SEC
		SBC	#00008
		STA	ENBGYP,X

BOSS0_SUBA2400	EQU	$

		RTS

BOSS0_SUBA2500	EQU	$
		LDA	ENXPSL,X
		STA	BOSS0LXP
		LDA	ENYPSL,X
		STA	BOSS0LYP
		INC	BOSS0_BG3USE

		LDA	#CIPCHD2+60A0H+001	;(R12) <-- 転送元アドレスセット
		STA	R12			;
		LDA	#BANK CIPCHD2+60A0H+001 ;(R13) <-- 転送元バンクセット
		STA	R13			;

		LDA	#00010H
		STA	R8
		STA	R9
		LDA	#00100H			;(R6) <- Ｘ倍率セット
		STA	R6			;

		STZ	R3			;(R3) <- ビットマップ座標＿Ｘセット
		STZ	R2			;(R2) <- ビットマップ座標＿Ｙセット
;
;-------------- OBJ mode 7 set ----------------------------------
		M_CHIP	C_32_ZOOM
		INC	OBM7WF
		LDX	<ENINDX
;
		LDA	#0110111001101100B
		STA	ENMOD0,X
		LDA	#0010000001000000B
		STA	ENMOD1,X
		LDA	#0011000100000001B
		STA	ENMOD2,X
;
		LDA	#0000CH
		STA	ENCHPT,X
		LDA	#0FB00H
		STA	ENYSPD,X
		LDA	#0000AH
		STA	ENGPOW,X
		LDA	#00020H
		STA	ENCLOR,X
;
		LDA	#(010H-1)*2
BOSS0_SUBA2600	EQU	$
		STA	<EWORK0
		TAY
		LDA	!BS0BR_I_XSPD,Y
		STA	<EWORK4
		LDA	!BS0BR_I_YSPD,Y
		STA	<EWORK8
		TYA
		BIT	#00008H*2
		BNE	BOSS0_SUBA2700

		LDA	!BS0BR_I_XPOS,Y
		BRA	BOSS0_SUBA2800

BOSS0_SUBA2700	EQU	$
		AND	#00007H*2
		TAY
		LDA	!BS0BR_I_XPOS,Y
		EOR	#0FFFFH
		INC	A

BOSS0_SUBA2800	EQU	$
		STA	<EWORK2
		LDA	!BS0BR_I_YPOS,Y
		STA	<EWORK6
		LDA	!BS0BR_I_CHPT,Y
		STA	<EWORKA

		LDA	#BS0BR
		JSL	>EXINSR

		LDA	BOSS0LXP
		CLC
		ADC	<EWORK2
		STA	EXXPSL,Y
		LDA	BOSS0LYP
		CLC
		ADC	<EWORK6
		STA	EXYPSL,Y

		LDA	#00040H*2
		STA	EXTIM0,Y

		LDA	<EWORK4
		STA	EXXSPD,Y
		LDA	<EWORK8
		STA	EXYSPD,Y

		LDA	#00004H
		STA	EXXPOW,Y

		LDA	<EWORKA
		STA	EXCHPT,Y

		LDA	<EWORK0
		DEC	A
		DEC	A
		BPL	BOSS0_SUBA2600

		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON

		INC	<ENWRK2,X

		RTS
;
BOSS0_SUBA3	EQU	$
		TYX

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

		LDA	ENCLOR,X		;Ｖフリップさせる
		BIT	#00080H
		BNE	BOSS0_SUBA3600

		ORA	#00080H			;
		STA	ENCLOR,X		;
		LDA	#00010H
		STA	ENGPOW,X
		LDA	ESCCH1
		CLC
		ADC	#00080H
		STA	ENXPSL,X
		LDA	ESCCV1
		SEC
		SBC	#00018H
		STA	ENYPSL,X
		LDA	#00400H
		STA	ENYSPD,X
		LDA	#00082H			;［Ｓ］
		JSL	>SOUND_3_ON

BOSS0_SUBA3600	EQU	$
		LDY	ENDSYL+1,X		;画面下に消えた ?
		DEY				;
		BMI	BOSS0_SUBA3800		;  no: BOSS0_SUBA3800

;;;;;;;;		LDA	#00005			;［Ｓ］
;;;;;;;;		STA	SOUND_0
;
		LDA	#00060H
		STA	ENTIM0,X
		INC	<ENWRK2,X

BOSS0_SUBA3800	EQU	$
BOSS0_SUBA4000	EQU	$

		RTS
;
BOSS0_SUBA4	EQU	$
		TYX

		LDA	ENTIM0,X
		BNE	BOSS0_SUBA4000
;
		M8
		LDA	#11000000B
		TRB	HD420C
		M16
		LDY	#02
		STY	NMITYP
		LDA	#00010001B
		STA	MANSEL
;
		STZ	TROBJ_ARIA
		PLA
		JMP	>ENCLEAR_NORETN
;;;;;;;;		JMP	>BOSS_CLEAR
;
;************************************************************************
;*		initial ( ボスデモ　プレイヤーコントローラー )		*
;************************************************************************
DMPLCIN		EQU	$			;-- dmplcin --
		RTL
;
;************************************************************************
;*		move	( ボスデモ　プレイヤーコントローラー )		*
;************************************************************************
DMPLC_SUB	EQU	$
DMPLC_0		EQU	$
		WORD	DMPLC_SUB0		;WALK
DMPLC_10	EQU	$
		WORD	DMPLC_SUB10		;横オートスクロール
DMPLC_11	EQU	$
		WORD	DMPLC_SUB11		;横オートスクロール
DMPLC_20	EQU	$
		WORD	DMPLC_SUB20		;プレイヤースクロール範囲セット
D_QRTS00	EQU	$
		WORD	D_QUICK_RTS		;クイックリターン
D_SLMS00	EQU	$
		WORD	D_SB_SLMS00		;カベ、降りてくる
D_MPKS00	EQU	$
		WORD	D_SB_MPKS00		;カベ、せりあがり
D_BS0S00	EQU	$
		WORD	D_SB_BS0S00		;床崩れる
;
;
BOSS0_PL_CTRL	EQU	$
SLIME_S_ST	EQU	$
		WORD	SLM_S0,0FFFFH,001A0H,00760H,00000	;カベ、降りてくる
		WORD	P_WALK,00020H,STOP00			;待ち
		WORD	B_H_S2,0FFFFH,000C0H,001A0H,00001	;オートスクロール
		WORD	P_SH_L,00001H,001A0H,07FFFH		;プレイヤースクロール範囲セット
		WORD	QRTS00,00001H				;クイックリターン
SLIME_S_ED	EQU	$
MPACK_S_ST	EQU	$
		WORD	MPK_S0,0FFFFH,002B0H,007D0H,00005	;カベ、せりあがり
		WORD	B_H_S2,0FFFFH,000C0H,002B0H,00001	;オートスクロール
		WORD	P_SH_L,00001H,002B0H,002F0H		;プレイヤースクロール範囲セット
MPACK_S_ED	EQU	$
BOSS0_S_ST	EQU	$
		WORD	P_WALK,00002H,STOP00			;待ち
		WORD	B_H_S1,0FFFFH,00080H			;オートスクロール
		WORD	P_WALK,00020H,STOP00			;待ち
		WORD	BS0_S0,0FFFFH,00000H			;床崩れる
		WORD	P_WALK,00001H,R_KEY0			;右向き
		WORD	P_WALK,00020H,STOP00			;待ち
		WORD	B_H_S1,0FFFFH,00020H			;オートスクロール
		WORD	QRTS00,00001H,00020H,000B0H		;クイックリターン
BOSS0_S_ED	EQU	$
;
DMPLC_IDXADD	EQU	$
;			[P_WALK]
		HEX	006
;			[B_H_S1] [B_H_S2] [P_SH_L]
		HEX	006,	 00A,	  008
;			[QRTS00]
		HEX	004
;			[SLM_S0]
		HEX	00A
;			[MPK_S0]
		HEX	00A
;			[BS0_S0]
		HEX	006
;
;---------------< DEMO MODE >-------------------
;
P_WALK		EQU	0
B_H_S1		EQU	P_WALK+1
B_H_S2		EQU	B_H_S1+1
P_SH_L		EQU	B_H_S2+1
QRTS00		EQU	P_SH_L+1
;
SLM_S0		EQU	QRTS00+1	;ＢＧ書き換え
;
MPK_S0		EQU	SLM_S0+1	;カベ、せりあがり
;
BS0_S0		EQU	MPK_S0+1	;床崩れる
;
;P_WALK		WORD	[MODE], [TIMER], [KEY_VALUE]
;B_H_S1		WORD	[MODE], 0FFFFH,	 [PLDSXLの目標値]
;B_H_S2		WORD	[MODE], 0FFFFH,	 [SCRL SPEED],	  [SCCH1の目標値], [補正値(1 OR -1)]
;P_SH_L		WORD	[MODE], 00001H,	 [SCRL_MIN],	  [SCRL_MAX]
;QRTS00		WORD	[MODE], 00001H
;SLM_S0		WORD	[MODE], 0FFFFH,	 [X POS.],	  [Y POS.],	   [クリア]
;MPK_S0		WORD	[MODE], 0FFFFH,	 [X POS.],	  [Y POS.],	   [回数]
;BS0_S0		WORD	[MODE], 0FFFFH,	 [00000H]
;
;---------------< KEY VALUE >--------------------
;
U_KEY0		EQU	00800H
D_KEY0		EQU	00400H
L_KEY0		EQU	00200H
R_KEY0		EQU	00100H
STOP00		EQU	00000H
;P_KEY_JUMP
;P_KEY_NAGE
;P_KEY_BERO
;
SLIME_START_ST	EQU	(SLIME_S_ST-BOSS0_PL_CTRL)
SLIME_START_ED	EQU	(SLIME_S_ED-BOSS0_PL_CTRL)
MPACK_START_ST	EQU	(MPACK_S_ST-BOSS0_PL_CTRL)
MPACK_START_ED	EQU	(MPACK_S_ED-BOSS0_PL_CTRL)
BOSS0_START_ST	EQU	(BOSS0_S_ST-BOSS0_PL_CTRL)
BOSS0_START_ED	EQU	(BOSS0_S_ED-BOSS0_PL_CTRL)
;
DMPLCMV		EQU	$			;-- dmplcmv --
		JSL	>ENMDCK

		LDA	ENTIM0,X
		BNE	DMPLCMV0500

		STZ	P_KEYC1L
		STZ	P_KEYC2L

		LDA	<ENWRK0,X
		CMP	ENWRKC,X
		BNE	DMPLCMV0300

		LDA	#PMOV
		STA	PLMODE

		JMP	>ENCLEAR

DMPLCMV0300	EQU	$
		I16
		LDY	<ENWRK0,X
		LDA	!BOSS0_PL_CTRL,Y
		STA	<ENWRK2,X
		LDA	!BOSS0_PL_CTRL+4,Y
		STA	<ENWRK4,X
		LDA	!BOSS0_PL_CTRL+6,Y
		STA	ENWRK6,X
		LDA	!BOSS0_PL_CTRL+8,Y
		STA	ENWRK8,X
		LDA	!BOSS0_PL_CTRL+2,Y
		STA	ENTIM0,X
		LDY	<ENWRK2,X
		LDA	!DMPLC_IDXADD,Y
		AND	#000FFH
		CLC
		ADC	<ENWRK0,X
		STA	<ENWRK0,X
		I8

DMPLCMV0500	EQU	$
		TXY
		LDA	<ENWRK2,X
		ASL	A
		TAX
		JSR	(DMPLC_SUB,X)

		RTL
;
DMPLC_SUB0	EQU	$
		TYX

		LDA	<ENWRK4,X
		STA	P_KEYC1L
		STA	P_KEYC2L

		RTS
;
DMPLC_SUB10	EQU	$
		TYX

		STY	ATSCRL_H
		LDA	#PDEM
		STA	PLMODE

		LDA	PLDSXL
		CMP	<ENWRK4,X
		BNE	DMPLC_SUB10100

		STZ	ENTIM0,X

		RTS

DMPLC_SUB10100	EQU	$
		BPL	DMPLC_SUB10300

		DEC	SCCH1
		BRA	DMPLC_SUB10500

DMPLC_SUB10300	EQU	$
		INC	SCCH1

DMPLC_SUB10500	EQU	$
		LDA	SCCH1
		STA	ATSCRL_SCCH1

		RTS
;
DMPLC_SUB11	EQU	$
		TYX

		STY	ATSCRL_H

		LDA	ENWRKA,X
		CLC
		ADC	<ENWRK4,X

DMPLC_SUB11100	EQU	$
		CMP	#00100H
		BMI	DMPLC_SUB11800

		SEC
		SBC	#00100H
		PHA

		LDA	SCCH1
		SEC
		SBC	ENWRK6,X
		EOR	ENWRK8,X
		BMI	DMPLC_SUB11500

		PLA
		STZ	ENTIM0,X
		STZ	ATSCRL_H

		RTS

DMPLC_SUB11500	EQU	$
		LDA	SCCH1
		CLC
		ADC	ENWRK8,X
		STA	SCCH1
		PLA
		BRA	DMPLC_SUB11100

DMPLC_SUB11800	EQU	$
		STA	ENWRKA,X

		LDA	SCCH1
		STA	ATSCRL_SCCH1

		RTS
;
DMPLC_SUB20	EQU	$
		TYX

		LDA	<ENWRK4,X		;スクロール右端セット
		STA	PLSCRL_MINX
		LDA	ENWRK6,X		;スクロール左端セット
		STA	PLSCRL_MAXX

D_SB_SLMS0000	EQU	$

		RTS
;
D_QUICK_RTS	EQU	$
		TYX

		INC	BOSS0FLG
		PLA
		JMP	>ENCLEAR
;
SLMS_TIM1	EQU	$
		WORD	00020H,00000H,0001FH,00020H,00020H
SLMS_BGDT	EQU	$
		WORD	UT0169,UT0167,UT0168,UT0169,UT0169
SLMS_XADD	EQU	$
		WORD	00000H,00010H,0FFF0H,00010H,0FFF0H
SLMS_YADD	EQU	$
		WORD	00000H,00000H,00010H,00000H,00010H
SLMS_EXST	EQU	$
		WORD	00001H,00000H,00001H,00001H,00001H
;
D_SB_SLMS00	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	D_SB_SLMS0000

		LDY	ENWRK8,X
		LDA	!SLMS_TIM1,Y
		STA	ENTIM1,X
		LDA	!SLMS_EXST,Y
		PHP
		LDA	ENWRK6,X		;BG write Y pos. set
		STA	BGYPS1
		CLC
		ADC	!SLMS_YADD,Y
		STA	ENWRK6,X
		LDA	<ENWRK4,X		;BG write X pos. set
		STA	BGXPS1			;
		CLC
		ADC	!SLMS_XADD,Y
		STA	<ENWRK4,X
		LDA	!SLMS_BGDT,Y		;BG change uit no. set
		STA	BGUTNO
		LDA	#BGCG			;BG change type no. set
		STA	BGCGNO
		JSL	>UNITCHG

		LDX	<ENINDX
		LDA	ENWRK6,X		;終わった ?
		CMP	#007B0H			;
		BNE	D_SB_SLMS0030		;  no: D_SB_SLMS0030
		LDA	<ENWRK4,X		;
		CMP	#001A0H			;
		BNE	D_SB_SLMS0030		;  no: D_SB_SLMS0030

		STZ	ENTIM0,X

D_SB_SLMS0030	EQU	$
		LDA	ENWRK8,X
		INC	A
		INC	A
		CMP	#0000AH
		BMI	D_SB_SLMS0050

		LDA	#00000

D_SB_SLMS0050	EQU	$
		STA	ENWRK8,X

		PLP
		BEQ	D_SB_SLMS0080

		LDA	#00047H		;［Ｓ］
		JSL	>SOUND_3_ON

		LDA	#FSMK0
		JSL	>EXINSR

		LDA	BGXPS1
		CLC
		ADC	#00008
		STA	EXXPSL,Y
		LDA	BGYPS1
		CLC
		ADC	#00008
		STA	EXYPSL,Y

		LDA	#00004
		STA	EXTIM0,Y

		LDA	#00006H
		STA	EXCHPT,Y
		STA	EXWRK0,Y

D_SB_SLMS0080	EQU	$
D_SB_MPKS0000	EQU	$

		RTS
;
MPK_BGCHG_DT	EQU	$
		WORD	UT797C,UT797D,UT797E,UT797F
		WORD	UT0000,UT7940
		WORD	UT7941,UT7942
		WORD	UT7943,UT7944
		WORD	UT7946,UT7947
		WORD	UT0000,UT7940
;
D_SB_MPKS00	EQU	$
		TYX

		LDA	ENTIM3,X		;ストップ ?
		BNE	D_SB_MPKS0000		; yes: D_SB_MPKS0000

		LDA	#00020H			;ストップタイマーセット
		STA	ENTIM3,X		;

		LDA	#00047H			;［Ｓ］
		JSL	>SOUND_3_ON

		LDA	<ENWRK4,X		;BG write X pos. set
		STA	BGXPS1
		STA	<EWORK4
		LDA	ENWRK6,X		;BG write Y pos. set
		STA	BGYPS1
		LDA	#BGCG			;BG change type no. set
		STA	BGCGNO

		LDA	#00006
		SEC
		SBC	ENWRK8,X
		ASL	A
		ASL	A
		CLC
		ADC	#00008
		STA	<EWORK0
		STA	<EWORK2

D_SB_MPKS0010	EQU	$
		LDA	<EWORK2
		SEC
		SBC	<EWORK0
		TAY
		LDA	!MPK_BGCHG_DT,Y		;BG change unit no. set
		STA	BGUTNO
		JSL	>UNITCHG

		LDA	BGXPS1
		CLC
		ADC	#00010H
		STA	BGXPS1

		LDA	<EWORK0
		AND	#00002
		BEQ	D_SB_MPKS0030

		LDA	<EWORK4
		STA	BGXPS1
		LDA	BGYPS1
		CLC
		ADC	#00010H
		STA	BGYPS1

D_SB_MPKS0030	EQU	$
		DEC	<EWORK0
		DEC	<EWORK0
		BNE	D_SB_MPKS0010

		LDX	<ENINDX
		LDA	ENWRK6,X		;次のＢＧ書き換え開始Ｙ　ＰＯＳ．計算
		SEC
		SBC	#00010H
		STA	ENWRK6,X

		DEC	ENWRK8,X		;処理終わり ?
		BNE	D_SB_MPKS0080		;  no: D_SB_MPKS0080

		STZ	PLXSPD
		STZ	PLMVSP
		STZ	ENTIM0,X
		INC	BOSS0FLG		;マザーパックン出現許可フラグセット

D_SB_MPKS0080	EQU	$
D_SB_BS0S00000	EQU	$

		RTS
;
D_SB_BS0S00	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	D_SB_BS0S00000

		LDA	<ENWRK4,X		;初めて ?
		BNE	D_SB_BS0S00300		;  no: D_SB_BS0S00300

		LDA	#00003
		STA	ENWRKA,X
		LDA	SCCH1
		AND	#0FFE0H
		STA	<ENWRK4,X
		LDA	SCCV1
		CLC
		ADC	#000B0H
		STA	ENWRK6,X

D_SB_BS0S00300	EQU	$
		LDA	<ENWRK4,X
		STA	BGXPS1			;BG write X pos. set
		LDA	ENWRK6,X
		STA	BGYPS1			;BG write Y pos. set
		LDA	#BGCG			;BG change type no. set
		STA	BGCGNO
		LDA	#UT0000			;BG change uit no. set
		STA	BGUTNO
		JSL	>UNITCHG

		LDA	BGYPS1
		CLC
		ADC	#00010H
		STA	BGYPS1
		JSL	>UNITCHG

		LDA	BGXPS1
		CLC
		ADC	#00010H
		STA	BGXPS1
		JSL	>UNITCHG

		LDA	BGYPS1
		SEC
		SBC	#00010H
		STA	BGYPS1
		JSL	>UNITCHG

		LDX	<ENINDX
		LDA	#BR2CR
		JSL	>EXINSR

		LDA	<ENWRK4,X
		STA	EXXPSL,Y
		LDA	ENWRK6,X
		STA	EXYPSL,Y

		LDA	#00002
		STA	EXTIM0,Y

		LDA	#0000DH
		STA	EXCHPT,Y

		LDA	#00036H
		STA	EXCLOR,Y

		LDA	#00047H		;［Ｓ］
		JSL	>SOUND_3_ON

		DEC	ENWRKA,X		;終わり ?
		BNE	D_SB_BS0S00700		;  no: D_SB_BS0S00700

		STZ	ENTIM0,X

		RTS

D_SB_BS0S00700	EQU	$
		LDA	#00010H
		STA	ENTIM1,X
		ASL	A		;[ LDA	#00020H ]
		CLC
		ADC	<ENWRK4,X
		STA	<ENWRK4,X

		RTS
;
;
;
;
;
;
;
;
;
;************************************************************************
;*		initial ( ぷりん )					*
;************************************************************************
PURININ		EQU	$			;-- purinin --
		LDA	ENWRKA,X
		CMP	ENWRKC,X
		BNE	PURININ0800

		DEC	ENWRKA,X
		STA	<ENWRK2,X

		LDA	#00002H
		STA	ENTIM1,X
		INC	ENCHPT,X

PURININ0800	EQU	$

		RTL
;
;************************************************************************
;*		move	( ぷりん )					*
;************************************************************************
;		ENWRK0	use
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4	ぷるぷる回数
;		ENWRK6	プレイヤーＯＮフラグ
;
;		ENCONT	キャラパターンフラグ
;
;		ENTIM2	プレイヤーチェックロックタイマー
;
PURIN_SUB	EQU	$
		WORD	PURIN_SUB0	;ノーマル
		WORD	PURIN_SUB1	;ショットされた敵を跳ね返す
		WORD	PURIN_SUB2	;立ち直る
		WORD	PURIN_SUB3	;潰れる
		WORD	PURIN_SUB4	;復活１
		WORD	PURIN_SUB5	;復活２
;
PURINMV		EQU	$			;-- purinmv --
;		ldy	#004h
;		sty	2100h

		JSL	>PURIN_MDCK

		JSR	PURIN_PLCHK

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

		LDA	#0000011000100000B		;食える
		LDY	<ENWRK2,X
		CPY	#002
		BMI	PURINMV0800

		LDA	#0000011001100000B		;食えない

PURINMV0800	EQU	$
		STA	ENMOD0,X

;		ldy	#00fh
;		sty	2100h

		RTL
;
PURIN_MDCK	EQU	$
		LDA	ENSTFG			;処理停止中 ?
		ORA	BIRIBIRI
		ORA	ITEMNO
		BEQ	PURIN_MDCK0100		;  no: PURIN_MDCK0100

		PLY
		PLA
		RTL

PURIN_MDCK0100	EQU	$
		LDA	ENMOD1,X
		AND	#1111111111100001B
		LDY	ENSHOT,X		;ショットされてる ?
		BNE	PURIN_MDCK0200		; yes: PURIN_MDCK0200

		ORA	#0000000000001000B
		STA	ENMOD1,X
		JMP	PURIN_MDCK1000		;  no: PURIN_MDCK1000

PURIN_MDCK0200	EQU	$
		STA	ENMOD1,X

;;;;;;;;		LDY	ECRSFG,X		;敵にあたった ?
;;;;;;;;		DEY				;
;;;;;;;;		BMI	PURIN_MDCK0300		;  no: PURIN_MDCK0300
		STZ	<EWORKE
		TXA
		STA	R1
		M_CHIP	MY_ENCROS2

PURIN_MDCK0250	EQU	$
		LDX	<ENINDX
		LDY	R14
		BMI	PURIN_MDCK0290
		BEQ	PURIN_MDCK0290

		LDA	ENMODE,Y		;あたった敵は動いてる ?
		CMP	#EMOVE			;
		BNE	PURIN_MDCK0300		;  no: PURIN_MDCK0300
;
;;;;;;;;		LDA	ENMOD0,Y		;あたった敵はショットした敵とあたる ?
;;;;;;;;		AND	#0000000000100000B	;
;;;;;;;;		BNE	PURIN_MDCK0300		;  no: PURIN_MDCK0300
;
		LDA	ENMOD1,Y		;ひっくり返る ?
		AND	#0000100000000000B	;
;;;;;;;;		BEQ	PURIN_MDCK0300		;  no: PURIN_MDCK0300
		BEQ	PURIN_MDCK0290		;  no: PURIN_MDCK0290
;;;;;;;;		BNE	PURIN_MDCK0280		; yes: PURIN_MDCK0280
;;;;;;;;
;;;;;;;;		LDA	ENMYNO,Y		;？くも ?
;;;;;;;;		CMP	#QKM00			;
;;;;;;;;		BMI	PURIN_MDCK0300		;
;;;;;;;;		CMP	#QKM1F+1		;
;;;;;;;;		BPL	PURIN_MDCK0300		;  no: PURIN_MDCK0300
;;;;;;;;
;;;;;;;;PURIN_MDCK0280	EQU	$
		LDA	ENMYNO,Y
		CMP	#KATI0
		BEQ	PURIN_MDCK0290
		CMP	#KATI1
		BEQ	PURIN_MDCK0290
		CMP	#KATI2
		BEQ	PURIN_MDCK0290

;
;-------------- 敵を蹴散らす --------------------
		PHY
		TYX
		JSL	>ENDEATH_SET	;敵の死亡セット
		PLY
		LDA	#00
		STA	ENXPOW,Y
		LDA	#0FE00H
		STA	ENYSPD,Y
;
		INC	<EWORKE
;
		LDX	<ENINDX
		LDA	#040H
		STA	ENGPOW,Y
;
		LDA	ENXSPD,X
		ASR16
		STA	ENXSPD,Y
;
		JSL	>FSMK0_SET

		LDX	#BANK MY_ENCROS2
		LDA	R15
		JSL	>CHIPON
		BRA	PURIN_MDCK0250

PURIN_MDCK0290	EQU	$
		LDY	<EWORKE
		BEQ	PURIN_MDCK0300

PURIN_RETURN	EQU	$
		TXY			;(Y) <-- index
		LDA	ENMYNO,X	;(A) <-- enemy no.
		JSL	>ESTATST	;enemy status set
		LDA	#ENRINT
		STA	<EWORK0
		LDA	#BANK ENRINT
		STA	<EWORK2

		JML	(EWORK0)
;
PURIN_MDCK0300	EQU	$
		LDA	ENCBFG,X		;壁にあたった ?
		AND	#00001100B		;
		BEQ	PURIN_MDCK0400		;  no: PURIN_MDCK0400

		INC	ENWRKA,X
		INC	ENWRKC,X
		BRA	PURIN_RETURN

PURIN_MDCK0400	EQU	$
		LDA	ENCBFG,X		;足がついてる ?
		AND	#000001B		;
		BEQ	PURIN_MDCK0700		;  no: PURIN_MDCK0700
;
		JSL	>XSDOWN			;X speed down
		LDA	<ENWRK0,X		;バウンドする ?
		CMP	#02H			;
		BCC	PURIN_MDCK0500		; yes: PURIN_MDCK0500
;
;-------------- 敵ならＸスピードが０になるまで --
		LDA	ENXSPD,X		;Ｘスピードが０ ?
		BNE	PURIN_MDCK0600		;  no: PURIN_MDCK0600
;
		LDA	ENTIM0,X		;ウェイト ?
		BEQ	PURIN_RETURN		;  no: PURIN_RETURN

		PLY
		PLA
		RTL
;
;-------------- bound set -----------------------
PURIN_MDCK0500	EQU	$
		INC	<ENWRK0,X

PURIN_MDCK0600	EQU	$
		LDA	#0FD80H
		STA	ENYSPD,X
		LDA	#00040H
		STA	ENGPOW,X
;;;;;;;;		STA	ENTIM0,X

PURIN_MDCK0700	EQU	$
		LDA	ENTIM1,X
		AND	#00003
		BNE	PURIN_MDCK0800

		LDA	#00004
		STA	ENTIM1,X

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

PURIN_MDCK0800	EQU	$
		PLY
		PLA

PURIN_MDCK0900	EQU	$
		RTL

PURIN_MDCK1000	EQU	$
		LDA	ENMODE,X
		CMP	#EMOVE
		BEQ	PURIN_MDCK0900

		CMP	#EEATM			;食われてる ?
		BNE	PURIN_MDCK1800		;  no: PURIN_MDCK1800

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

		LDA	ENMOD1,X
		AND	#1111110011111111B	;行ったり来たりしない
		STA	ENMOD1,X		;
		LDA	#00002
		STA	ENWRKA,X
		STA	ENWRKC,X
		ASL	A
		STA	ENCHPT,X

PURIN_MDCK1800	EQU	$
		PLY
		PLA
		RTL
;
PURIN_PLCHK	EQU	$
		LDY	ENCHPT,X		;オブジェチェックする ?
		CPY	#004			;
		BPL	PURIN_PLCHK0800		;  no: PURIN_PLCHK0800

		LDY	ECRSFG,X		;プレイヤーと接触した ?
		BPL	PURIN_PLCHK1000		;  no: PURIN_PLCHK1000

		LDY	<ENWRK2,X		;
		CPY	#003			;
		BPL	PURIN_PLCHK0800		;

		LDA	EPWIDY,X		;プレイヤーに上から踏まれた ?
		SEC				;
		SBC	PWIDEY			;
		SEC				;
		SBC	EWIDEY,X		;
		CMP	#0FFF8H			;
		BCC	PURIN_PLCHK0500		;  no: PURIN_PLCHK0500
						;
		LDY	PLJUMP			;
		BEQ	PURIN_PLCHK0800		;
		LDY	PLYSPD+1		;
		BMI	PURIN_PLCHK0800		;
						;
		STZ	PLXSPD
		STZ	PLMVSP
		STZ	PLYSPD
		STZ	PLDOSN
		INC	ONLFFG
		LDA	ENYPSL,X
		CLC
		ADC	#00008-20H
		STA	PLYPSL
		INC	ENWRK6,X		;プレイヤーＯＮフラグセット

PURIN_PLCHK0400 EQU	$
		STZ	<ENCONT,X
		STZ	ENXSPD,X
		STZ	ENTIM1,X
		LDY	#003
		STY	<ENWRK2,X
;;;;;;;;		LDA	#00062H
		LDA	#0005FH			;［Ｓ］
		JSL	>SOUND_3_ON
;;;;;;;;		LDA	#00014H			;［Ｓ］
;;;;;;;;		STA	SOUND3

		RTS

PURIN_PLCHK0500 EQU	$
		JSL	>PLFLST

PURIN_PLCHK0800 EQU	$

		RTS

PURIN_PLCHK1000 EQU	$
		BEQ	PURIN_PLCHK0800

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

		LDA	ENSHOT-1,Y
		BEQ	PURIN_PLCHK0800

		LDA	ENGPOW-1,Y
		CMP	#00040H
		BMI	PURIN_PLCHK0400

		LDA	<ENWRK2,X
		CMP	#00001
		BEQ	PURIN_PLCHK1300
		CMP	#00003
		BEQ	PURIN_PLCHK1300

		LDA	#00001
		STA	<ENWRK2,X
		STZ	ENCHPT,X
		STZ	<ENCONT,X
		LDA	#00003
		STA	ENTIM1,X
		PHY
		LDA	#00013H		;［Ｓ］
		JSL	>SOUND_3_ON
		PLY
;;;;;;;;		LDA	#00008		;［Ｓ］
;;;;;;;;		STA	SOUND3

PURIN_PLCHK1300 EQU	$
		LDA	#00040H
		STA	ENTIM0,X

		LDA	#0FE00H
		STA	ENYSPD-1,Y

		LDA	ENXSPD-1,Y
		CLC
		ADC	#00080H
		CMP	#00100H
		BCS	PURIN_PLCHK1500

		LDA	#00010H
		STA	ENTIM0,X
		ASL	A		;[ LDA	#00020H ]
		STA	ENTIM2,X
		LDA	#0FC00H
		STA	ENYSPD-1,Y

		LDA	ENMUKI,X
		DEC	A
		PHP
		LDA	#0FE00H
		PLP
		BPL	PURIN_PLCHK1600

		LDA	#00200H
		BRA	PURIN_PLCHK1600

PURIN_PLCHK1500 EQU	$
		LDA	ENXSPD-1,Y
		EOR	#0FFFFH
		INC	A

PURIN_PLCHK1600 EQU	$
		STA	ENXSPD-1,Y

		STZ	ENXSPD,X

		RTS
;
PURIN_S0_XSPD	EQU	$
		WORD	0FFC0H,00040H
PURIN_S0_SEQ	EQU	$
		HEX	000,001,002,003,002,001
PURIN_S0_TIM1	EQU	$
		HEX	008,006,006,008,006,006
;
PURIN_SUB0	EQU	$
		TYX

		LDA	ENTIM0,X
		BNE	PURIN_SUB0800

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

PURIN_SUB0600	EQU	$
		LDA	ENTIM1,X
		BNE	PURIN_SUB0800

		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#006
		BMI	PURIN_SUB0700

		STZ	<ENCONT,X
		LDY	#000

PURIN_SUB0700	EQU	$
		LDA	!PURIN_S0_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!PURIN_S0_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

PURIN_SUB0800	EQU	$

		RTS
;
PURIN_S1_SEQ	EQU	$-1
		HEX	001,002,003,002,001,000,001,002,003,002,001
		HEX	002,003,002,001,002,003,002,001
PURIN_S1_TIM1	EQU	$-1
		HEX	003,003,003,003,003,003,003,003,004,004,004
		HEX	004,004,006,006,006,010,006,006
;
PURIN_SUB1	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	PURIN_SUB1800

		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#00014H
		BMI	PURIN_SUB1700

PURIN_SUB1100	EQU	$
		STZ	ENCHPT,X
		STZ	<ENCONT,X
		LDA	#00008
		STA	ENTIM1,X
		STZ	<ENWRK2,X

		RTS

PURIN_SUB1700	EQU	$
		LDA	!PURIN_S1_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!PURIN_S1_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

PURIN_SUB1800	EQU	$

		RTS
;
PURIN_S2_SEQ	EQU	$-1
		HEX	002,003,002,001
PURIN_S2_TIM1	EQU	$-1
		HEX	002,010,006,006
;
PURIN_SUB2	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	PURIN_SUB2800

		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#005
		BPL	PURIN_SUB1100

		LDA	!PURIN_S2_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!PURIN_S2_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

PURIN_SUB2800	EQU	$

		RTS
;
PURIN_S3_SEQ	EQU	$-1
		HEX	00C,00B,008,009,00A,009,008
PURIN_S3_TIM1	EQU	$-1
		HEX	004,002,004,004,004,004,060
PURIN_S3_PXPREV EQU	$
		HEX	008,00A,00C
;
PURIN_SUB3	EQU	$
		TYX

		LDA	ENTIM1,X		;パターンチェンジ ?
		BEQ	PURIN_SUB3010		; yes: PURIN_SUB3010
		JMP	PURIN_SUB3800		;  no: PURIN_SUB3800

PURIN_SUB3010	EQU	$
		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#003
		BEQ	PURIN_SUB3020
		JMP	PURIN_SUB3600

PURIN_SUB3020	EQU	$
		LDA	#PURBR
		JSL	>EXINSR
		LDA	#00008
		STA	EXCHPT,Y
		CLC
		ADC	ENXPSL,X
		STA	EXXPSL,Y
		LDA	ENYPSL,X
		CLC
		ADC	#00004
		STA	EXYPSL,Y
		LDA	#00002
		STA	EXTIM0,Y

		LDA	<RANDM0
		STA	<EWORK6
		XBA
		STA	<EWORK8
		LDA	ENXPSL,X
		STA	<EWORKA
		LDA	ENYPSL,X
		STA	<EWORKC
		LDY	#003

PURIN_SUB3100	EQU	$
		PHY
		LDA	#PURI0
		JSL	>ENINSR
		BCC	PURIN_SUB3200

		LDA	<EWORK6
		AND	#0003FH
		SEC
		SBC	#00020H-008+004
		STA	<EWORK4
		CLC
		ADC	<EWORKA
		STA	ENXPSL,Y
		CLC
		ADC	#00008
		STA	R8
		LDA	<EWORK8
		AND	#0001FH
		EOR	#0FFFFH
		SEC
		SBC	#00004-01
		STA	<EWORK2
		CLC
		ADC	<EWORKC
		STA	ENYPSL,Y
		CLC
		ADC	#00008H
		STA	R0
		PHY
		M_CHIPR M_BGUNIT_READ
		LDX	<ENINDX
		PLY
		LDA	R6
		CMP	#UT0000
		BNE	PURIN_SUB3170

		TYX
		JSL	>ENCLEAR
		LDX	<ENINDX
		BRA	PURIN_SUB3190

PURIN_SUB3170	EQU	$
		LDA	<EWORK6
		XBA
		AND	#0001FH
		CLC
		ADC	#00050H
		STA	ENTIM0,Y

PURIN_SUB3190	EQU	$
		LDA	<EWORK6
		EOR	#0FFFFH
		ROR	A
		ROR	A
		ROR	A
		ROR	A
		INC	A
		STA	<EWORK6
		LDA	<EWORK8
		ROR	A
		ROR	A
		ROR	A
		EOR	#0FFFFH
		DEC	A
		STA	<EWORK8

		PLY
		DEY
		BEQ	PURIN_SUB3300
		JMP	PURIN_SUB3100

PURIN_SUB3200	EQU	$
		PLY

PURIN_SUB3300	EQU	$
		LDY	<ENCONT,X
		BRA	PURIN_SUB3700

PURIN_SUB3600	EQU	$
		CPY	#008
		BMI	PURIN_SUB3700

		LDA	#00009
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X
		INC	A	;[ LDA	#00005H ]			;ぷるぷる回数
		STA	<ENWRK4,X		;
		STZ	<ENCONT,X
		INC	<ENWRK2,X

		RTS

PURIN_SUB3700	EQU	$
		LDA	!PURIN_S3_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	!PURIN_S3_TIM1,Y
		AND	#000FFH
		STA	ENTIM1,X

PURIN_SUB3800	EQU	$
		LDA	ENWRK6,X		;プレイヤーに踏まれた ?
		BEQ	PURIN_SUB3900		;  no: PURIN_SUB3900

		LDY	<ENCONT,X
		CPY	#003			;プレイヤーの補正する ?
		BPL	PURIN_SUB3900		;  no: PURIN_SUB3900

		LDA	!PURIN_S3_PXPREV,Y
		AND	#000FFH
		SEC
		SBC	#00020H
		CLC
		ADC	ENYPSL,X
		STA	PLYPSL
		STZ	PLXSPD
		STZ	PLMVSP
		STZ	PLYSPD
		INC	ONLFFG

PURIN_SUB3900	EQU	$

		RTS
;
PURIN_S4_SEQ	EQU	$
		HEX	009,00A,009,008
;
PURIN_SUB4	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	PURIN_SUB4800

		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#004
		BMI	PURIN_SUB4700

;;;;;;;;		LDA	#003BH			;［Ｓ］
		LDA	#00003			;［Ｓ］
		JSL	>SOUND_3_ON
;;;;;;;;		LDA	#00009			;［Ｓ］
;;;;;;;;		STA	SOUND0

		STZ	<ENCONT,X
		LDY	#000
		DEC	<ENWRK4,X
		BNE	PURIN_SUB4700

		LDA	#0000BH
		STA	ENCHPT,X
		LDA	#00003
		STA	ENTIM1,X
		STA	<ENCONT,X
		INC	<ENWRK2,X
		RTS

PURIN_SUB4700	EQU	$
		LDA	!PURIN_S4_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	#00004
		STA	ENTIM1,X

PURIN_SUB4800	EQU	$

		RTS
;
PURIN_S5_SEQ	EQU	$-1
		HEX	00C,000,00D,00E,00F,010,00F,00E,00D,000,002,003,002,001
;
PURIN_SUB5	EQU	$
		TYX

		LDA	ENTIM1,X
		BNE	PURIN_SUB5800

		INC	<ENCONT,X
		LDY	<ENCONT,X
		CPY	#00FH
		BMI	PURIN_SUB5700

		STZ	ENCHPT,X
		STZ	<ENCONT,X
		LDA	#00040H
		STA	ENTIM0,X
		LDA	#00043H
		STA	ENTIM1,X
		STZ	<ENWRK2,X

		RTS

PURIN_SUB5700	EQU	$
		LDA	!PURIN_S5_SEQ,Y
		AND	#000FFH
		STA	ENCHPT,X
		LDA	#00003
		STA	ENTIM1,X

PURIN_SUB5800	EQU	$

		RTS
;
;************************************************************************
;*		initial ( ぷりんのかす )				*
;************************************************************************
PURI0IN		EQU	$			;-- puri0in --
		RTL
;
;************************************************************************
;*		move	( ぷりんのかす )				*
;************************************************************************
PURI0MV		EQU	$			;-- puri0mv --
		JSL	>ENMDCK

		LDY	<ENWRK2,X
		BNE	PURI0MV0100

		INC	<ENWRK2,X

PURI0MV0080	EQU	$
		RTL

PURI0MV0100	EQU	$
		LDA	ENTIM0,X
		BNE	PURI0MV0800

		LDY	<ENWRK0,X
		BNE	PURI0MV0500

		LDA	#00020H
		STA	ENGPOW,X
		LDA	#00008
		STA	ENTIM1,X

		INC	<ENWRK0,X

PURI0MV0500	EQU	$
		LDA	ENTIM1,X
		BNE	PURI0MV0800

		LDA	#00008
		STA	ENTIM1,X

		LDY	ENCHPT,X
		CPY	#002
		BPL	PURI0MV0800

		INC	ENCHPT,X

PURI0MV0800	EQU	$
		LDA	#00006
		STA	ENYUSN,X

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

		JMP	>ENCLEAR
;
;************************************************************************
;*		initial ( はりまんねん )				*
;************************************************************************
HARIOIN		EQU	$			;-- harioin --
		RTL
;
;************************************************************************
;*		move	( はりまんねん )				*
;************************************************************************
;		ENWRK0	キャラパターンインデックス
;		ENWRK2	ROUTINE MODE INDEX
;		ENWRK4	キャラパターン切り換えカウンター
;		ENWRK6	倍率
;		ENWRK8
;		ENWRKA
;		ENWRKC
;
;		ENCONT
;
;		ENTIM0	ストップタイマー
;		ENTIM1	キャラパターンチェンジタイマー
;		ENTIM2	スモーク効果発生タイマー
;		ENTIM3	プレイヤーチェックロックタイマー
;
HARIO_SUB	EQU	$
		WORD	HARIO_SUB0	;はしれはしれ
		WORD	HARIO_SUB1	;ぷるぷるズーム
;
HARIOMV		EQU	$			;-- hariomv --
		LDA	ENMOD2,X
		LSR	A
		BCC	HARIOMV0100

		JSL	>TROBJ_OAM_4x4

HARIOMV0100	EQU	$
		JSL	>ENMDCK

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

		JSR	HARIO_ROT_SET

		LDY	ECRSFG,X
		BPL	HARIOMV0700

		JSL	>PLFLST

HARIOMV0700	EQU	$

		RTL
;
HARIO_CHAR	EQU	$
		WORD	CIPCHD2+6000H+000
		WORD	CIPCHD2+6020H+000
;
HARIO_ROT_SET	EQU	$
		LDA	ENMOD2,X		;回転エリアを使ってる ?
		LSR	A			;
		BCC	HARIO_R_SET0800		;  no: HARIO_R_SET0800

		TXA
		STA	R10
		LDA	#00C00H			;EWIDE * 100H
		STA	R0			;

		LDA	ENWRK6,X		;(R6) <- 倍率セット
		STA	R6			;

		LDY	<ENWRK0,X		;chara data address set
		LDA	!HARIO_CHAR,Y
		STA	R12
		LDA	#BANK CIPCHD2+6000H+000 ;chara data bank set
		STA	R13

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

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

		M_CHIP	M_HARIO_SET

		LDX	<ENINDX

		INC	OBM7WF		;mode 7 OBJ chara DMA "ON"

HARIO_R_SET0800 EQU	$

		RTS
;
HARIO_S0_XMAX	EQU	$
		WORD	0FE80H,00180H
;		WORD	0FE00H,00200H
HARIO_SMK	EQU	$
		WORD	00010H,0FFF8H
;
HARIO_SUB0	EQU	$
		TYX

		LDY	ENMUKI,X
		LDA	!HARIO_S0_XMAX,Y
		STA	ENXMAX,X
		LDA	#00020H
		STA	ENXPOW,X

		LDY	ENTIM3,X		;プレイヤーチェックロック ?
		BNE	HARIO_SUB0300		; yes: HARIO_SUB0300

		LDA	EPWIDX,X		;プレイヤー、近づいてきた ?
		CLC				;
		ADC	#00020H			;
		CMP	#00040H			;
		BCS	HARIO_SUB0300		;  no: HARIO_SUB0300
						;
		LDA	EPWIDY,X		;
		CLC				;
		ADC	#00040H			;
		CMP	#00080H			;
		BCS	HARIO_SUB0300		;

		JSL	>TROBJ_SR_4x4		;回転エリア確保できた ?
		BCC	HARIO_SUB0300		;  no: HARIO_SUB0300

		LDA	#0111110001100000B	;食えない
		STA	ENMOD0,X		;
		LDA	#0010000101110101B	;ＯＡＭ数　（１−＞４）
		STA	ENMOD2,X		;
		STZ	ENCHPT,X
		LDA	#00080H			;初期倍率セット
		STA	ENWRK6,X
		STZ	ENXSPD,X
		STZ	ENXPOW,X
		LDA	#00040H
		STA	ENTIM0,X
		INC	<ENWRK2,X

		RTS

HARIO_SUB0300	EQU	$
		LDY	ENTIM1,X		;キャラパターンチェンジ ?
		BNE	HARIO_SUB0700		;  no: HARIO_SUB0700

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

HARIO_SUB0700	EQU	$
		LDY	ENTIM2,X		;スモーク効果発生 ?
		BNE	HARIO_SUB0800		;  no: HARIO_SUB0800

		LDA	#00004H
		STA	ENTIM2,X

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

		LDA	ENMUKI,X
		STA	EXMUKI,Y
		LDA	ENXPSL,X
		STA	EXXPSL,Y	;X pos set

		LDA	#00002H		;timer set
		STA	EXTIM0,Y	;
		INC	A		;[ LDA	#00003H ]
		STA	EXWRK0,Y	;counter set
		ASL	A		;[ LDA	#00006H ]
		CLC
		ADC	ENYPSL,X
		STA	EXYPSL,Y	;Y pos set

HARIO_SUB0800	EQU	$

		RTS
;
HARIO_SUB1	EQU	$
		TYX

		LDY	EPXMUK,X
		TYA
		STA	ENMUKI,X

		LDY	ECRSFG,X
		DEY
		BMI	HARIO_SUB1200

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

		TYX
		JSL	>ENDEATH_SET_4
		STZ	ENTIM0,X

HARIO_SUB1200	EQU	$
		LDY	ENTIM0,X		;ぷるぷる終わり ?
		BEQ	HARIO_SUB1300		; yes: HARIO_SUB1300

		LDA	ENWRK6,X		;ズームアップ
		CLC				;
		ADC	#00010H			;
		CMP	#00100H			;終了 ?
		BMI	HARIO_SUB1500		;  no: HARIO_SUB1500
						;
		LDA	#00100H			;
		BRA	HARIO_SUB1500

HARIO_SUB1300	EQU	$
		LDA	ENWRK6,X		;ズームダウン
		SEC				;
		SBC	#00010H			;
		CMP	#00080H			;終了 ?
		BPL	HARIO_SUB1500		;  no: HARIO_SUB1500

		LDA	#00040H			;プレイヤーチェックロックタイマーセット
		STA	ENTIM3,X		;
		STZ	<ENWRK2,X
		LDA	#0111111000000000B	;食える
		STA	ENMOD0,X		;
		LDA	#0000100101110100B	;ＯＡＭ数　（４−＞１）
		STA	ENMOD2,X		;
		JSL	>TROBJ_CLEAR
		LDA	#00080H

HARIO_SUB1500	EQU	$
		STA	ENWRK6,X		;

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

		LDA	#00004
		STA	ENTIM1,X
		LSR	A		;[ LDA	#00002 ]
		EOR	<ENWRK0,X		;キャラパターンチェンジ
		STA	<ENWRK0,X		;

HARIO_SUB1800	EQU	$

		RTS
;
;************************************************************************
;*		initial ( つむじくん )					*
;************************************************************************
TUMUJ_I_XMAX	EQU	$
		WORD	0FE00H,00200H
		WORD	0FD00H,00300H
TUMUJ_I_XPOW	EQU	$
;		WORD	00010H,00018H
		WORD	00004H,00006H
		WORD	00008H,0000CH
TUMUJ_I_XPOS	EQU	$
		WORD	0FFD0H,00120H
;
TUMUJIN		EQU	$			;-- tumujin --
		LDA	ENYPSL,X		;湧きだしフラグ ?
		BIT	#00010H			;
		BEQ	TUMUJIN0500		;  no: TUMUJIN0500

		AND	#0FFE0H
		STA	ENWRKC,X
		LDA	ENXPSL,X
		AND	#00010H
		LSR	A
		LSR	A
		LSR	A
		TAY
		LDA	!TUMUJ_I_XPOS,Y
		STA	ENWRKA,X
		LDA	#000FFH
		STA	ENYUSN,X
		LDA	#0000000001100000B	;食えない、投げた敵あたらない
		STA	ENMOD0,X		;
		LDA	#0100000000000000B	;ＢＧチェックしない、敵じゃない
		STA	ENMOD1,X		;
		LDA	#0000000000000010B	;範囲クリアなし
		STA	ENMOD2,X		;
		INC	<ENWRK2,X
		LDY	TUMJ_ST_FG
		BNE	TUMUJIN0300

		INC	TUMJ_ST_FG		;つむじ風のわきだしフラグ”ＯＮ”

TUMUJIN0300	EQU	$

		RTL

TUMUJIN0500	EQU	$
		LDA	ENXPSL,X		;出てきてもいい方向 ?
		PHA				;
		SEC				;
		SBC	ESCCH1			;
		STA	<EWORK0			;
		PLA				;
		AND	#00010H			;
		DEC	A			;
		EOR	<EWORK0			;
		BMI	TUMUJIN0600		; yes: TUMUJIN0600

		JMP	>ENCLEAR

TUMUJIN0600	EQU	$
		LDA	<RANDM0
		AND	#00004
		STA	<EWORK0
		LDA	ENXPSL,X
		AND	#00010H
		LSR	A
		LSR	A
		LSR	A
		STA	ENMUKI,X

TUMUJIN0700	EQU	$
		ORA	<EWORK0
		TAY
		LDA	!TUMUJ_I_XMAX,Y
		STA	ENXMAX,X

		LDA	<EWORK0
		LSR	A
		STA	<ENWRK4,X
		TAY
		LDA	!TUMUJ_I_XPOW,Y
		STA	ENXPOW,X

TUMUJIN0800	EQU	$

		RTL
;
;************************************************************************
;*		move	( つむじくん )					*
;************************************************************************
;		ENWRK0	湧きだしたやつの ROUTINE INDEX
;		ENWRK2	湧きだしフラグ
;		ENWRK4	スピードフラグ 0...遅い 2...速い
;		ENWRK6
;		ENWRK8
;		ENWRKA	セットＸ　ＰＯＳ．ＡＤＤ．データ
;		ENWRKC	セットＹ　ＰＯＳ．
;
TUMUJ_BABY_XSPD EQU	$
		WORD	0FE00H,00200H
TUMUJ_PLXSPD	EQU	$
		WORD	0FE00H,00200H
;
TUMUJMV		EQU	$			;-- tumujmv --
		LDY	ENSHOT,X		;プレイヤーに吐きだされたところ ?
		BEQ	TUMUJMV0080		;  no: TUMUJMV0080

		LDA	<RANDM0
		AND	#00004
		STA	<EWORK0
		LDA	ENMUKI,X
		JSL	>TUMUJIN0700
		STZ	ENSHOT,X
		STZ	ENGMAX,X

TUMUJMV0080	EQU	$
		JSL	>ENMDCK

		LDY	<ENWRK2,X		;湧きだしフラグ ?
		BEQ	TUMUJMV0100
		JMP	TUMUJMV1000		; yes: TUMUJMV1000

TUMUJMV0100	EQU	$
		LDA	ENTIM0,X
		BNE	TUMUJMV0800

		LDY	ECRSFG,X		;プレイヤーと接触した?
		BPL	TUMUJMV0800		;  no: TUMUJMV0800

		LDA	EPWIDY,X
		SEC
		SBC	PWIDEY
		SEC
		SBC	EWIDEY,X
		CMP	#0FFF6H
		BCC	TUMUJMV0500

		LDY	PLYSPD+1
		BMI	TUMUJMV0800
		LDY	PLJUMP
		BEQ	TUMUJMV0500

		JSL	>EPCRCK
		RTL

TUMUJMV0500	EQU	$
		JSL	>PLFLST

		LDA	BABYNO			;赤ちゃん乗せてた ?
		BPL	TUMUJMV0800		;  no: TUMUJMV0800

		AND	#00FFFH			;8000H CLEAR
		STA	BABYNO

		LDA	#00040H
		STA	ENTIM0,X
		ASL	A
		ASL	A
		STA	PROTSP

		LDY	ENMUKI,X
		LDA	!TUMUJ_PLXSPD,Y
		CLC
		ADC	PLXSPD
		STA	PLXSPD
		STA	PLMVSP

		JSL	>BABYM_SHABN_C7

TUMUJMV0800	EQU	$
		LDA	ENTIM1,X
		BNE	TUMUJMV0900

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

TUMUJMV0900	EQU	$
		LDY	<ENWRK4,X
		LDA	ENDSXL,X		;画面の中央 ?
		SEC				;
		SBC	#00040H			;
		CMP	#00100H-040H*2		;
		BCS	TUMUJMV0A00		;  no: TUMUJMV0A00

		TYA
		CLC
		ADC	#0004
		TAY

TUMUJMV0A00	EQU	$
		LDA	!TUMUJ_I_XPOW,Y
		STA	ENXPOW,X

		RTL
;
TUMUJMV1000	EQU	$
		LDY	TUMJ_ST_FG		;湧きだし終わり ?
		BEQ	TUMUJMV1300		; yes: TUMUJMV1300

		LDA	ENDSYL,X		;画面内 ?
		CLC				;
		ADC	#00040H			;
		CMP	#00100H+040H*2		;
		BCC	TUMUJMV1500		; yes: TUMUJMV1500

		STZ	TUMJ_ST_FG

TUMUJMV1300	EQU	$
		JMP	>ENCLEAR

TUMUJMV1500	EQU	$
		LDY	<ENWRK0,X		;湧きだしたやついる ?
		BEQ	TUMUJMV1600		;  no: TUMUJMV1600

		LDA	ENMODE,Y		;湧きだしたやつ生きてる ?
		CMP	#EMOVE			;
		BNE	TUMUJMV1700		;
		LDA	ENMYNO,Y		;
		CMP	#TUMUJ			;
		BNE	TUMUJMV1700		;  no: TUMUJMV1700

TUMUJMV1600	EQU	$
		LDA	ENTIM0,X		;湧きだす ?
		BNE	TUMUJMV1800		;  no: TUMUJMV1800

TUMUJMV1700	EQU	$
		LDA	#TUMUJ
		JSL	>ENINSR_I
		BCC	TUMUJMV1800

		LDA	ESCCH1
		AND	#0FFEFH
		CLC
		ADC	ENWRKA,X
		STA	ENXPSL,Y
		LDA	ENWRKC,X
		STA	ENYPSL,Y
		STY	<ENWRK0,X

		LDA	#00040H*4
		STA	ENTIM0,X

TUMUJMV1800	EQU	$

		RTL
;
;************************************************************************
;*		intial	( スイカの種 )					*
;************************************************************************
SUIKTIN		EQU	$
		RTL
;
;************************************************************************
;*		move	( スイカの種 )					*
;************************************************************************
SUIKTMV		EQU	$
		LDY	ENCBFG,X
		BEQ	SUIKTMV_0040	;ＢＧ当たり？ ( no:SUIKTMV_0040 )
;
SUIKT_DOWN_ST	EQU	$
		LDA	#TANE0		;(A) <-- 効果Ｎｏ．
		JSL	>EXINSR		;効果エリア確保
;
		LDA	ENXPSL,X	;Ｘ座標セット
		STA	EXXPSL,Y
		LDA	ENYPSL,X	;Ｙ座標セット
		STA	EXYPSL,Y
		LDA	ENXSPD,X
		STA	EXXSPD,Y	;Ｘスピードセット
		BEQ	SUIKTMV_0030	;ヨコＢＧ当たり？ ( no:SUIKTMV_0030 )
;
		CMP	#8000H
		ROR	A
		EOR	#0FFFFH
		INC	A
		STA	EXXSPD,Y
		LDA	#0FD80H
SUIKTMV_0030	EQU	$
		STA	EXYSPD,Y	;Ｙスピードセット
		LDA	#0FFFFH
		STA	EXTIM0,Y	;タイマーセット
		JMP	>ENCLEAR
;
SUIKTMV_0040	EQU	$
		LDA	ENWRK8,X
		BEQ	SUIKTMV_0050	;敵からショット？ ( no:SUIKTMV_0050 )
;
;-------------- プレイヤーとの衝突チェック ------------------------------
		LDY	ECRSFG,X
		BPL	SUIKTMV_0050	;プレイヤーと衝突？ ( no:SUIKTMV_0050 )
		LDA	PLFLSH
		BNE	SUIKTMV_0050	;プレイヤー安全時間？ ( yes:SUIKTMV_0050 )
;
		JSL	>PLFLST		;プレイヤーダメージ
		JSL	>ENDEATH_SET_4
		LDA	#01H		;[ ※ミニゲーム用 ]
		STA	MISS_P		;
;
SUIKTMV_0050	EQU	$
		JSL	>ENMDCK
		RTL
;
;
;
;
		END
