Triple booting an Amiga

 
Home    Tutorials    Triple booting an Amiga
 

On this page you can find a small tutorial which explains how to triple boot an Amiga computer, but have in mind that this isn't the only way to achive this, because there are certainly other methods as well. The instructions covers how I have set up my Amiga 600 to boot into three different versions of the operating system, and if you decide to try doing the same on your Amiga, you will most likely have to do some minor modifications to the text that goes into the various Startup-Sequence files. That is of course unless you have an exact Amiga setup like me.

Have in mind that softkicking by using ACATune is done here. If your Amiga doesn't have a ACA card installed, just replace the ACATune lines in the Startup-Sequence files with whatever else you are using for softkicking. The methods described here may also work with two-way Kickstart ROM switcher boards, in which case you can just leave these lines out.


Amiga 600 details
My A600 has the following stuff installed: 2MB Chip Ram, ACA 630 accelerator card, Kickstart 2.05, Subway and 8GB Compact Flash card as harddisk. Since the ACA 630 supports copying the Kickstart into memory upon booting, my A600 is set up to do just that by using the ACATune tool (softkicking). Here it will copy Kickstart 2.05 directly from the ROM chip, and Kickstart 3.1 from a file. Furthermore, the CF card has the following three system partitions, where the first one has the highest boot priority:
 
DH0:  -  contains Workbench 2.1
DH1:  -  contains Workbench 3.1
DH2:  -  contains AmigaOS 3.9


Required files:
For doing the stuff mentioned on this page, the files listed below are/may be required. I will not go into specific details about the usage of them, instead you can read the documentation that's included in each archive.
 
KeyPressed  -  Check if keys are pressed (for scripts)
VerCheck  -  Kickstart version checker. V2.0
ACAtune  -  Only needed if your Amiga contains an ACA accelerator card and you want to softkick the Kickstart upon booting.
Kickstart ROM file  -  Only needed for softkicking from a file instead of the internal Kickstart chip. NB! Make sure to get a file that's suitable for your Amiga model!


How it all works
When I turn on my Amiga, I can press and hold one of the F-keys in order to choose which OS to use. Here the F1 key boots WB2.1 (DH0:),  F2 key boots WB3.1 (DH1:),  and F3 boots AmigaOS 3.9 (DH3:).  But on the other hand, if no key is pressed, it will boot straight into the WB3.1 partition (which is set as default).  Upon rebooting, the A600 will boot into the same OS that was just currently used.

Now over to some more detailed explenation. Since the DH0: partition is the one with the highest boot-priority, my A600 will always boot from it. The DH0:S/Startup-Sequence have those extra lines mentioned below on the top, which means that they will be run before anything else is done.  Here is how it works:
A central aspect of the script is the BootChoice variable, since it's this who really decides what OS to boot. The rest is just basically a matter of certain conditions to take place in order for the contents of this variable to change. First of all, the BootChoice variable is declared with default value of 3.1.  Then the version of the Kickstart is checked, and if it's version 40 or higher, BootChoice will be set to either 3.1 or 3.9. This depends on whether or not a DH0:S/Go39 file exists (more about this further below).

If on the other hand, the Kickstart version is lower than 40, the script will check if one of the F-Keys is pressed, where F1 sets BootChoice to 2.1, F2 sets it to 3.1, and F3 sets it to 3.9. This is done by using the KeyPressed command which checks for the 80, 81 and 82 raw key codes.  Now that the AmigaOS version to boot has been settled, the script will proceed by deciding which partition to continue booting from.  If the contents of the BootChoice variable equals 3.1, some System assigns will be made to DH1:, and the DH1:S/Startup-Sequence will be executed.  If BootChoice equals 3.9, the assigns will be made to DH2:, and DH2:S/Startup-Sequence will be run instead.  Otherwise, booting will continue from DH0: by executing the rest of the current Startup-Sequence.

You may notice that a DH0:S/Go39 file is mentioned in the main script, and this is a small workaround used for running AmigaOS 3.9. Upon booting, the Amiga will reboot two times, where the first reboot is right after softkicking by using the ACATune tool,  and the second after applying the OS3.9 ROM update. The thing is that the script needs to know where to go after the first reboot (either 3.1 or 3.9) - hence the reason for Go39 workaround used.  When booting AmigaOS 3.9, the DH0:S/Go39 file will be created, otherwise it will be deleted (if present).


Installation
First make sure that the following files are present on ALL three System partitions:
 
C/KeyPressed
C/VerCheck
C/ACATune
L:Kickstart3.1.rom


Now you must edit the Startup-Sequence found on each of the three partitions, where the below stuff is added to the TOP of the files.

 
   Add this to the TOP of Startup-Sequence in DH0: (Workbench 2.1):

Set BootChoice 3.1

VerCheck 40>
If Warn
  if exists DH0:S/Go39
  Set BootChoice 3.9
  else
  Set BootChoice 3.1
  endif
Else
  KeyPressed 80
  If Warn
  Set BootChoice 2.1
  EndIf
  KeyPressed 81
  If Warn
  Set BootChoice 3.1
  EndIf
  KeyPressed 82
  If Warn
  Set BootChoice 3.9
  EndIf
EndIf


If $BootChoice EQ 3.1
if exists DH0:S/Go39
Delete >NIL: DH0:S/Go39
endif
Assign C: DH1:C
Assign Devs: DH1:Devs
Assign L: DH1:L
Assign Libs: DH1:Libs
Assign S: DH1:S
Assign Sys: DH1:
CD DH1:
Execute >NIL: DH1:S/Startup-Sequence
EndCLI >NIL:
EndIf

If $BootChoice EQ 3.9
Echo >DH0:S/Go39 Go39
Assign C: DH2:C
Assign Devs: DH2:Devs
Assign L: DH2:L
Assign Libs: DH2:Libs
Assign S: DH2:S
Assign Sys: DH2:
CD DH2:
Execute >NIL: DH2:S/Startup-Sequence
EndCLI >NIL:
EndIf


if exists DH0:S/Go39
Delete >NIL: DH0:S/Go39
endif

ACATune -maprom ** >NIL:


;--- Rest of Startup-Sequence ---
 
 
   Add this to the TOP of Startup-Sequence in DH1: (Workbench 3.1):

VerCheck 40>
If NOT Warn
ACATune -maprom L:Kickstart3.1.rom >NIL:
EndIf

;--- Rest of Startup-Sequence ---
 
 
   Add this to the TOP of Startup-Sequence in DH2: (AmigaOS 3.9):

VerCheck 40>
If NOT Warn
ACATune -maprom L:Kickstart3.1.rom >NIL:
EndIf

;--- Rest of Startup-Sequence ---
 

Please note!  The "VerCheck 40>", "If NOT Warn" and "EndIf" lines might not be required in the Startup-Sequence of DH1:, but they are required on DH2: in order to avoid a possible conflict with the AmigaOS 3.9 ROM update.



Problems
The only issues I have experienced with this setup, is when installing certain software after booting from DH1: or DH2:. The problem is that some installers quite simply insists on copying files to DH0:, while others actually let's the user select the destination drive. Here SYS: might be suggested (which is the correct way of doing things), or they will assume that you want to install to DH0:, and suggests this instead.  Anyway, I will recommend that you pay attention to where the installers wants to install files, and correct them with the right destination path if needed.

Another problem is with installers that adds stuff to the User-Startup file, where they might just add text strings to DH0:S/User-Startup even if you haven't booted from DH0:. Here I will suggest that you take a look at DH0:S/User-Startup before installing, and then take another look after this is done to see if anything has changed. If this is the case, remove the newly added lines from User-Startup in DH0:, and add them to the correct User-Startup instead.

To make things easier, it might be a good idea to add a line like this at the bottom of the DH0:S/User-Startup file:
 
;--- New stuff added below ---

This might make it easier to discover any recent changes made to the file. Whenever new stuff is added to the User-Startup, and it really should be present there, just move the "New stuff" line to the bottom again.





    Followed a link? Please go to the Main Site                   © Roger E. Håseth  2014