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

📄 pacint.src

📁 itron
💻 SRC
字号:
; --------------------------------------------------------------------------- 
;  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                     
;    プロセッサ藐据步コンポ〖ネント (泣惟 H8/300H 脱)                         
;    充り哈みハンドラ                                                         
;                                                                             
;                                   Copyright (C) 1998-2002 by Project HOS    
;                                   http://sourceforge.jp/projects/hos/       
; --------------------------------------------------------------------------- 



				.CPU     300HA


				.SECTION D, DATA, ALIGN=2
				.SECTION X, DATA, ALIGN=2
				.SECTION P, CODE, ALIGN=2



				.EXPORT	_hos_vector001
				.EXPORT	_hos_vector002
				.EXPORT	_hos_vector003
				.EXPORT	_hos_vector004
				.EXPORT	_hos_vector005
				.EXPORT	_hos_vector006
				.EXPORT	_hos_vector007
				.EXPORT	_hos_vector008
				.EXPORT	_hos_vector009
				.EXPORT	_hos_vector010
				.EXPORT	_hos_vector011
				.EXPORT	_hos_vector012
				.EXPORT	_hos_vector013
				.EXPORT	_hos_vector014
				.EXPORT	_hos_vector015
				.EXPORT	_hos_vector016
				.EXPORT	_hos_vector017
				.EXPORT	_hos_vector018
				.EXPORT	_hos_vector019
				.EXPORT	_hos_vector020
				.EXPORT	_hos_vector021
				.EXPORT	_hos_vector022
				.EXPORT	_hos_vector023
				.EXPORT	_hos_vector024
				.EXPORT	_hos_vector025
				.EXPORT	_hos_vector026
				.EXPORT	_hos_vector027
				.EXPORT	_hos_vector028
				.EXPORT	_hos_vector029
				.EXPORT	_hos_vector030
				.EXPORT	_hos_vector031
				.EXPORT	_hos_vector032
				.EXPORT	_hos_vector033
				.EXPORT	_hos_vector034
				.EXPORT	_hos_vector035
				.EXPORT	_hos_vector036
				.EXPORT	_hos_vector037
				.EXPORT	_hos_vector038
				.EXPORT	_hos_vector039
				.EXPORT	_hos_vector040
				.EXPORT	_hos_vector041
				.EXPORT	_hos_vector042
				.EXPORT	_hos_vector043
				.EXPORT	_hos_vector044
				.EXPORT	_hos_vector045
				.EXPORT	_hos_vector046
				.EXPORT	_hos_vector047
				.EXPORT	_hos_vector048
				.EXPORT	_hos_vector049
				.EXPORT	_hos_vector050
				.EXPORT	_hos_vector051
				.EXPORT	_hos_vector052
				.EXPORT	_hos_vector053
				.EXPORT	_hos_vector054
				.EXPORT	_hos_vector055
				.EXPORT	_hos_vector056
				.EXPORT	_hos_vector057
				.EXPORT	_hos_vector058
				.EXPORT	_hos_vector059
				.EXPORT	_hos_vector060
				.EXPORT	_hos_vector061
				.EXPORT	_hos_vector062
				.EXPORT	_hos_vector063



;------------------------------------------------
; 充り哈みハンドラ
;------------------------------------------------
_hos_vector001:	push.l	er0
				mov.l	#1, er0
				bra		int_handler1:8

_hos_vector002:	push.l	er0
				mov.l	#2, er0
				bra		int_handler1:8

_hos_vector003:	push.l	er0
				mov.l	#3, er0
				bra		int_handler1:8

_hos_vector004:	push.l	er0
				mov.l	#4, er0
				bra		int_handler1:8

_hos_vector005:	push.l	er0
				mov.l	#5, er0
				bra		int_handler1:8

_hos_vector006:	push.l	er0
				mov.l	#6, er0
				bra		int_handler1:8

_hos_vector007:	push.l	er0
				mov.l	#7, er0
				bra		int_handler1:8

_hos_vector008:	push.l	er0
				mov.l	#8, er0
				bra		int_handler1:8

_hos_vector009:	push.l	er0
				mov.l	#9, er0
				bra		int_handler1:8

_hos_vector010:	push.l	er0
				mov.l	#10, er0
				bra		int_handler1:8

_hos_vector011:	push.l	er0
				mov.l	#11, er0

int_handler1:	
				bra		int_handler:16

_hos_vector012:	push.l	er0
				mov.l	#12, er0
				bra		int_handler1:8

_hos_vector013:	push.l	er0
				mov.l	#13, er0
				bra		int_handler1:8

_hos_vector014:	push.l	er0
				mov.l	#14, er0
				bra		int_handler1:8

_hos_vector015:	push.l	er0
				mov.l	#15, er0
				bra		int_handler1:8

_hos_vector016:	push.l	er0
				mov.l	#16, er0
				bra		int_handler1:8

_hos_vector017:	push.l	er0
				mov.l	#17, er0
				bra		int_handler1:8

_hos_vector018:	push.l	er0
				mov.l	#18, er0
				bra		int_handler1:8

_hos_vector019:	push.l	er0
				mov.l	#19, er0
				bra		int_handler1:8

_hos_vector020:	push.l	er0
				mov.l	#20, er0
				bra		int_handler1:8

_hos_vector021:	push.l	er0
				mov.l	#21, er0
				bra		int_handler1:8

_hos_vector022:	push.l	er0
				mov.l	#22, er0
				bra		int_handler2:8

_hos_vector023:	push.l	er0
				mov.l	#23, er0
				bra		int_handler2:8

_hos_vector024:	push.l	er0
				mov.l	#24, er0
				bra		int_handler2:8

_hos_vector025:	push.l	er0
				mov.l	#25, er0
				bra		int_handler2:8

_hos_vector026:	push.l	er0
				mov.l	#26, er0
				bra		int_handler2:8

_hos_vector027:	push.l	er0
				mov.l	#27, er0
				bra		int_handler2:8

_hos_vector028:	push.l	er0
				mov.l	#28, er0
				bra		int_handler2:8

_hos_vector029:	push.l	er0
				mov.l	#29, er0
				bra		int_handler2:8

_hos_vector030:	push.l	er0
				mov.l	#30, er0
				bra		int_handler2:8

_hos_vector031:	push.l	er0
				mov.l	#31, er0
				bra		int_handler2:8

_hos_vector032:	push.l	er0
				mov.l	#32, er0

int_handler2:	
				bra		int_handler

_hos_vector033:	push.l	er0
				mov.l	#33, er0
				bra		int_handler2:8

_hos_vector034:	push.l	er0
				mov.l	#34, er0
				bra		int_handler2:8

_hos_vector035:	push.l	er0
				mov.l	#35, er0
				bra		int_handler2:8

_hos_vector036:	push.l	er0
				mov.l	#36, er0
				bra		int_handler2:8

_hos_vector037:	push.l	er0
				mov.l	#37, er0
				bra		int_handler2:8

_hos_vector038:	push.l	er0
				mov.l	#38, er0
				bra		int_handler2:8

_hos_vector039:	push.l	er0
				mov.l	#39, er0
				bra		int_handler2:8

_hos_vector040:	push.l	er0
				mov.l	#40, er0
				bra		int_handler2:8

_hos_vector041:	push.l	er0
				mov.l	#41, er0
				bra		int_handler2:8

_hos_vector042:	push.l	er0
				mov.l	#42, er0
				bra		int_handler2:8

_hos_vector043:	push.l	er0
				mov.l	#43, er0
				bra		int_handler3:8

_hos_vector044:	push.l	er0
				mov.l	#44, er0
				bra		int_handler3:8

_hos_vector045:	push.l	er0
				mov.l	#45, er0
				bra		int_handler3:8

_hos_vector046:	push.l	er0
				mov.l	#46, er0
				bra		int_handler3:8

_hos_vector047:	push.l	er0
				mov.l	#47, er0
				bra		int_handler3:8

_hos_vector048:	push.l	er0
				mov.l	#48, er0
				bra		int_handler3:8

_hos_vector049:	push.l	er0
				mov.l	#49, er0
				bra		int_handler3:8

_hos_vector050:	push.l	er0
				mov.l	#50, er0
				bra		int_handler3:8

_hos_vector051:	push.l	er0
				mov.l	#51, er0
				bra		int_handler3:8

_hos_vector052:	push.l	er0
				mov.l	#52, er0

int_handler3:
				bra		int_handler:16

_hos_vector053:	push.l	er0
				mov.l	#53, er0
				bra		int_handler:8

_hos_vector054:	push.l	er0
				mov.l	#54, er0
				bra		int_handler:8

_hos_vector055:	push.l	er0
				mov.l	#55, er0
				bra		int_handler:8

_hos_vector056:	push.l	er0
				mov.l	#56, er0
				bra		int_handler:8

_hos_vector057:	push.l	er0
				mov.l	#57, er0
				bra		int_handler:8

_hos_vector058:	push.l	er0
				mov.l	#58, er0
				bra		int_handler:8

_hos_vector059:	push.l	er0
				mov.l	#59, er0
				bra		int_handler:8

_hos_vector060:	push.l	er0
				mov.l	#60, er0
				bra		int_handler:8

_hos_vector061:	push.l	er0
				mov.l	#61, er0
				bra		int_handler:8

_hos_vector062:	push.l	er0
				mov.l	#62, er0
				bra		int_handler:8

_hos_vector063:	push.l	er0
				mov.l	#63, er0
				bra		int_handler:8




; -----------------------------------------------
;          充り哈み借妄
;
;  充り哈み券栏箕は er0 を push した稿、er0 に
;  充り哈み戎规をセットして、ここにジャンプする
; -----------------------------------------------
				.IMPORT	_kernel_sta_int		; 充り哈み借妄倡幌
				.IMPORT	_kernel_end_int		; 充り哈み借妄姜位
				.IMPORT	_kernel_exe_int		; 充り哈み借妄悸乖
				.IMPORT	_kernel_int_sp		; 充り哈み脱スタックアドレス
				.IMPORT	_kernel_int_ssp		; 充り哈み脱スタックアドレス
				.IMPORT	_kernel_int_cnt		; 充り哈みネストカウンタ
				.IMPORT	_kernel_h83_imsk	; 附哼の充り哈みマスク猛
				.IMPORT	_kernel_h83_ibmsk	; ベ〖ス充り哈みマスク猛

int_handler:	
		; ---- レジスタ瘦赂
				push.l	er1
				
		; ----充り哈みマスク肋年
				stc.b	ccr, r1l
				and.b	#h'c0, r1l
				mov.b	r1l, @_kernel_h83_imsk
				
		; -------- 驴脚充り哈みの冉侍
				mov.w	@_kernel_int_cnt, r1
				bne		mul_int
				
		; ======== 呵介の充り哈み ========
		; ---- 充り哈みネストカウンタ肋年
				mov.w	#1, r1
				mov.w	r1, @_kernel_int_cnt
				
		; ---- スタックポインタの掐れ仑え
				mov.l	er7, @_kernel_int_ssp
				mov.l	@_kernel_int_sp, er7
				
		; ---- 充り哈み借妄の倡幌
				push.l	er0
				jsr		@_kernel_sta_int
				pop.l	er0
				
		; -------- 充り哈みハンドラの借妄
				jsr		@_kernel_exe_int
				
		; -------- スタックポインタ牲耽
				mov.l	@_kernel_int_ssp, er7
				
		; -------- 充り哈みネストカウンタクリア
				xor.w	r1, r1
				mov.w	r1, @_kernel_int_cnt
				
		; -------- 充り哈みマスク猛の牲耽
				mov.b	@_kernel_h83_ibmsk, r0l
				mov.b	r0l, @_kernel_h83_imsk		; 充り哈みマスク猛をベ〖ス猛に提す
				
		; -------- タスクコンテキストに败乖
				jsr		@_kernel_end_int
				
		; -------- 牲耽稿のマスク猛を肋年
				mov.b	@_kernel_h83_ibmsk, r0l		; ベ〖スマスク猛艰り叫し
				mov.b	@(8, er7), r1l
				and.b	#h'3f, r1l					; スタック惧のCCRからIとUI笆嘲を艰り叫し
				or.b	r0l, r1l					; ベ〖スマスク猛を肋年
				mov.b	r1l, @(8, er7)				; スタック惧のCCRを构糠
				
		; -------- 牲耽
				pop.l	er1
				pop.l	er0
				rte


		; ======== 驴脚充り哈み ========
mul_int:		
		; -------- 充り哈みネストカウンタ裁换
				inc.w	#1, r1
				mov.w	r1, @_kernel_int_cnt
				
		; -------- 充り哈みハンドラ钙び叫し
				jsr		@_kernel_exe_int
				
		; -------- 充り哈みネストカウンタ负换
				mov.w	@_kernel_int_cnt, r0
				dec.w	#1, r0
				mov.w	r0, @_kernel_int_cnt
				
		; -------- 牲耽
				pop.l	er1
				pop.l	er0
				rte



				.END


; --------------------------------------------------------------------------- 
;  Copyright (C) 1998-2002 by Project HOS                                     
; --------------------------------------------------------------------------- 

⌨️ 快捷键说明

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