First post, by stamasd
I am trying to modify a BIOS and I think I'm failing because I end up with an invalid checksum. It's not a change in the BIOS code itself, I am just adding a small piece of code (an option ROM) inside the main BIOS file in an otherwise empty area. I made sure to align it properly to 2k, not change the file size overall and so on.
But when I try the new BIOS, it doesn't work, the computer just emits a continuous tome from the speaker and doesn't POST. I think it's failing the BIOS checksum. I had thought I had it covered because the option ROM I inserted has its own checksum byte at the end and I thought it will cancel out - but obviously it didn't.
What tools are there for calculating/writing the correct checksum to a BIOS? I have done a search and haven't found anything obviously useful. If it matters, it's a 386 system from 1990-ish.
(and the piece of code I'm trying to add is, predictably, XTIDE)
(Edit) thought I'd add one more tidbit: it's a composite BIOS file, 128kB made up of 2 parts: the first 64k is a VGA ROM (because this motherboard has on-board graphics) and the second 64k is the system BIOS. The XTIDE I have placed in an empty area inside the system BIOS part because that's the only place I found where it would fit.
I don't know if each part of this composite BIOS has to have its own checksum (it probably does because at runtime they are mapped to different areas in memory) or if the checksum must be global for the whole file.
I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O