Interface FileStoreFactory

All Known Implementing Classes:
AppleArchiveFormatFileStoreFactory, DiskFileStoreFactory, GamedosFileStoreFactory, ShrinkitFileStoreFactory, ZipFileStoreFactory

public interface FileStoreFactory

The FileStoreFactory inspects a given Source to see if it matches any known file store(s). Invoke via FileStores.inspect(Source) which will return a Context. The Context can be empty. If this is the case, devices can be created via the FileStoreFactory.Context.blockDevice() and FileStoreFactory.Context.trackSectorDevice() builders.

The builders follow the observation about what each filesystem currently uses:

OS 13-sector 16-sector 800K HDV
CP/M - CP/M - -
DOS Physical DOS Pascal -
GameDOS - DOS - -
Gutenberg - DOS - -
NakedOS - Physical - -
Pascal - Pascal Pascal Pascal
RDOS Physical DOS - -
  • 13-sector disks are only track/sector devices. (And RDOS has a unique mapping to 256 byte blocks).
  • 16-sector disks have a variety of sector mappings. It can also double as a "standard" 512 byte block, as well as a unique CP/M 1024 block device.
  • 800K disks are only standard 512 byte block (Prodos or Pascal). OzDOS and UniDOS do have unique mappings to track and sector, but logically, they are block devices.
  • Anything else (larger than 800K) are "hard-disk" images and only blocks.

Note that much of this logic is deferred to the "old" AppleCommander APIs for the time being.