Simple four-way kickstart switch with M27C160

This post has been cloned from http://blog.system11.org/?p=2666
Originally written 15 Dec 2017
Some links and inline-notes, both displayed in red, has been added to this guide after cloning.

Amiga (various models) Kickstart switcher

The Amiga has had multiple firmware versions over the years, known as “Kickstart”. Unfortunately a lot of software that hits the hardware directly is affected by which version of Kickstart you’re using, leading to various hardware and software solutions.

The software ones (for example Relokick) do work, but if you have enough boot time toggles it can start getting unwieldy managing which things are resetting and why – for example booting into 68000 mode on your accelerator card, then booting Relokick to drop to Kickstart 1.3 which involves another reset. Hardware options are definitely the way to go.

There are some quite complex ones which allow you to switch on reset with keyboard strokes, but I found one main problem with these – they’re always out of stock. Additionally they only allow you to switch between two ROMs and have quite large physical footprints because for some reason people are really “purist” over Kickstart ROMs, copyright and so on meaning multiple chips or insane solutions like having to download original chips into onboard flash.

As many reading will know, I’m a member of The Dumping Union, so I don’t much care. So I made a small quad switcher board which anyone can make without having to worry about stock availability. It won’t work in all machines, if yours can cope with single 20 pin chips then you’ll be fine. This is revision 1.1, the 1.0 included a mistake which affected the logical workings of the jumpers.

So what we have is a 27C160 (16mbit) chip split into four areas by the jumpers toggling high address lines on the chip, presented to the motherboard as a standard 27C400. If you want to make life easier when you’re building this, solder the middle pin strip first, then the resistors, socket, other strip and header in that order. It should look a bit like this:

And it installs like this (photo taken in Rev 6 A2000):

As with my drive switcher project, I suggest you get the boards made by OHS Park, here’s a handy ordering link:
Order from OSH Park

However if you want to manufacture them yourself or make changes, here’s the Eagle CAD file:
A2000_ks_quad_11

Parts list:

1x 27C160 EEPROM
2x 20 way male pin strip, turned pin type
2x 4.7k ohm resistor 1/2 watt
1x 4 pin right angle pin header
1x 42 pin DIL socket
2x jumpers, switches, or 2P4T rotary switch (examples)

To make the image for this chip just get your four chosen ROM images, double the size of any 2mbit (256k) images and copy the lower half into the upper half, and then compile them into a single 16mbit image. There are loads of ways of doing this, I just used a Linux command line:

$ cat KICK13.ROM > quadbios.bin
$ cat kickstart2_04.rom >> quadbios.bin
$ cat Kickstart3.1.rom >> quadbios.bin
$ cat DiagROM >> quadbios.bin

As you can see I chose 1.3, 2.0, 3.1 and the awesome Amiga Diagnostic ROM (http://www.diagrom.com), once you have that image you will need to byte swap it if you’re using images used by emulators, but not if you’re using genuine chip dumps. As a sanity check when you load the file into your programmer software to burn the 27C160, look at the buffer – if you see readable headers instead of slightly scrambled ones, you’ll need to byte swap it. In fact it’s probably best to check the individual ROMs you plan to use before joining them together, that will work just as well.

As for how to actually use it – well that’s up to you. If you ground the second pin of J1 or J2 you’ll change which segment of the 27C160 is being accessed according to this table:

J1  J2
ON  ON  = ROM 1
OFF ON  = ROM 2
ON  OFF = ROM 3
OFF OFF = ROM 4

If you do this while the machine is running it will tend to crash horribly – but switching it during a reset seems to work, or by turning it off first. You could attach 2 toggle switches to it, or do as I have and wire up a 2 pole 4 throw switch – if wired correctly this will let you choose any of the 4 possible combinations. I used one of these:

So if you look at the above pinout, I connected J1-1 to A, J1-2 to 1 & 3, J2-1 to B, and J2-2 to 5 & 6.

You may not make these to sell unless you are charging a minimal amount for assembly and parts. Everything else is fine.

Burning Kickstart ROMs for the Amiga

(cloned from https://www.software-by-mabe.com/blog?3&catid=2)
Links and inline-notes, both displayed in red, has been added to this guide after cloning.
See also:
Burn Damn ROM Burn

Burning your own Amiga ROMs (EPROMs)

01/26/2019 | Amiga | Amiga ROM AmigaOS

With the release of the latest AmigaOS version (3.1.4) the package you could buy included ROM images to be used for either maprom (depending on your accelerator card tool support) or for burning it to a ROM.

Maprom is probably preferred, because it’s more flexible, but not always possible. For instance the A3440 card can’t do maprom. Or if you have no accelerator at all you can’t do maprom either.

Which leaves only a few options. Either you can buy the ROM, have someone burn it or burn it yourself.

Here I want to show how it works to burn it yourself.

What you need:

– an EPROM programmer. I have chosen the low cost GQ-4×4 USB programmer.

– to program the EPROMs used in an Amiga you have to get a 16-Bit 40/42 pin ZIF adapter board for the burner:
ADP-054 16 Bit EPROM 40/42 pin ZIF adapter

– an UV eraser, which can erase the EPROMs, in case something goes wrong.

– then you need EPROMs. The types used in A500/A600/A2000 are 27C400. I found the following to work which can be ordered in eBay: AMD27C400

– for burning ROMs for A1200/A4000 you need 27C800 / AMD27C800 roms, two of them to burn one ROM.

– and certainly a ROM image you want to burn.

Sometimes there are good offers at Amazon or eBay for a complete package (except the EPROMs).
You shouldn’t pay more than €150 for the GQ-4×4, the adapter board and the eraser.
(https://www.amazon.co.uk/gp/product/B011HVON3A/)

Here is a picture of the device with attached adapter board with an EPROM inside.
GQ programmer with adapter board and EPROM

Then you need to download the software for the burner. That is a) the burner software itself named “GQUSBprg”. The latest version as of this writing is 7.21.
And you need the USB driver 3.0.

Can be downloaded here: http://mcumall.com/store/device.html

When you connected the burner and installed the software we can start.
Now open the burner software. Make sure that there is no EPROM put in.

1. first step is to select the device, or the EPROM to burn.

Make sure you choose either AM27C400 or 27C400.

2. Next we’ll make a voltage check to see if the burner has all voltages in order to properly burn the EPROM.

I found that while you can attached a power supply on the burner it is not required. The USB provides enough power.

3. Load the ROM image into the buffer.

When you load the image make sure you choose .bin (binary).

!!! This is important, or otherwise the programmed ROM won’t work.
After you loaded the ROM image, you have to make sure to swap bytes.
This can be done in the ‘Command’ menu of the software.
Check first by selecting the “Buffer” tab. If you find some readable text in the beginning of the buffer, you need to byteswap it.

4. Now you have to put in your EPROM into the ZIF slot.

Make sure it sits tight and doesn’t move anymore.

5. Make a blank check to see if the EPROM is empty.

6. When the EPROM is blank we can write it.

When the write process is finished it’s done.

You can take out the EPROM and put it into the Amiga and it should work.

Some notes:
Partly this whole process of writing the ROM was a real pain because the GQ burner would just stop writing at some address. And in fact I had to get the package replaced including the adapter board.

I had first tried it in a virtual machine (VMware Fusion on Mac) but this doesn’t work for some reason as the GQ programmer detaches and re-attaches to the USB bus on some of the operations and that doesn’t seem to be working reliably in a VM.

Commenting on my own post:

The Amiga 4000 can only use 512k EPROMs, hence only 27C400 will work.
The Amiga 1200 can also use 27C800 (1MB).

The byte-swap, if your ROM image is already byte-swapped, then you don’t need to do this here.
Some ROM images, which are ready to burn have this already.
However, if you want to burn ROM images that are used in maprom or UAE, then you have to byte-swap.

07/15/2019 | Manfred |


Resources

Making a custom kickstart 3.9 ROM
Guide: Create and Burn a custom Kickstart 3.9
AmigaOS 3.9 Kickstart and Patches Guide
Classic Amiga Wiki – Kickstart 3.9
Help making Custom Kickstart rom
EEPROM on A1200?
Making a custom kickstart 3.1.4 ROM
Remus and ROMsplit to create your own 3.1.4 KS


Willem EPROM programmer
GQ-4X User’s Manual
Software and USB-driver download
27C400 EPROMs (for A500/A600/A2000 and A4000 ?)
27C800 EPROMs (for A1200 only ?)