⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.asz

📁 ROHM 公司BU9432:application:应用范围
💻 ASZ
字号:
;/*****************************************************************************/
;/*	[NAME]   :STARTUP.asz						      */
;/*	[OUTLINE]:僗僞乕僩傾僢僾儖乕僠儞				      */
;/*	[HISTORY]:							      */
;/*	[NOTE]   :TAB=8							      */
;/*	         :This file must be located at address 0x0000		      */
;/*****************************************************************************/
	EXTERNAL	gu08_flg_IntrTimer0_
	EXTERNAL	gu08_flg_IntrTimer02_
;	EXTERNAL	gu08_flg_IntrTimer03_	; SDC 050107
	EXTERNAL	gu08_Timer1_10ms_		; YTC006 20050105
	EXTERNAL	gu08_intr_Subsyq_
	EXTERNAL	gu08_intr_SubsyqMark_
	EXTERNAL	gu08_flg_intrclk_			;clk flg,shu,20051031
;	EXTERNAL	gu08_flg_IntrTimer04_		;2ms timer flg,for LED_COM,shu,051213

	external	gu08_RCR_data_
	external	gu08_RCR_sts_
	external DrvLED_ComPort_

	CSEG
	ORG	0000H
START:
;	LD	SP,0
;	LD	SP,0C7FFh
	DI
	JP	STARTUP

	ORG	8H
	JP	RST08

	ORG	10H
	JP	RST10

	ORG	18H
	JP	RST18

	ORG	20H
	JP	RST20

	ORG	28H
	JP	RST28

	ORG	30H
	JP	RST30

	ORG	38H
	JP	RST38

	ORG	66H
	JP	NMI

	ORG	0080H
;S000 Ireg=0, ICU_IVR=80h
VECTORS:
	DW	INT00
	DW	INT01
	DW	INT02
	DW	INT03
	DW	INT04
	DW	INT05
	DW	INT06
	DW	INT07
	DW	INT08
	DW	INT09
	DW	INT0A
	DW	INT0B
	DW	INT0C
	DW	INT0D
	DW	INT0E
	DW	INT0F

;interrupt handlers
RST08:
	HALT
RST10:
	HALT
RST18:
	HALT
RST20:
	HALT
RST28:
	HALT
RST30:
	HALT
RST38:
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Rst38_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

NMI:
	RETN	;S000 NMI枹巊梡
;	PUSH	AF
;	PUSH	BC
;	PUSH	DE
;	PUSH	HL
;	CALL	nmi_handler_##		;call NMI handler
;	POP	HL
;	POP	DE
;	POP	BC
;	POP	AF
;	RETN

INT00:	;IRQ0:PIO0 bit2-0
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr00_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT01:	;IRQ1:TMR0 8bitH/16bit
	PUSH	AF
;	PUSH	BC	;20041028柍懯嶍彍
;	PUSH	DE
;	PUSH	HL
	LD	A,(gu08_flg_IntrTimer0_)
	ADD	A,1
	LD	(gu08_flg_IntrTimer0_),A

	LD	A,(gu08_flg_IntrTimer02_)	; sdc
	ADD	A,1				; 
	LD	(gu08_flg_IntrTimer02_),A	; 

;	LD	A,(gu08_flg_IntrTimer03_)	; SDC 050107
;	ADD	A,1				; 
;	LD	(gu08_flg_IntrTimer03_),A	; 

;	LD	A,(gu08_flg_IntrTimer04_)	; shu 051213,for LED_COM
;	ADD	A,1				; 
;	LD	(gu08_flg_IntrTimer04_),A	; 
		

;	LD	HL, 0FF75H
;	LD	A, (hl)
;	XOR	01H
;	LD	(hl), a

;	POP	HL
;	POP	DE
;	POP	BC
	POP	AF
	EI
	RETI

INT02:	;IRQ2:TMR0 8bitL
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;	CALL	Intr02_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT03:	;IRQ3:SIOF
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr03_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT04:	;IRQ4:SIO0
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr04_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT05:	;IRQ5:SIO1
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr05_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT06:	;IRQ6:SIO2
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr06_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT07:	;IRQ7:PIO0 bit3
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr07_Handler_##	;call interrupt handler

;	LD	A,(gu08_intr_Wakeup_)					;shu,051229
;	ADD A,1									;shu,051229
;	LD (gu08_intr_Wakeup_),A					;shu,051229
	
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT08:	;IRQ8:PIO0 bit4
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr08_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT09:	;IRQ9:PIO0 bit5
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr09_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT0A:	;IRQ10:PIO0 bit6
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr10_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT0B:	;IRQ11:PIO0 bit7
	PUSH	AF
;	PUSH	BC	;20041028 柍懯嶍彍
;	PUSH	DE
;	PUSH	HL
;;	CALL	Intr11_Handler_##	;call interrupt handler
	LD	A,(gu08_intr_Subsyq_)	;;
	ADD	A,1			;;
	LD	(gu08_intr_Subsyq_),A	;;
	LD	A,(gu08_intr_SubsyqMark_)	; YTC006 20050105
	ADD	A,1
	LD	(gu08_intr_SubsyqMark_),A
;	POP	HL
;	POP	DE
;	POP	BC
	POP	AF
	EI
	RETI

INT0C:	;IRQ12:CLK
	PUSH	AF

	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr12_Handler_##	;call interrupt handler
	LD	A,(gu08_flg_intrclk_)				;SHU,20051031
	ADD	 A,1								;SHU,20051031
	LD	(gu08_flg_intrclk_),A				;SHU,20051031
	POP	HL
	POP	DE
	POP	BC

	POP	AF
	EI
	RETI

; YTC008 20050105 >>>
INT0D:	;IRQ13:TMR1 8bitH/16bit
	PUSH	AF
;	PUSH	BC
;	PUSH	DE
;	PUSH	HL
;;	CALL	Intr13_Handler_##	;call interrupt handler

;	LD	A, (gu08_Timer1_10ms_)
;	CP	0
;	JP	Z, INT0D_1

	LD	A, (gu08_Timer1_10ms_)
	ADD A, 0X01
	LD	(gu08_Timer1_10ms_),A

	call	DrvLED_ComPort_
	
;	DEC	A
;	LD	(gu08_Timer1_10ms_), A
INT0D_1:
;	POP	HL
;	POP	DE
;	POP	BC
	POP	AF
	EI
	RETI
; YTC008 20050105 <<<

INT0E:	;IRQ14:TMR1 8bitL
	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;;	CALL	Intr14_Handler_##	;call interrupt handler
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	EI
	RETI

INT0F:	;IRQ15:RCR
	PUSH	AF

;	PUSH	BC
;	PUSH	DE
;	PUSH	HL
;;	CALL	Intr15_Handler_##	;call interrupt handler

	PUSH	ix
	ld	ix, 0FF98h
	ld	a, (ix+1)
	cpl 
	cp	(ix+0)
	jr	nz, INTOFEnd
	ld	a,(ix+1)
	ld	(gu08_RCR_data_), a
	ld	a, 1
	ld	(gu08_RCR_sts_), a

INTOFEnd:
	POP	ix
;	POP	HL
;	POP	DE
;	POP	BC

	POP	AF
	EI
	RETI

;	HALT

STARTUP:				;嶥杫幃偺僷僋儕
;	------------------------------------------------
;	儚乕僋乮俼俙俵乯僄儕傾僋儕傾

;x	ld	hl, R_RAM_TOP		;work area clear
;x	ld	de, R_RAM_TOP+1		;
;x	ld	bc, E_DS_BYTE-E_PTNR_RAMB-1
;x	ld	(hl), 000h		;
;x	ldir				;仸 僗僞僢僋僄儕傾傕僋儕傾偡傞偺偱拲堄
					;仸 PARTNER 偺娭學忋僋儕傾屻僗僞僢僋傪
					;    愝掕偡傞丅

	LD	HL, 0C000h		;俠俹倀侾俉俈侽俁寛傔懪偪
	LD	DE, 0C001h		;
	LD	BC, 007FFh		;
	LD	(HL), 000h		;
	LDIR

;	------------------------------------------------
;	僗僞僢僋億僀儞僞愝掕

;x	ld	sp, E_DS_END+1		;偙偺愝掕傛傝 PARTNER 偑儐乕僓乕僄儕傾偺
;x					;僗僞僢僋傪巊梡偡傞

	LD	SP, 0C7FFh+1		;


;	------------------------------------------------
;	妱崬愝掕

;x	ld	a, high E_IV_TOP	; 儀僋僞傾僪儗僗僙僢僩
;x	ld	i, a			; 
;x	ld	a, low E_IV_TOP		; 
;x	ld	(E_ICU_IVR), a		; 

	LD	A,10000000B		;
	LD	(0FFF0h),a		;ICU_IVR
	LD	A,0			;
	LD	I,A			;
	IM	2			;

;	------------------------------------------------

;	;clear DATA segment
;	LD	HL,DATATOP
;	LD	DE,_endx_##	; _endx_ is defined in romlib
;	LD	A,E
;	SUB	L
;	LD	C,A
;	LD	A,D
;	SBC	A,H
;	LD	B,A
;	_1:	LD	A,B
;		OR	C
;		JP	Z,_2
;		LD	(HL),0
;		INC	HL
;		DEC	BC
;		JP	_1
;	_2:

	;set interrupt vector register
;	LD	A,HIGH VECTORS
;	LD	I,A

;	LD	A,10000000B	;
;	LD	(0FFF0h),a	;
;	LD	A,0		;
;	LD	I,A		;
;	IM	2		;

	;;;; your initialization code

	EI
	JP	main_##


;VECTOR	CSEG	ON 256	;interrupt vector must be on 256-byte align

;	DSEG
;DATATOP::

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -