Amiga KB¶
A wiki compiled from the Amiga Developer CD v1.1 (May 1996, ESCOM AG / Amiga Technologies GmbH) — the AmigaOS NDK 3.1 plus developer docs — supplemented with AmigaOS 3.2 (NDK 3.2 Releases R1-R4, Hyperion Entertainment, 2021-2022), MUI 3.8 (Stefan Stuntz, 1992-97), and external Amiga programming books and technical references.
Read it as a book: start with the philosophy and architecture parts, then the library references, then the deep dives. Every article links to its neighbours; the log records where each fact came from.
Part I — Orientation and Rules¶
- AmigaOS Programming Philosophy — Cardinal rules: stay upwards-compatible, use the OS API.
- Getting Started with Amiga C — Beginner orientation: toolchain, first window, first graphics, MEMF_CHIP rule, 7 programming rules.
- Coding Standards — C style: 8-space disk tabs, commented braces, ANSI prototypes.
- PowerPC and Future-OS Compatibility Rules — Forbidden exec calls, ThisTask is private, use semaphores.
- Known Bad Software Practices (Blacklist) — Wayne Gretzky Hockey, Word Perfect 4.1.
Part II — Architecture and History¶
- AmigaOS Version History — V33-V47 mapping, runtime version checks, what each release introduced.
- AmigaOS 3.2 — What Changed for Developers — V40→V47 delta: removed exec internals, NP_Error fixed, V50 dos funcs, iconify gadget, DrawInfo V3, new subsystems.
- NDK 3.2 R2/R3/R4 Release Notes — What each NDK update added; R4's expanded autodocs, dev docs, trackfile source, vbcc support.
- Interface Header Files — How clib/proto/pragmas/pragma/inline and amiga.lib stub code bridge C to register-based OS calls; LVOs.
Part III — Core System: exec and dos¶
- exec.library Reference — Tasks vs Processes, memory, signals, ports, IO, semaphores, SAD.
- exec Memory Pools — Puddle/threshold scheme, sizing, show_memory_pool_insights() diagnostic (NDK 3.2 R4).
- mmu.library — OS 3.2 hardware-independent MMU API; contexts, page properties, MuForce/memory.library basis.
- dos.library Reference — BPTR handles, file I/O, directories, ReadArgs, pattern matching.
- BPTR, BSTR, and BCPL Legacy — BPTR alignment trap, D_S macro, 255-char BSTR limit, three kinds of zero.
- DOS Pattern Matching — #? not *, two-step ParsePattern/MatchPattern, MatchFirst/Next/End.
- DOS Packets — Handler IPC, V39 additions, async serialization.
- DOS Packet Reference — Complete packet list: file, lock, examine, link, metadata, volume, handler control.
- AmigaDOS Date and Time — DateStamp (epoch 1978, 1/50s ticks), DateTime formats, 2045 limit, two-digit-year parsing.
- AmigaDOS Error Codes — Complete IoErr() reference: 46 codes (103-305) with meanings, obsolescence notes.
Part IV — Intuition, Graphics, and GUI Toolkits¶
- Intuition Library Reference — BOOPSI, windows/screens, IDCMP events, classic vs BOOPSI gadgets, refresh.
- Intuition Windows, Screens, and the Event Loop — Complete WFLG_* flags, IDCMP event reference, raw key qualifiers, mouse button codes, menu number encoding, full event loop.
- Intuition Layer Locking and Deadlocks — Layer locks cause deadlocks; ObtainGIRPort locks implicitly.
- Graphics and Layers Library Reference — RastPort, BitMap, blitter, color management, layer locking.
- AA (Advanced Amiga) Graphics Features — 24-bit color, new screen tags, mode promotion, palette sharing, color wheel.
- GadTools Library Reference — CreateContext, gadget kinds, GT_GetIMsg, V39 features.
- ReAction GUI Toolkit — OS 3.2 BOOPSI class system; classes-as-libraries, macro layout, RA_HandleInput event loop, 29 gadget classes.
- MUI — Magic User Interface — Stefan Stuntz's BOOPSI GUI system (v3.8); automatic layout engine, notification mechanism, 66 class autodocs, custom classes, freeware/commercial licensing.
Part V — Devices and Storage¶
- Device Driver Command-Set Rules — IOERR_NOCMD mandatory; reserved command ranges.
- New Style Device Commands — NSCMD_DEVICEQUERY protocol, DeviceType table.
- 64-bit Storage Access (TrackDisk64) — NSCMD_TD_*64 commands, 64-bit offset encoding.
- Standard Device Libraries — timer, trackdisk, serial, parallel, console, audio, clipboard, input, gameport, keyboard.
- trackfile.device and DAControl — OS 3.2 ADF-backed virtual-floppy driver; full R4 source, MFM emulation, a documented trackdisk clone.
- CD-ROM and CD32 Development Tools — ISOCD/OptCD/SimCD mastering, seek-time optimization, CDTV boot process.
- ADF Format Specification — Disk geometry (901,120 bytes/DD), MFM encoding, bootblock structure, rootblock, hash table, file/directory storage, OFS vs FFS, hard links, Rigid Disk Block.
- AmigaDOS Filesystem On-Disk Structures — Block layouts: root/user dir, file header, extension, OFS/FFS data, hard/soft links, bitmap, hash function, HSPARWED.
- AmigaDOS Hunk Binary Format — Executable/object/library on-disk format: HUNK_HEADER 0x3f3, segment lists, relocations, loader defects.
Part VI — Supporting Libraries and Subsystems¶
- Utility, Locale, ASL, IFFParse, DataTypes, Commodities — TagItems, Hooks, i18n, requesters, IFF, datatypes, commodities.
- Datatypes Tutorial — DataTypes subsystem: loading, multi-class objects, DataTypeDescriptors.
- Bullet Library and Outline Fonts — AGFA Intellifont engine, .font/.otag files, outline tag resolution, diskfont.library shortcut.
- Writing Localized Applications — locale.library pattern, catalog files, character classification, date formatting.
- ARexx Scripting Language — RexxMast interpreter, host application ports, language reference (PARSE, ADDRESS, SIGNAL), built-in functions, error handling.
- The AmigaDOS Shell — CLI language: redirection, pipes, quoting/* escapes, $-variables, back-tick, aliases, predefined vars.
- IFF Format and Mountlist Reference — IFF chunk struct (FORM/LIST/CAT/PROP, BMHD/BODY/CMAP), 25+ chunk types, all Mountlist keywords with DosType values.
- SANA-II Networking Standard — SANA-II R2, packet filtering, multi-stack support.
- Roadshow — bsdsocket TCP/IP Stack — OS 3.2 TCP/IP; BSD sockets + interface/route mgmt, netinclude gotcha, SANA-II R4/R5, full source.
Part VII — Library Reference (per-function autodocs)¶
- Library Reference — section index — Per-function autodoc documentation. Complements the topical guides in
exec/,dos/,intuition/, etc. 54 libraries covered in NDK 3.2 R4. - Core system libraries: exec (115), dos (161), intuition (123), graphics (166), layers (38), utility (43).
- GUI / IFF / fonts: gadtools, asl, commodities, datatypes, iffparse, diskfont, keymap, rexxsyslib, icon, expansion, wb, locale.
- Devices: audio, battclock, carddisk, cia, clipboard, console, gameport, input, keyboard, parallel, potgo, printer, serial, timer, trackdisk, ramdrive, scsidisk, mfm.
- Math libraries: mathffp, mathtrans, mathieeedoubbas, mathieeedoubtrans, mathieeesingbas, mathieeesingtrans.
Part VIII — Hardware¶
- 68000 Programming Model — Register set (D0-D7, A0-A7), status register/CCR, supervisor/user modes, instruction set overview, addressing modes, relevance to AmigaOS.
- 68000, 68010, and 68020 Evolution — Family comparison table, 68010 VBR/MOVEC/virtual memory, 68020 instruction cache/new addressing modes/new instructions, Amiga model mapping.
- MC68030 MMU and On-Chip Caches — On-chip paged MMU (CRP/SRP/TC/TT0/TT1 registers, ATC, PFLUSH/PTEST/PMOVE), split 256B instruction+data caches, burst bus, 68030 vs 68851 differences.
- MC68040 and MC68060 Architecture — 68040 integrated FPU+MMU+4K caches, 6-stage pipeline; 68060 superscalar dual-pipeline, branch cache, 8K caches, dropped instructions and software emulation; A4000 and accelerator relevance.
- 680x0 Instruction Reference — Master compatibility matrix of every 680x0 mnemonic (75 from MC68000UM, growing) against each CPU generation: 68000/68010/68020/68030/68040/68060. Categories: data movement, integer arithmetic, logical/bit-field, shift/rotate, bit manipulation, program control, system control. Progressively populated from official Motorola User's Manuals.
- Amiga Custom Chips — Agnus/Denise/Paula architecture: Copper (WAIT/MOVE/SKIP), Blitter (minterms, block copy, line draw), sprites, playfields/bitplanes, 4-channel audio, DMA priority, 8520 CIA; AGA (Lisa/Alice): 8 bitplanes, HAM8, 256×25-bit palette, FMODE fetch modes, scan-doubling.
- Custom Chip Register Reference — Complete OCS/ECS/AGA register map: all
$DFF000–$DFF1FCcustom chip registers (170+ entries) with address, name, access mode, chip generation, and description; full CIAA/CIAB 8-bit register maps with bit fields; ReSource symbol tables for include-file version compatibility. - Zorro III Expansion Bus — 32-bit async multiplexed bus: burst mode, fair arbitration, quick interrupts, AUTOCONFIG daisy-chain, A3000 memory map, timing specs.
Part IX — Tools, Debugging, and Special Topics¶
- Amiga Debugging Tools — Enforcer (MMU traps), Mungwall (guard bands), IO_Torture, wack, SWToolkit3 tools.
- Alerts, Gurus, and Exception Handling — Alert() function, AN_/AG_/AO_* constants, trap vectors, dead-end vs recovery, reading Guru numbers.
- CatComp and Installer — Catalog compiler workflow, Installer scripting language.
- SAS/C Compiler Reference — sc options, smakefiles, __saveds/__interrupt keywords, #pragma, startup modules, stack management, CodeProbe debugger, optimization.
- OS Game Development Techniques — Why to use the OS instead of hardware banging; what the OS can't do.
- AmigaOS Code Patterns and Idioms — Program skeleton, ReadArgs, async IO, DataType playback, locale catalogs, GadTools listview callback, BOOPSI class, IFF loading, commodities.
Part X — Curated Source Guides¶
- Amiga Mail Reference Articles — Annotated index of 69+ Vol2 articles across 13 sections.
- IFF Format Registry, MIDI, CD32, and 3rd-Party Packages — IFF forms/chunks, CAMD MIDI, CD32 dev kit, Ralph Babel, Envoy, INet.
Part XI — Amiga C Programming book (Bleek/Jennrich/Schulz)¶
- Amiga C for Advanced Programmers — source guide — Chapter map, page ranges, OCR quality notes. Navigational metadata only.
- Operating System Programming with Multiple Libraries — A Walkthrough — Synthesis of Chapter 4: multi-library handling, library-base pointers, linked lists, custom memory allocator over Exec, RAWKEY conversion, build pipeline.
- C Compiler Operations — How a C Compiler Works — Synthesis of Chapter 2: Aztec C pipeline, compiler internals, assembler, linker, monitor debugger, tricks.
- Intuition and C — Chapter Overview — Section map of Chapter 3 (11 sections, ~300 pages), key concepts per section.
- Intuition Screens — Screen Fundamentals — Section 3.2: NewScreen structure, ViewModes, public screens.
- Intuition Windows — Section 3.1 Walkthrough — Section 3.1: NewWindow, OpenWindow flags, IDCMP event loop.
- Intuition Gadgets — Classic Gadgets — Section 3.4: built-in gadget kinds, activation, mutual exclusion, custom gadgets.
- Intuition Requesters — Section 3.5: EasyRequest, AutoRequest, custom requesters, alerts.
- IDCMP Event Handling — Section 3.7: IDCMPFlags, IntuiMessage, event loop pattern, class-by-class dispatch.
- Intuition Menus — Section 3.8: MenuStrip, NewMenu, MENUPICK dispatch, sub-menus, MENUVERIFY.
- C Memory Management — Section 3.11: AllocMem / FreeMem, MEMF_* flags, MEMF_CHIP rule, pools, alignment.
Appendix¶
- Wiki Roadmap — What has been ingested, what remains, and the recommended order.
- Wiki Log — Per-batch ingest log: sources, articles created, editorial notes.
- Raw sources (verbatim captures, not for direct reading): see raw/ — currently
raw/hardware/(AGA feature summary, register reference source) andraw/c-programming/amiga-c-for-advanced-programmers.md(full OCR of Bleek/Jennrich/Schulz, 674 pages).