Calculating the Checksum

TBK terryk at foothill.net
Sat Sep 12 05:02:55 GMT 1998


In the GM roms, the CHECKSUM is just the sum of all of the bytes over a
particular range. Generally from just after the PROMID, VIN (P4), and
CHECKSUM VALUE. The results is a double byte.

It just don't get any simpler than that.

TK
-----Original Message-----
From: Scott Schaaf <SSchaaf at ERINet.com>
To: diy_efi at efi332.eng.ohio-state.edu <diy_efi at efi332.eng.ohio-state.edu>
Date: Friday, September 11, 1998 9:23 PM
Subject: Re: Calculating the Checksum


>Usually,   a block of addresses is added up,   then a 'checksum' is placed
>IN that block to make the sum add up to hex zero.   Such as sum = FFFD,,,,
>checksum value = 3,,,,,   FFFD+0003=0000.
> Scott...
>
>----------
>> From: David A. Cooley <n5xmt at bellsouth.net>
>> To: diy_efi at efi332.eng.ohio-state.edu
>> Subject: Re: Calculating the Checksum
>> Date: Friday, September 11, 1998 10:18 PM
>>
>> Hi Don,
>> The checksum is a hex number that is arrived at from the data in the
>> eprom... Changing a bit changes the checksum.  The data is checksummed,
>and
>> the checksum value is also burnt into the chip... The ECM verifies that
>the
>> data checksum and the stored checksums match to ensure the data is
>"good".
>> Not sure what the calc is to arrive at the checksum though.
>> Later,
>> DAve
>>
>> -----Original Message-----
>> From: Don.F.Broadus at ucm.com <Don.F.Broadus at ucm.com>
>> To: diy_efi at efi332.eng.ohio-state.edu <diy_efi at efi332.eng.ohio-state.edu>
>> Date: Friday, September 11, 1998 3:40 PM
>> Subject: RE: Calculating the Checksum
>>
>>
>> > Could you please explain  checksum for me.  I thought checksum was a
>> >hex value
>> > That was used to verify if an EPROM had the correct program  data.
>> >
>> >
>> >Thanks  Don
>> >
>> >
>> >
>> >
>> >
>> > -----Original Message-----
>> > From: Roger Heflin [SMTP:rah at horizon.hit.net]
>> > Sent: Friday, September 11, 1998 12:55 PM
>> > To: diy_efi at efi332.eng.ohio-state.edu
>> > Subject: Re: Calculating the Checksum
>> >
>> >
>> >
>> > A couple of questions.  I have a 93 Z28  (32kb) eprom.  I am working
>> >on the
>> > disassembly.   I have put the eprom in memory at several locations,
>> >the
>> > location that seems to work is $8000, with it there, the code seems
>> >to
>> > be writing to things listed as ram in my databooks, any only reading
>> >from
>> > things that are known to be rom.   Is this a resonable method to
>> >use?
>> >
>> > Another thing, I assume the checksum code is in the build in rom,
>> >and not
>> > in the rom I have, since you really can't validate a checksum with
>> >code
>> > you don't even know if works.
>> >
>> > Mostly right now I am just decoding what looks like initialization
>> >stuff.
>> > I assume that probably the block learns/integrators would be
>> >initialized to
>> > 128. I also would guess that alot of the other things would be
>> >initialized to
>> > 0.  So far things look pretty simple, but I am only into the simple
>> >stuff.
>> >
>> > I have a 68hc11 disassembler program, a detailed 6809 instruction
>> >book and
>> > decoder card, and a 1988 vintage motorola single chip microcomputer
>> >data
>> > book that lists quite a few variants that all use pretty much the
>> >same
>> > instruction set with a few additions, and extra ram/rom/portio/ad
>> >varing
>> > depending on what was specified.    I would guess that GM is using a
>> >
>> > custom one of these chips, probably with a burned into the chip rom,
>> >for
>> > default operation.
>> >
>> > Roger
>> >
>> > On Fri, 11 Sep 1998, Georg Faustmann wrote:
>> >
>> > > If the system is a Delco unit, then the Checksum on/off byte may
>> >be at
>> > > $0008, set this to $AA, the checksum (stored at $0006,$0007)
>> >should be the
>> > > total of all the bytes from $0008 to then end of the chip.
>> > >
>> > > In some cases the address of the checksum switch could be offset,
>> >eg $3008,
>> > > $8008.
>> > >
>> > > Notes on how to find checksums:-
>> > >
>> > > If you had access to an emulator with a Romwatch (real time trace)
>> >type
>> > > function where the actual bytes being read at that moment in time
>> >are
>> > > highlighted, then you can sit there and watch where the bytes
>> >start to be
>> > > sequentially accessed by the CPU (usually every 10 seconds or so),
>> >you can
>> > > then scroll down until you find out where they stop being
>> >accessed, and
>> > > will give you the start and end point of the checksum. Then add
>> >these range
>> > > of numbers up, and look for a 16 bit value that is the last 16
>> >bits of this
>> > > sum, and search for this number outside of the checksum range,
>> >because it
>> > > can't be in the checksum area.
>> > >
>> > > Georg
>> > >
>> >
>>
>




More information about the Diy_efi mailing list