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

📄 pacint.s

📁 itron
💻 S
字号:
/* -------------------------------------------------------------------------*/
/*  Hyper Operating System V4                                               */
/*    充り哈みハンドラ  Hitachi H8/300H 脱                                  */
/*                                                                          */
/*                                  Copyright (C) 1998-2002 by Project HOS  */
/*                                  http://sourceforge.jp/projects/hos/     */
/* ------------------------------------------------------------------------ */


				.h8300h


				.text
				.align 2


				.global	_hos_vector001
				.global	_hos_vector002
				.global	_hos_vector003
				.global	_hos_vector004
				.global	_hos_vector005
				.global	_hos_vector006
				.global	_hos_vector007
				.global	_hos_vector008
				.global	_hos_vector009
				.global	_hos_vector010
				.global	_hos_vector011
				.global	_hos_vector012
				.global	_hos_vector013
				.global	_hos_vector014
				.global	_hos_vector015
				.global	_hos_vector016
				.global	_hos_vector017
				.global	_hos_vector018
				.global	_hos_vector019
				.global	_hos_vector020
				.global	_hos_vector021
				.global	_hos_vector022
				.global	_hos_vector023
				.global	_hos_vector024
				.global	_hos_vector025
				.global	_hos_vector026
				.global	_hos_vector027
				.global	_hos_vector028
				.global	_hos_vector029
				.global	_hos_vector030
				.global	_hos_vector031
				.global	_hos_vector032
				.global	_hos_vector033
				.global	_hos_vector034
				.global	_hos_vector035
				.global	_hos_vector036
				.global	_hos_vector037
				.global	_hos_vector038
				.global	_hos_vector039
				.global	_hos_vector040
				.global	_hos_vector041
				.global	_hos_vector042
				.global	_hos_vector043
				.global	_hos_vector044
				.global	_hos_vector045
				.global	_hos_vector046
				.global	_hos_vector047
				.global	_hos_vector048
				.global	_hos_vector049
				.global	_hos_vector050
				.global	_hos_vector051
				.global	_hos_vector052
				.global	_hos_vector053
				.global	_hos_vector054
				.global	_hos_vector055
				.global	_hos_vector056
				.global	_hos_vector057
				.global	_hos_vector058
				.global	_hos_vector059
				.global	_hos_vector060
				.global	_hos_vector061
				.global	_hos_vector062
				.global	_hos_vector063


/************************************************
  充り哈みハンドラ
*************************************************/
_hos_vector001:	push.l	er0
				mov.b	#1, r0l
				bra		int_handler1:8

_hos_vector002:	push.l	er0
				mov.b	#2, r0l
				bra		int_handler1:8

_hos_vector003:	push.l	er0
				mov.b	#3, r0l
				bra		int_handler1:8

_hos_vector004:	push.l	er0
				mov.b	#4, r0l
				bra		int_handler1:8

_hos_vector005:	push.l	er0
				mov.b	#5, r0l
				bra		int_handler1:8

_hos_vector006:	push.l	er0
				mov.b	#6, r0l
				bra		int_handler1:8

_hos_vector007:	push.l	er0
				mov.b	#7, r0l
				bra		int_handler1:8

_hos_vector008:	push.l	er0
				mov.b	#8, r0l
				bra		int_handler1:8

_hos_vector009:	push.l	er0
				mov.b	#9, r0l
				bra		int_handler1:8

_hos_vector010:	push.l	er0
				mov.b	#10, r0l
				bra		int_handler1:8

_hos_vector011:	push.l	er0
				mov.b	#11, r0l
				bra		int_handler1:8

_hos_vector012:	push.l	er0
				mov.b	#12, r0l
				bra		int_handler1:8

_hos_vector013:	push.l	er0
				mov.b	#13, r0l
				bra		int_handler1:8

_hos_vector014:	push.l	er0
				mov.b	#14, r0l
				bra		int_handler1:8

_hos_vector015:	push.l	er0
				mov.b	#15, r0l
				bra		int_handler1:8

_hos_vector016:	push.l	er0
				mov.b	#16, r0l
				bra		int_handler1:8

_hos_vector017:	push.l	er0
				mov.b	#17, r0l

int_handler1:
				bra		int_handler:16

_hos_vector018:	push.l	er0
				mov.b	#18, r0l
				bra		int_handler1:8

_hos_vector019:	push.l	er0
				mov.b	#19, r0l
				bra		int_handler1:8

_hos_vector020:	push.l	er0
				mov.b	#20, r0l
				bra		int_handler1:8

_hos_vector021:	push.l	er0
				mov.b	#21, r0l
				bra		int_handler1:8

_hos_vector022:	push.l	er0
				mov.b	#22, r0l
				bra		int_handler1:8

_hos_vector023:	push.l	er0
				mov.b	#23, r0l
				bra		int_handler1:8

_hos_vector024:	push.l	er0
				mov.b	#24, r0l
				bra		int_handler1:8

_hos_vector025:	push.l	er0
				mov.b	#25, r0l
				bra		int_handler1:8

_hos_vector026:	push.l	er0
				mov.b	#26, r0l
				bra		int_handler1:8

_hos_vector027:	push.l	er0
				mov.b	#27, r0l
				bra		int_handler1:8

_hos_vector028:	push.l	er0
				mov.b	#28, r0l
				bra		int_handler1:8

_hos_vector029:	push.l	er0
				mov.b	#29, r0l
				bra		int_handler1:8

_hos_vector030:	push.l	er0
				mov.b	#30, r0l
				bra		int_handler1:8

_hos_vector031:	push.l	er0
				mov.b	#31, r0l
				bra		int_handler1:8

_hos_vector032:	push.l	er0
				mov.b	#32, r0l
				bra		int_handler1:8

_hos_vector033:	push.l	er0
				mov.b	#33, r0l
				bra		int_handler2:8

_hos_vector034:	push.l	er0
				mov.b	#34, r0l
				bra		int_handler2:8

_hos_vector035:	push.l	er0
				mov.b	#35, r0l
				bra		int_handler2:8

_hos_vector036:	push.l	er0
				mov.b	#36, r0l
				bra		int_handler2:8

_hos_vector037:	push.l	er0
				mov.b	#37, r0l
				bra		int_handler2:8

_hos_vector038:	push.l	er0
				mov.b	#38, r0l
				bra		int_handler2:8

_hos_vector039:	push.l	er0
				mov.b	#39, r0l
				bra		int_handler2:8

_hos_vector040:	push.l	er0
				mov.b	#40, r0l
				bra		int_handler2:8

_hos_vector041:	push.l	er0
				mov.b	#41, r0l
				bra		int_handler2:8

_hos_vector042:	push.l	er0
				mov.b	#42, r0l
				bra		int_handler2:8

_hos_vector043:	push.l	er0
				mov.b	#43, r0l
				bra		int_handler2:8

_hos_vector044:	push.l	er0
				mov.b	#44, r0l
				bra		int_handler2:8

_hos_vector045:	push.l	er0
				mov.b	#45, r0l
				bra		int_handler2:8

_hos_vector046:	push.l	er0
				mov.b	#46, r0l
				bra		int_handler2:8

_hos_vector047:	push.l	er0
				mov.b	#47, r0l

int_handler2:
				bra		int_handler:8

_hos_vector048:	push.l	er0
				mov.b	#48, r0l
				bra		int_handler:8

_hos_vector049:	push.l	er0
				mov.b	#49, r0l
				bra		int_handler:8

_hos_vector050:	push.l	er0
				mov.b	#50, r0l
				bra		int_handler:8

_hos_vector051:	push.l	er0
				mov.b	#51, r0l
				bra		int_handler:8

_hos_vector052:	push.l	er0
				mov.b	#52, r0l
				bra		int_handler:8

_hos_vector053:	push.l	er0
				mov.b	#53, r0l
				bra		int_handler:8

_hos_vector054:	push.l	er0
				mov.b	#54, r0l
				bra		int_handler:8

_hos_vector055:	push.l	er0
				mov.b	#55, r0l
				bra		int_handler:8

_hos_vector056:	push.l	er0
				mov.b	#56, r0l
				bra		int_handler:8

_hos_vector057:	push.l	er0
				mov.b	#57, r0l
				bra		int_handler:8

_hos_vector058:	push.l	er0
				mov.b	#58, r0l
				bra		int_handler:8

_hos_vector059:	push.l	er0
				mov.b	#59, r0l
				bra		int_handler:8

_hos_vector060:	push.l	er0
				mov.b	#60, r0l
				bra		int_handler:8

_hos_vector061:	push.l	er0
				mov.b	#61, r0l
				bra		int_handler:8

_hos_vector062:	push.l	er0
				mov.b	#62, r0l
				bra		int_handler:8

_hos_vector063:	push.l	er0
				mov.b	#63, r0l


/************************************************
          充り哈み借妄

  充り哈み券栏箕は er0 を push した稿、er0 に
  充り哈み戎规をセットして、ここにジャンプする
*************************************************/

int_handler:
				/* 充り哈み戎规のマスク */
				mov.b	#0,r0h
				mov.w	#0,e0
				extu.w	r0

				/* レジスタ瘦赂 */
				push.l	er1
				push.l	er2

				/* 充り哈みマスク肋年 */
				stc.b	ccr, r1l
				and.b	#0xc0, 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	@(12, er7), r1l
				and.b	#0x3f,r1l					/* スタック惧のCCRからIとU笆嘲を艰り叫し */
				or.b	r0l, r1l					/* ベ〖スマスク猛を肋年 */
				mov.b	r1l, @(12, er7)				/* スタック惧のCCRを构糠 */

				/* 牲耽 */
				pop.l	er2
				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	er2
				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 + -