================================================================
exFATFileSystem - read and write exFAT media on 68k AmigaOS
================================================================
WHAT IT IS
A 68k build of Fredrik Wikstrom's exFATFileSystem, which upstream
has only ever released for AmigaOS 4 (PPC) and AROS (i386) - as
far as I can tell the only exFAT filesystem for classic 68k
AmigaOS. CrossDOS reads FAT12/16/32 but not exFAT, and Poseidon
is a USB stack, not a filesystem - it hands you the block device
and stops there. Most sticks and cards over 32 GB come formatted
exFAT from the factory; this handler mounts them: insert a stick,
the icon appears on Workbench, and every program uses it as an
ordinary volume.
FEATURES
- No disk geometry to edit: the handler inspects sector 0 itself
on every insertion, the way fat95 does. An exFAT boot sector
there means superfloppy - used as-is. An MBR (primaries plus
one level of extended) or GPT partition table is scanned and
the first exFAT partition selected - judged by content, never
by partition type bytes. Factory-formatted, superfloppy and
hand-partitioned sticks all swap under the same EXFAT: device.
- Files over 4 GB: 64-bit device offsets through the NSD 64-bit
trackdisk extensions. A 4.5 GiB file was copied exFAT-to-exFAT
and exFAT -> SFS\2 -> exFAT on the Amiga, SHA256-identical
afterwards. (The 32-bit Examine API displays such sizes
wrongly - the data itself is fine.)
- Fast: 22 MB/s sustained sequential reads on an A1200 with a
PiStorm32. Use 128 KB or larger buffers - smaller requests
route through the per-sector block cache and are much slower.
- DiskWatch: a small background command that makes the volume
icon appear on insertion for Poseidon-hosted media, sleeping
on Poseidon's binding events - zero calls while idle.
- 68020 and 68060 builds included; filesysbox.library 54.9 (68k)
and FbxDismount included.
INSTALLATION
exFATFileSystem into L:, filesysbox.library into LIBS:,
FbxDismount and DiskWatch into C:, the EXFAT DOSDriver (+ icon)
into DEVS:DOSDrivers, and
Run >NIL: C:DiskWatch EXFAT:
in S:User-Startup. The supplied mount files assume Poseidon's
usbscsi.device unit 0; point Device/Unit at something else if
your media lives elsewhere. Full details, known behaviour and
tuning notes are in the included ReadMe.txt.
STATUS
Tested on an A1200 + PiStorm32-lite (Emu68, AmigaOS 3.2.3,
Poseidon 6.0) with a 128 GB USB stick formatted three ways -
superfloppy, MBR and GPT: mount, read, write, mkdir, delete,
eject/reinsert all working, and the media verified clean
afterwards with fsck.exfat on Linux. Run "FbxDismount EXFAT:"
before pulling a stick, or it stays marked volume-dirty.
SOURCE
https://github.com/creep-ltx/exfat-aos3
The release archive there additionally carries a traced debug
build (with Sashimi and a capture HOWTO) and the source changes
of the 68k port.
Upstream: github.com/salass00/exfat (GPL-2.0) and
github.com/salass00/filesysbox (APL). The filesystem itself is
Andrew Nayenko's and Fredrik Wikstrom's work; the 68k port, the
partition auto-detection and DiskWatch are additions.
HISTORY
53.4 First 68k AmigaOS release (upstream releases were OS4 and
AROS only), plus partition auto-detection in whole-device
mode and DiskWatch.
|