From: Christian B. <cb...@st...> - 2000-09-24 13:51:32
|
Hi! On Thu, Sep 21, 2000 at 12:07:40PM +0200, Gwenole Beauchesne wrote: > I determined that the unfriendly code starts at ROMBase + 0xdb9c. Some internal Memory Manager code... > Bit 0 of the byte located at 0x1efc (what is it ?) is always tested. This bit specifies whether the MM is in 32 or 24 bit mode. > for some reason, at the end of the Speedometer Graphics test, the branch > with the stripping by AND'ing with Lo3Bytes is taken! Probably a Speedometer bug. It shouldn't be possible/necessary to switch to 24 bit addressing under B2. > 0x48e7, 0x1c20, // movem.l d3-d5/a2,-(a7) > 0x382e, 0x0008, // move.w $0008(a6), d4 > 0x3a2e, 0x000a, // move.w $000A(a6),d5 > 0x554f, // subq #$2,a7 > 0x3eb8, 0x028e, // move.w ROM85,(a7) Looks like it should be "move.w #ROM85,(a7)" here. > 0x301f, // move.w (a7)+,d0 > 0x48c0, // ext.l d0 > 0x2440, // movea.l d0,a2 > 0x2040, // movea.l d0,a0 > 0x3010, // move.w (a0),d0 > 0x0c40, 0x3fff, // cmpi.w #$3fff,d0 > 0x6316 // bls.s #$00000016 Very ugly code, BTW. Seems that Apple didn't have the money for a decent C compiler... Bye, Christian -- / Coding on PowerPC and proud of it \/ http://www.uni-mainz.de/~bauec002/ |