LKMT wrote:
What does the call instruction to the obd routine look like in your file? In my file the call instruction is DA 09 14 43, so segment 0x9 and absolute address 0x4314.
Oops, sorry.. I was just being stupid about the way IDA lays out the addresses on the left. You are of course correct, the call on my first dump looks exactly the same and "copy address to clipboard" yields 0x94314. On the other file from a different car (which is at version 66), the offset is 0x94324.
I guess in this particular case the patch is really trivial, since I am essentially "just" setting byte 0x14DE6 from 40 to 00 (i.e., O2 heaters on the 66 version of the file). However, that made me wonder.. maybe I should cross-check the CRCs manually on the original dump, because god knows what kind of bit errors might have been introduced by these cloned FTDI cables or maybe the proverbial cosmic ray decided to strike in that very moment.
Is there any other way of verifying that the original dump pulled from the car is correct?
Update: At least chipster's checksum corrector for MS43 reported 0 of 5 corrected on the original dump, so I guess chances are the file I started with is somewhat consistent. It's kind of weird, though, the MS4X wiki documents 7 checksums (6 if we disregard the boot section, i.e., 2 CRCs and 4 additions).
Update2: Spoken too soon again LOL, after actually reading that part in the wiki the 4 additions are really just 2 additions, split into two parts each. So I should be good (famous last words?

).
final Update: Worked like a charm..

thanks @LKMT for the info!