📄 boot2407.asm
字号:
;--------------------------------------------------------*/
; WQ21ST SOFTWARE STUDIO. */
;--------------------------------------------------------*/
;
;
; This was chosen as a starting point
;
;
; This module contains the following definitions :
;
; __stack - Stack memory area
; _c_int0 - Boot function
; _var_init - Function which processes initialization tables
;
; filename: Boot2407.asm
; original: 07/25/2001 by: WQ
; last update: 08/18/2000 by: WQ
;****.global can be used as .def or .ref identifier as needed **** andrew;
; .global _c_int0, cinit
; .global _main, _abort
; .global .bss, end
.def _c_int0
.def _enable_int
.def _disable_int
; .ref cinit
.ref _main
; .ref _abort
.ref _bad_trap
;;;;;
WD_CNTL .set 07029h ;WD Control reg
WD_CNTR .set 07023h ;WD Counter reg
WD_KEY .set 07025h ;WD Key reg
;-----------------------------------------------------------------------------
; M A C R O - Definitions
;-----------------------------------------------------------------------------
SBIT0 .macro DMA, MASK ;Clear bit Macro
LACC DMA
AND #(0FFFFh-MASK)
SACL DMA
.endm
SBIT1 .macro DMA, MASK ;Set bit Macro
LACC DMA
OR #MASK
SACL DMA
.endm
KICK_DOG .macro ;Watchdog reset macro
LDP #00E0h
SPLK #05555h, WD_KEY
SPLK #0AAAAh, WD_KEY
LDP #0h
.endm
;
; Declare the stack. Size is determined by the linker option -stack
;
__stack: .usect ".stack",64
;
; FUNCTION DEF : _c_int0
;
; 1) Set up stack
; 2) Set up proper status
; 3) If "cinit" is not -1, init global variables
; 4) call users' program
;
;
_c_int0: ; entry point from reset vector
SETC INTM ;Disable interrupts
;
; Initialize status bit fields *NOT* initialized at reset
;
CLRC XF ; turn off xf bit
CLRC SXM ;Clear Sign Extension Mode
CLRC OVM ;Reset Overflow Mode
CLRC CNF ;Config Block B0 to Data mem.
LDP #0E0h
SPLK #0068h,WD_CNTL ;Disable the WTD
KICK_DOG ;Clr the WTDCOUTER and Flag andrew
;
; Set up initial stack and frame pointers
;
SET_UP_STACK:
LRLK AR0,__stack ; set up frame pointer
LRLK AR1,__stack ; set up stack pointer
;the ARx in this CMD must be AR1
B _main,AR1
;CALL _abort,AR1 ; to never return...
B _bad_trap,AR1 ; to never return...
RET
_enable_int:
CLRC INTM
RET
_disable_int:
SETC INTM
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -