IFF Format Registry, MIDI, CD32, and 3rd-Party Packages

IFF (Interchange File Format) Forms Registry

The CD ships with the complete registered IFF form and chunk registry (as of February 1993) in Extras/IFF/IFF_Forms/. This is the authoritative list of all legal Amiga IFF types.

Core FORMs every Amiga developer should know

FORM Type Description
ILBM Picture Interleaved Bitmap — the standard Amiga image format
8SVX Sound 8-bit sampled voice
AIFF Sound Audio 1-32 bit samples (Mac/Apple compatible)
ANIM Animation Cel animation (methods: byte-run, vertical RLE, delta, long delta)
FTXT Text Formatted text
SMUS Music Simple music score
DR2D Vector 2D vector graphics (LaserDirect, ProDraw)
PREF Config Preferences data
CAT Container Groups multiple FORMs together

ILBM chunk structure

An ILBM file is an IFF FORM containing:

Chunk Required Contents
BMHD Yes Bitmap header: dimensions, depth, position, masking, compression, transparent color
CAMG No Amiga display mode ID (critical for correct screen mode)
CMAP No Color map (RGB triplets, one per registered pen)
CRNG No Color range (hardware color cycling)
CCRT No Color cycling range (explicit)
GRAB No Grab point / hotspot (for sprites, pointers)
DEST No Destination header (for color remapping)
SPRT No Sprite precedence
BODY Yes Interleaved bitplane data

V39+ additions: CLUT (color lookup table), DRNG (dynamic range for sparse palettes), DPI (dots per inch), PCHG (per-scanline palette changes), CNAM (color names).

Compression types in BMHD: cmpNone (0, uncompressed), cmpByteRun1 (1, PackBits byte-run encoding), cmpByteDelta (less common).

Generic chunks (any FORM)

Chunk Purpose
(any).ANNO Annotation (not loaded by applications)
(any).AUTH Author name
(any).(c) Copyright text
(any).NAME Name
(any).TEXT Unformatted ASCII text
(any).CSET Character set specification
(any).FVER Version string ($VER: format)
(any).JUNK Padding — always ignored by readers

Key rule for IFF parsers: always skip unknown chunks gracefully. The IFF format is designed to be extensible — unknown chunks may exist and should be skipped via their length field.

See also: IFFParse Library for the parsing API.

CAMD — MIDI Library

camd.library (v37.1, in Extras/MIDI/camd-37.1/) provides shareable MIDI processing for Amiga. Based on code from Carnegie-Mellon University.

What CAMD gives you

  • Multiple MIDI applications can coexist — CAMD arbitrates access to MIDI hardware. Without it, each MIDI app would need exclusive serial port access.
  • realtime.library provides high-precision timing using one timer, shared across multiple applications. Eliminates the problem of MIDI apps fighting over timer.device.
  • Driver model: MIDI hardware drivers live in DEVS:midi/. The built-in "internal" driver uses the Amiga serial port. Configure with Prefs/MidiPorts.

Dependencies

camd.library requires iffparse.library and realtime.library. The CD includes compatible versions of both for systems that don't have them. Do not overwrite newer versions of these libraries already on the system.

  • camdlist.lib — linkable list requester for MIDI port selection. Use this to let users pick a MIDI rendezvous point.
  • internal.asm — source code for the serial port MIDI driver (useful as a template for writing custom MIDI drivers).

CD32 Development

The CD32/ directory contains everything needed to develop software for the Commodore CD32 console.

CD32_Support/

The core CD32 SDK: - Headers in include/: CD32-specific types and constants - Function descriptors in fd/: for generating compiler stubs - Libraries: lowlevel.library (joystick, CD32 controller, MPEG trigger), nonvolatile.library (NV RAM for saved games) - Device: cd.device — CD32 CD-ROM access with MPEG audio/video - Docs: cd.doc, lowlevel.doc, nonvolatile.doc, WriteChunkyPixels.doc - Examples: sample CD32 code

CD32-Tools/

Runtime and development tools: - cdmpeg-110 — MPEG playback control - cdxl-1 — CDXL video playback (CD32's native video format) - fms-1 — file system for CD32 - joymouse-1 — joystick-as-mouse utility - simcd32-401CD32 simulator — test CD32 software on any Amiga without a CD32

BuildCD

BuildCD-1.33 creates bootable CD32 (and CDTV) CD images. Used to master titles that boot on real CD32 hardware.

ISO9660Tools

ISO 9660 filesystem mastering tools (ISOCD, OptCD, SimCD) for creating cross-platform compatible CDs.

XL_Toolkit_1.1

CDXL video toolkit by Pantaray (Kenneth Yeast / Carl Sassenrath). Create and manipulate CDXL video — the native CD32 video format supporting compressed video+audio playback from CD-ROM. Includes ADPXL (adaptive compression) and XLIFF (frame extraction).

3rd-Party Development Packages

Ralph Babel — Contributions/Ralph_Babel/

  • The Amiga Guru Book (Reference/The_Amiga_Guru_Book.guide) — a comprehensive Amiga internals reference by Ralph Babel. Covers exec, DOS, Intuition internals in depth. Valuable for understanding undocumented behavior.
  • wbpath — replacement Workbench path handling library
  • actionfssm — File System Startup Message analysis tools
  • trackdisk64 — reference implementation of the 64-bit trackdisk commands

IAM — Contributions/IAM/

Envoy v2.0 developer kit. Envoy is Amiga-to-Amiga networking software. The dev kit includes libraries, headers, and documentation for writing network-aware applications.

Interworks — Contributions/Interworks/

INet-225 v2 developer kit. TCP/IP networking stack for Amiga. Includes socket-level API for writing Internet applications.

Angela Schmidt — Contributions/Angela_Schmidt/

Kiskometer v1.2 — signal analysis tool.

See Also


Sources: ESCOM AG / Commodore-Amiga / Ralph Babel / IAM / Interworks / Pantaray / CMU, various packages (1985-1996). Raw: raw/tutorials/iff-midi-cd32-contributions.md; raw/rkm/guru-book.md Updated: 2026-08-08