📄 pacctx.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
.EXPORT _hospac_dis_int ; 充り哈み敦贿
.EXPORT _hospac_ena_int ; 充り哈み钓材
.EXPORT _hospac_cre_ctx_asm ; 悸乖コンテキストの侯喇
.EXPORT _hospac_swi_ctx ; 悸乖コンテキストの磊仑
.IMPORT _kernel_h83_imsk ; 充り哈みマスク
.SECTION P, CODE, ALIGN=2
; -----------------------------------------------
; 充り哈み敦贿
; void hospac_dis_int(void)
; -----------------------------------------------
_hospac_dis_int:
orc #h'80, ccr ; 充り哈みの敦贿
rts
; -----------------------------------------------
; 充り哈み钓材
; void hospac_ena_int(void)
; -----------------------------------------------
_hospac_ena_int:
mov.b @_kernel_h83_imsk, r0l
ldc.b r0l, ccr ; 充り哈みの钓材
rts
; -----------------------------------------------
; 悸乖コンテキストエントリ〖アドレス
; -----------------------------------------------
ctx_entry:
mov.l er2, er0 ; 悸乖箕パラメ〖タを妈办苞眶に肋年
jmp @er3 ; 悸乖アドレスにジャンプ
; -----------------------------------------------
; 悸乖コンテキストの侯喇
; void hospac_cre_ctx_asm(
; T_HOSPAC_CTXINF *pk_ctxinf, /* 侯喇するコンテキスト */
; VP sp, /* スタックポインタ */
; void (*task)(VP_INT), /* 悸乖アドレス */
; VP_INT exinf /* 悸乖箕パラメ〖タ */
; )
; -----------------------------------------------
_hospac_cre_ctx_asm:
push.l er2
mov.l #ctx_entry, er2 ; 悸乖エントリ〖ポイントの肋年
mov.l er2, @-er1
mov.l @(12, er7), er2 ; 悸乖箕パラメ〖タの艰り叫し
mov.l er2, @-er1 ; 悸乖箕パラメ〖タ呈羌 (er2の锣闰尸)
mov.l @(8, er7), er2 ; 悸乖アドレス艰り叫し
mov.l er2, @-er1 ; 悸乖ドレスを呈羌 (er3 の锣闰尸)
sub.l #12, er1 ; er4×er6 までの锣闰尸
mov.l er1, @(0, er0) ; スタックポインタの呈羌
pop.l er2
rts
; -----------------------------------------------
; 悸乖コンテキストの磊仑
; void hospac_swi_ctx(
; T_HOSPAC_CTXINF *pk_pre_ctxinf, /* 附哼のコンテキストの瘦赂黎 */
; T_HOSPAC_CTXINF *pk_nxt_ctxinf /* 磊り仑えるコンテキスト */
; )
; -----------------------------------------------
_hospac_swi_ctx:
push.l er2
push.l er3
push.l er4
push.l er5
push.l er6
mov.l er7,@(0, er0) ; スタックポインタ瘦赂
mov.l @(0, er1), er7 ; スタックポインタ牲耽
pop.l er6
pop.l er5
pop.l er4
pop.l er3
pop.l er2
rts
.END
; ---------------------------------------------------------------------------
; Copyright (C) 1998-2002 by Project HOS
; ---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -