{"id":1616,"date":"2017-08-18T08:23:23","date_gmt":"2017-08-18T08:23:23","guid":{"rendered":"http:\/\/www.kernelcrash.com\/blog\/?p=1616"},"modified":"2019-06-14T08:02:39","modified_gmt":"2019-06-14T08:02:39","slug":"amiga-kickstart-switcher-with-no-switches","status":"publish","type":"post","link":"https:\/\/www.kernelcrash.com\/blog\/amiga-kickstart-switcher-with-no-switches\/2017\/08\/18\/","title":{"rendered":"Amiga Kickstart Switcher with no switches"},"content":{"rendered":"<p>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.<\/p>\n<p>So I&#8217;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.<\/p>\n<p><!--more--><\/p>\n<p>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 &#8216;tiny&#8217;. 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&#8217;d only need one output address line to select between two kickstarts. The logic I implemented was;<\/p>\n<ul>\n<li>If you hold Ctrl-Amiga-Amiga for 2 seconds you select the first image<\/li>\n<li>If you hold Ctrl-Amiga-Amiga for 3 seconds you select the 2nd image<\/li>\n<li>If you hold Ctrl-Amiga-Amiga for 4 seconds you select the 3rd image<\/li>\n<li>If you hold Ctrl-Amiga-Amiga for 5 seconds you select the 4th image<\/li>\n<\/ul>\n<p>Once you&#8217;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.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-1618\" src=\"http:\/\/www.kernelcrash.com\/blog\/wp-content\/Screen-Shot-2017-08-18-at-7.58.12-PM-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"https:\/\/www.kernelcrash.com\/blog\/wp-content\/Screen-Shot-2017-08-18-at-7.58.12-PM-300x208.png 300w, https:\/\/www.kernelcrash.com\/blog\/wp-content\/Screen-Shot-2017-08-18-at-7.58.12-PM.png 508w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Wiring of the ATTINY85 is as follows. KBRESET comes out at the JP1 connector over near the floppy drive (on an A500)<\/p>\n<pre>           4.7K\r\n       +-\/\\\/\\\/\\\/\\--+\r\n       |           |\r\n       | +---v---+ |\r\n   ----+-|       |-+------ +5V\r\n   ------|       |-------- A19\r\n   ------|       |-------- A18\r\n GND ----|       |-------- KBRESET\r\n         +-------+\r\n\r\n<\/pre>\n<p>There are more details in the README.txt in the <a href=\"\/blog\/wp-content\/amiga_kickstart_control-0.01.tar.gz\">amiga_kickstart_control-0.01.tar.gz<\/a> file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-1616","post","type-post","status-publish","format-standard","hentry","category-retrocomputing"],"_links":{"self":[{"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/posts\/1616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/comments?post=1616"}],"version-history":[{"count":6,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/posts\/1616\/revisions"}],"predecessor-version":[{"id":1953,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/posts\/1616\/revisions\/1953"}],"wp:attachment":[{"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/media?parent=1616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/categories?post=1616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kernelcrash.com\/blog\/wp-json\/wp\/v2\/tags?post=1616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}