📄 pacctx.s
字号:
/* ------------------------------------------------------------------------ */
/* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS */
/* プロセッサ藐据步コンポ〖ネント (泣惟 SH4脱) */
/* */
/* */
/* Copyright (C) 1998-2002 by Project HOS */
/* http://sourceforge.jp/projects/hos/ */
/* ------------------------------------------------------------------------ */
.global _hospac_dis_int /* 充り哈み敦贿 */
.global _hospac_ena_int /* 充り哈み钓材 */
.global _hospac_cre_ctx_asm /* 悸乖コンテキストの侯喇 */
.global _hospac_swi_ctx /* 悸乖コンテキストの磊仑 */
/************************************************
充り哈み敦贿
void hospac_dis_int(void)
************************************************/
.text
.align 2
_hospac_dis_int:
mov.l bl_set_mask,r1
stc sr,r0
or r1,r0 /* 链充り哈みマスク */
ldc r0,sr
rts
nop
bl_set_mask:
.long 0x10000000
/************************************************
充り哈み钓材
void hospac_ena_int(void)
************************************************/
.text
.align 2
_hospac_ena_int:
stc sr,r0
mov.l bl_imsk_clr_mask,r1
and r1,r0 /* 充り哈みマスク猛笆嘲を艰评 */
mov.l imsk_addr,r1
mov.l @r1,r1
or r1,r0 /* 充り哈みマスクの猛を肋年 */
ldc r0,sr
rts
nop
.align 2
bl_imsk_clr_mask:
.long 0xefffff0f
imsk_addr:
.long _hospac_sh_imsk /* 充り哈みマスク */
/************************************************
悸乖コンテキストエントリ〖アドレス
************************************************/
.text
.align 2
ctx_entry:
jmp @r14 /* 悸乖アドレスにジャンプ */
mov r13,r4 /* 悸乖箕パラメ〖タを妈办苞眶に肋年 */
/************************************************
悸乖コンテキストの侯喇
void hospac_cre_ctx_asm(
T_HOSPAC_CTXINF *pk_ctxinf, 侯喇するコンテキスト
VP sp, スタックポインタ
void (*task)(VP_INT), 悸乖アドレス
VP_INT exinf) 悸乖箕パラメ〖タ
************************************************/
.text
.align 2
_hospac_cre_ctx_asm:
add #-20,r5 /* r14-10尸コンテキストのstackを凯ばす */
mov.l r7,@-r5 /* 悸乖パラメ〖タの呈羌(r9) */
mov.l r6,@-r5 /* 悸乖アドレスの呈羌(r8) */
mov.l ctx_entry_addr,r0 /* 悸乖エントリポイントを */
/* コンテキストのスタックに瘦赂 */
mov.l r0,@-r5
rts
mov.l r5,@(0,r4) /* コンテキストのスタックポインタ瘦赂 */
.align 2
ctx_entry_addr:
.long ctx_entry
/************************************************
悸乖コンテキストの磊仑
void hospac_swi_ctx(
T_HOSPAC_CTXINF *pk_pre_ctxinf, 附哼のコンテキストの瘦赂黎
T_HOSPAC_CTXINF *pk_nxt_ctxinf) 磊り仑えるコンテキスト
************************************************/
.text
.align 2
_hospac_swi_ctx:
mov.l r8,@-r15 /* 8-r14,prを锣闰 */
mov.l r9,@-r15
mov.l r10,@-r15
mov.l r11,@-r15
mov.l r12,@-r15
mov.l r13,@-r15
mov.l r14,@-r15
sts.l pr,@-r15
mov.l r15,@(0,r4) /* スタックポインタ瘦赂 */
mov.l @(0,r5),r15 /* スタックポインタ牲耽 */
lds.l @r15+,pr /* r8-r14,prを牲耽 */
mov.l @r15+,r14
mov.l @r15+,r13
mov.l @r15+,r12
mov.l @r15+,r11
mov.l @r15+,r10
mov.l @r15+,r9
rts
mov.l @r15+,r8
.end
/* ------------------------------------------------------------------------ */
/* Copyright (C) 1998-2002 by Project HOS */
/* ------------------------------------------------------------------------ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -