Dual-booting Workbench

Users of many modern computers are used to the concept of dual-booting, where you can select from distinct operating systems when you turn the computer on. Linux, Windows and even Mac can all let the user pick an OS depending on what their particular requirements are… but sadly not the Amiga. Or can it?

Before we start, we ought to think why this is useful. Generally we run a version of Workbench closely associated with the kickstart chips in our machines, so Kickstart 1.3 users will run Workbench 1.3, Kickstart 3.1 users run Workbench 3.1 and so on. But it’s popular to run a Kickstart switcher and have two physical ROM versions in the machine (or perhaps one of the new multi-Kickstart devices like the Romulator), so how can we make sure the right version of Workbench is loaded? Newer versions usually won’t run on older ROMs, and an older version of Workbench often defeats the point of having the new Kickstart.

It turns out, with a little basic AmigaDOS know-how it’s pretty simple. Let’s show you how, with a quick tutorial on choosing an OS based on Kickstart version. Here we’re using an A2000 with a hardware Kickstart switcher, with 1.3 and 3.1 selected with a switch on the back of the machine.

  • Firstly, you need a fresh install. This method requires an extra partition, so it’s probably best to start with a brand new drive rather than risk your data. You’ll need one extra partition than you’d normally use, so in this example I’m using DH0 for Workbench 1.3, DH1 for Workbench 3.1, and then DH2 for all my other data and programs. Call the partitions something sensible like “Workbench1.3”, “Workbench3.1” etc.
  • In HDToolbox, make sure DH0 is marked as bootable and the others are not.
  • Format all partitions.
  • Copy the contents of Workbench 1.3 and Extras 1.3 to DH0.
  • Make sure Kickstart 1.3 is selected and boot from the hard drive, and you should boot into Workbench 1.3. If this doesn’t work, check the instructions that came with your controller etc.
  • Now flick the switch to 3.1 and boot from your Workbench 3.1 install disks. Run through the installer, being sure to install it to DH1 and not accepting the default of DH0.

We now have two versions of Workbench installed, but we cannot boot from the 3.1 install. This is where the magic happens…

  • Boot from your boot disk, and rename DH0:s/startup-sequence to DH0:s/startup-sequence-1.3
  • Edit DH0:s/startup-sequence (the original copy) to read the following
dh0:c/version graphics.library 37       ; are these roms v2.04 or newer?
if warn                                 ; no
     execute dh0:s/startup-sequence-1.3
else                                    ; yes
    assign >nil: sys: dh1:
    assign >nil: c: dh1:c
    assign >nil: s: dh1:s
    assign >nil: l: dh1:l
    assign >nil: libs: dh1:libs
    assign >nil: devs: dh1:devs
    assign >nil: fonts: dh1:fonts
    assign >nil: envarc: dh1:prefs/env-archive
    execute dh1:s/startup-sequence
endif
endcli

What’s happening here is that the version command branches the script based on whether graphics.library, in ROM, is newer or older than v37 which is the internal revision of Kickstart 2. If it’s older, it just runs the original WB1.3 startup-sequence which we renamed. If it’s newer, then it points all the assigns to our Workbench 3.1 partition, and runs that startup-sequence instead.

The end result is no interaction needed. If you flick the switch to Kickstart 1.3, then Workbench 1.3 loads. Turn off, flick the switch the other way, Workbench 3.1 loads. No having to remember to hold mouse buttons or press a key. We always boot from the WB1.3 partition, but as we switch so quickly the Amiga behaves as though we booted from our WB3.1 partition instead.

One last thing – you may get weird colours in Workbench 3.1 as it will pick up the Blue and Orange from the WB1.3 partition, as this is the boot drive. All you need to do is to load the colour prefs in Workbench 3.1 (where you’ll see it thinks it’s still grey), and click Save. This will create the palette prefs file and on the next boot it will be back to grey.

Here it is in action

5 thoughts on “Dual-booting Workbench

  1. Hello,

    Thank you for this tutorial.
    I have an Amiga 500+ with a GVP Drive attached to it (all original – no emulators or WINUAE or any of that).
    If it helps anybody else there are a number of additional things to take into account if you have a GVP.

    1). If Toolbox finds no drives when you launch it, you will need to edit HDToolBox and change the scsi device from SCSI_DEVICE_NAME=scsi.device to SCSI_DEVICE_NAME=gvpscsi.device
    2). To do this, select the HDToolBox by holding down right-mouse button then go up to Icon->Information. You can edit it there and save your changes.
    3). As of typing this, some of the code to copy into your Startup-Sequence file has errors. There is a >nil missing an > infront of it on the fonts line and there is a nil: missing a colon at the end. These characters should be included still.
    4). Remember that, to edit s/Startup-Sequence you must ensure your window is showing all files, not only icons as otherwise, you will not see the “s” folder. Inside the “s” folder you then have to do the same thing.
    5). To edit the file you can double click on it which shows a COMMAND LINE Window. Prefix that line with “ed”. So it should read “ed Startup-Sequence”
    6). This starts up the editor. You can delete lines and add your own. To save the file, press ESC and then x and ENTER to save changes.
    7). I am not sure why (I lack the knowledge as of typing this) but when you save your file, it will change to be non-executable meaning you will not be able to double click and edit it again. To solve this, right-click on it, go to icon->information and then tick the Excute tickbox and save. You won’t see the icon change until you close the “s” folder and open it again. Now you can double-click it to edit.

    I am in no way an Amiga expert – I had one as a child but that’s it and I only work on my Amiga as a vanilla Amiga other than a switch to go between 1.3 and 3.1 Kickstarts so I can play games from the Harddrive depending on which ROM they work best on.

    Hope this helps somebody else!
    Thank you again Chris – this really helped me acheive something I did not think I would be able to do!
    I can switch to a different ROM and DH0 or DH1 boots as I want.

    1. Thanks for pointing out those errors Adam, I’ve corrected the text to type into the new startup-sequence. And also thanks for the tips on editing files – there’s so many ways of doing this and I probably skip over it thinking everyone knows it, which is a bold assumption so those steps are bound to help someone!

      Chris

  2. This would definitely be an elegant solution to a dual boot with a Pistorm as well…. not even the Kickstart switcher would be needed, since that can be done from images by the Pistorm.

    I think I’ll put it to the test on my CDTV, thanks for this great article!

Leave a Reply

Your email address will not be published. Required fields are marked *