Chris Collins

Tools · retro

Kickstart and TOS ROM identifier

Identify an Amiga Kickstart or Atari TOS ROM image — version, model, header fields, checksum (and fix it), CRC32, SHA-1 and MD5 — merge split hi/lo EPROM dumps, undo byte swapping, and decrypt Amiga Forever ROMs with their rom.key. Nothing is uploaded.

Added

How to use it

Choose a ROM image. It’s read in your browser; nothing is uploaded and no ROM data comes with this page.

  • Kickstart (256 KB or 512 KB): the exec version and revision from the ROM header, the model it was made for when the dump matches a known one, the exec ID string, and the checksum. A bad checksum (after patching a ROM, say) can be fixed and the corrected ROM downloaded.

  • Split EPROM dumps: the 32-bit machines (A1200, A3000, A4000) use two 16-bit chips. Choose the second file as well and the halves are interleaved, in whichever order — and byte order — gives a valid ROM.

  • Byte-swapped dumps from some EPROM programmers are recognised and put right.

  • Amiga Forever ROMs (files starting AMIROMTYPE1) are encrypted; add the rom.key from your Amiga Forever installation to decrypt them here.

  • TOS: version, build date, country and video standard from the OS header, the GEMDOS date, and where the ROM loads. EmuTOS is recognised; so is AROS, the open-source Kickstart replacement.

The CRC32, SHA-1 and MD5 are what emulators and ROM managers use to recognise a dump.

How it works

The Kickstart ROM starts with $1111 4EF9 or $1114 4EF9 followed by the reset address; the words at offsets $0C and $0E hold exec’s version and revision (34.5 is Kickstart 1.3, 40.68 the A1200’s 3.1). The checksum is the long 24 bytes from the end, chosen so that adding every 32-bit long of the ROM, with end-around carry, gives $FFFFFFFF.

The TOS OS header (the OSHEADER structure in the Atari Compendium) holds os_version, the build date as BCD $MMDDYYYY, os_conf (bit 0 set for PAL, the country code in bits 1–15) and the GEMDOS-format date.

The list of known Kickstart dumps — version, revision, model, size, CRC32 and SHA-1 — is taken from WinUAE’s ROM table (rommgr.cpp in WinUAE); a dump that isn’t in it but has a known version is flagged as possibly modified or badly read.

Runs entirely in your browser; nothing you type leaves this page.