📄 pacctx.src
字号:
; ---------------------------------------------------------------------------
; HOS-V4
; プロセッサ藐据步コンポ〖ネント (泣惟 SH2脱)
;
; Copyright (C) 1998-2002 by Project HOS
; http://sourceforge.jp/projects/hos/
; ---------------------------------------------------------------------------
.CPU SH2
.EXPORT _hospac_dis_int ; 充り哈み敦贿
.EXPORT _hospac_ena_int ; 充り哈み钓材
.EXPORT _hospac_cre_ctx_asm ; 悸乖コンテキストの侯喇
.EXPORT _hospac_swi_ctx ; 悸乖コンテキストの磊仑
.IMPORT _hospac_sh_imsk ; 充り哈みマスクの猛
;------------------------------------------------
; 充り哈み敦贿
; void hospac_dis_int(void)
;------------------------------------------------
.SECTION P, CODE, ALIGN=4
_hospac_dis_int:
stc sr, r0
or #h'f0, r0 ; 链充り哈みマスク
rts
ldc r0, sr
;------------------------------------------------
; 充り哈み钓材
; void hospac_ena_int(void)
;------------------------------------------------
.SECTION P, CODE, ALIGN=4
_hospac_ena_int:
mov #h'f0, r1 ; 0x00f0 を瓤啪させて 0xff0f を侯喇
not r1, r1
stc sr, r0
and r1, r0 ; 充り哈みマスク猛笆嘲を艰评
mov.l L_imsk, r1
mov.l @r1, r1
or r1, r0 ; 充り哈みマスクの猛を肋年
rts
ldc r0, sr
.ALIGN 4
L_imsk .DATA.L _hospac_sh_imsk ; 充り哈みマスク
;------------------------------------------------
; 悸乖コンテキストの侯喇
; void hospac_cre_ctx_asm(
; T_HOSPAC_CTXINF *pk_ctxinf, 侯喇するコンテキスト
; VP sp, スタックポインタ
; void (*task)(VP_INT), 悸乖アドレス
; VP_INT exinf) 悸乖箕パラメ〖タ
;------------------------------------------------
.SECTION P, CODE, ALIGN=4
_hospac_cre_ctx_asm:
add #-20, r5 ; r8-r12脱挝拌尸鄂ける
mov.l r7, @-r5 ; 悸乖箕をパラメ〖タ〖を r13 の挝拌に肋年
mov.l r6, @-r5 ; 悸乖倡幌アドレスを r14 の挝拌に肋年
mov.l #ctx_entry, r0 ; 悸乖エントリポイントをリタ〖ンアドレスに肋年
mov.l r0, @-r5
rts
mov.l r5, @(0, r4) ; スタックポインタを瘦赂
;------------------------------------------------
; 悸乖コンテキストエントリ〖アドレス
;------------------------------------------------
ctx_entry:
jmp @r14 ; 悸乖倡幌アドレスに尸呆
mov r13, r4 ; 悸乖箕パラメ〖タを肋年
;------------------------------------------------
; 悸乖コンテキストの磊仑
; void hospac_swi_ctx(
; T_HOSPAC_CTXINF *pk_pre_ctxinf, 附哼のコンテキストの瘦赂黎
; T_HOSPAC_CTXINF *pk_nxt_ctxinf) 磊り仑えるコンテキスト
;------------------------------------------------
.SECTION P, CODE, ALIGN=4
_hospac_swi_ctx:
mov.l r8, @-r15 ; r8-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 + -