TestMain 1.94 KB
; > TestMain


; Main assembly file for isolated assembly of machine test software

MEMCADR         *       &3600000
ROM		*	&3800000

 [ MEMC_Type = "IOMD"
VideoPhysRam *  &02000000               ; Amazing - it's in the same place!
DRAM0PhysRam *  &10000000               ; 4 DRAM banks
DRAM1PhysRam *  &14000000
DRAM2PhysRam *  &18000000
DRAM3PhysRam *  &1C000000
DRAMBaseAddressMask * &1C000000         ; used to mask off bits after stealing video RAM
PhysSpaceSize * &20000000               ; IOMD physical map is 512M big
PhysROM *       &00000000               ; and real ROM starts at 0
SAMLength *     512*4                   ; SAM length in bytes for 1 bank of VRAM
EASISpacePhys * &08000000
EASISpace *     PhysSpace + EASISpacePhys
 |
VideoPhysRam *  &02000000
PhysSpaceSize * &04000000               ; MEMC1 physical map is 64M big
PhysROM *       &03800000
PhysRamPhys *   &02000000               ; physical space starts here
 ]

		ORG	ROM

	        GET     TestSrc/Begin
CONT
	        ADRL    r2,TestVIDCTAB
		LDR	r0,=IOMD_MonitorType
		LDR	r0,[r0]
		ANDS	r0,r0,#IOMD_MonitorIDMask
		ADDEQ	r2,r2,#(TestVVIDCTAB-TestVIDCTAB)
        	MOV     r0,#ts_VIDCPhys
08      	LDR     r1, [r2],#4
        	CMP     r1, #-1
        	STRNE   r1, [r0]
        	BNE     %BT08

		MOV	r9,#0
10
		ORR	r9,r9,#&40000000
        	STR     r9,[r0]         ; write the border colour
		ADD	r9,r9,#&00000005
		ADD	r9,r9,#&00000300
		ADD	r9,r9,#&00010000
		AND	r9,r9,#&00ffffff

		MOV	r1,#&10000
12		ADDS	r1,r1,#(-1)
		BNE	%BT12

		B	%BT10

;
; The RISC-OS MEMC setup code is re-used to ensure similar 
; detection of memory configuration. The MEMC1 code is modified only
; to remove an unnecessary function.

		GBLL	Module
Module		SETL	{FALSE}
		GBLL	AssembleSAtest
AssembleSAtest	SETL	{FALSE}

DynAreaFlags_DoublyMapped	*    1 :SHL: 6
DynAreaFlags_NotCacheable	*    1 :SHL: 5
DynAreaFlags_NotBufferable	*    1 :SHL: 4
DynAreaFlags_APBits     	*   15 :SHL: 0      ; currently onl


	        END