Checksum Calculation
Moderators: Mangus, robertisaar, dex
Checksum Calculation
Some GM codes ($11 for example) have the checksum in an odd location. The area the checksum is calculated on is from 5000 to FFFF but excluding 6000 to 6007, with the checksum located at 6006 & 6007.
Is there any way of incorporating this into your program
Is there any way of incorporating this into your program
Hmmm, I can look into this, yes. It might be difficult to create an interface that will allow you to insert an unlimited number of exclusions. but I might come up with something.
maybe an "add exclusion" dialog box or something ...
I'm working hard on GMECM Edit v2.0, and I'll look into this for that version.
Thanks Adrian!
maybe an "add exclusion" dialog box or something ...
I'm working hard on GMECM Edit v2.0, and I'll look into this for that version.
Thanks Adrian!
I Know this suggestion is old but I now have a furthur suggestion related to checksums.
Some of the '90s GM codes(AU) use multiple checksums (I've seen up to 3) with the final saved checksum being the sum of these checksums.
Is this a possibility??
Seeing I'm the only one asking for these weird things I understand if it's at the bottom of the list
Some of the '90s GM codes(AU) use multiple checksums (I've seen up to 3) with the final saved checksum being the sum of these checksums.
Is this a possibility??
Seeing I'm the only one asking for these weird things I understand if it's at the bottom of the list
There is about 15 different sections that are added togher and checksumed.Then a constant is subtracted from the checksum to form another checksom in another location.
The new stuff has a really crazy checksum routine where there are many checksums like this and then there are XOR checksums as well(no i still havent figured out these cars).
The new stuff has a really crazy checksum routine where there are many checksums like this and then there are XOR checksums as well(no i still havent figured out these cars).
I'm working on a weber marelli iaw ecu and I have exactly the same problem. I need to define 3 memory sections and the checksum is the sum of these sections. Moreover a constant to addition at final !
27c256 chip 8000-FFFF
800E checksum store address (2 bytes)
8010-B5FF first section
B800-DFFF second section
E000-FFFF third section
All bytes are accumulated in a 16 bits address and the value 0DF0 is added in the end.
So the- features I need are :
-define several address ranges instead of only one (easier than managing exclusions I think)
-add or substract a constant before storing the checksum
I can send you bin and xdf files.
regards,
Jerome
27c256 chip 8000-FFFF
800E checksum store address (2 bytes)
8010-B5FF first section
B800-DFFF second section
E000-FFFF third section
All bytes are accumulated in a 16 bits address and the value 0DF0 is added in the end.
So the- features I need are :
-define several address ranges instead of only one (easier than managing exclusions I think)
-add or substract a constant before storing the checksum
I can send you bin and xdf files.
regards,
Jerome
Thanks for the info. I'll put some thought into a solution for this.
So, you add each section independently, then add the results and add a constant, like so:
Checksum = SUM(section 1) + SUM(section 2) + SUM(section 3) + <constant>
Is that right?
So, you add each section independently, then add the results and add a constant, like so:
Checksum = SUM(section 1) + SUM(section 2) + SUM(section 3) + <constant>
Is that right?
***************************************
TunerPro Author
1989 Trans Am
TunerPro Author
1989 Trans Am
I was able to use Tunepro to calculate my checksum using an unused area as temporary buffer. It's dirty but it works
I think the easiest way to improve Tunerpro on this point would be to add an "accumulate" option for each defined checksum. This way we could use the checksum storage address as an accumulator not just at as a store address. Should be quite straightforward to implement (just a new checkbox in the interface)
my example :
Sum 8010-B5FF and store @ 800E
Sum B800-DFFF and accumulate @ 800E
Sum E000-FFFF and accumulate @ 800E
Sum 94FE-94FF and accumulate @ 800E (94FE is the address where the final constant 0DF0 is stored)
I think the easiest way to improve Tunerpro on this point would be to add an "accumulate" option for each defined checksum. This way we could use the checksum storage address as an accumulator not just at as a store address. Should be quite straightforward to implement (just a new checkbox in the interface)
my example :
Sum 8010-B5FF and store @ 800E
Sum B800-DFFF and accumulate @ 800E
Sum E000-FFFF and accumulate @ 800E
Sum 94FE-94FF and accumulate @ 800E (94FE is the address where the final constant 0DF0 is stored)