⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.a51

📁 msc1201 编程2
💻 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 + -