-
Notifications
You must be signed in to change notification settings - Fork 76
AmigaOS
Version | Compilers | Status | Tests |
---|---|---|---|
4.1 (FE Update 2) | GCC 8.4.0 | Compiled | Passed |
AmigaOS is a proprietary operating system initially developed by Commodore International, and first released in 1985, along with the launch of Amiga 1000 computer. Later the development has beed continued by Haage & Partner and Hyperion Entertainment. First versions required Motorola 68000 CPU, but the recent release supports only PowerPC architecture . The system itself is a single-user. It has a windowing system Intuition and a graphical desktop file manager called Workbench. Currently AmigaOS is still under development.
In general, you need to buy special hardware in order to run AmigaOS. Some of the compatible hardware is listed here. But there are also some software emulators available:
- WinUAE: Windows-based Amiga hardware emulator.
- WinFellow: Windows-based Amiga hardware emulator.
- FS-UAE: Cross-platform Amiga hardware emulator, supports major host operating systems (Windows, GNU/Linux, macOS).
FS-UAE is a good choice: it's cross-platform, it's free and open-source, it has a nice community.
In order to boot and run AmigaOS even on emulated hardware, you also need to provide a firmware called ROM (or Kickstart ROM). These ROMs could be either found somewhere on the Internet or you can purchase them (all) officially with Amiga Forever bundle which comes with emulator and a huge collection of original games as well. You also need to select right version of ROM depending on emulated hardware and AmigaOS version. FS-UAE provides some information about ROMs and which versions could be used for better utilization.
Emulator parameters are need to be carefully selected. Here is a working example of configuration file used for FS-UAE:
accelerator = cyberstorm-ppc
accelerator_memory = 131072
amiga_model = A4000/OS4
blizzard_scsi_kit = 1
chip_memory = 2048
cpu = 68060
fast_memory = 8192
floppy_drive_speed = 0
graphics_card = picasso-iv-z3
graphics_memory = 131072
hard_drive_0 = AmigaOS4.1-dev.hdf
kickstart_file = Kickstart v3.1 rev 40.70 (1993)(Commodore)(A4000)[h ShapeShifter].rom
network_card = a2065
zorro_iii_memory = 131072
Also note that for FS-UAE you need to install QEMU plugin (which is available for download on the web-site) for PowerPC emulation.
First, you need to create a hard drive for the emulator. FS-UAE has a menu option with HDF creator. Use it to create an HDF disk (RDB type). To start the installation from the distribution CD, you need to specify both bootable floppy (usually comes with distribution) and CD in the emulator. You may try to use only a CD while apply some configuration tricks (see installation guides). The installation guides are available which cover the installation procedure in details. The one of the best is this. Just follow the steps carefully. This may be good for WinUAE.
After the main installation you can install AmigaOS updates and additional software. A huge collection of pre-compiled software for AmigaOS is available on OS4Depot and Aminet.
AmigaOS can be also run with QEMU using installation media for Sam460ex board:
qemu-system-ppc -M sam460ex -m 2048 \
-rtc base=localtime \
-drive if=none,id=cd,file="../sam440ex/Sam460InstallCD-53.58.iso",format=raw \
-device ide-cd,drive=cd,bus=ide.1 \
-drive if=none,id=hd,file="amiga.img",format=raw \
-device ide-hd,drive=hd,bus=ide.0 \
-boot order=c,menu=on \
-device rtl8139,netdev=mynet0 \
-netdev user,id=mynet0 \
-device es1370
The installation process is covered in detail in some tutorials (first, second). Below is a short list of actions to perform during the installation.
Installation instructions for QEMU
Click on “start the hard disk preparation utility and configure your drives and partitions”
Start
Select qemu har qm00001
install
Next to "No A1 booter installed" click install
Select slb_v2
Ok – accept changes
Click on “edit partition and filesystems”
Click on “add partition”
Make the partition the size you want and tick the box “boot priority”
Click “select filesystem / edit details”
Change block size to 512
Change buffers to 30
Maxtransfer = 128kbytes – ide standard
Mask = any memory – 32 bit aligned
Click on “ok accept changes”
Click on “ok accept changes”
Click on “save to disk” (yes, save)
Close media toolbox
Click on “yes reboot now”
When you install format at least DH0 when it asks if you want to format a drive and that should be it.
For native development you need to install SDK first. There could be some caveats with the latest SDK versions, read carefully. After that install CMake from OS4Depot. Probably you also need to install some dependent packages manually, i.e. librtmp, libcurl, libopenssl. For some reason these packages do not provide proper symbolic links (with versions suffix) to the libraries, thus you need to create manually missing links in /SObjs
directory. CMake will tell which links exactly are missing.
After that use CMake as regularly to compile the library.
Update. It seems that CMake package is outdated as it depends on old libraries and may not work correctly, cross-compilation is a more robust way to develop.
A probably more convenient way to develop software for AmigaOS is cross-compilation. There is a nice adtools project which provides a convenient way to prepare a GCC cross-compiler for AmigaOS. Versions from 4.9.3 to 11.x are available (some of them are experimental). Just follow the steps in the compilation guide provided keeping some caveats in mind:
- Install development packages for
gmp
,mpfr
andmpc
, specify their install prefix explicitly in the buildmakefile
if required. - Install a proper version of
lha
from this repository, and either add it toPATH
or update themakefile
to use it explicitly. - Install other missing packages:
texinfo
,bison
,flex
. - On modern systems, you may need to pass
-Wno-error
compilation flag tobinutils
. - On Apple M1/M2 the build may fail due to
gcc
not supporting ARM architecture on macOS properly, refer to this bugreport to fix it.
Note. After compilation of the toolchain, you may need to add link for the libunix
in the newlib
library directory, the library itself is located in the clib2
library directory.
Next, in order to use a supplied toolchain file for AmigaOS cross-compiler, export AMIGA_ROOT
variable with the path to root-cross
directory of your cross-compiler (this target directory is assigned by default), i.e.,
export AMIGA_ROOT=~/Projects/adtools/native-build/root-cross
After that you can use CMake with one of the toolchain files to configure and build the library:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../plibsys/platforms/amigaos-gcc/amigaos.cmake ../plibsys
This command assumes that the build folder is on the same level as directory with source codes.
- AmigaOS web-site provides all the information about the OS and related activities.
- AmigaOS Wiki is a good source of information and documentation.