📄 tick16.s
字号:
*---------------------------------------------------------------------
* uCOS
* Microcomputer Real-Time Multitasking Operating System
* KERNEL
* (c) Copyright 1992, Jean J. Labrosse, Plantation, FL
* All Rights Reserved
*
* void tick16_isr(void)
*
* FUNCTION:
* This is an interrupt handler that is used by uCOS kernal
* for the real-time clock.
*
* CREATED:
* March 15, 1994 by Gary Schneider
*
* INPUTS:
* None
*
* OUTPUTS:
* None
*
* REGISTERS MODIFIED:
* None - all registers saved on stack
*-------------------------------------------------------------------------
lib bankmac.mac * bank macros
import CPU16_GPT_START
import CPU16_TFLG1_OFF
import CPU16_TOC2_OFF
import OSIntEnter
import OSTimeTick
import OSIntExit
export tick16_isr
section .text
tick16_isr:
PSHM D,E,X,Y,Z,K * Save Acc D,E and all index regs.
ORP #$0E0 * don't allow interrupts until we clear flag
ldxxk CPU16_GPT_START
LDD <CPU16_TFLG1_OFF,x
ANDD #$0EFFF * clear OC2 interrupt flag bit
STD <CPU16_TFLG1_OFF,x
LDD <CPU16_TOC2_OFF,x
ADDD #$0CCD * adjust for next tick
STD <CPU16_TOC2_OFF,x
ANDP #$01F * allow interrupt nesting
LDAB #$0 * clear XK for the following function calls
TBXK
JSR OSIntEnter * Notify uC/OS about ISR
JSR OSTimeTick * Handle system tick
JSR OSIntExit * Exit uC/OS through scheduler if HPT ready
PULM D,E,X,Y,Z,K
RTI * return to interrupted task
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -