32X BIOS on MD side
Posted: Sun Sep 13, 2009 7:16 pm
Besides some exception vectors it has these 2 strange routines:
Both of them set the RV bit when they start and clear it on exit, which makes sense, as that can't be done when running from 88xxxx or subsequent ROM bank as those mappings disappear when RV bit is set.
But look at second function, it transfers 8 bytes to $A130F1, what could that be for? Chaotix seems to be using first function with a1 set to $A130F1 and d0 to 0. I assume it's not for accessing the SRAM register?
Does anyone know?
Code: Select all
...
ROM:000000B8 dc.l $88030E
ROM:000000BC dc.l $880314
ROM:000000C0 ; ---------------------------------------------------------------------------
ROM:000000C0 bset #0,($A15107).l
ROM:000000C8 move.b d0,(a1)
ROM:000000CA bclr #0,($A15107).l
ROM:000000D2 rts
ROM:000000D4 ; ---------------------------------------------------------------------------
ROM:000000D4 movem.l d7/a1,-(sp)
ROM:000000D8 bset #0,($A15107).l
ROM:000000E0 lea ($A130F1).l,a1
ROM:000000E6 moveq #7,d7
ROM:000000E8
ROM:000000E8 loc_E8: ; CODE XREF: ROM:000000EEj
ROM:000000E8 move.b (a0)+,(a1)
ROM:000000EA adda.w #2,a1
ROM:000000EE dbf d7,loc_E8
ROM:000000F2 bclr #0,($A15107).l
ROM:000000FA movem.l (sp)+,d7/a1
ROM:000000FE rts
ROM:000000FE ; end of 'ROM'
But look at second function, it transfers 8 bytes to $A130F1, what could that be for? Chaotix seems to be using first function with a1 set to $A130F1 and d0 to 0. I assume it's not for accessing the SRAM register?
Does anyone know?