📄 spconfig.asm
字号:
$CASE
$DEBUG
$SYMB
$LOCALS
$GEN
NAME SPCONFIG
@SET(NUM_TASK,@NUM_TASK+1)
@IF(@TASK_SSTK_SIZE < 16)
#!!! TASK_SSTK_SIZE size too SMALL, this configuration will not work !!!!
@ENDI
@IF(@TASK_SSTK_SIZE > 127)
@SET (RBSTART,(@TASK_SSTK_SIZE & 0FF0H))
@ELSE
@SET (RBSTART,((((@NUM_TASK * @TASK_SSTK_SIZE) + 12) & 0FF0H) + 010H))
@ENDI
@IF((@RBSTART + @SSTK_BASE) > 0FC00H)
#!!! SYSTEM STACK size too LARGE, this configuration will not work !!!!
@ENDI
@IF( @EQS(@MODEL,"TINY") | @EQS(@MODEL,"SMALL") )
@IF( @EQS(@MODEL,"TINY") )
SPCONFIG_IR_NB SECTION LDAT WORD PUBLIC 'CINITROM'
@ELSE
SPCONFIG_IR_NB SECTION PDAT WORD PUBLIC 'CINITROM'
@ENDI
SPCONFIG_IR_NB_ENTRY LABEL BYTE
DW (@RBSTART + @SSTK_BASE) ;RBSTART
SPCONFIG_IR_NB ENDS
SPCONFIG_ID_NB SECTION LDAT WORD PUBLIC 'CINITIRAM'
SPCONFIG_ID_NB_ENTRY LABEL BYTE
_STACK_TOP LABEL WORD
DS 2
PUBLIC _STACK_TOP
SPCONFIG_ID_NB ENDS
@IF( @EQS(@MODEL,"TINY") )
SPCONFIG_IR_NB SECTION LDAT
@ELSE
SPCONFIG_IR_NB SECTION PDAT
@ENDI
@IF(@TASK_SSTK_SIZE > 127)
DB 00h ;system_stack_size
@ELSE
DB @TASK_SSTK_SIZE ;system_stack_size
@ENDI
SPCONFIG_IR_NB ENDS
SPCONFIG_ID_NB SECTION LDAT
_SIZE_SYSTEM_STK LABEL BYTE
DS 1
PUBLIC _SIZE_SYSTEM_STK
SPCONFIG_ID_NB ENDS
@IF( @EQS(@MODEL,"TINY") )
C166_INIT SECTION LDAT WORD GLOBAL 'CINITROM'
DW 05h,SPCONFIG_ID_NB_ENTRY,SPCONFIG_IR_NB_ENTRY,03h
C166_INIT ENDS
@ELSE
C166_INIT SECTION PDAT WORD GLOBAL 'CINITROM'
DW 06h
DPPTR SPCONFIG_ID_NB_ENTRY,SPCONFIG_IR_NB_ENTRY
DW 03h
C166_INIT ENDS
@ENDI
@ELSE
;
SPCONFIG_IR_NB SECTION DATA WORD PUBLIC 'CINITROM'
SPCONFIG_IR_NB_ENTRY LABEL BYTE
DW (@RBSTART + @SSTK_BASE) ;RBSTART
SPCONFIG_IR_NB ENDS
SPCONFIG_ID_NB SECTION DATA WORD PUBLIC 'CNEAR'
SPCONFIG_ID_NB_ENTRY LABEL BYTE
_STACK_TOP LABEL WORD
DS 2
PUBLIC _STACK_TOP
SPCONFIG_ID_NB ENDS
SPCONFIG_IR_NB SECTION DATA
@IF(@TASK_SSTK_SIZE > 127)
DB 00h ;system_stack_size
@ELSE
DB @TASK_SSTK_SIZE ;system_stack_size
@ENDI
SPCONFIG_IR_NB ENDS
SPCONFIG_ID_NB SECTION DATA
_SIZE_SYSTEM_STK LABEL BYTE
DS 1
PUBLIC _SIZE_SYSTEM_STK
SPCONFIG_ID_NB ENDS
C166_INIT SECTION DATA WORD GLOBAL 'CINITROM'
DW 06h
DPPTR SPCONFIG_ID_NB_ENTRY,SPCONFIG_IR_NB_ENTRY
DW 03h
C166_INIT ENDS
C166_DGROUP DGROUP SPCONFIG_ID_NB
@ENDI
SYSTK SECTION DATA WORD SYSSTACK 'SYSTACK'
DS @RBSTART
SYSTK ENDS
@IF((@RBSTART + @SSTK_BASE + (@NUM_TASK * 32)) > 0FDE0H)
#!!! RAM size needed too LARGE, this configuration will not work !!!!
@ENDI
REG_STORAGE SECTION DATA AT (@RBSTART + @SSTK_BASE)
DS (@NUM_TASK * 32)
REG_STORAGE ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -