Device Driver Command-Set Rules¶
Two rule documents on the CD (DevInfo/DeviceDevelopment/CommandHandling and NewStyleCommands) redefine what a conformant AmigaOS device driver must do for compatibility with any OS release beyond 3.1 (V40). Non-compliant drivers will be publicly listed as violating Amiga Technologies programming standards.
Rule #1 — Support IOERR_NOCMD (mandatory, non-negotiable)¶
Any Exec-style device must return IOERR_NOCMD for any command value it does not understand. This was specified publicly in 1991 (RKM Libraries, 3rd Edition, page 924). "We can no longer tolerate violations of this rule." A driver that fails this breaks the whole command-probing model below.
Rule #2 — Reserved command ranges¶
There are 65536 possible io_Command values. As of 1 January 1996, two ranges are reserved for Amiga Technologies:
$0000 - $3fff old style and 3rd party commands
$4000 - $7fff RESERVED AREA (new style general commands)
$8000 - $bfff old style and 3rd party commands
$c000 - $ffff RESERVED AREA (new style device-specific commands)
Custom 3rd-party commands must live in the $0000-$3fff or $8000-$bfff ranges only. Reusing a reserved value or redefining a documented standard command for another purpose makes the driver non-compliant by definition.
Rule #3 — Probe before using new style commands¶
New style (reserved-range) commands may only be used after a successful NSCMD_DEVICEQUERY that confirms the device type and capabilities. It is illegal to use a device-specific new style command without first running the general query.
What changed and why¶
Before V40, custom device commands started at CMD_NONSTD and every developer invented their own, producing "messy and incompatible devices and strange compatibility tricks." The new style standard lets a caller query a device for its type and supported commands instead of guessing — the same capability problem SANA-II R2 solved with S2_DEVICEQUERY (the similarity is intentional).
See New Style Device Commands for the query protocol, and 64-bit Storage Access (TrackDisk64) for the canonical device-specific command set built on it.
See Also¶
Sources: Heinz Wrobel, Amiga Technologies, "Command Sets for Devices" (1996).
Raw: raw/devices/command-handling.md
Updated: 2026-08-04