> Any clue on how to patch RISC OS?
> would certainly be a huge improvement i.m.h.o.

I'm struggling to remember how I found the routine in 4.02. It looks something 
like this :

03814820 : E3560001 : CMP     R6,#1
03814824 : 33A02050 : MOVCC   R2,#&50
03814828 : 03A02004 : MOVEQ   R2,#4
0381482C : 83A02008 : MOVHI   R2,#8

Basically R6 has the VRAM amount in megabytes, and initialises R2 based on 
whether it is 0, 1 or 2. What the patch at the bottom of romload.c changes it 
to is this :

03814820 : E3560001 : CMP     R6,#1
03814824 : E3A06008 : MOV     R6,#8
03814828 : 03A02004 : MOVEQ   R2,#4
0381482C : 83A02008 : MOVHI   R2,#8

ie lying and saying it's found 8, but the earlier comparison still works, as 
it's >1 mb. R2 is stuffed into an IOMD register, so it doesn't really matter on 
the emulator, but R6 contents are used later.

I haven't looked, but I doubt this area of code has changed much in later ROS 4 
or ROS 6 (as it's still the same hardware), so it may be possible to search for 
this exact code sequence and patch any ROM. There may be a better way of doing 
this though.

I'd be loathe to patch ROS 3.7 or earlier, as these checksum the ROM. The patch 
obviously makes the checksum fail, and I don't remember if ROS will even boot 
if this is the case.

Tom


      

_______________________________________________
Rpcemu mailing list
[email protected]
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu

Reply via email to