Task: Upgrade the Kickstart ROM on an Amiga 500 Revision 5 Motherboard Using an EPROM and Socket Adapter
Needed: Amiga 500 With Revision 5 Motherboard, EPROM, EPROM Programmer, EPROM Programmer Adapter, Kickstart ROM Socket Adapter
Time: 30-60 minutes
Introduction
I purchased a stock Amiga 500 computer online within the last year that had a trapdoor 512K slow RAM expansion. Upgrading the Kickstart ROM from stock version 1.3 to 3.1 has been on my list of things to do since I purchased it. Unfortunately, this Amiga 500 has a revision 5 motherboard with some factory wiring on the Kickstart ROM socket (i.e. the OOPS bug) that is not compatible with EPROMs. This bug can be fixed by cutting some traces and soldering in a few bodge wires as covered nicely in this YouTube video from The Retro Channel. Fortunately, there are adapters available that eliminate the need to do the mod which is what I decided to do here. The main sticky point for me was converting my Kickstart 3.1 ROM that came with my Amiga Forever software to a byte-swapped binary format needed by the Amiga hardware.
Instructions
The first thing you need is the Kickstart ROM socket adaptor for the revision 5 motherboard of the Amiga 500. I purchased this one on eBay from Amiga Kit for a little over $13. A great price. Remove the Kickstart ROM and insert the adapter into the socket with the notch facing the back of the computer. You can see my empty Kickstart ROM socket to the left of the adapter below. Note that the pins on the adapter are thick and took some effort to insert into the socket.

Second, we need to prepare the Kickstart ROM file for the EPROM. The Kickstart ROMs I purchased from Amiga Forever are compatible with emulators like WinUAE, but they are not suitable for use on an EPROM. To create a compatible binary, we must swap every two bytes (i.e. byte swapping). I spent an hour exploring different programs for doing this and ended up asking ChatGPT a few questions about it. At some point ChatGPT offered to do the byte swapping for me. I uploaded the ROM and it converted it quicky and accurately. Below is my ChatGPT screen followed by the ROM code as seen by my EPROM programmer software followed by the byte-swapped binary file for comparison. I included the Python code for the byte swap at the end of the post.



Third, it is time to burn the Kickstart binary onto an EPROM chip. I have previously posted about burning new EPROMs for the Amiga computers. This same process can be used here. Note the need for the EPROM adapter for the TL866 programmer.
Fourth, carefully insert the EPROM into the Kickstart socket adapter on the motherboard noting the direction of the notch toward the back of the computer aligning with the notch of the adapter facing in the same direction.

Finally, it is time to boot the computer!
Comments
I was happy to discover that ChatGPT can convert these files effortlessly. Saved me some time learning to use some hex editors.
Time to make a Workbench 3.1 disk for this A500!
Here is the Python code for the byte swap as written by ChatGPT:
in_path = 'kick31.rom'
out_path = 'kick31_byteswapped.bin'
# Read original ROM
with open(in_path, 'rb') as f:
data = f.read()
# Swap bytes within every 16-bit word
swapped = bytearray()
for i in range(0, len(data), 2):
if i + 1 < len(data):
swapped.append(data[i + 1]) # high byte
swapped.append(data[i]) # low byte
else:
# Odd-length safety fallback (rare for ROMs)
swapped.append(data[i])
# Write the swapped output
with open(out_path, 'wb') as f:
f.write(swapped)
print("Byteswapped ROM written to", out_path)