While writing the PC user interface for the MLDL2000 I thought it would be nice to show some info about the ROM being loaded into the MLDL. One of the items would be the ROM checksum at the end of the ROM with the indocation if it is OK or not. I thought I had figured out the algorithm, but I am failing miserably in translating it to Delphi.
My interpretation is:
Simply add all 10-bit ROM words together, except the checksum itself. For any overflow (carry) generated in a 10-bit addition a 1 extra is added.
The calculated checksum is the 1's complement of the result of the additions. What am I missing here?