AmigaOS Version History and Architecture¶
AmigaOS evolved through a sequence of ROM + disk releases. The version numbers appear in several places and are a frequent source of confusion. This article establishes the canonical mapping.
Version number mapping¶
| Kickstart ROM | Workbench / disk | Internal | Key hardware era |
|---|---|---|---|
| 1.2–1.3 | 1.2–1.3 | V33–V34 | OCS Amiga 500/2000 |
| 2.04 | 2.0 | V36 | ECS Amiga 3000 |
| 2.04 ROM | 2.1 (disk only) | V38 | ECS — disk-based upgrade, no new ROM |
| 3.0 | 3.0 | V39 | AA (Advanced Amiga) — new ROM + new disks |
| 3.1 | 3.1 | V40 | AA — new ROM + new disks |
| — | 3.1.4 | V45 | AmigaOS 3.1.4 project (Hyperion, 2016-2018) — 68k continuation, bug-fix ROM replacement |
| — | 3.2 | V47 | AmigaOS 3.2 (Hyperion, 2019-2021) — new ROM + disk set; $VER: AmigaOS 3.2 CD-ROM Release 47.1 |
From the source: "V38 is 2.1, V39 is 3.0, and V40 is 3.1." V38 was a disk-only upgrade requiring only the 2.04 Kickstart ROM. V39/V40 required both a new ROM and a new disk set.
How to check the OS version at runtime¶
Disk-based software version — open version.library:
struct Library *VersionBase;
if (VersionBase = OpenLibrary("version.library", 0))
{
if (VersionBase->lib_Version >= 38)
{ /* at least V38 Workbench */ }
}
ROM version — read SysBase->LibNode.lib_Version (36 = V36/2.0, 39 = V39/3.0, 40 = V40/3.1).
Critical rule: Never assume the disk version reflects every other library. If you need V38+ asl.library features, check asl.library's version explicitly. The same applies to every other library. Check each library you depend on by version before using its features.
What each release introduced¶
V38 (Workbench 2.1, disk-based, requires 2.04 ROM)¶
Four main additions:
1. locale.library — runtime internationalization; create a single binary that runs in any language.
2. bullet.library — Agfa/Compugraphic Intellifont outline font engine (size, shear, rotate).
3. CrossDOS — read/write MS-DOS floppies with standard Amiga drives (no Bridgeboard).
4. General Workbench/tool improvements.
Key disk-layout changes that persist through V40:
- System shipped on FFS floppies (not OFS).
- Devs/DOSDrivers/ drawer — mount files with icons, controllable from Workbench.
- Storage/ drawer/disk mirrors Devs/ for inactive items. Users drag icons from Storage/ to Devs/ to activate.
- asl.library fully rewritten: ScreenMode requester, sleep window, AppWindow file requester, 2–7x faster directory loading.
- commodities.library got MatchIX(), rawmouse strings, and new qualifier synonyms (LCOMMAND → LEFT_COMMAND / LAMIGA / LEFT_AMIGA).
V39 (Workbench 3.0, new ROM)¶
The major changes are in the graphics subsystem and Intuition. V39 is the "AA" (Advanced Amiga) release — 24-bit color, screen modes, new GUI features. See AA Graphics Features for details.
Key disk changes:
- Separate Storage disk (was a drawer on Extras under V38).
- Fonts disk renamed from AmigaFonts to FONTS.
- Speech support removed (narrator.device, translator.library no longer included). V37 speech components still work if already installed; the V38/V39 installer does not remove them.
- Utilities/Display replaced by MultiView.
- GadTools major overhaul: NewLook menus, GT_GetGadgetAttrs(), palette and listview redesign, GTLV_CallBack hooks.
V40 (Workbench 3.1, new ROM)¶
Minor incremental release. See V40_Release_Notes tutorial for specifics.
V45 (AmigaOS 3.1.4, Hyperion, 2016-2018)¶
The first post-Commodore 68k continuation. A bug-fix ROM replacement by Hyperion Entertainment. Removed never-finished exec internals (task trees, AVL trees), fixed memory pools, restored ROMWack in place of SAD. Laid the groundwork for 3.2.
V47 (AmigaOS 3.2, Hyperion, 2019-2021)¶
A full new ROM + disk set, distributed on CD ($VER: AmigaOS 3.2 CD-ROM Release 47.1). Major developer-facing changes are documented in a dedicated article: AmigaOS 3.2 — What Changed for Developers. Highlights: fulfilled NP_Error/NP_CloseError, V50 dos functions, buffered *Printf, iconify gadget (WA_IconifyGadget), native scrollwheel, DrawInfo V3 (NUMDRIPENS 13), rewritten locale/FormatString, and new subsystems (ReAction, mmu.library, Roadshow TCP/IP).
V50 slots in the V47 jump tables are reserved for future API; some functions are implemented early. Test for a function's presence; do not assume a V50-numbered function exists.
New-style MountLists (V38+)¶
A new device-per-file mount format:
/* Device filename = device name (e.g., DEVS:DOSDrivers/PIPE) */
Handler = L:Aux-Handler
Stacksize = 1000
Priority = 5
The old DEVS:MountList multi-device format still works as a fallback. Tool Types in the .info file override mount-file settings. FORCELOAD = 1 forces loading from disk instead of reusing the filesystem resource list.
See Also¶
Sources: Commodore-Amiga, Inc., "Release 2.1: Overview" and "V38, V38, V40 Changes" (1992-1993); Hyperion Entertainment / AmigaOS Team, NDK 3.2 ReleaseNotes (2016-2021).
Raw: raw/architecture/v38-overview.md; raw/architecture/os-3.2-release-notes.md
Updated: 2026-08-04