AmigaOS Version Matrix โ 3.1 vs 3.2
Scope of this documentation: OS 3.1 (Kickstart 40.x, Workbench 40.x) and OS 3.2 (Kickstart 47.x, Workbench 47.x).
Kickstart Version Numbers
| OS Version | Kickstart Ver | Exec Ver | Release | Primary Platform |
|---|---|---|---|---|
| OS 3.0 | 39.106 | 39.x | 1992 | A1200/A4000 launch |
| OS 3.1 | 40.068 | 40.x | 1993 | All AGA, final Commodore |
| OS 3.5 | 45.x | 45.x | 1999 | Hyperion/H&P, WB-only |
| OS 3.9 | 45.x | 45.x | 2000 | Hyperion/H&P, WB-only |
| OS 3.2 | 47.96+ | 47.x | 2021 | Hyperion, all 68k |
| OS 3.2.2 | 47.102 | 47.x | 2022 | Hyperion |
OS 3.1 Feature Summary (Kickstart 40.x)
This is the final OS release by Commodore before their 1994 bankruptcy. It ships with all production AGA machines (A1200, A4000) and upgrade ROMs for A500/A2000/A3000.
Exec (40.x):
- Stable SysBase layout (unchanged since 2.x in most respects)
- PoolAllocMem / PoolFreeMem โ memory pools
- NewMinList() macro
- GetCC() โ condition codes from last instruction
dos.library (40.x):
- ReadArgs() / FreeArgs() โ template argument parsing
- CreateNewProc() โ new process creation API
- DosGetLocalVar() / DosSetLocalVar() โ local environment variables
- ChangeMode() โ shared/exclusive lock upgrade
- SameLock() โ lock identity comparison
- ExAll() โ extended directory examination
graphics.library (40.x):
- AllocBitMap() / FreeBitMap() โ dynamic bitmap allocation
- GetBitMapAttr() โ bitmap attribute query
- ObtainBestPenA() โ closest-match color allocation
- SetRPAttrsA() / GetRPAttrsA() โ RastPort attribute tags
- AGA full color support: LoadRGB32(), 256 color tables
- RTG stubs present but not functional (RTG lives in 3.5+)
intuition.library (40.x):
- BOOPSI completely stable
- OpenWindowTagList() / OpenScreenTagList() โ tag-based open calls
- GetScreenDrawInfo() / FreeScreenDrawInfo()
- LockPubScreen() / UnlockPubScreen()
- NewModifyProp() โ proportional gadget update
locale.library (40.x):
- Complete locale/catalog system
- OpenCatalogA() / GetCatalogStr()
New in 3.1 vs 3.0:
- datatypes.library โ class-based data-type system
- Multiview application (uses datatypes)
- asl.library โ enhanced requesters vs req.library
- PCMCIA card resource (cardres)
OS 3.2 Delta โ What Changed (Kickstart 47.x)
OS 3.2 is a Hyperion-developed modernisation of the 3.1 codebase, first released in 2021.
Exec (47.x)
AllocSysObject()/FreeSysObject()โ unified object allocator- Replaces manual
AllocMem+ init for ports, tasks, IORequests, semaphores NewCreateTask()โ extended task creation with tagsIExec->interface style (for future AOS4 parity โ not mandatory on 68k)- Improved memory tracking and debug support
dos.library (47.x)
BPTR-free variants of many path functions- Enhanced
ReadArgs()template syntax Examine()extended:ExamineTags()returningExamineDatastructs- DOS path handling improvements (up to 1024-char paths)
AddDosEntry()/RemDosEntry()refined
graphics.library (47.x)
- Compositing system (alpha blending between screens)
CompositeTags()โ hardware-assisted screen composition- Improved RTG (RastPort to VRAM) support via
cybergraphics.libraryintegration points AllocSpriteDataA()extended for RTG sprites- Palette handling improvements
intuition.library (47.x)
- New Intuition prefs (IPrefs 47.x)
- Better pen sharing and color management
intuition.libraryopens beforegraphics.libraryin new boot sequence- Visual prefs: themes, scaled UI elements
New Libraries in 3.2
| Library | Purpose |
|---|---|
disksonar.library |
Fast disk scanning |
application.library |
Application registration, task-bar |
timezone.library |
Timezone database |
identify.library |
Hardware identification |
AHI Changes (3.2)
- AHI (Audio Hardware Interface) integrated as standard component
ahi.devicereplaces directaudio.deviceuse in 3.2 applications
Cross-Version API Compatibility Table
| Function | 3.1 (40) | 3.2 (47) | Notes |
|---|---|---|---|
AllocMem |
โ | โ | Unchanged |
AllocSysObject |
โ | โ | New in 3.2 |
OpenLibrary |
โ | โ | Unchanged |
AllocBitMap |
โ | โ | Extended in 3.2 |
CompositeTags |
โ | โ | New in 3.2 |
ExamineTags |
โ | โ | New in 3.2 |
CreateNewProc |
โ | โ | Extended |
NewCreateTask |
โ | โ | New in 3.2 |
OpenCatalogA |
โ | โ | Unchanged |
Version Detection in Code
/* Check for OS 3.2+ at runtime */
struct Library *SysBase = *((struct Library **)4);
if (SysBase->lib_Version >= 47) {
/* OS 3.2 features available */
}
/* Check for OS 3.1+ */
if (SysBase->lib_Version >= 40) {
/* AllocBitMap, datatypes etc available */
}
References
- NDK 3.9:
NDK39.lhaโ headers define version-gated macros - ADCD 2.1:
AmigaMail_Vol2_guide/โ release notes per OS version - Hyperion OS 3.2 SDK: https://www.hyperion-entertainment.com/
exec/execbase.hโAttnFlagsbits for CPU detection