Amiga Kickstart Switcher with no switches

A while back I burnt some 27C160 EPROMs for some of my Amigas. This allows you to have 4 kickstarts in an A500 or A600. Normally you would wire up two switches to the upper address lines of the EPROM to select the 4 images. But I thought there must be some way of selecting the images without needing some switches at the back of the Amiga.

So I’m using an ATTINY85 to drive the two upper address lines of the 27C160 and monitor Ctrl-Amiga-Amiga. You select a different kickstart by changing how long you hold down Ctrl-Amiga-Amiga for.

There are similar kinds of kickstart selectors. Most seemed to be based on discrete logic rather than a microcontroller as far as I could tell. I had a spare ATTINY85, and they are quite ‘tiny’. You basically need one input line (to KBRESET on an Amiga 500), and two output lines (to drive the upper address lines on the 27C160). If you had a 27C800, you’d only need one output address line to select between two kickstarts. The logic I implemented was;

  • If you hold Ctrl-Amiga-Amiga for 2 seconds you select the first image
  • If you hold Ctrl-Amiga-Amiga for 3 seconds you select the 2nd image
  • If you hold Ctrl-Amiga-Amiga for 4 seconds you select the 3rd image
  • If you hold Ctrl-Amiga-Amiga for 5 seconds you select the 4th image

Once you’ve selected an image this way it saves it, and doing a normal (short) Ctrl-Amiga-Amiga of less than 2 seconds just reboots onto the same kickstart image. Your selection is also written to EEPROM in the ATTINY85, so if you power off/on you get the last kickstart image you used.

 

 

 

 

 

 

 

 

Wiring of the ATTINY85 is as follows. KBRESET comes out at the JP1 connector over near the floppy drive (on an A500)

           4.7K
       +-/\/\/\/\--+
       |           |
       | +---v---+ |
   ----+-|       |-+------ +5V
   ------|       |-------- A19
   ------|       |-------- A18
 GND ----|       |-------- KBRESET
         +-------+

There are more details in the README.txt in the amiga_kickstart_control-0.01.tar.gz file.