;************************************************************************
;*									*
;*	MARIO CHIP MACRO						*
;*									*
;************************************************************************
;************************************************************************
;*	CHAR BUF 0 CLR							*
;*		mCHAR_CLR_4X	BASE_ADDR, CHARS, REG0, REG1, REG2, REG3*
;*			(USE R0, R12, R13)				*
;*		CHARS * 4						*
;*						Aug. 23(Mon), JST 1993	*
;************************************************************************
mCHAR_CLR_4X	MACRO		BASE_ADDR, CHARS, REG0, REG1, REG2, REG3
		LOCAL		LP
		IWT		R0, #00200H
		MOVE		REG0, BASE_ADDR
		TO		REG1
		ADD		REG0
		TO		REG2
		ADD		REG1
		TO		REG3
		ADD		REG2
;
		SUB		R0
		IWT		R12, #(20H * CHARS) / 2
		MOVE		R13, R15
LP
		STW		(REG0)
		INC		REG0
		INC		REG0
		STW		(REG1)
		INC		REG1
		INC		REG1
		STW		(REG2)
		INC		REG2
		INC		REG2
		STW		(REG3)
		INC		REG3
		LOOP
		INC		REG3
		ENDM
;************************************************************************
;*	CHAR BUF 0 CLR							*
;*		mCHAR_CLR_4X	BASE_ADDR, CHARS, REG0, REG1		*
;*			(USE R0, R12, R13)				*
;*		CHARS * 2						*
;*						Aug. 23(Mon), JST 1993	*
;************************************************************************
mCHAR_CLR_2X	MACRO		BASE_ADDR, CHARS, REG0, REG1
		LOCAL		LP
		IWT		R0, #00200H
		MOVE		REG0, BASE_ADDR
		TO		REG1
		ADD		REG0
;
		SUB		R0
		IWT		R12, #(20H * CHARS) / 2
		MOVE		R13, R15
LP
		STW		(REG0)
		INC		REG0
		INC		REG0
		STW		(REG1)
		INC		REG1
		LOOP
		INC		REG1
		ENDM
;************************************************************************
;*	ROM BANK SET							*
;*		mROMB	ROM_BANK					*
;*			(USE R0)					*
;*						Aug. 23(Mon), JST 1993	*
;************************************************************************
mROMB		MACRO		ROM_BANK
		IBT		R0,#ROM_BANK
		ROMB
		ENDM
;************************************************************************
;*	CMODE SET							*
;*		mCMODE	MODE						*
;*			(USE R0)					*
;*						Aug. 23(Mon), JST 1993	*
;************************************************************************
mCMODE		MACRO		MODE
		IBT		R0,#MODE
		CMODE
		ENDM
;************************************************************************
;*	COLOUR SET							*
;*		mCOLOUR MODE						*
;*			(USE R0)					*
;*						Aug. 23(Mon), JST 1993	*
;************************************************************************
mCOLOUR		MACRO		COLOR
		IBT		R0,#COLOR
		COLOUR
		ENDM
;************************************************************************
;*	400H - ($ && 003FFH) NOP SET					*
;*		mEND_NOP						*
;*						Aug. 25(Wed), JST 1993	*
;************************************************************************
mEND_NOP	MACRO
 if $ && 3FFH
		REPT		400H - $ && 003FFH
		NOP
		ENDM
 endif
		ENDM
;************************************************************************
;*	100H - ($ && 000FFH) NOP SET					*
;*		mEND_NOP						*
;*						May. 23(Tue), JST 1995	*
;************************************************************************
mEND_NOP2	MACRO
 if $ && 0FFH
		REPT		100H - $ && 000FFH
		NOP
		ENDM
 endif
		ENDM
;************************************************************************
;*	SIN DATA GET	REG0 <--- SIN(REG0)				*
;*		mSIN	REG0						*
;*			(USE R0 R14)					*
;*						Aug. 31(Tue), JST 1993	*
;************************************************************************
mSIN		MACRO		REG0
		FROM		REG0
		LOB
		ADD		R0
		IWT		R14, #SIN
		WITH		R14
		ADD		R0
		GETB
		INC		R14
		TO		REG0
		GETBH
		ENDM
;************************************************************************
;*	COS DATA GET	REG0 <--- COS(REG0)				*
;*		mCOS	REG0						*
;*			(USE R0 R14)					*
;*						Aug. 31(Tue), JST 1993	*
;************************************************************************
mCOS		MACRO		REG0
		FROM		REG0
		LOB
		ADD		R0
		IWT		R14, #COS
		WITH		R14
		ADD		R0
		GETB
		INC		R14
		TO		REG0
		GETBH
		ENDM
;************************************************************************
;*	テーブル ジャンプ	R0 <--- ジャンプ ＮＯ．			*
;*		mJSRSUB							*
;*		mTWORD		????					*
;*						Sep. 21(Tue), JST 1993	*
;************************************************************************
mJSRSUB		MACRO
		ADD		R0
		ADD		R0
		INC		R0
		TO		R15
		ADD		R15
		BYTE		0FFH
		ENDM
;
;
;
mTWORD		MACRO		LABEL
		WORD		LABEL
		NOP
		NOP
		ENDM
;************************************************************************
;*	ダイレクト ジャンプ						*
;*		mDJMP		SYMBOL					*
;*						Sep. 27(Mon), JST 1993	*
;************************************************************************
mDJMP		MACRO		SYM
		IWT		R15, #SYM
		NOP
		ENDM
;************************************************************************
;*	ダイレクト ジャンプ（ＮＯＰ無し）				*
;*		mDJMP		SYMBOL					*
;*						Sep. 27(Mon), JST 1993	*
;************************************************************************
mDJMP_X		MACRO		SYM
		IWT		R15, #SYM
		ENDM
;************************************************************************
;*	サブルーチンコール						*
;*		mJSR		SYMBOL					*
;*						Jan. 06(Tur), JST 1994	*
;************************************************************************
mJSR		MACRO		SYM
		LINK		#4
		IWT		R15, #SYM
		NOP
		ENDM
;************************************************************************
;*	サブルーチンコール（ＮＯＰ無し）				*
;*		mJSR_X		SYMBOL					*
;*						Jan. 06(Tur), JST 1994	*
;************************************************************************
mJSR_X		MACRO		SYM
		LINK		#4
		IWT		R15, #SYM
		ENDM
;************************************************************************
;*	サブルーチンリターン						*
;*		mRTS							*
;*						Jan. 06(Tur), JST 1994	*
;************************************************************************
mRTS		MACRO
		JMP	R11
		NOP
		ENDM
;************************************************************************
;*	サブルーチンリターン（ＮＯＰ無し）				*
;*		mRTS_X							*
;*						Jan. 06(Tur), JST 1994	*
;************************************************************************
mRTS_X		MACRO
		JMP	R11
		ENDM
;************************************************************************
;*	ＳＦＣ−ＲＡＭ読み込み”ＯＮ”					*
;*		mRAM_READ						*
;*						Jan. 06(Tur), JST 1994	*
;************************************************************************
mRAM_READ	MACRO
		STOP
		NOP
		ENDM
;************************************************************************
;*	ＳＦＣ−プログラム呼出し					*
;*		mSFCALL							*
;*						Apl. 27(Wed), JST 1994	*
;************************************************************************
mSFCALL		MACRO	P_NO
		IBT	R0,#P_NO
		STOP
		NOP
		ENDM
;
;
;
;
;
;****************************************************************
;*		敵のＲＡＭ読み込み（ワード長）			*
;****************************************************************
mLDW		MACRO	TO_REG,RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		TO	TO_REG
		LDW	(R0)
		ENDM
;
;****************************************************************
;*		Ｒ０への敵のＲＡＭ読み込み（ワード長）		*
;****************************************************************
mLDW0		MACRO	RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		LDW	(R0)
		ENDM
;
;****************************************************************
;*		Ｒ０保存  敵のＲＡＭ読み込み（ワード長）	*
;****************************************************************
mLDWn		MACRO	TO_REG,RAM_ADDR,IX_REG
		IWT	TO_REG,#RAM_ADDR
		WITH	TO_REG
		ADD	IX_REG
		TO	TO_REG
		LDW	(TO_REG)
		ENDM
;
;****************************************************************
;*		敵のＲＡＭ読み込み（バイト長）			*
;****************************************************************
mLDB		MACRO	TO_REG,RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		TO	TO_REG
		LDB	(R0)
		ENDM
;
;****************************************************************
;*		Ｒ０への敵のＲＡＭ読み込み（バイト長）		*
;****************************************************************
mLDB0		MACRO	RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		LDB	(R0)
		ENDM
;
;****************************************************************
;*		Ｒ０保存  敵のＲＡＭ読み込み（バイト長）	*
;****************************************************************
mLDBn		MACRO	TO_REG,RAM_ADDR,IX_REG
		IWT	TO_REG,#RAM_ADDR
		WITH	TO_REG
		ADD	IX_REG
		TO	TO_REG
		LDB	(TO_REG)
		ENDM
;
;****************************************************************
;*		敵のＲＡＭ読み込み（ワード長）			*
;****************************************************************
mSTW		MACRO	FROM_REG,RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		FROM	FROM_REG
		STW	(R0)
		ENDM
;
;****************************************************************
;*		敵のＲＡＭ読み込み（バイト長）			*
;****************************************************************
mSTB		MACRO	FROM_REG,RAM_ADDR,IX_REG
		IWT	R0,#RAM_ADDR
		ADD	IX_REG
		FROM	FROM_REG
		STB	(R0)
		ENDM
;











