Excellent. Thank you! That was a great starting point. I looked at code that was
calling the function that you listed, and that led me to find the variant
pointers that start at 0x1090, which specify the map pointer's offset from
0x11E0.
My 944 ROM dumping program now follows this flow so that I know that the variant
numbers are correct... (even though they always seem to be in the same order)
WOT Ignition 0: variant @ 0x109E -> pointer @ 0x11E8 -> map @ 0x1376
WOT Ignition 1: variant @ 0x109F -> pointer @ 0x1248 -> map @ 0x178C
WOT Ignition 2: variant @ 0x10A0 -> pointer @ 0x124A -> map @ 0x1376
WOT Ignition 3: variant @ 0x10A1 -> pointer @ 0x124C -> map @ 0x19A4
I think I'll go fish around and see if I can find it doing anything else based
on this variant number. I'm particularly curious to see what #2 does differently
from #0, if anything...
Thanks,
- Weston
--- In BoschDME@yahoogroups.com, "T_Voigt" <t_voigt@...> wrote:
>
> --- In BoschDME@yahoogroups.com, "Weston Pawlowski" <WestonP22@> wrote:
> >
> > Does anyone have any ideas on which one is which, when it comes to these 4
different sets of maps?
>
> That's easy. The following function is called before a table with variants is
read. The read function for tables use R2 as index. According to the plugs
connected to DME#10 and DME#30 the index is increased (0-3).
>
> Sorry for the german comments.
>
> ;
> ; ***************************************************************
> ; *
> ; * AdjTabIdx
> ; *
> ; * Erhöht R2 mit P3.4 und 25H.6
> ; *
> ; * 00 Codierstecker offen - kein Adapter (RDW)
> ; * 01 Codierstecker offen - Adapter (no KAT)
> ; * 10 Codierstecker geschl. - kein Adapter (US/J)
> ; * 11 Codierstecker geschl. - Adapter
> ; *
> ; ***************************************************************
> ;
> AdjTabIdx:
> CLR A ; A = 0
> MOV C,P3.4 ; C = P3.4 (Codierstecker DME #10)
> RLC A ; A[0] = P3.4
> MOV C,25H.6 ; C = 25H.6 (Adapterstecker DME#30)
>
> $IF ExtSrcVer = 2
> JNC atiExit ; Wenn Brücke offen -> exit
> $ENDIF
>
> RLC A ; A[1] = P3.4, A[0] = 25H.6 (1 wenn Brücke)
> ADD A,R2 ; A = A + R2
> MOV R2,A ; R2 = A //add 0,1,2 or 3 to R2
>
> atiExit:
> RET
>