Computing checksums
Posted: Sat Sep 18, 2021 10:52 pm
In my previous posts, I had mentioned editing Grid laptop BIOS code. This code is stored in 2 EPROMS on the motherboard. 1 EPROM is the low byte, and the other EPROM is the high byte.
I use WinHex to merge or split the file as needed. Each BIOS chip has a checksum. If the checksum does not match, the computer beeps loudly and does not boot.
In one version, the even EPROM has a CRC-16 checksum of 0B00 and the odd EPROM has a CRC-16 checksum of DE00.
At the beginning of each EPROM file, there is a text copyright string. When I make changes to the BIOS code, I have to make changes to the text copyright string in order to get the checksum to match the original value. This way works, but I'd like to understand what is really happening.
If I were to write the checksum routine, I would store the checksum in the code, compute the checksum at boot, and compare the computed checksum to the value stored in the code. But, 0B00 and DE00 are not in the code... (as Little Endian, contiguous values).
Does anyone one know of clever checksum routings the original programmer might have used?
Thank you very much,
-Shawn
I use WinHex to merge or split the file as needed. Each BIOS chip has a checksum. If the checksum does not match, the computer beeps loudly and does not boot.
In one version, the even EPROM has a CRC-16 checksum of 0B00 and the odd EPROM has a CRC-16 checksum of DE00.
At the beginning of each EPROM file, there is a text copyright string. When I make changes to the BIOS code, I have to make changes to the text copyright string in order to get the checksum to match the original value. This way works, but I'd like to understand what is really happening.
If I were to write the checksum routine, I would store the checksum in the code, compute the checksum at boot, and compare the computed checksum to the value stored in the code. But, 0B00 and DE00 are not in the code... (as Little Endian, contiguous values).
Does anyone one know of clever checksum routings the original programmer might have used?
Thank you very much,
-Shawn