IFF Format and Mountlist Reference¶
Two AmigaDOS reference topics not covered elsewhere in the wiki: the IFF (Interchange File Format) chunk structure used by all Amiga multimedia files, and the Mountlist keyword reference for configuring filesystem devices. Compiled from Mastering AmigaDOS 3: Reference (Stephen R. Davis, 1994).
IFF — Interchange File Format¶
IFF is the standard Amiga container format for multimedia data (images, sounds, animations, music). It is a chunked, self-describing format where each file consists of typed data blocks enclosed in a form wrapper.
Chunk structure¶
Every chunk has three parts:
typedef struct {
ID ckID; /* chunk identity — 4 ASCII bytes */
LONG ckSize; /* sizeof(ckData) in bytes */
UBYTE ckData[ckSize]; /* the payload */
} chunk;
ckID— four ASCII bytes in the range space (0x20) through tilde (0x7E). Leading spaces not allowed. Matched via unsigned long comparison (case matters, used for speed).ckSize— the number of bytes inckData. Does NOT include the ID or size fields. If the data is an odd number of bytes, a pad byte (0) is appended to maintain even alignment.ckData— the payload.
Form wrapper¶
Chunks are enclosed in a form wrapper that identifies the file type:
| Wrapper | Purpose |
|---|---|
FORM |
Contains one complete data package (most common) |
LIST |
Contains shared property chunks and sub-forms |
CAT |
Concatenation of multiple forms |
PROP |
Shared properties within a LIST |
A FORM file begins with FORM + total size + form type (4 bytes), then contains chunks:
FORM <size> ILBM BMHD <size> <data> CMAP <size> <data> BODY <size> <data>
Common form types¶
| Form type | Content |
|---|---|
ILBM |
Interleaved BitMap — standard Amiga picture |
8SVX |
8-bit sampled voice — sound |
SMUS |
Simple MUsic Score |
FTXT |
Formatted text |
ANIM |
Animation (Aegis format) |
Chunk types¶
| Chunk | Full name | Found in |
|---|---|---|
BMHD |
BitMap HeaDer | ILBM |
BODY |
Image data (interleaved bitplanes) | ILBM |
CMAP |
Colour MAP — RGB color palette | ILBM |
CAMG |
Amiga display mode flags (HAM, EHB, etc.) | ILBM |
CRNG |
Colour Register RanGe — color cycling | ILBM |
CCRT |
Color range (Graphicraft format) | ILBM |
GRAB |
Hotspot of sprite/brush | ILBM |
SPRT |
Sprite information | ILBM |
DEST |
Bitplane scatter information | ILBM |
ANHD |
ANimation HeaDer | ANIM |
DLTA |
DeLTA data (frame-to-frame diff) | ANIM |
ABIT |
Non-interleaved bitplanes | ACBM |
ACBM |
Amiga Contiguous BitMap (Amiga BASIC) | ACBM |
ANMB |
ANimated bitMap (Framer, Deluxe Video) | ANMB |
ATAK |
ATtAcK envelope of sound sample | 8SVX |
RLSE |
ReLeaSE part of sound sample | 8SVX |
NAME |
Name of artwork/sample/score | Any |
AUTH |
Author's name | Any |
(c) |
Copyright information | Any |
ANNO |
Arbitrary annotation text | Any |
VHDR |
Voice header (sample rate, volume) | 8SVX |
Mountlist keyword reference¶
Mountlist entries configure filesystem devices. A typical entry:
DH0:
Handler = L:FastFileSystem
Device = ide.device
Unit = 0
Flags = 0
Surfaces = 16
BlocksPerTrack = 63
LowCyl = 2
HighCyl = 1000
Buffers = 100
BufMemType = 1
DosType = 0x444F5301
BootPri = 0
Complete keyword reference¶
| Keyword | Description |
|---|---|
BootPri |
Boot priority: -129 (not bootable) to 127 (highest). RAD: should be -129 unless you want to boot from it. |
Buffers |
Number of 512-byte cache blocks. Can be changed after mounting with ADDBUFFERS. (Disks only.) |
BufMemType |
Memory type for cache buffers: 1-2 = Any (CHIP or FAST), 3-4 = CHIP only, 5-6 = FAST only. (Disks only.) |
Device |
Name of the .device driver in DEVS: (e.g., trackdisk.device). Path-sensitive. |
DosType |
Filesystem format: 0x444F5300 = OFS ('DOS\0'), 0x444F5301 = FFS ('DOS\1'). Must be correct for tools like DiskDoctor. |
Flags |
Flags passed to exec's OpenDevice() call. Usually 0. |
GlobVec |
Global vector (BCPL legacy): -1 = none, 0 = private, 1 = shared. Usually omitted. |
Handler |
Name of the device handler in L: (e.g., L:FastFileSystem). Path-sensitive. |
HighCyl |
Maximum track/cylinder number. 3.5" floppies = 79, 5.25" = 39 or 79, hard disks vary. |
Interleave |
Interleave factor for formatting. Device-dependent; has no effect on disk emulations. (Disks only.) |
LowCyl |
First track/cylinder available, or first track of a partition. (Disks only.) |
Mask |
Memory allocation mask for buffers. |
MaxTransfer |
Maximum bytes per single transfer request. |
BlocksPerTrack |
Number of sectors per track. |
Surfaces |
Number of heads (sides). |
SectorSize |
Bytes per sector. Usually 512. |
Reserved |
Number of reserved blocks at partition start (boot blocks). Minimum 1, default 2. |
StackSize |
Stack size for the handler process. |
Startup |
String passed to handler as BPTR to BSTR (ancient compatibility). |
Mount |
Whether to mount immediately. |
DosType values¶
| Value | ASCII | Filesystem |
|---|---|---|
0x444F5300 |
DOS\0 |
Old FileSystem (OFS) |
0x444F5301 |
DOS\1 |
FastFileSystem (FFS) |
0x444F5302 |
DOS\2 |
International OFS |
0x444F5303 |
DOS\3 |
International FFS |
See Also¶
- AmigaDOS Filesystem On-Disk Structures
- dos.library Reference
- DOS Packet Reference
- The AmigaDOS Shell
- IFF Format Registry, MIDI, CD32
Sources: Stephen R. Davis, "Mastering AmigaDOS 3: Reference" (1994), Appendices D (IFF) and E (Mountlist).
Raw: raw/dos/mastering-amigados-reference.md
Updated: 2026-08-09