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

📄 gxmtest.asm

📁 X86 GX1 BOOTLOAD代码 ,支持WINCE操作系统!
💻 ASM
字号:
;**************************************************************************
;*
;*  GXMTEST.ASM
;*
;*  Copyright (c) 1999 National Semiconductor Corporation.
;*  All Rights Reserved.
;*
;*  Function:
;*    Run tests on the memory to validate its operation.
;*
;*  $Revision:: 1   $
;*
;**************************************************************************

	;.MODEL TINY
	.486P

	INCLUDE DEF.INC
	INCLUDE MACROS.INC
	INCLUDE PORT80.INC
	INCLUDE CPU.INC
	INCLUDE OPTIONS.INC

_TEXT SEGMENT PUBLIC use16 'CODE'

	EXTERN CpuMemRegRead:NEAR
	EXTERN CpuMemRegWrite:NEAR

;**************************************************************************
;*
;*	memTest
;*
;*	Test address lines of the RAM.
;*
;*	Entry:
;*	Exit:
;*
;*	Destroys:
;*	  EAX, EBX, ECX, DX, EDI
;*
;**************************************************************************
memTest PROC NEAR PUBLIC
	mov	fs, bx

	PORT80	POST_MEM_TESTMEM	; post_b0h

	mov	edi, 0200000h		; 2mb boundary
	mov	eax, 'SEL$'		; initial pattern
	mov	es:[edi], eax

	mov	edi, 0h 		; Beginning of mem
	mov	eax, es:[edi]		;
	cmp	eax, 'SEL$'		; Did we find an alias?
	je	simpleMemTestFail

	mov	eax, 'JEK$'		; different pattern
	mov	es:[edi], eax


	mov	edi, 0200000h		; 2mb boundary
	mov	eax, es:[edi]
	cmp	eax, 'SEL$'		; Still at 2mb?
	jne	simpleMemTestFail

	mov	edi, 0
	mov	eax, es:[edi]
	cmp	eax, 'JEK$'		; Still at 0?
	jne	simpleMemTestFail

	jmp	simpleMemTestPass
simpleMemTestFail:
	PORT80	POST_MEM_TESTMEM_FAIL	; post_bfh - Display the memtest code FAIL
	hlt
	jmp	$			; go no further.

simpleMemTestPass:
	PORT80	POST_MEM_TESTMEM_PASS	; post_beh - Display the memtest post code done
	mov	bx,fs
	jmp	bx
memTest ENDP

;**************************************************************************
;*
;*	memTestPinCheck
;*
;*	Set MTEST pins to expected values from OPTIONS.INC
;*
;*	Entry:
;*	Exit:
;*	Destroys:
;*
;**************************************************************************
memTestPinCheck PROC NEAR PUBLIC
	shl	ebx, 16
	
	mov	ax, CPU_MC_GBASE_ADD	; Read MTEST 
	NOSTACK	bx, CpuMemRegRead
	and	edx, MTESTAND
	or	edx, MTESTOR
	mov	ax, CPU_MC_GBASE_ADD	; Write MTEST 
	NOSTACK	bx, CpuMemRegWrite

	shr	ebx, 16
	jmp	bx
memTestPinCheck ENDP
_TEXT ENDS

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -