Saturday, 15 October 2016

1MB Kickstart ROM for A2000

article from Dave's Amiga Hardware Page

The A2000 was designed to accept a 512KB Kickstart ROM. This is now inadequate for the new Kickstart modules in Amiga OS3.9 and for other various modules created by third parties. Normally to circumvent this, the new Kickstart ROM has to be cut down to accommodate these new larger Kickstart modules. An example of this is the Kickstart as used in the A4000T. In order to accommodate the additional scsi.device as used by the onboard scsi controller, the workbench.library is deleted from the ROM and has to be loaded from disk.

This simple modification allows the use of a 1MB Kickstart ROM in the A2000. This should also work in the A500. Note that you will need a rev 6 motherboard. Earlier versions may need other alterations to accommodate this modification. Basically it involves adding an extra address line (A18) to support the additional 512K of ROM.

This can be achieved by replacing the original 40 pin Kickstart socket with a 42 pin socket, and adding the extra address line. I used a good quality 'machine pin' socket. The two new pins (pins 1 & 42) are at the notched end of the socket. Because the motherboard only has 40 holes, these two pins are cut off short so that they do not touch the PCB surface underneath when the socket is inserted into the motherboard. Pin 42 is not connected. Pin 1 has a length of fine insulated wirewrap wire soldered to the remaining stub. This forms the new address line. Referring to the pic below, carefully remove the solder from one of the plated through connections between the top and bottom of the motherboard. Solder wick is ideal for this. Insert the new socket, with pin 2 going into the hole for the former pin 1, pin 3 into the hole for the former pin 2 and so on. Pass the fine wirewrap wire through the new hole you created earlier as shown below. There must be no electrical connection between this wire and the hole. Use insulated wire. You should have pins 1 and 42 hanging over the end, and not touching the motherboard. You may like to add some tape etc to provide insulation if you have concerns.

The other end of this wire is then soldered to pin 46 on the 68000 CPU socket. This provides the new address A18 signal to allow use of a 1MB Kickstart ROM. See below. The positions of Pins 1 & 42 are marked by an 'x' showing where the pins would be if the motherboard had holes for them. The former pin 1 is now pin 2 and the former pin 40 is now pin 41.

Your A2000 is now ready to use a 1MB Kickstart ROM. It is still compatible with a standard 512K ROM. If you want to use one of these, insert the ROM as shown below, with pins 1 & 42 vacant.

And below is an example of a 1MB custom Kickstart ROM

Creating a 1MB Kickstart ROM.
Creating a working and functional custom Kickstart can be difficult and complex. There are a number of tutorials out there. A good one is on Mfilos' blog. For those who are starting out, it might be a good idea to limit yourself to creating a 'standard' OS 3.9 ROM. Once you have experience, you can then try adding some of the many 3rd party ROM modules out there. Many of them are still under development and may not work properly on all systems. For example, I have so far been unable to get any of the 3rd party versions of Exec to work in my A2000.

You will need a blank 27C800 EPROM, which can be programmed with the new 1MB Kickstart. Below is a Remus listing of the main section of my A2000 ROM as at 24/9/2014. For those not yet familiar with how a 1MB Kickstart works, it is divided into two halves. The main section and an extended section. The main section also contains a file called '1MB_ROM' which is there to tell the Amiga that there is a 1MB Kickstart. It is always positioned in second place, immediately after Exec. The extended section usually contains files moved from the main section that can now no longer fit within 512K. Also note that scsi.device has been removed. It is superfluous in an A2000, which does not have an inbuilt SCSI or IDE controller.

; Generated by Remus 1.0 rc35

SaveROM Projects/A2000/A2k-V2014-267-Norm
ModDir Modules/44.57_BB2/
ROMBase $F80000
ROMSize 512
ImageType 0
;Build list
ADD Modules/44.57_BB2/exec_45.20(A1200-A500)
ADD Modules/Latest-Updates/1MB_ROM
ADD Modules/40.63(A500-2000)patched/audio.device_37.10
ADD Modules/40.63(A500-2000)patched/battclock.resource_39.3
ADD Modules/Latest-Updates/battmem.resource_40.0
ADD Modules/44.57_BB2/bootmenu_44.7(68020)
ADD Modules/40.63(A500-2000)patched/card.resource_40.4
ADD Modules/40.63(A500-2000)patched/carddisk.resource_40.1
ADD Modules/40.63(A500-2000)patched/cia.resource_39.1
ADD Modules/44.57_BB3/console.device_44.10
ADD Modules/40.63(A500-2000)patched/disk.resource_37.2
ADD Modules/Latest-Updates/dos.library_41.0
ADD Modules/40.63(A500-2000)patched/expansion_40.2(A500-600-2000)
ADD Modules/44.57_BB4/FastFileSystem_45.16
ADD Modules/Latest-Updates/FileSystem.resource_46.0
ADD Modules/40.63(A500-2000)patched/gadtools.library_40.4
ADD Modules/40.63(A500-2000)patched/gameport_keyboard_40.1
ADD Modules/Latest-Updates/graphics.library_42.8b12
ADD Modules/Latest-Updates/icon.library_68020_46.4.374
ADD Modules/Others/input_50.26
ADD Modules/40.63(A500-2000)patched/keymap.library_40.4
ADD Modules/40.63(A500-2000)patched/layers.library_40.1
ADD Modules/Latest-Updates/KingCON-handler_40.4(020+)
ADD Modules/40.63(A500-2000)patched/mathffp.library_40.1
ADD Modules/40.63(A500-2000)patched/mathieeesingbas.lib_40.4
ADD Modules/Latest-Updates/misc.resource_38.0
ADD Modules/Latest-Updates/potgo.resource_38.0
ADD Modules/44.57_BB3/Ram-Handler_44.24
ADD Modules/40.63(A500-2000)patched/ramdrive_39.35
ADD Modules/44.57_BB4/ramlib_40.3
ADD Modules/Latest-Updates/Romboot44_4_A2k
ADD Modules/44.57_BB3/Shell_45.27
ADD Modules/40.63(A500-2000)patched/timer.device_39.4
ADD Modules/44.57_BB4/trackdisk.device_40.2
ADD Modules/Latest-Updates/NoClick
ADD Modules/40.63(A500-2000)patched/utility.library_40.1(68000)
ADD Modules/40.63(A500-2000)patched/wbtask_39.1

Below is a Remus listing of the 'extended' ROM as used in my A2000.In this case it contains the intuition and workbench libraries, as they now no longer fit within the original 512K. There is also a 'ROMheader file which is needed to delineate this second section.

; Generated by Remus 1.0 rc35
SaveROM Projects/A2000/A2k-V2014-267-Ext
ModDir Modules/Latest-Updates/
ROMBase $E00000
ROMSize 512
ImageType 0
;Build list
ADD Modules/Latest-Updates/romheader_45.21
ADD Modules/Latest-Updates/intuition.library_40.86b7
ADD Modules/Latest-Updates/workbench.library_45.133

Please note that I am unable to supply any ROMS. This is due to a number of reasons: The nature of these Kickstarts means that they are tailored to a specific hardware configuration, and may not work at all if installed in a different A2000 with different hardware configurations. Also the various modules in the Kickstart are copyrighted, and obviously cannot be given away or sold. (it's OK to create your own - as you already need an original 3.1 ROM as well as an original 3.9 installation disk to create these extended Kickstarts). Other third party modules may also belong to their respective authors, and they may not appreciate distribution outside of what they had originally authorised.

First Published: September 24th 2014 - Updated April 28th 2015

No comments:

Post a Comment