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

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

Leave a Reply

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