Skip to content

v20260827-dev

Pre-release
Pre-release

Choose a tag to compare

@pulchart pulchart released this 01 Aug 19:00

Summary

Pre-release for testing. v20260827-dev of the fat95 filesystem handler and tools for m68k-amigaos (FAT12/16/32 support).

What's New

This pre-release marks a new major version, fat95 4.0. Partition auto-detection now runs on the new standalone ptable.library, so ptable.library is now required, and scanned partitions can be listed by the lsptres CLI tool.

Components in this release

  • fat95 4.0-dev (27.08.2026) (new)
  • install95 3.19 (25.01.2026)
  • dd 2.3 (16.08.2026) (new)
  • debug95 3.19 (25.01.2026)
  • SetFileSize 1.1 (25.01.2026)
  • boot95 3.19 (25.01.2026)
  • lsfsres 1.0 (16.05.2026)
  • ptable.library 2.0-dev (27.08.2026) (new)
  • lsptres 1.0-dev (27.08.2026) (new)

Changes

fat95 handler

  • New q (quiet) option. Control "+q" silences all fat95 error windows for a mount (errors go to the calling program instead). Unmounting a removed card now cancels any open window automatically.
  • Shared partition scanning. fat95 auto-detects its FAT partition (MBR, GPT, and flat whole-disk FAT) from the shared partition.resource published by ptable.library, instead of scanning the partition table itself. The resolved mount Flags/CONTROL are reported and shown by lsptres.
    (ptable.library 2.0 is now mandatory. partition auto-detection requires ptable.library in LIBS: only explicit-geometry mountlist entries still mount without it. The bundled lsptres tool lists partition.resource. The ptable.library and lsptres are bundled in this archive but released as a separate project at amigaos-ptable.)
  • Pulling a card while a Workbench window or an open file still holds the volume no longer stalls the driver: fat95 declines to quit at once and stays in service, so the partition is kept and the card mounts again when reinserted.
  • A FAT partition already mounted by another handler is no longer claimed: mounting a second DOSDrivers entry over an automounted (or otherwise served) partition fails with object in use instead of putting two handlers on one volume, which corrupted it on write. A persistent handler reattaching to its own partition after a card swap is unaffected. The new m Control option overrides the refusal for its own mountlist, at your own risk: reads mostly work, a write corrupts the volume; the extra mount is listed as its own partition.resource row.
  • The d (datestamps as file comments) and D (record last-accessed date) Control options now default to off. Control = "+d+D" restores the previous behaviour.
  • An accepted ACTION_DIE (e.g. MOUNT <dev>: SHUTDOWN) unhooks the device node before replying and carries no error code; C:Mount, which verifies the shutdown by re-reading the node, no longer prints a misleading object in use for a successful one.
  • On a voluntary exit the handler unregisters its mount from partition.resource, so the partition is free again (for the automount, or a fresh Mount) instead of staying claimed by a dead handler.
  • Fixed: duplicating the ZERO lock with no card inserted could crash.

Tools

dd 2.3 (fixes #26)

  • A 64-bit transfer command (NSCMD_TD64, or TD64) is now used whenever the driver advertises one, not only past 4 GiB.
  • New CMDSRC (CS=) and CMDDST (CD=) force the transfer command for one side only. CMD still sets both sides. Only a real .device side is affected.
  • A forced command the driver does not advertise is now reported before the transfer, together with the methods the device does offer. An I/O error -3 points at dd INSPECT.
  • New MAXTRANSFER (MT=) sets the bytes per device request (default 130560).
  • New MEM sets the buffer memory type (ANY|PUBLIC|CHIP|FAST|24BIT), instead of the type the driver reports.
  • Every transfer prints an xfer: line with the bytes per request in use.
  • INSPECT also reports the buffer memory type and the device type.
  • A driver reporting fewer bytes moved than requested is reported once per transfer.
  • Fixed: a source file that is not a whole number of blocks lost its last partial block.
  • Fixed: a bad buffer when a device does not report its geometry.
  • Fixed: a hang when the block size exceeds one request.