📄 c200user.asm
字号:
MAR *+, AR2 ; Increment AR1 and step ARP.
MAR *+, AR3 ; Increment AR2 and step ARP.
MAR *+, AR4 ; Increment AR3 and step ARP.
MAR *+, AR5 ; Increment AR4 and step ARP.
MAR *+, AR6 ; Increment AR5 and step ARP.
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
DINT
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
EINT
DINT
EINT
DINT
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
;
.page
;
EINT
NOP ; do nothing
DINT
NOP ; do nothing
EINT
NOP ; do nothing
DINT
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
DINT
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
MAR *, AR0 ; Initialise the ARP register.
MAR *+, AR1 ; Increment AR0 and step ARP.
MAR *+, AR2 ; Increment AR1 and step ARP.
MAR *+, AR3 ; Increment AR2 and step ARP.
MAR *+, AR4 ; Increment AR3 and step ARP.
MAR *+, AR5 ; Increment AR4 and step ARP.
MAR *+, AR6 ; Increment AR5 and step ARP.
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
; SPLK #0FFFFh, *
; RPT *
; NOP
MAR *, AR0 ; Initialise the ARP register.
CALL MAR1 ; Increment AR0 and step ARP.
MAR *+, AR2 ; Increment AR1 and step ARP.
CALL MAR3 ; Increment AR2 and step ARP.
MAR *+, AR4 ; Increment AR3 and step ARP.
CALL MAR5 ; Increment AR4 and step ARP.
MAR *+, AR6 ; Increment AR5 and step ARP.
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
NOP ; do nothing
EINT
NOP ; do nothing
NOP ; do nothing
ldp #BackCount
lacc BackCount.Hi,16
adds BackCount.Lo
sub #1
sach BackCount.Hi
sacl BackCount.Lo
NOP ; do nothing
NOP ; do nothing
BNZ INNER ; Redo the inner loop.
NOP ; do nothing
NOP ; do nothing
RET
;
.page
;--------------------------------------------------------------------------
; Stack load and store routines.
; They were used to verify that the monitor does not mis-use the stack.
;--------------------------------------------------------------------------
STACK_LOAD
LALK #00000h ;
PUSH ;
LALK #01111h ;
PUSH ;
LALK #02222h ;
PUSH ;
LALK #03333h ;
PUSH ;
LALK #04444h ;
PUSH ;
LALK #05555h ;
PUSH ;
LALK #06666h ;
PUSH ;
LALK #07777h ;
PUSH ;
B STACK + 2 ;
;
STACK_STOR
LDP #6 ;
SPLK #0FFFFh, 000h ;
SPLK #0FFFFh, 001h ;
SPLK #0FFFFh, 002h ;
SPLK #0FFFFh, 003h ;
SPLK #0FFFFh, 004h ;
SPLK #0FFFFh, 005h ;
SPLK #0FFFFh, 006h ;
SPLK #0FFFFh, 007h ;
POPD 000h ;
POPD 001h ;
POPD 002h ;
POPD 003h ;
POPD 004h ;
POPD 005h ;
POPD 006h ;
POPD 007h ;
B $ ;
;
.page
;--------------------------------------------------------------------------
; Interrupt service routines.
;--------------------------------------------------------------------------
save_code $macro
mar *+
sst #1,*+
sst #0,*+
sacl *+
sach *
$endm
;
rest_code $macro
lacc *-,16
adds *-
lst #0,*-
lst #1,*-
clrc INTM
ret
$endm
;
INT1_ISR save_code
rest_code
;
INT2_ISR save_code
rest_code
;
INT3_ISR save_code
rest_code
;
INT4_ISR save_code
ldp #TimeCount
lacc TimeCount.Hi, 16
adds TimeCount.Lo
sub #1
sach TimeCount.Hi
sacl TimeCount.Lo
SPLK #01000h, *
RPT *
NOP
rest_code
;
INT5_ISR save_code
rest_code
;
INT6_ISR save_code
rest_code
;
.page
;--------------------------------------------------------------------------
; Called service routines.
;--------------------------------------------------------------------------
;
MAR0 MAR *+, AR0 ; Increment AR7 and step ARP.
RET ;
;
MAR1 MAR *+, AR1 ; Increment AR0 and step ARP.
RET ;
;
MAR2 MAR *+, AR2 ; Increment AR1 and step ARP.
RET ;
;
MAR3 MAR *+, AR3 ; Increment AR2 and step ARP.
RET ;
;
MAR4 MAR *+, AR4 ; Increment AR3 and step ARP.
RET ;
;
MAR5 MAR *+, AR5 ; Increment AR4 and step ARP.
RET ;
;
MAR6 MAR *+, AR6 ; Increment AR5 and step ARP.
RET ;
;
MAR7 MAR *+, AR7 ; Increment AR6 and step ARP.
RET ;
;
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -