📄 memory.a51
字号:
; Texas Instruments
; Name: memory.a51
; Revision: 1.0
; Description: Test MSC1210 Memory
$NOMOD51
$include (reg1210.inc)
PUBLIC March_C_Plus_Sysram,ROM_Checksum
EXTRN code (_put_string, _tx_hex)
ZERO equ 0aah
ONE equ 055h
ROM_START equ 0f800h
SysTop equ 04h ; System Ram Max+1, 00h for 64KB, 04h for 1KB
bytecnt equ r7
march_mem SEGMENT CODE
RSEG march_mem
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ROM_Checksum: ; Rom is at F800
mov dptr,#ROM_START
mov r6,#0 ; 2bytes chksum MSByte
mov r7,#0 ; 2bytes chksum LSByte
nxt_word:
mov a,#0 ; Get a 2 byte word
movc a,@a+dptr ; to R4R5=(MSB,LSB)
mov r4,a
inc dptr
mov a,#0
movc a,@a+dptr
mov r5,a
inc dptr
mov a,r5 ; R45 + R67 -> R67
add a,r7 ;
xch a,r7 ; Store chksum LSByte
mov a,r4 ; Get MSByte
addc a,r6
xch a,r6 ; Store chksum LSByte
mov a,dpl
cjne a,#0, nxt_word
mov a,dph
cjne a,#0, nxt_word
lcall _tx_hex
mov r7,reg6
lcall _tx_hex
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
March_C_Plus_Sysram:
mov dptr,#0 ; Start @ 0
sU_w0:
mov a,#ZERO
movx @dptr,a ; W0
inc dptr
mov a,dpl
cjne a,#0h,sU_w0
mov a,dph
cjne a,#SysTop,sU_w0 ; Upto 3ff
mov dptr,#0 ; Start @ 0
sU_r0w1r1:
movx a,@dptr ; R0
cjne a,#ZERO,s_mismatch
mov a,#ONE
movx @dptr,a ; W1
movx a,@dptr ; R1
cjne a,#ONE,s_mismatch
inc dptr
mov a,dpl
cjne a,#0h,sU_r0w1r1
mov a,dph
cjne a,#SysTop,sU_r0w1r1; Upto 3ff
mov dptr,#0 ; Start @ 0
sU_r1w0r0:
movx a,@dptr ; R1
cjne a,#ONE,s_mismatch
mov a,#ZERO
movx @dptr,a ; W0
movx a,@dptr ; R0
cjne a,#ZERO,s_mismatch
inc dptr
mov a,dpl
cjne a,#0h,sU_r1w0r0
mov a,dph
cjne a,#SysTop,sU_r1w0r0; Upto 3ff
mov dptr,#(SysTop-1) ; Start @ 3ff
sD_r0w1r1:
movx a,@dptr ; R0
cjne a,#ZERO,s_mismatch
mov a,#ONE
movx @dptr,a ; W1
movx a,@dptr ; R1
cjne a,#ONE,s_mismatch
dec dpl
mov a,dpl
cjne a,#0ffh,sD_r0w1r1
dec dph
mov a,dph
cjne a,#0ffh,sD_r0w1r1; downto 0
mov dptr,#(SysTop-1) ; Start @ 3ff
sD_r1w0r0:
movx a,@dptr ; R1
cjne a,#ONE,s_mismatch
mov a,#ZERO
movx @dptr,a ; W0
movx a,@dptr ; R0
cjne a,#ZERO,s_mismatch
dec dpl
mov a,dpl
cjne a,#0ffh,sD_r1w0r0
dec dph
cjne a,#0ffh,sD_r1w0r0; downto 0
sjmp s_pass
s_mismatch:
mov r7,#0
ret
s_pass:
mov r7,#1
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -