View Single Post
Old 06 December 2017, 17:44   #2
jlin_au
Registered User
 
Join Date: Nov 2016
Location: Fadden ACT Australia
Posts: 128
According to the older threads I found, the standard calculated checksum (sum of all 32 bit longwords and carries for every overflow) for the final ROM image needs to have a 32 bit value of -1 (or 0xffff ffff ffff ffff). You will need to add an unused 32 bit field value to your code to make that adjustment so the final checksum is the expected -1 (0xffff ffff ffff ffff).

For an emulator there is may also be additional checks added by the emulator before executing any 680x0 code in the supplied or your own custom ROM images.

Cloanto have more information on their website https://cloanto.com/amiga/roms/help/checksum.html ....
"The checksum is used during Kickstart initialization (in V37+) to verify the contents of the ROM. If the stored checksum does not match the one calculated during initialization, a red screen is presented, the power LED is
flashed ten times, and initialization is restarted.
WARNING: Kickstarts smaller than 512KB (pre-2.0) do not verify the encoded checksum! (Some Amiga emulators, such as UAE, will validate the Kickstart checksum prior to starting the CPU.)"

Also see: https://cloanto.com/amiga/roms/faq.html
https://www.amigaforever.com/kb/15-127

Last edited by jlin_au; 06 December 2017 at 19:09. Reason: Additional checksum information
jlin_au is offline  
 
Page generated in 0.04590 seconds with 11 queries