Highlights
ODFileSystem v0.7.0 significantly improves large-disc support, audio CD
handling, Workbench integration, and AmigaOS 4 compatibility.
- Correctly reads large, fragmented, and sparse UDF files.
- Supports reads beyond 4 GiB on devices without TD64.
- Exposes CD-Text titles and adds cue/WAV audio-image support.
- Improves mounting, media changes, and stale-volume handling.
- Adds resident filesystem metadata and restores the 32 KiB ROM profile.
Filesystem and large-media support
- Walk the complete UDF allocation-descriptor chain, fixing corrupted reads
from files larger than approximately 1 GiB, fragmented files, sparse files,
and multi-extent directories. - Read beyond 4 GiB using TD64, NSD, or SCSI
READ(10), automatically
selecting a method supported by the device. - Report usable saturated sizes for files too large for classic AmigaDOS size
fields. - Consolidate ISO 9660 and Joliet handling, substantially reducing duplicated
code and ROM usage. - Share and harden UDF directory traversal and Macintosh timestamp conversion.
Audio CD support
- Show CD-Text track titles as comments on virtual WAV and AIFF files
(#10). - Use the CD-Text album title as the volume name for pure audio CDs.
- Correct
CD-TEXT.txtgeneration so every decoded string appears on the
proper track line. - Support audio cue sheets backed by raw or RIFF/WAVE files, including
synthesized CD-Text from cue-sheet titles and performers. - Allow
imgls,imgcat, andimginfoto mount, inspect, and extract pure
audio and mixed-mode images. - Add a configurable Workbench icon for audio CDs through
ENV:Sys/def_cdda.infoorENVARC:Sys/def_cdda.info.
AmigaOS handler and Workbench integration
- Raise the minimum handler stack to 16 KiB and update the packaged DOSDriver
and mountlist examples accordingly. - Continue startup on the supplied stack if the private stack allocation
fails, avoiding a hung startup packet. - Add
ForceLoad = 1to the packaged DOSDriver and examples so the disk
filesystem is not silently replaced by an older ROM implementation
(#4). - Reference-count shared library bases across handler instances, fixing
failures after duplicate mounts. - Validate startup messages and produce useful diagnostics for malformed
mountlists. - Keep handlers resident when drives are empty and mount media when it is
subsequently inserted (#8). - Return the correct responses for unknown packets and operations attempted
without mounted media. - Report an empty drive as “no disk” instead of “not enough memory”
(#13). - Correct multi-component paths inside the virtual
CDDAdirectory
(#12). - Present normal write/delete protection bits for files copied from read-only
media, avoiding unnecessarily protected destination files
(#14). - Retain inactive volume nodes while applications still hold locks or file
handles, allowing Workbench to release.backdroplocks after media removal
(#15). - Retry deferred DOS volume publication when the volume-list lock is busy,
ensuring Workbench eventually receives the volume icon. - Add resident/RomTag support and expose synchronized version information in
the handler banner, resident metadata, andFileSystem.resourcecreator.
AmigaOS 4
- Resolve Rock Ridge and UDF symbolic links through the native filesystem
vector interface. - Run device I/O through caller-owned requests when invoked from vector
callbacks, preventing hangs during remounts and audio reads. - Support longer filenames through a 256-byte OS4 node-name buffer.
- Honor the
DismountDevice()keep-device flag during shutdown. - Use
GetFileSize()instead of the obsoleteSeek()API when loading the
audio CD icon.
Build, size, and tests
- Enable LTO for ROM builds and restore the enforced 32 KiB ROM size limit.
- Remove unused formatting, logging, and CDDA code from feature-reduced ROM
builds. - Derive resident version fields from the release tag.
- Add a conventional
distcleantarget. - Consolidate duplicated cache, CDDA, lock, SCSI, UDF, and mount-finalization
code. - Expand regression coverage for UDF extents and directory traversal, cache
failures and read-ahead, CD-Text, audio images, virtual audio files, and
plain ISO 9660 versus Joliet filename behavior.
Full Changelog: v0.6.0...v0.7.0