;********************************************************;														*;	#　M16C Start_UP Kit  Moniter S/W					*;														*;	FILENAME: mon_sub.a30								*;	Ver		: 1.00.00									*;	CPU		: M16C										*;	FUNCTION: Sub program of M16C start_up kit moniter  *;				(1)Subroutine							*;	SPEC	:											*;	ｵﾌﾟｼｮﾝ	: "PDB" 0 : for KDB30						*;					1 : for PDB30						*;			  "DBG" 0 : for Normal using				*;					1 : for Debug of moniter program	*;														*;	CRAETE	: 1999.3.1									*;														*; 	Copyright(c) 1995-1999 MITSUBISHI ELECTRIC Co. 		*; 	and MITSUBISHI ELECTRIC SEMICONDUCTOR SYSTEM Co.	*;	All Rights Reserved.								*;														*;********************************************************;========================================================;	1.Subroutine;		(1)Data convert ASCII->HEX			S_ATOH;		(2)Data convert HEX->ASCII			S_HTOA;		(3)Data send routine				S_TRS;		(4)Command end process				S_CMDEXIT;		(5)[START] command send				S_START_SND;		(6)[END] command send				S_END_SND;		(7)Register initialize				S_REG_INIT;		(8)Data convert 6Byte(ASCII)->HEX	S_6_ATOH;		(9)Register data exchange			S_REG_CHANGE;		(10)Register data send 				S_REG_SND;		(11)Block data(3Byte)send			S_3BYTE_ASCSND;												/S_2BYTE_ASCSND;		(12)1byte binary data send from request address;											S_BYTE_BSND;		(13)checksum data (16進)update		S_CHKSUM_S;												/S_CHKSUM_R;		(14)Serch PB address match			S_PBTBL_SERCH;		(15)Set PB data						S_PBTBL_SET;		(16)Enable PB						S_PB_ON;		(17)modify address match address	S_ADR_EDIT;		(18)Update receive buffer			S_RCVBUF_EDIT;		(19)Error process of moniter prog.	S_MON_ERR;========================================================;========================================================;	NAME	: S_ATOH;	FUNCTION: ASCIIｺｰﾄﾞ -> HEX;				target ASCII code -> '0'-'9','A'-'F';				No convert at abnormal code requested;	INPUT	: [R0L] ASCII code(1BYTE);	OUTPUT	: [R0L] 16進 data;	RETURN	: Cﾌﾗｸﾞ	C=0 Normal End;				    C=1 Abnormal data input (no convert);	USED_REG: [R0L];	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_ATOH:	CMP.B		#'A',R0L		; 'A' above ？	JLTU		S_ATOH10		; --> NO	CMP.B		#'F',R0L		; 'F' below ？	JGTU		S_ATOH_ERR		; --> NO（No convert）	SUB.B		#(41H-10),R0L	; 'A' - 10	FCLR		C				; C-FLG clear	RTSS_ATOH10:	CMP.B		#'0',R0L		; '0' above ？	JLTU		S_ATOH_ERR		; --> NO（No convert）	CMP.B		#'9',R0L		; '9' below ？	JGTU		S_ATOH_ERR		; --> NO（No convert）	AND.B		#0FH,R0L		;	FCLR		C				; C-FLG clear	RTSS_ATOH_ERR:	FSET		C				; C-FLG set	RTS;========================================================;	NAME	: S_HTOA;	FUNCTION: HEX -> ASCIIｺｰﾄﾞ;				arget HEX-> 0H - 0FH;				No convert at abnormal code requested;	INPUT	: [R0L] 16進ﾃﾞｰﾀ(1BYTE);	OUTPUT	: [R0L] ASCIIｺｰﾄﾞ(1BYTE);	RETURN	: C-FLG	C=0 Normal End;				    C=1 Abnormal data input (no convert);	USED_REG: [R0L];	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_HTOA:	CMP.B		#0FH,R0L		; 0FH below ？	JGTU		S_HTOA_ERR		; --> NO（ No convert）	CMP.B		#0AH,R0L		; 0AH above ？	JGEU		S_HTOA10		; --> YES	OR.B		#'0',R0L	FCLR		C				; C-FLG clear	RTSS_HTOA10:	ADD.B		#(41H-10),R0L	; 'A' - 10	FCLR		C				; C-FLG clear	RTSS_HTOA_ERR:	FSET		C				; C-FLG set	RTS;========================================================;	NAME	: S_TRS;	FUNCTION: 1Byte data send;				(1)get send buffer status;				(2)1Byte data send;				(3)Snd reply wait;	INPUT	: bsnd_buf	: send data buffer(1Byte);			  wsnd_cntl : send control information;	OUTPUT	: wsnd_cntl : send comtrol information (send reply wait);	RETURN	: C-FLG	C=0 Normal End;				    C=1 Abnormal End	(send BUSY);	USED_REG: [R1]	safety;	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_TRS:	FSET I	PUSH.W		R1					;;	MOV.W		wsnd_cntl,R1		; Load send control information	BTST		F_SNDMD_RPLY,R1		; at send REPLY wait ?	JNE			TRS_BUSY			; --> YES (BUSY)	BTST		F_SNDMD_SNDREQ,R1	; send request ?	JNE			TRS_BUSY			; --> YES (BUSY); ----- Send process -----	BSET		F_SNDMD_SNDREQ,R1	; send request bit set	MOV.W		R1,wsnd_cntl		; >	MOV.B		#00000101B,U1MR		; 2 stop-bit set	;BCLR		RE_U1C1				; receive disable set	BSET		TE_U1C1				; send enable set;	BSET		F_SNDMD_RPLY,R1		; send REPLY wait flag set	MOV.W		R1,wsnd_cntl		;	MOV.B		bsnd_buf,R1L		; Load send data 		MOV.B		R1L,U1TB			; send data set to send bufferTRS_CMD4_WAIT:	MOV.W		wsnd_cntl,R1		; Load send control infomation	BTST		F_SNDMD_SNDREQ,R1	; at send REQ ?	JNE			TRS_CMD4_WAIT		; --> NO (WAIT);	MOV.W		wsnd_cntl,R1		; Load send control infomation	BCLR		F_SNDMD_RPLY,R1	MOV.W		R1,wsnd_cntl;;		; ----- Result set (Normal) -----.IF	DBG==ON	ADD.W		#1,dbg_trsrdy		; S_TRS Normal counter increment.ENDIF	FCLR		C					; data send normal	POP.W		R1	RTS								;;; ----- Result set (BUSY) -----TRS_BUSY:							;.IF	DBG==ON	ADD.W		#1,dbg_trsbusy		; S_TRS BUSY counter increment.ENDIF	FSET		C					; data send abnormal(BUSY)	POP.W		R1	RTS								;;========================================================;	NAME	: S_CMDEXIT;	FUNCTION: data reset process for end of command ;	INPUT	: ---;	OUTPUT	: wrcv_cntl : receive control information;			  bstage_no : process stage No.;	RETURN	: ---;	USED_REG: [R0] safety;	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_CMDEXIT:	PUSH.W		R0					;;	MOV.W		#0,R0				;	MOV.B		R0L,bstage_no		; Stage No. initialize	MOV.W		wrcv_cntl,R0		; Load receive control information	AND.W		#0FF1FH,R0			; CMD1/CMD2/CMD = 0	MOV.W		R0,wrcv_cntl		; >	MOV.W		wsnd_cntl,R0		; Load send control informatiom	AND.W		#0FFFEH,R0			; ASCII/BIN = ASCII	MOV.W		R0,wsnd_cntl		; >	MOV.B		#C_CMD_ERR0,R0L		;	MOV.B		R0L,brtn_sts		; >excute status = normal	MOV.B		#C_CTYPE_CHANGE,R0L	;	MOV.B		R0L,bcmd_type		; >command type = <CHG>;	POP.W		R0	RTS;========================================================;	NAME	: S_START_SND;	FUNCTION: process of [START] command send ;				(1)call S_TRS routine;	INPUT	: ---;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0];	USED_SUB: S_TRS;;	CRAETE	: 1999.3.1;========================================================S_START_SND:	MOV.B		#C_CMD_START,R0L		; [START] command set to send buffer	MOV.B		R0L,bsnd_buf			; >L_START_RETRY:	JSR.W		S_TRS					; data send	JC			L_START_RETRY			; --> BUSY;	RTS;========================================================;	NAME	: S_END_SND;	FUNCTION: process of [END] command send;				(1)call S_TRS routine;	INPUT	: ---;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0];	USED_SUB: S_TRS;;	CRAETE	: 1999.3.1;========================================================S_END_SND:	MOV.B		#C_CMD_END,R0L			; [END] command set to send data buffer 	MOV.B		R0L,bsnd_buf			; >L_END_RETRY:	JSR.W		S_TRS					; data send	JC			L_END_RETRY				; --> BUSY;		RTS;========================================================;	NAME	: S_REG_INIT;	FUNCTION: Register initialize for USER-program excuted;	INPUT	: ---;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0][A0];	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_REG_INIT:; ----- Initialize for PC,FLG -----	MOV.W		#0,A0				; j	LDE.W		Vusr_reset[A0],R0	; (M,L)->R0	MOV.B		R0L,busr_pcl		; PC(L)	MOV.B		R0H,busr_pcm		; PC(M)	ADD.W		#2,A0				;	LDE.W		Vusr_reset[A0],R0	;	AND.W		#000FH,R0			; PC(H) + FLG(H)	MOV.B		R0L,busr_flgpch		;	BSET		14,R0				; Interrupt enable flag set at user's program excuted	MOV.B		R0H,busr_flgl		; FLG(L); ----- Initialize for e.t.c. registers -----	FCLR		B				; bank-0	MOV.W		#C_ISP_INI,R0		;	MOV.W		R0,wusr_isp			; [ISP]	MOV.W		#C_USP_INI,R0		;	MOV.W		R0,wusr_usp			; [USP]	MOV.W		#C_REG_INI,R0		;	MOV.W		R0,wusr_r0			; [R0]	MOV.W		R0,wusr_r1			; [R1]	MOV.W		R0,wusr_r2			; [R2]	MOV.W		R0,wusr_r3			; [R3]	MOV.W		R0,wusr_a0			; [A0]	MOV.W		R0,wusr_a1			; [A1]	MOV.W		R0,wusr_fb			; [FB]	MOV.W		R0,wusr_sb			; [SB]	FCLR		I					; Interrupt enable flag clear	MOV.W		R0,wusr_intbl		; [INTB(L)]	MOV.W		R0,wusr_intbh		; [INTB(H)]	FSET		I					; Interrupt enable flag set;	FSET		B				; bank-1	MOV.W		#C_REG_INI,R0		;	MOV.W		R0,wusr_r0b			; [R0]	MOV.W		R0,wusr_r1b			; [R1]	MOV.W		R0,wusr_r2b			; [R2]	MOV.W		R0,wusr_r3b			; [R3]	MOV.W		R0,wusr_a0b			; [A0]	MOV.W		R0,wusr_a1b			; [A1]	MOV.W		R0,wusr_fbb			; [FB]	FCLR		B;	RTS;========================================================;	NAME	: S_6_ATOH;	FUNCTION: convert from 6Byte ASCII data to 4byte HEX data;;				EX)'654321'H -> 00|65|43|21H;				(1)call S_ATOH;				(CAUTION)This program is used by ONLY main routine;	INPUT	: bdat_ascbuf	: ASCIIﾃﾞｰﾀ(6Byte) LSB:HIGH;	OUTPUT	: bdat_16buf	: HEXﾃﾞｰﾀ(4Byte)  LSB:LOW;	RETURN	: ---;	USED_REG: [R0][R1]	safety;	USED_SUB: S_ATOH;;	CRAETE	: 1999.3.1;========================================================S_6_ATOH:	PUSH.W		R0	PUSH.W		R1; ----- 8,7figures  -----				;  3  2  1  0	MOV.B		#0,R0L				; 00|??|??|??H生成	MOV.B		R0L,bdat_16buf+3	;; ----- 6figures  -----	MOV.B		bdat_ascbuf,R0L		; ASCII(6figures )	JSR.A		S_ATOH				; ASCII -> HEX	SHL.B		#4,R0L				;	MOV.B		R0L,R1L				;	AND.B		#0F0H,R1L			; 6figures (HEX)save ; ----- 5figures  -----	MOV.B		bdat_ascbuf+1,R0L	; ASCII(5figures )	JSR.A		S_ATOH				; ASCII -> HEX	OR.B		R0L,R1L				; 5 + 6figures (HEX)	MOV.B		R1L,bdat_16buf+2	; >; ----- 4figures  -----	MOV.B		bdat_ascbuf+2,R0L	; ASCII(4figures )	JSR.A		S_ATOH				; ASCII -> HEX	SHL.B		#4,R0L				;	MOV.B		R0L,R1L				;	AND.B		#0F0H,R1L			; 4figures (HEX)save ; ----- 3figures  -----	MOV.B		bdat_ascbuf+3,R0L	; ASCII(3figures )	JSR.A		S_ATOH				; ASCII -> HEX	OR.B		R0L,R1L				; 3 + 4figures (HEX)	MOV.B		R1L,bdat_16buf+1	; >; ----- 2figures  -----	MOV.B		bdat_ascbuf+4,R0L	; ASCII(2figures )	JSR.A		S_ATOH				; ASCII -> HEX	SHL.B		#4,R0L				;	MOV.B		R0L,R1L				;	AND.B		#0F0H,R1L			; 2figures (HEX)save ; ----- 1figures  -----	MOV.B		bdat_ascbuf+5,R0L	; ASCII(1figures )	JSR.A		S_ATOH				; ASCII -> HEX	OR.B		R0L,R1L				; 1 + 2figures (HEX)	MOV.B		R1L,bdat_16buf		; >;	POP.W		R1					;	POP.W		R0					;	RTS;========================================================;	NAME	: S_REG_CHANGE;	FUNCTION: By request form Front_End exchange register data;	INPUT	: wreg_no : request register No.(2Byte Ascii);			  bdat_ascbuf : ASCII code data(6Byte);	OUTPUT	: bdat_16buf	:;	RETURN	: ---;	USED_REG: [R0][R1][A0]	NOT safety;	USED_SUB: S_ATOH,S_6_ATOH;;	CRAETE	: 1999.3.1;========================================================S_REG_CHANGE:; ----- calcurate target address -----;							; uppser address calcurate	MOV.W		wreg_no,R1			; Load current command	MOV.B		R1H,R0L				; calcurate upper address	JSR.A		S_ATOH				; ASCII -> HEX	SHL.B		#4,R0L				; X16	MOV.B		R0L,R1H				;;							; lower address calcurate	MOV.B		R1L,R0L				; calcurate lower address	JSR.A		S_ATOH				; ASCII -> HEX	ADD.B		R1H,R0L				; get table No. [R0L]	AND.W		#00FFH,R0			;	SHL.W		#2,R0				; get talbe address (X4)	MOV.W		R0,A0				;; ----- ASCII -> HEX -----	JSR.A		S_6_ATOH			; ASCII -> HEX	MOV.W		bdat_16buf,R0		; -> R0(M,L)	MOV.W		bdat_16buf+2,R1		; -> R1(H); ----- jmp to each register process -----	JMPI.A		T_REGC_TBL[A0]		; -->jmp to each process;T_REGC_TBL:	.LWORD		REGC_R0_0			; Bank-0 R0(4Byte)	.LWORD		REGC_R1_0			; Bank-0 R1(4Byte)	.LWORD		REGC_R2_0			; Bank-0 R2(4Byte)	.LWORD		REGC_R3_0			; Bank-0 R3(4Byte)	.LWORD		REGC_A0_0			; Bank-0 A0(4Byte)	.LWORD		REGC_A1_0			; Bank-0 A1(4Byte)	.LWORD		REGC_FB_0			; Bank-0 FB(4Byte);	.LWORD		REGC_R0_1			; Bank-1 R0(4Byte)	.LWORD		REGC_R1_1			; Bank-1 1(4Byte)	.LWORD		REGC_R2_1			; Bank-1 R2(4Byte)	.LWORD		REGC_R3_1			; Bank-1 R3(4Byte)	.LWORD		REGC_A0_1			; Bank-1 A0(4Byte)	.LWORD		REGC_A1_1			; Bank-1 A1(4Byte)	.LWORD		REGC_FB_1			; Bank-1 FB(4Byte);	.LWORD		REGC_USP			; USP(4Byte)	.LWORD		REGC_ISP			; ISP(4Byte)	.LWORD		REGC_FLG			; FLG(4Byte)	.LWORD		REGC_PC				; PC(6Byte)	.LWORD		REGC_SB				; SB(4Byte)	.LWORD		REGC_INTB			; INTB(6Byte); ----- Bank-0 R0 -----REGC_R0_0:						; Bank-0 R0(4Byte)	MOV.W		R0,wusr_r0			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R1_0:						; Bank-0 R1(4Byte)	MOV.W		R0,wusr_r1			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R2_0:						; Bank-0 R2(4Byte)	MOV.W		R0,wusr_r2			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R3_0:						; Bank-0 R3(4Byte)	MOV.W		R0,wusr_r3			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_A0_0:						; Bank-0 A0(4Byte)	MOV.W		R0,wusr_a0			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_A1_0:						; Bank-0 A1(4Byte)	MOV.W		R0,wusr_a1			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_FB_0:						; Bank-0 FB(4Byte)	MOV.W		R0,wusr_fb			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R0_1:						; Bank-1 R0(4Byte)	MOV.W		R0,wusr_r0b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R1_1:						; Bank-1 1(4Byte)	MOV.W		R0,wusr_r1b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R2_1:						; Bank-1 R2(4Byte)	MOV.W		R0,wusr_r2b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_R3_1:						; Bank-1 R3(4Byte)	MOV.W		R0,wusr_r3b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_A0_1:						; Bank-1 A0(4Byte)	MOV.W		R0,wusr_a0b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_A1_1:						; Bank-1 A1(4Byte)	MOV.W		R0,wusr_a1b			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_FB_1:						; Bank-1 FB(4Byte)	MOV.W		R0,wusr_fbb			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_USP:						; USP(4Byte)	MOV.W		R0,wusr_usp			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_ISP:						; ISP(4Byte)	MOV.W		R0,wusr_isp			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_FLG:						; FLG(4Byte)	MOV.B		R0L,busr_flgl		; Load FLG(M,L)	MOV.B		busr_flgpch,R0L		; Load FLG/PC(H)	AND.W		#0F00FH,R0			; FLG(H)=R0H,PC(H)=R0L	OR.B		R0H,R0L				; 	MOV.B		R0L,busr_flgpch		; >	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_PC:						; PC(6Byte)	MOV.B		R0L,busr_pcl		; PC(L)	MOV.B		R0H,busr_pcm		; PC(M)	MOV.B		busr_flgpch,R1H		; Load FLG/PC(h)	AND.W		#0F00FH,R1			; PC(H)=R1L,ﾌﾗｸﾞ(H)=R1H	OR.B		R1H,R1L				; 	MOV.B		R1L,busr_flgpch		; >	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_SB:						; SB(4Byte)	MOV.W		R0,wusr_sb			;	JMP.W		L_REG_CHANGE_EXIT	; --> ALLREGC_INTB:						; INTB(6Byte)	FCLR		I					; Interrupt enable flag clear	MOV.W		R0,wusr_intbl		; INTB(L)	MOV.W		R1,wusr_intbh		; INTB(H)	FSET		I					; Interrupt enable flag setL_REG_CHANGE_EXIT:	RTS;========================================================;	NAME	: S_REG_SND;	FUNCTION: Data of request register send convert ;			　ASCII code to Front_End;				(1)REF1:only request register;					if( wreg_no == ????H );				(2)REF2:All register;					if( wreg_no == FFFFH );	INPUT	: wreg_no : Request register No.(2Byte Ascii);	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0][R1][A0];			  [R3]				NOT safety;	USED_SUB: S_ATOH,S_HTOA,S_TRS;;	CRAETE	: 1999.3.1;========================================================S_REG_SND:	MOV.W		#0,R3				; counter initialzie = 0	MOV.W		#0,A0				; offset address initialize = 0; ----- Check command type -----	MOV.W		wreg_no,R0			; Load request register No.	CMP.W		#0FFFFH,R0			; ALL register request ?	JNE			REGS_ADR_GET		; --> NO; ----- process of all register request -----	MOV.W		#19,R3				; set parameter of all register request	JMP.B		REGS_JMPTBL			; --> ALL; ----- register selected mode request -----REGS_ADR_GET:				; uppser address calcurate	MOV.W		wreg_no,R1			; Load corrent command data	MOV.B		R1H,R0L				; Calculate upper address	JSR.A		S_ATOH				; ASCII -> HEX	SHL.B		#4,R0L				; X16	MOV.B		R0L,R1H				;;							; lower address calcurate	MOV.B		R1L,R0L				; calculate lower address	JSR.A		S_ATOH				; ASCII -> HEX	ADD.B		R1H,R0L				; get table No. [R0L]	AND.W		#00FFH,R0			;	SHL.W		#2,R0				; get table address (X4)	MOV.W		R0,A0				;; ----- jmp to each register process -----REGS_JMPTBL:	JMPI.A		T_REGS_TBL[A0]		; -->jmp to each processREGS_END_CHK:	CMP.W		#0,R3				; process end ?	JEQ			REGS_EXIT			; --> YES; ----- setting next data -----	ADD.W		#4,A0				; Update offset address	SUB.W		#1,R3				;	JMP.B		REGS_JMPTBL			; --> ALLREGS_EXIT:	RTS;T_REGS_TBL:	.LWORD		REGS_R0_0			; Bank-0 R0(2Byte)	.LWORD		REGS_R1_0			; Bank-0 R1(2Byte)	.LWORD		REGS_R2_0			; Bank-0 R2(2Byte)	.LWORD		REGS_R3_0			; Bank-0 R3(2Byte)	.LWORD		REGS_A0_0			; Bank-0 A0(2Byte)	.LWORD		REGS_A1_0			; Bank-0 A1(2Byte)	.LWORD		REGS_FB_0			; Bank-0 FB(2Byte);	.LWORD		REGS_R0_1			; Bank-1 R0(2Byte)	.LWORD		REGS_R1_1			; Bank-1 R1(2Byte)	.LWORD		REGS_R2_1			; Bank-1 R2(2Byte)	.LWORD		REGS_R3_1			; Bank-1 R3(2Byte)	.LWORD		REGS_A0_1			; Bank-1 A0(2Byte)	.LWORD		REGS_A1_1			; Bank-1 A1(2Byte)	.LWORD		REGS_FB_1			; Bank-1 FB(2Byte);	.LWORD		REGS_USP			; USP(2Byte)	.LWORD		REGS_ISP			; ISP(2Byte)	.LWORD		REGS_FLG			; FLG(2Byte)	.LWORD		REGS_PC				; PC(3Byte)	.LWORD		REGS_SB				; SB(2Byte)	.LWORD		REGS_INTB			; INTB(3Byte); ----- Bank-0 R0 -----REGS_R0_0:	MOV.W		wusr_r0,R0			; R0 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 R1 -----REGS_R1_0:	MOV.W		wusr_r1,R0			; R1 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 R2 -----REGS_R2_0:	MOV.W		wusr_r2,R0			; R2 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 R3 -----REGS_R3_0:	MOV.W		wusr_r3,R0			; R3 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 A0 -----REGS_A0_0:	MOV.W		wusr_a0,R0			; A0 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 A1 -----REGS_A1_0:	MOV.W		wusr_a1,R0			; A0 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-0 FB -----REGS_FB_0:	MOV.W		wusr_fb,R0			; FB data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 R0 -----REGS_R0_1:	MOV.W		wusr_r0b,R0			; R0 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 R1 -----REGS_R1_1:	MOV.W		wusr_r1b,R0			; Bank-1 R1 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 R2 -----REGS_R2_1:	MOV.W		wusr_r2b,R0			; R2 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 R3 -----REGS_R3_1:	MOV.W		wusr_r3b,R0			; R3 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 A0 -----REGS_A0_1:	MOV.W		wusr_a0b,R0			; A0 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 A1 -----REGS_A1_1:	MOV.W		wusr_a1b,R0			; A1 data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- Bank-1 FB -----REGS_FB_1:	MOV.W		wusr_fbb,R0			; FB data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- USP -----REGS_USP:	MOV.W		wusr_usp,R0			; USP data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- ISP -----REGS_ISP:	MOV.W		wusr_isp,R0			; ISP data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- FLG -----REGS_FLG:	MOV.B		busr_flgl,R0L		; ﾌﾗｸﾞ(L)	MOV.B		busr_flgpch,R0H		; ﾌﾗｸﾞ(H)	AND.W		#0F0FFH,R0			; Mask reserved area	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- PC -----REGS_PC:	MOV.B		busr_pcl,R0L		; PC(L)	MOV.B		busr_pcm,R0H		; PC(M)	MOV.W		R0,wh2asc_wk		; set to work area1	MOV.B		busr_flgpch,R0L		; PC(H)	AND.W		#000FH,R0			;	MOV.W		R0,wh2asc_wk+2		; set to work area	JMP.W		REGS_SND6			; --> ALL; ----- SB -----REGS_SB:	MOV.W		wusr_sb,R0			; SB data load	MOV.W		R0,wh2asc_wk		; set to work area	JMP.W		REGS_SND4			; --> ALL; ----- INTB -----REGS_INTB:	MOV.W		wusr_intbl,R0		; INTB(L)	MOV.W		R0,wh2asc_wk		; set to work area1	MOV.W		wusr_intbh,R0		; INTB(H)	MOV.W		R0,wh2asc_wk+2		; set to work area2	JMP.W		REGS_SND6			; --> ALL; ----- SND -----REGS_SND4:	JSR.A		S_2BYTE_ASCSND		; 2Byte send	JMP.W		REGS_END_CHK		; --> ALLREGS_SND6:	JSR.A		S_3BYTE_ASCSND		; 3Byte send	JMP.W		REGS_END_CHK		; --> ALL;;========================================================;	NAME	: S_3BYTE_ASCSND / S_2BYTE_ASCSND;	FUNCTION: convert to ASCII code from HEX data(3Byte/2Byte);			  and send ASCII data;	INPUT	: wh2asc_wk : original data(HEX);	OUTPUT	: bsnd_buf 	: send data buffer;	RETURN	: ---;	USED_REG: [R0];	USED_SUB: S_HTOA,S_TRS;;	CRAETE	: 1999.3.1;========================================================S_3BYTE_ASCSND:					;<<START>>; ----- 6 figures (HEX) -----	MOV.W		wh2asc_wk+2,R0		; Original data load	SHL.B		#-4,R0L				; get upper 4bit data	AND.B		#0FH,R0L			; MASK of data	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_3ASCSND_10:	JSR.A		S_TRS				; Data send 	JC			L_3ASCSND_10		; --> BUSY; ----- 5 figures (HEX) -----	MOV.W		wh2asc_wk+2,R0		; Original data load	AND.B		#0FH,R0L			; MASK of data	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_3ASCSND_20:	JSR.A		S_TRS				; Data send 	JC			L_3ASCSND_20		; --> BUSY; ----- 4 figures (HEX) -----S_2BYTE_ASCSND:					; <<START>>	MOV.W		wh2asc_wk,R0		; Original data load	MOV.B		R0H,R0L				;	SHL.B		#-4,R0L				; get upper 4bit data	AND.B		#0FH,R0L			; MASK of data	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_2ASCSND_10:	JSR.A		S_TRS				; Data send 	JC			L_2ASCSND_10		; --> BUSY; ----- 3 figures (HEX) -----	MOV.W		wh2asc_wk,R0		; Original data load	MOV.B		R0H,R0L				;	AND.B		#0FH,R0L			;	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_2ASCSND_20:	JSR.A		S_TRS				; Data send 	JC			L_2ASCSND_20		; --> BUSY; ----- 2 figures (HEX) -----	MOV.W		wh2asc_wk,R0		; Original data load	SHL.B		#-4,R0L				; get upper 4bit data	AND.B		#0FH,R0L			; MASK of data	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_2ASCSND_30:	JSR.A		S_TRS				; Data send 	JC			L_2ASCSND_30		; --> BUSY; ----- 1 figures (HEX) -----	MOV.W		wh2asc_wk,R0		; Original data load	AND.B		#0FH,R0L			;	JSR.A		S_HTOA				; HEX -> ASCII	MOV.B		R0L,bsnd_buf		; >L_2ASCSND_40:	JSR.A		S_TRS				; Data send 	JC			L_2ASCSND_40		; --> BUSY	RTS;========================================================;	NAME	: S_BYTE_BSND;	FUNCTION: data send 1byte from request data;			  and calcurate sum code;			  (1)special code send ;	INPUT	: bstart_adr : request data address;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0][A0][A1];	USED_SUB: S_TRS,S_CHKSUM_S;;	CRAETE	: 1999.3.1;========================================================S_BYTE_BSND:; ----- Load start address -----	MOV.W		bstart_adr+2,A1		; get adddress (H)	AND.W		#000FH,A1			; Mask nouse bit	MOV.W		bstart_adr,A0		; get address (M,L)	LDE.B		[A1A0],R0L			; get data; ----- code check -----	CMP.B		#C_CMD_XON,R0L		; correspond to [XON] code ?	JNE			BYTE_CHK_XOFF		; --> NO; ----- process of correspond to [XON] code -----	MOV.B		#C_CMD_ESC,R0L		; [ESC]+51H	MOV.B		R0L,bsnd_buf		; >BYTE_EXON_WAIT:	JSR.A		S_TRS				; Data send 	JC			BYTE_EXON_WAIT		; --> LOOP	JSR.A		S_CHKSUM_S			; Calcurate checksum	MOV.B		#C_CMD_EXON,R0L		; '^Q'	JMP.B		BYTE_BSND_DAT		; --> ALLBYTE_CHK_XOFF:	CMP.B		#C_CMD_XOFF,R0L		; correspond to [XOFF] code ?	JNE			BYTE_CHK_INIT		; --> NO; ----- process of correspond to [XOFF] code -----	MOV.B		#C_CMD_ESC,R0L		; [ESC]+53H	MOV.B		R0L,bsnd_buf		; >BYTE_EXOFF_WAIT:	JSR.A		S_TRS				; Data send 	JC			BYTE_EXOFF_WAIT		; --> LOOP	JSR.A		S_CHKSUM_S			; Calcurate checksum	MOV.B		#C_CMD_EXOFF,R0L	; '^S'	JMP.B		BYTE_BSND_DAT		; --> ALLBYTE_CHK_INIT:	CMP.B		#C_CMD_INIT,R0L		; correspond to [INIT] code ?	JNE			BYTE_CHK_ESC		; --> NO; ----- process of correspond to [INIT] code -----	MOV.B		#C_CMD_ESC,R0L		; [ESC]+61H	MOV.B		R0L,bsnd_buf		; >BYTE_EINIT_WAIT:	JSR.A		S_TRS				; Data send	JC			BYTE_EINIT_WAIT		; --> LOOP	JSR.A		S_CHKSUM_S			; Calcurate checksum	MOV.B		#C_CMD_EINIT,R0L	; ''	JMP.B		BYTE_BSND_DAT		; --> ALLBYTE_CHK_ESC:	CMP.B		#C_CMD_ESC,R0L		; correspond to [ESC] code ?	JNE			BYTE_BSND_DAT		; --> NO(Normal data); ----- process of correspond [ESC] code -----	MOV.B		#C_CMD_ESC,R0L		; [ESC]+5BH	MOV.B		R0L,bsnd_buf		; >BYTE_EESC_WAIT:	JSR.A		S_TRS				; Data send 	JC			BYTE_EESC_WAIT		; --> LOOP	JSR.A		S_CHKSUM_S			; Calcurate checksum	MOV.B		#C_CMD_EESC,R0L		; ''; ----- Data send -----BYTE_BSND_DAT:	MOV.B		R0L,bsnd_buf		; >BYTE_BSND_WAIT:	JSR.A		S_TRS				; Data send 	JC			BYTE_BSND_WAIT		;	JSR.A		S_CHKSUM_S			; Calcurate checksum	RTS;========================================================;	NAME	: S_CHKSUM_S/S_CHKSUM_R;	FUNCTION: calcuration sum of binary data;			  and make sum_check code;				S : for transfer 	R: for receive;			  <ﾁｪｯｸｻﾑ> complementing for lower 8bit of sum data;	INPUT	: bchksum_buf	: total sum of lower 8-bit;			  bchksum		: checksum data(HEX);	OUTPUT	: bchksum_buf	:;			  bchksum		:;	RETURN	: ---;	USED_REG: [R0];	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_CHKSUM_S:	MOV.B		bsnd_buf,R0H		; get transfer data	JMP.B		L_CHKSUM_ADD		; --> ALLS_CHKSUM_R:	MOV.B		brcv_dat,R0H		; get receive dataL_CHKSUM_ADD:	MOV.B		bchksum_buf,R0L		; Load previus sum data	ADD.B		R0H,R0L				;	MOV.B		R0L,bchksum_buf		; >store sum data; ----- 2 complement -----	NOT.B		R0L					; invert of sum data	ADD.B		#1,R0L				; 2 complement	MOV.B		R0L,bchksum			;	RTS;========================================================;	NAME	: S_PBTBL_SERCH;	FUNCTION: Serch address match information; 			  set bit No. to return value  at match;			  0 clear return value at No match;				(CATION) check address is only M,L;				    already address_H is no_check;	INPUT	: bpb_cntl	: PB setting information;			  bpb_adrbuf: serch address ;	OUTPUT	: ---;	RETURN	: [R0]	: Set bit Number of address match occured;					: 0 = No occured address match;	USED_REG: [R0][R1][R2][R3][A0][A1]	Not safety;	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_PBTBL_SERCH:; ----- Get address match data -----	MOV.W		bpb_adrbuf,R1		; Load match address (M,L)	MOV.W		bpb_adrbuf+2,R3		; Load match address (H)	MOV.B		bpb_cntl,A0			; Loda PB control information	BTST		0,A0				; PB0 request Enalble ?	JEQ			PBTBL_SERCH_PB1		; --> NO; ----- refer PB0 information -----	MOV.W		bpb0_adr,R0			; Load PB0 address (M,L)	MOV.W		bpb0_adr+2,R2		; Load PB1 address (H); ----- compare PB address -----	SUB.W		R1,R0				; 差分検出(1)	SUB.W		R3,R2				; 	" (2)	OR.W		R0,R2				; Match ?	JNE			PBTBL_SERCH_PB1		; --> NO; ----- matching check  PB0 -----	MOV.W		#1,R0				; PB0 address match occured ?	JMP.B		PBTBL_SERCH_EXIT	; --> ALL; ----- refer PB1 information -----PBTBL_SERCH_PB1:	BTST		1,A0				; PB1 request Enable ?	JEQ			PBTBL_SERCH_NONE	; --> NO	MOV.W		bpb1_adr,R0			; Load PB1 address (M,L)	MOV.W		bpb1_adr+2,R2		; Load PB1 address (H); ----- compare PB1 address -----	SUB.W		R1,R0				; 差分検出(1)	SUB.W		R3,R2				; 	" (2)	OR.W		R0,R2				; Match ?	JNE			PBTBL_SERCH_NONE	; --> NO; ----- matching  check PB1 -----	MOV.W		#2,R0				; PB1 address match occured ?	JMP.B		PBTBL_SERCH_EXIT	; --> ALL; ----- End process of No match address -----PBTBL_SERCH_NONE:	MOV.W		#0H,R0				; RETURN value 0-clearPBTBL_SERCH_EXIT:	RTS;========================================================;	NAME	: S_PBTBL_SET;	FUNCTION: Set PB data for Usable PB table;	INPUT	: bpb_cntl	: PB setting information;			  bpb_adrbuf: setting data(address);	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0][R1][R2][R3] Not safety;	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_PBTBL_SET:; ----- get address match data -----	MOV.W		bpb_adrbuf,R1		; Load match address (M,L)	MOV.W		bpb_adrbuf+2,R3		; Load match address (H)	AND.W		#000FH,R3			;	MOV.B		bpb_cntl,R0L		; Load PB control information	BTST		0,R0				; PB0 request enable ?	JNE			PBTBL_SET_PB1		; --> YES; ----- PB0 enable -----	MOV.W		R1,bpb0_adr			; set to PB0 (M,L)	MOV.W		R3,bpb0_adr+2		; set to PB0 (H)	BSET		0,R0				; PB control information PB0  = Enable	JMP.B		PBTBL_SET_EXIT		; --> ALLPBTBL_SET_PB1:; ----- PB1 enable -----	MOV.W		R1,bpb1_adr			; set to PB1 (M,L)	MOV.W		R3,bpb1_adr+2		; set to PB1 (H)	BSET		1,R0				; PB control information PB1  = EnablePBTBL_SET_EXIT:	MOV.B		R0L,bpb_cntl		; >	RTS;========================================================;	NAME	: S_PB_ON;	FUNCTION: set to address match register from PB table;			　PB request enable;				(1)Enabled for only PB control register;				(2)set to address match register;	INPUT	: bpb_cntl	: PB control information設定制御;			  bpb0_adr	: PB0 data(address);			  bpb1_adr	: PB1 data(address);	OUTPUT	: ---;	RETURN	: ---;	USED_REG: [R0][R1] Not safety;	USED_SUB: ---;;	CRAETE	: 1999.3.1;========================================================S_PB_ON:; ----- Initialize of address match information -----	MOV.B:G		#0,AIER				; Address Enable Flag = OFF;	MOV.B		bpb_cntl,R0L		; Load PB cpntrol information	BTST		0,R0				; PB #0 request Enable ?	JEQ			PB_ON_PB1			; --> NO; ----- PB0 enable -----	MOV.W		bpb0_adr,R0			; Load PB M,L	MOV.W		bpb0_adr+2,R1		; Load PB H	MOV.W:G		R0,RMAD0L			; > Address match register 0 (M,L)	MOV.B:G		R1L,RMAD0H			; >	Address match register 0 (H)	BSET:G		AIER0				; Enable to Address match #0;PB_ON_PB1:	MOV.B		bpb_cntl,R0L		; Load PB cpntrol information	BTST		1,R0				; PB #1 request Enable ?	JEQ			PB_ON_EXIT			; --> NO; ----- PB1 enable -----	MOV.W		bpb1_adr,R0			; Load PB M,L	MOV.W		bpb1_adr+2,R1		; Load PB H	MOV.W:G		R0,RMAD1L			; > Address match register 0 (M,L)	MOV.B:G		R1L,RMAD1H			; >	Address match register 0 (H)	BSET:G		AIER1				; Enable to Address match #0PB_ON_EXIT:	RTS;========================================================;	NAME	: S_ADR_EDIT;	FUNCTION: modify PC value at address match interrupt;;	INPUT	: badr_edit	: PC value at address match interrupt occured;	OUTPUT	: badr_edit	: modified PC value;	RETURN	: ---;	USED_REG: [R0][R1][A0][A1] Not safety;	USED_SUB: ---;	CRAETE	: 1999.3.1;========================================================S_ADR_EDIT:; ----- check number of address point -----	MOV.B:G		AIER,R0L			; Get Address match requset register	AND.B		#03H,R0L			; Mask request point 	CMP.B		#3,R0L				; 2 addresses requset ? 	JEQ			ADR_EDIT_2POINT		; --> YES; ----- at 1 point request  -----	BTST:G		AIER0				; No.1 request	JEQ			ADR_EDIT_1			; --> NO; ----- process for address matcht 0 -----	MOV.W:G		RMAD0L,R0			; > Address match register 0 (M,L)	MOV.B:G		RMAD0H,R1L			; >	Address match register 0 (H)	MOV.W		R0,badr_edit		; >	MOV.B		R1L,badr_edit+2		; >	JMP.W		ADR_EDIT_EXIT		; --> ALLADR_EDIT_1:	MOV.W:G		RMAD1L,R0			; > Address match register 1 (M,L)	MOV.B:G		RMAD1H,R1L			; >	Address match register 1 (H)	MOV.W		R0,badr_edit		; >	MOV.B		R1L,badr_edit+2		; >	JMP.W		ADR_EDIT_EXIT		; --> ALL; ----- at 2 points request -----ADR_EDIT_2POINT:; ----- analyze opecode (1) -----	MOV.W:G		RMAD0L,A0			; > Address match register 0(M,L)	MOV.B:G		RMAD0H,A1			; >	Address match register 0(H)	LDE.B		[A1A0],R0L			; Operation Code Get;	MOV.B		R0L,A0				; Operation code size get	LDE.B		T_OPE_CODE[A0],R0L	;	CMP.B		#C_CMD_1,R0L		; (+2)instruction ?	JNE			ADR_EDIT_OPE1P1		; --> NO; ----- (+2)group -----	MOV.W		badr_edit,R0		; Load PC M,L	SUB.W		#2,R0				; (-2)	MOV.W:G		RMAD0L,R1			; Address match register 0(M,L)	CMP.W		R0,R1				; Match ?	JEQ			ADR_EDIT_PB0SET		; --> YES; ----- (+1)group -----ADR_EDIT_OPE1P1:	MOV.W		badr_edit,R0		; Load PC M,L	SUB.W		#1,R0				; (-1)	MOV.W:G		RMAD0L,R1			; Address match register 0(L)	CMP.W		R0,R1				; Match ?	JNE			ADR_EDIT_OPE2		; --> NOADR_EDIT_PB0SET:	MOV.W:G		RMAD0L,R0			; > Address match register 0(M,L)	MOV.B:G		RMAD0H,R1L			; >	Address match register 0(H)	MOV.W		R0,badr_edit		; >	MOV.B		R1L,badr_edit+2		; >	JMP.W		ADR_EDIT_EXIT		; --> ALL; ----- analyze opecode (2) -----ADR_EDIT_OPE2:	MOV.W:G		RMAD1L,A0			; > Address match register 1 (M,L)	MOV.B:G		RMAD1H,A1			; >	Address match register 1 (H)	LDE.B		[A1A0],R0L			; Get Operation code;	MOV.B		R0L,A0				; Operation code size get	LDE.B		T_OPE_CODE[A0],R0L	;	CMP.B		#C_CMD_1,R0L		; (+2)instruction ?	JNE			ADR_EDIT_OPE2P1		; --> NO; ----- (+2)group -----	MOV.W		badr_edit,R0		; Load PC M,Lﾞ	SUB.W		#2,R0				; (-2)	MOV.W:G		RMAD1L,R1			; Address match register 1 (M,L)	CMP.W		R0,R1				; Match ?	JEQ			ADR_EDIT_PB1SET		; --> YES; ----- (+1)group -----ADR_EDIT_OPE2P1:	MOV.W		badr_edit,R0		; Load PC M,L	SUB.W		#1,R0				; (-1)	MOV.W:G		RMAD1L,R1			; Address match register 1 (M,L)	CMP.W		R0,R1				; Match ?	JNE			ADR_EDIT_EXIT		; --> NOADR_EDIT_PB1SET:	MOV.W:G		RMAD1L,R0			; > Address match register 1 (M,L)	MOV.B:G		RMAD1H,R1L			; >	Address match register 2 (H)	MOV.W		R0,badr_edit		; >	MOV.B		R1L,badr_edit+2		; >ADR_EDIT_EXIT:	RTS;========================================================;	NAME	: S_RCVBUF_EDIT;	FUNCTION: FIFO Update for Receive data buffer;	INPUT	: brcv_buf	: Receive data buffer;	OUTPUT	: brcv_buf	: Receive data buffer;	RETURN	: ---;	USED_REG: [R0][A0] safety;	USED_SUB: ---;	CRAETE	: 1996.3.1;========================================================S_RCVBUF_EDIT:	PUSH.W		R0					; for work	PUSH.W		A0					; for work;	MOV.W		#0,A0				; Offset = 0RCVBUF_EDIT_LOOP:	MOV.B		brcv_buf+1[A0],R0L	; Receive data move  [N+1] -> [N]	MOV.B		R0L,brcv_buf[A0]	;	ADD.W		#1,A0				;	CMP.W		#C_RCV_MAX-1,A0		; Buffer FULL ?	JNE			RCVBUF_EDIT_LOOP	; --> NO;	POP.W		A0					;	POP.W		R0					;	RTS;========================================================;	NAME	: S_MON_ERR;	FUNCTION: Error process in moniter program;			  ・In_Loop;	INPUT	: ---;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: ---;	USED_SUB: ---;	CRAETE	: 1999.3.1;========================================================S_MON_ERR:.IF DBG==ON	BSET:G		P7_4				;.ENDIF	NOP								;	NOP								;	JMP.B		S_MON_ERR			;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;.IF	DBG==ON;========================================================;	NAME	: S_TSTSET;	FUNCTION: Test data set for Debug;	INPUT	: ---;	OUTPUT	: ---;	RETURN	: ---;	USED_REG: ---;	CRAETE	: 1999.3.1;========================================================S_TSTSET:	MOV.B		#11H,dbg_tstdat			;	MOV.B		#13H,dbg_tstdat+1		;	MOV.B		#1BH,dbg_tstdat+2		;	MOV.B		#21H,dbg_tstdat+3		;	MOV.B		#12H,dbg_tstdat+4		;	MOV.B		#34H,dbg_tstdat+5		;	MOV.B		#56H,dbg_tstdat+6		;	MOV.B		#78H,dbg_tstdat+7		;	MOV.B		#9AH,dbg_tstdat+8		;	MOV.B		#0BCH,dbg_tstdat+9		;	MOV.B		#0DEH,dbg_tstdat+10		;	MOV.B		#0F0H,dbg_tstdat+11		;	MOV.B		#55H,dbg_tstdat+12		;	MOV.B		#0AAH,dbg_tstdat+13		;	MOV.B		#55H,dbg_tstdat+14		;	MOV.B		#0AAH,dbg_tstdat+15		;	RTS.ENDIF;********************************************************;														*;	FILENAME: mon_sub.a30								*;														*; 	Copyright(c) 1995-1999 MITSUBISHI ELECTRIC Co. 		*; 	and MITSUBISHI ELECTRIC SEMICONDUCTOR SYSTEM Co.	*;	All Rights Reserved.								*;														*;********************************************************