I guess it makes sense to me that the beginning of ROM is not mapped to address $0000 0000. These very low addresses are often reserved for internal registers and ports of the processor. Maybe we can assume that the ROM starts at address location $40 0000. That seems logical.
It looks like it skips the first 32-bit word by incrementing A0 before the loop. (i.e. skips the recorded checksum at the beginning) Then it adds all following words, except it also skips the last word as well by setting D3 8 bytes less than the length of ROM. (4 bytes go to what was skipped at the beginning, the remaining 4 skip the last word in ROM.)
I'm going to see if I can whip something together that can verify the checksum successfully. Maybe I'll make it pretty and share it so people can verify their Mac ROM dumps!
It looks like it skips the first 32-bit word by incrementing A0 before the loop. (i.e. skips the recorded checksum at the beginning) Then it adds all following words, except it also skips the last word as well by setting D3 8 bytes less than the length of ROM. (4 bytes go to what was skipped at the beginning, the remaining 4 skip the last word in ROM.)
I'm going to see if I can whip something together that can verify the checksum successfully. Maybe I'll make it pretty and share it so people can verify their Mac ROM dumps!