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

📄 pacctx.src

📁 itron
💻 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 + -