64-bit Storage Access (TrackDisk64)¶
DevInfo/TrackDisk64/TrackDisk64 specifies the 64-bit command set for trackdisk/scsidisk-like drivers, lifting the pre-V40 4 GB ceiling on disk-like storage. It builds directly on the new style device standard and may not be implemented by a driver that does not fully conform to that standard.
Command set¶
Names mirror the 32-bit counterparts:
#define NSCMD_TD_READ64 0xc000
#define NSCMD_TD_WRITE64 0xc001
#define NSCMD_TD_SEEK64 0xc002
#define NSCMD_TD_FORMAT64 0xc003
These behave like CMD_READ, CMD_WRITE, TD_FORMAT respectively but carry a 64-bit offset. The upper 32 bits (bits 32–63) of the offset go into io_Actual, aliased io_HighOffset for this purpose; io_Offset remains the lower 32 bits. io_Length stays an unsigned 32-bit value (not considered a problem).
All four commands must be implemented together — a partial implementation where some return IOERR_NOCMD is explicitly unacceptable.
Identification¶
Availability must be tested per the new style device standard: a successful NSCMD_DEVICEQUERY returning NSDEVTYPE_TRACKDISK, then checking SupportedCommands for NSCMD_TD_READ64.
Recommended use¶
- Test once, e.g. at filesystem startup — don't probe per request.
- Decide once whether 32-bit or 64-bit commands are needed: if the entire access range fits in 32 bits, use the 32-bit commands; otherwise use the 64-bit set. Don't mix the two.
- Drive the choice with variables holding the command numbers — easy to switch.
io_HighOffsetcan be set up for both command sets; for 32-bit commands it is ignored, so there is no need to test before populating it.- Reinitialize all IORequest fields on every operation, per the standard OS documentation.
Behaviour is undefined if an offset/length combination exceeds the respective (32- or 64-bit) range — obviously avoid that.
Out of scope¶
ETD commands have no 64-bit specification and none is expected to be needed.
Acknowledgements¶
Based on prior work by Ralph Schmidt, Ralph Babel, Randell Jesup and others.
See Also¶
Sources: Heinz Wrobel, Amiga Technologies, "trackdisk64" (1996).
Raw: raw/devices/trackdisk64.md
Updated: 2026-08-04