Short: Win95/98 compatible file system Author: jaroslav.pulchart@gmail.com (Jaroslav Pulchart), based on work by Torsten Jager Uploader: jaroslav pulchart gmail com (Jaroslav Pulchart) Type: disk/misc Version: 20260911 Replaces: disk/misc/fat95.v20260614.lha Requires: AmigaOS 1.3+ (2.0+ for full functionality), a block device such as compactflash.device, ptable.library for auto-detect Architecture: m68k-amigaos Kurz: Win95/98-kompatibles Dateisystem fat95 - Win95/98 compatible FAT filesystem handler for AmigaOS. Fork of disk/misc/fat95.lha. COMPONENTS IN THIS RELEASE ========================== - fat95 4.0 (10.09.2026) (new) - install95 3.19 (25.01.2026) - dd 2.4 (10.09.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 (11.09.2026) (new) - lsptres 1.0 (11.09.2026) (new) WHAT'S NEW (11.09.2026) ======================= New major version of fat95 4.0 filesystem handler: * 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. The resolved mount Flags/CONTROL and the DosType the mount carries are reported and shown by lsptres. Partition auto-detection now requires ptable.library. Explicit-geometry mountlist entries still mount without it. * 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 cancels any open window automatically. * New Apollo 68080 tier for boards with an Apollo core 68080. * Faster FAT32 validation: the free-space scan of a freshly mounted volume is more efficient and finishes a little sooner. A volume that was unmounted properly skips the scan and is ready at once. * 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 already mounted partition fails with "object in use" instead of putting two handlers on one volume. The new "m" Control option overrides the refusal (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) options now default to off; Control "+d+D" restores the previous behaviour. * Safer handling of write errors and card changes. * An accepted ACTION_DIE (e.g. MOUNT : SHUTDOWN) unhooks the device node before replying, so C:Mount no longer prints a misleading "object in use" for a successful shutdown. * Fixed: with no card inserted, opening the volume's root directory crashed instead of reporting "no disk". * Fixed: turning a lock into a file handle lost count of it, so the handler could believe nothing was using the volume while files were still open. * Fixed: a newly created directory's ".." entry could name the wrong parent, so moving up out of it on another system could land in the root. * Fixed: giving a volume a serial number reported success even when the write failed, so the system could record a serial the card does not carry. Tools 'dd 2.4': * The help and the INSPECT report print one screenful at a time; any key continues, Q stops. * Output lines end in LF alone. Tools 'dd 2.3': * 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. A forced command the driver does not advertise is reported before the transfer starts, and an I/O error -3 points at dd INSPECT. * New MAXTRANSFER (MT=) sets the bytes per device request (default 130560), and MEM sets the buffer memory type (ANY|PUBLIC|CHIP|FAST|24BIT). * INSPECT also reports the buffer memory type and the device type, and names the command dd would use. * 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, and a hang when the block size exceeds one request. Bundled: * ptable.library and lsptres included in the archive, shared with the CompactFlash driver (https://github.com/pulchart/amigaos-ptable). Purpose ======= "fat95" is a DOS handler to mount and use Win95/98 volumes just as if they were AMIGA volumes. System requirements =================== * every AMIGA, OS 1.3+ (OS 2.0+ for full functionality) * a suitable device file for low level disk access, like the mfm.device for floppies, compactflash.device for CF in PCMCIA * ptable.library (bundled; install to LIBS:) for partition auto-detect; explicit-geometry mountlist entries do not need it Features ======== See fat95.guide for full documentation. * Workbench and applications support * Diskchange autosense * Format type autosense: FAT12, FAT16 and FAT32 * MBR, GPT, and flat (whole-disk FAT) partition support * Simple LINUX style partition selection or manual definition * Up to 4 GBytes of partition size for FAT16 * Large harddisk support via TD64 or direct SCSI * Long filenames (up to 104 chars for now) * Inquiry, read, write, and maintenance access * Built-in error check utility * Disk formatting using the OS 2.0+ format command * MS-DOS 8.3 downward compatibility * User definable language and code page * Date range Jan 1st, 1980 through Dec 31st, 2107 * Extended datestamp support: creation date and time, last accessed date (readable as file comment text; off by default, Control "+d+D" enables) * Volume serial number as name for unnamed volumes * Automatic directory optimization * Written entirely in assembly language SOURCE CODE =========== Source code available at: https://github.com/pulchart/fat95 Licensed under GNU LGPL v2.1 SUPPORT ======= The improvements to this driver are developed in my free time. If you'd like to support ongoing maintenance and experimentation, you can do so on Ko-fi: https://ko-fi.com/jaroslavpulchart HISTORY ======= See docs/changes.guide for release notes and original fat95 history. Online version: https://github.com/pulchart/fat95/blob/master/docs/changes.md CHECKSUMS ========= l/68080/fat95 4.0 (10.09.2026) (29736 bytes): MD5: b2a09a252c0f6abc0288191bb87a97d9 SHA256: 43534df8e67dfa05bbe695a49a147578da402a543e2b683ef740bfe9300129df l/68020/fat95 4.0 (10.09.2026) (29768 bytes): MD5: 1d111145f9a15fb824653b8149fa337b SHA256: 6e7f00425eab81cc64f958dc545c58d10f41f14094443d2aad2b9741ab67e1ba l/68000/fat95 4.0 (10.09.2026) (29948 bytes): MD5: e3071e03eafaa3edd72d61d8edba7d79 SHA256: 59b8663474b0cef1902b494cb90f075a53596d0e2fc024cbb82c46c197bbc6c5 install95 3.19 (25.01.2026) (2780 bytes): MD5: f3041da9df7646a8ef2977463bc3d9e1 SHA256: f4980fc7ae3f5e63ab0d925f642343a6b96f7373ba1e22f58d14bfed161cc10b dd 2.4 (10.09.2026) (10908 bytes): MD5: 120ac4b8fdd4b1eeb86c40192416e8a5 SHA256: 1ea2b2d02f327ccd07ae4dadfe7284170616dc436213e7cda3aa6cc12b13f9c5 debug95 3.19 (25.01.2026) (520 bytes): MD5: de2f9b6fb8de8a8935f99ccb6639f4b1 SHA256: 40b45a8ce812168fe77437772944f97202e84b27808f2e55c82593678d1a6559 SetFileSize 1.1 (25.01.2026) (888 bytes): MD5: 9ed3250c0d37a6253ef222fbfa822d48 SHA256: 54b054d094139b7be01220a42b5a05cee18a1cc511387fa201338dcad069b808 boot95 3.19 (25.01.2026) (2512 bytes): MD5: 2feb11a7b50845ea12a4d8fdd16370cc SHA256: f8279bdca5bfd632598f2d734475e11aa992ef27a30f1df161991aa18bc5d81d lsfsres 1.0 (16.05.2026) (868 bytes): MD5: 4d3f2567df06f0449f1354fe8ca6ffac SHA256: ffb55dbfed25e443a074f94aebbb90c9920b794fea898806b538e3ca8225d783 libs/68020/ptable.library 2.0 (11.09.2026) (9744 bytes): MD5: c576b35a6aa32f34a184f4055b3dc5dc SHA256: 8c44dd74dc7944895f9e7064e3b687c57b9be4e34d27dd3c06e8f48e6bb871c1 libs/68000/ptable.library 2.0 (11.09.2026) (9792 bytes): MD5: 6b5ec22e5f2980ecac1d85048a90bd1f SHA256: 71cf9ec276b3cb391fcad317de7181d9da655f448be61cedaae188f9b7333d49 lsptres 1.0 (11.09.2026) (11200 bytes): MD5: ced1cae1ecfdcf00fa906230abe7402f SHA256: 6d3269ebc28e1ea5648aa8c65fdcaf347c0b1d05d14c93d546a3c50a6e1a4f00 CONTENTS ======== fat95/docs/fat95.guide - FAT95 filesystem handler documentation fat95/docs/changes.guide - Release notes and original fat95 history fat95/docs/dd.guide - dd raw block transfer tool documentation fat95/docs/lsfsres.guide - lsfsres FileSystem.resource lister documentation fat95/docs/lsptres.guide - lsptres partition.resource lister documentation fat95/l/68080/fat95 - FAT95 filesystem handler, Apollo 68080 cpu tier fat95/l/68020/fat95 - FAT95 filesystem handler, 68020+ cpu tier fat95/l/68000/fat95 - FAT95 filesystem handler, 68000+ cpu tier fat95/l/install95 - Locale installer tool (read/write locale files) fat95/c/dd - Raw block transfer tool fat95/c/debug95 - Debug information tool fat95/c/SetFileSize - File size modification utility fat95/c/boot95 - Boot partition creation tool fat95/c/lsfsres - FileSystem.resource entry lister fat95/c/lsptres - partition.resource entry lister (from ptable.library) fat95/libs/68020/ptable.library - partition scan/automount library, 68020+ (small) fat95/libs/68000/ptable.library - partition scan/automount library, 68000+ (small) fat95/DOSDrivers/ - Mount list examples fat95/src/ - Full source code fat95/english/ - English documentation and examples fat95/deutsch/ - German documentation and examples fat95/français/ - French documentation fat95/español/ - Spanish documentation fat95/magyar/ - Hungarian documentation fat95/polska/ - Polish documentation fat95/russian/ - Russian documentation fat95/LICENSE - GNU LGPL v2.1