📄 pacint.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 + -