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 in ckData. 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


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