.SECTION	VECTOR,CODE,LOCATE=H'0000
	.IMPORT	_TMA_Int
	.IMPORT	_TMW_Int
	.IMPORT	_TMV_Int
	.IMPORT	_UART0_Int
	.IMPORT	_ADC_Int

	.DATA.W	_start		; 0:リセット
	.DATA.W	H'00000		; 1:予約
	.DATA.W	H'00000		; 2:予約
	.DATA.W	H'00000		; 3:予約
	.DATA.W	H'00000		; 4:予約
	.DATA.W	H'00000		; 5:予約
	.DATA.W	H'00000		; 6:予約
	.DATA.W	_dmy_int		; 7:NMI
	.DATA.W	_dmy_int		; 8:TRAP1
	.DATA.W	_dmy_int		; 9:TRAP2
	.DATA.W	_dmy_int		;10:TRAP3
	.DATA.W	_dmy_int		;11:TRAP4
	.DATA.W	_dmy_int		;12:BRK
	.DATA.W	_DT_Int		;13:DT
	.DATA.W	_IRQ0_Int		;14:IRQ0
	.DATA.W	_IRQ1_Int		;15:IRQ1
	.DATA.W	_IRQ2_Int		;16:IRQ2
	.DATA.W	_IRQ3_Int		;17:IRQ3
	.DATA.W	_dmy_int		;18:WKP
	.DATA.W	_TMA_Int		;19:TA
	.DATA.W	H'00000		;20:予約
	.DATA.W	_TMW_Int		;21:TW
	.DATA.W	_TMV_Int		;22:TV
	.DATA.W	_UART0_Int	;23:SCI3
	.DATA.W	_dmy_int		;24:IIC
	.DATA.W	_ADC_Int		;25:ADI

	.SECTIONP,CODE
	.EXPORT	_start
	.EXPORT	_DI
	.EXPORT	_EI
	.EXPORT	_SLEEP
	.EXPORT	_NOP
	.IMPORT	_init
	.IMPORT	_main
;
_start:
	ORC	#H'80,CCR		;割り込み禁止
	MOV.L	#_STACK_END,ER7	;スタックポインタ設定
;
;	ROM->RAM COPY
;
	MOV.L	#(startof D),ER0
	MOV.W	#_R_TOP,R1
	MOV.W	#_B_TOP,R2
loop1:
	CMP.W	R2,R1
	BCC	loop1e
	MOV.W	@R0,R3
	MOV.W	R3,@R1
	ADD.W	#2,R0
	ADD.W	#2,R1
	BRA	loop1
loop1e:
;
;	RAM CLEAR ($00)
;
	MOV.W	#H'0000,R3
	MOV.W	#_B_TOP,R1
	MOV.W	#_STACK_TOP,R2
loop2:
	CMP.W	R2,R1
	BCC	loop2e
	MOV.W	R3,@R1
	ADD.W	#2,R1
	BRA	loop2
loop2e:
;
;	STACK CLEAR ($FF)
;
	MOV.W	#H'FFFF,R3
	MOV.W	#_STACK_TOP,R1
	MOV.W	#_STACK_END,R2
loop3:
	CMP.W	R2,R1
	BCC	loop3e
	MOV.W	R3,@R1
	ADD.W	#2,R1
	BRA	loop3
loop3e:
;
	JSR	@_init
	JSR	@_main
	BRA	_start
;
_dmy_int:
	RTE
;
IRR1:	.EQU	H'FFF6
IRRDT:	.BEQU	7,IRR1
IRRTA:	.BEQU	6,IRR1
IRRI3:	.BEQU	3,IRR1
IRRI2:	.BEQU	2,IRR1
IRRI1:	.BEQU	1,IRR1
IRRI0:	.BEQU	0,IRR1
;
_DT_Int:
	BCLR	IRRDT
	RTE
;
_IRQ0_Int:
	BCLR	IRRI0
	RTE
;
_IRQ1_Int:
	BCLR	IRRI1
	RTE
;
_IRQ2_Int:
	BCLR	IRRI2
	RTE
;
_IRQ3_Int:
	BCLR	IRRI3
	RTE
;
_DI:
	ORC	#H'80,CCR		;割り込み禁止
	RTS
_EI:
	ANDC	#H'7F,CCR		;割り込み許可
	RTS
_SLEEP:
	SLEEP
_NOP:
	RTS

	.SECTION	C,DATA,ALIGN=2
	.EXPORT	_C_TOP
	.EXPORT	_D_END_ADR
	.EXPORT	_R_TOP_ADR
	.EXPORT	_B_END_ADR
_C_TOP:
_D_END_ADR:
	.DATA.L	(startof D) + (sizeof D) - 1
_R_TOP_ADR:
	.DATA.L	(startof R)
_B_END_ADR:
	.DATA.L	(startof B) + (sizeof B) - 1

	.SECTION	D,DATA,ALIGN=2
_D_TOP:

	.SECTION	R,DATA,ALIGN=2
_R_TOP:

	.SECTION	B,DATA,ALIGN=2
	.EXPORT	_B_TOP
_B_TOP:

	.SECTION	STACK,DATA,LOCATE=H'FF80-H'200
	.EXPORT	_STACK_TOP
	.EXPORT	_STACK_END
_STACK_TOP:
	.RES.B	H'200
_STACK_END:

	.END