Dualbooting AmigaOS 4 and AmigaOS 3.5/3.9
This tutorial explains how you can turn a classic Amiga into a dualboot system that lets you choose the desired operating system - AmigaOS 4 or AmigaOS 3.5/3.9 - at every cold start.
A "cold start" happens when...
- the computer has just been switched on
- you press the key combination Control-Amiga-Amiga for more than ten seconds while running AmigaOS 3
- you press Control-Alt-Alt (instead of Control-Amiga-Amiga) under AmigaOS 4
During a "warm reboot" (e.g. by shortly pressing Control-Amiga-Amiga), the operating system that is currently used will be booted again.
Requirements
This tutorial is only useful for people using AmigaOS 3.5 or 3.9 in addition to AmigaOS 4. If you're using an older version of OS 3, you can not use the scripts described below.
The Amiga in question should have two boot partitions - one for AmigaOS 4 and one for AmigaOS 3.5/3.9, both should be below the famous 4 GB barrier. The OS 4 partition must have a higher boot priority.
Two different solutions
There are two different approaches for dualbooting: the first one described below will display a simple 'boot menu' at every cold boot, asking the user to select the OS he wants to boot. The other solution explained afterwards will always boot into AmigaOS 4, unless the user enters the "Early Startup Menu" and selects the OS 3 partition as the boot drive.
Solution A: the boot menu
The Amiga will always boot from the OS 4 partition as it has the higher boot priority. If we want to make it possible to boot into OS 3 aswell, we have to modify the Startup-Sequence of AmigaOS 4. We want the following things to happen at the beginning of said Startup-Sequence:
- check if the OS 4 Kickstart is already loaded - if it is, we need to boot OS 4
- check if the OS 3.5/3.9 Kickstart is already loaded - if it is, we need to boot OS 3
- if neither Kickstart is loaded, we need to ask the user which Operating System he wants to load
This can be achieved by inserting the following code block at the very beginning of the AmigaOS 4 Startup-Sequence:
(note that in the example below the OS 3 partition is called "OS3:" - of course this needs to be adapted to your personal setup by replacing all eight occurences of "OS3:" with the real name of your OS 3 partition)
; check if OS 4 Kickstart is already loaded
OS3:C/version >NIL: exec.library 52
if warn
; OS 4 Kickstart not loaded yet, check if OS 3.9 Kickstart is loaded
OS3:C/version >NIL: exec.library 45
if not warn
; OS 3.9 Kickstart is already loaded:
; redirect all existing assigns to the
; OS 3 partition, execute OS 3.9 S-S
OS3:C/Assign SYS: OS3:
OS3:C/Assign C: SYS:C
Path C:
Assign S: SYS:S
Assign L: SYS:L
Assign LIBS: SYS:Libs
Assign DEVS: SYS:Devs
Assign Fonts: SYS:Fonts
Assign ENVARC: SYS:Prefs/Env-Archive
CD SYS:
Execute >NIL: S:Startup-Sequence
EndCLI >NIL:
else
; OS 3.9 Kickstart not loaded either:
; ask the user which OS he wants to boot
ask "Boot AmigaOS 3 (Y/N)?"
if warn
; User wants to run AmigaOS 3:
; redirect all existing assigns to the
; OS 3 partition, execute OS 3.9 S-S
OS3:C/Assign SYS: OS3:
OS3:C/Assign C: SYS:C
Path C:
Assign S: SYS:S
Assign L: SYS:L
Assign LIBS: SYS:Libs
Assign DEVS: SYS:Devs
Assign Fonts: SYS:Fonts
Assign ENVARC: SYS:Prefs/Env-Archive
CD SYS:
Execute >NIL: S:Startup-Sequence
EndCLI >NIL:
endif
endif
endif
Note: If you're using OS 3.5 instead of 3.9, you need to replace the number "45" in the fifth line with "44"!
From now on, the Amiga will open a shell window at each cold start and ask you if you want to "Boot AmigaOS 3 (Y/N)?". Answer this question with "Y" followed by <Return> and OS 3 will be loaded. Any other answer (or just <Return>) will load OS 4.
Solution B: selecting the desired OS in the Early Startup Menu
If you only need OS 3 occasionally and therefore do not want to be asked for your desired OS at each cold start, you can insert the following code block at the beginning of the AmigaOS 4 Startup-Sequence:
(note that in the example below the OS 3 partition is called "OS3:" - of course this needs to be adapted to your personal setup by replacing all five occurences of "OS3:" with the real name of your OS 3 partition)
; check if OS 4 Kickstart is already loaded
OS3:C/version >NIL: exec.library 52
if warn
; OS 4 Kickstart not loaded yet, check if OS 3.9 Kickstart is loaded
OS3:C/version >NIL: exec.library 45
if not warn
; OS 3.9 Kickstart is already loaded:
; redirect all existing assigns to the
; OS 3 partition, execute OS 3.9 S-S
OS3:C/Assign SYS: OS3:
OS3:C/Assign C: SYS:C
Path C:
Assign S: SYS:S
Assign L: SYS:L
Assign LIBS: SYS:Libs
Assign DEVS: SYS:Devs
Assign Fonts: SYS:Fonts
Assign ENVARC: SYS:Prefs/Env-Archive
CD SYS:
Execute >NIL: S:Startup-Sequence
EndCLI >NIL:
endif
endif
Note: If you're using OS 3.5 instead of 3.9, you need to replace the number "45" in the fifth line with "44"!
With this solution, the Amiga will always boot into AmigaOS 4.0, unless you enter the Early Startup Menu during a cold start and select the OS 3 partition as the boot drive.
Inserting the above code is neccessary, because OS 3.5/3.9 will reset the computer during its boot process (to activate the ROM update). After this reset, the computer will boot from the partition with the highest boot priority again - i.e. the OS 4 partition. Thus, we need to check if the ROM update is active and continue booting from the OS 3 partition if it is.