📄 cxvendor.h
字号:
/* for Tasking 80C16x */
#ifdef CMXMODULE
#include <reg167.h> /* change ONLY if different processor reg file */
#endif
#define PROCESSOR 80166
#define PROC_DISABLE_INT K_OS_Disable_Interrupts()
#define PROC_ENABLE_INT K_OS_Enable_Interrupts()
#define PROC_SAVE_INT K_OS_Save_Interrupts()
#define PROC_RESTORE_INT K_OS_Restore_Interrupts()
typedef void (*CMX_FP)(void);
/* or
typedef void (far *CMX_FP)(void);
typedef void (*CMX_FP)(void);
*/
/* load in tasks STACK address. */
/* adjust stack memory block. */
#define CXTCRE_SPECIFIC() {tcbptr->stk_start = stack_blk; stack_blk -= stack_size / 2; }
#ifdef CMX_INIT_MODULE
near byte locked_out; /* disable task switching */
near byte in_ctr; /* position within interrupt pipe to place bytes */
near byte out_ctr; /* position within interrupt pipe to remove bytes */
near byte pipe_slots_avail;
near word16 ie_holder;
/*
The following is only used by the CMX Kernel Aware DLL.
You must NOT touch the following #defines.
*/
#if _MODEL == 'l' || _MODEL == 'L'
#define CMX_X 'l' /* Large Memory model */
#elif _MODEL == 'm' || _MODEL == 'M'
#define CMX_X 'm' /* Medium Memory model */
#elif _MODEL == 's' || _MODEL == 'S'
#define CMX_X 's' /* Small Memory model */
#elif _MODEL == 't' || _MODEL == 'T'
#define CMX_X 't' /* Tiny Memory model */
#else
#define CMX_X 'e' /* Error */
#endif
byte mem_model = CMX_X;
/* Done memory model declaration */
#else
extern near byte locked_out;
extern near byte in_ctr;
extern near byte out_ctr;
extern near word16 ie_holder;
#if (defined(CMXTRACKER) || defined(WINTRACKER))
extern byte CMXTRACKER_ON;
#endif
#endif
extern bitword cmx_flag1; /* contains flags, for CMX internal use */
extern bit preempted; /* preempted flag */
extern bit do_timer_tsk; /* do timer task flag */
extern bit do_time_slice; /* do time slice, next task to slice */
extern bit slice_enable; /* time slicing enabled */
extern bit do_coop_sched; /* do a cooperative schedule, to NEXT task that can run */
extern bit do_int_pipe; /* process interrupt pipe */
extern bit idle_flag; /* helps determines power down mode */
extern bit cmx_active; /* identifies that CMX RTOS entered */
#define PREEMPTED preempted = 1
#define TEST_NOT_PREEMPTED !(preempted)
#define DO_TIMER_TSK do_timer_tsk = 1
#define DO_TIME_SLICE do_time_slice = 1
#define TEST_SLICE_ENABLE slice_enable
#define SLICE_DISABLE slice_enable = 0
#define SLICE_ENABLE slice_enable = 1
#define DO_COOP_SCHED do_coop_sched = 1
#define DO_INT_PIPE do_int_pipe = 1
#define CLR_DO_INT_PIPE do_int_pipe = 0
#define TEST_CMX_ACTIVE cmx_active
#define CMX_ACTIVE cmx_active = 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -