; > 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