Welcome to Amiga-Storage!, The best for Amiga classic. ©2016-2024 Meta-MorphOS.org
Developer:Toni Wilen
Short: PFS3 All-In-One
Author: Toni Wilen
Uploader: twilen winuae net (Toni Wilen)
Type: disk/misc
Version: 3.1
Architecture: m68k-amigaos

This is improved all-in-one 100% OS 1.x/2.x/3.x/68000+ compatible
port of open source version of Professional File System III (PFS3).
Sources: https://github.com/tonioni/pfs3aio



- TD64 support check false negative fixed, v3.0 rejected many TD64 capable
HD controllers.
- Always re-execute access mode test when removable drive is inserted
and before formatting.
- Set default stack size back to original default of 4000 bytes from old
AROS compiled value of 6000. Saves stackswap 6k of RAM.
- Always execute TD_MOTOR off after idle delay period, some HD controllers
only switch off activity led when TD_MOTOR off is executed.
- Previous version's (3.0) OS 3.1.4 SCSIDIRECT support was very broken and
corrupts the partition. Reformat required if used with v3.0!
- Fixed out of bounds buffer read when writing file to disk that does not
fill last disk block completely. It was harmless but can for example
cause MuGuardianAngel hits. (Original PFS3 bug/optimization)
- Return faked (larger than real blocksize) InfoData structure block size
value if drive is larger than 16G as a workaround for programs
(including WB) that calculate in use percentage using 32-bit
"in use * 100 / total" formula where multiplication overflows if size
is about 20G or larger with 512 block size.
- Removed Direct SCSI scsi_Actual validation after read or write operation.
Some SCSI controllers don't update it properly, causing pfs3aio to show
disk read or write error requester. Was added in 3.0.
- Fixed softlinks, they have never worked previously. (Piru)


- Bug fixes, including finally fixed nasty bug causing Wrong Index Block ID
(and others) if partition was >=5G and lots of small files were created
very quickly, for example unpacking archive with thousands of small files.
This bug has most likely existed since PFS3 introduced >=5G partition
- Compiled with m68k optimized GCC 6
(https://github.com/bebbo/amigaos-cross-toolchain), 16k smaller than
previous pfs3aio.
- Some HD controllers modify MaxTransfer after filesystem has been
initialized, which was ignored by previous versions.
- Automatic max transfer limit is only enabled if scsi.device version is v36
or newer and older than v50.
- Limit Direct SCSI mode max transfer size to 65535 blocks (~32MB).
- Automatically attempt to increase number of buffers if all buffers are in
use and more buffers are required.
- Added support for new OS 3.1.4 filesystem mount flags. (SCSIDIRECT,
- Shows more detailed information in error requesters (access mode, start
block, end block, SCSI details if SCSI Direct)
- Includes unsupported and experimental >104G partition support. Shows
warning if enabled during formatting.
- ACTION_DIE (unmount) stability fix.
- Filename changed from pfs3_aio-handler to pfs3aio.


- ROM resident priority increased. GVP tekscsi driver (that
normally can't load filesystems from RDB due to a driver bug)
can now automount PFS3 partitions if PFS3 is in ROM.
- Fixed very old PFS3 bug that caused Wrong Index Block ID
error message. Only affected partitions larger than 5G.

3.0 NOTE: This bug was not fully fixed until 3.0.


- Handler is now rommable.
- Reverted SVN rev#9 commit, it is not compatible with AmigaDOS and
can break some programs. ACTION_FINDOUTPUT must use exclusive lock.
- 1.3 compatibility fix, AddSemaphore() is broken under 1.x.
Caused crash under 1.3 if more than one partition was mounted.
- Added custom version for braindead boot ROMs that don't support
hunk relocation entries(!) One confirmed is some versions of
pbscsi.device. It also can be used safely on non-braindead systems.
Custom version is not rommable.


- Fixed access fault when booting under KS 1.3.


- Improved version of PFS3 for KS1.x
- Direct SCSI merged with standard PFS3.
- NSD support added.
- Autodetects block access mode (TD, TD64, NSD, DirectSCSI),
does not mount any partitions that can't be fully or partially
accessed due to driver limits.
- >256 block transfer ROM IDE driver bug workaround included.
("Max Transfer" bug)

Includes also all PFS3 for KS1.X updates:


- Merged latest official SVN updates.
- Compatible with KS 1.3 + 2.x extended ROM CDTV with v37 exec.
- Enabled removable media support.
- Fixed ACTION_DIE (unmount) crash.
- WB 1.x C:Info reports correct state information.

Read official PFS3 package documentation before using!

Fully compatible with official pfs3 and previous pfs3aio versions,
no reformatting needed.

Archive contents:

pfs3aio: standard version.

pfs3aio-custom: version only for HD controllers with bad or buggy
boot ROM driver that assumes RDB filesystems are without relocation
entries. One example is pbscsi.device. This version is not rommable.

Autodetection details:

If last block of partition is inside of first 4G of drive:

- Test if standard CMD_READ can access last block.
- Test if HD_SCSICMD Read(10) can access last block.

If both tests failed, do not mount, show error requester.

HD_SCSICMD test is needed because A590 pre-7.0 and CDTV SCSI CMD_READ have 1G
limit, HD_SCSICMD does not have any limits. (Other old SCSI controllers may
have similar restrictions.)

If last block of partition is outside of first 4G of drive:

- Test if NSD is supported and can access last block
(Only if DISABLENSD flag is not set).
- Test if TD64 is supported and can access last block.
- Test if HD_SCSICMD Read(10) can access last block.

If all tests failed: do not mount, no requester shown.

If DOSType = PDSx: test HD_SCSICMD Read(10) first.

If SCSIDIRECT flag is set: always use Direct SCSI, HD_SCSICMD Read(10) test
gets skipped and also uses SCSI commands to query drive size and geometry.

Upload Date:Aug 17 2019
Size:74 KB