FileCore is a modules that provides all the necessary entry points for FileSwitch that an other filining system doesb but unlike them, does not control hardware. FileCore issues calls to secondary filing system modules that in turn communicates and controls the hardware.
When a secondary module registers with FileCore, it creates a new instantiation of itself, and returns a pointer to its workspace. Your module then uses this to identify itself on future calls to FileCore.
When a new module is registered with FileCore, it reduces the complexity and coding effort requireed by the developer, as most of the functionality is provided by FileCore itself. A secondary module must, however, provide:
In addition, a secondary module may provide:
The SWI Interface that a secondary module must provide is usually quite simple. It is very common for FileCore-based filing systems to provide SWI Calls that functionally are a subset of those that FileCore provides.
They call FileCore SWIs, ensuring they identify which Filing System they are. So unless a lot of additional SWI Calls are required, secondary modules do little more than provide low-level routines that control the hardware.
RamFS implements all its SWI Calls like this, and ADFS implements most of them like this.
Format | DiscType | Map | Zones | Directories | Boot Block | FileCore Supported |
---|---|---|---|---|---|---|
ADFS L | Floppy Disc | Old | - | Old | No | ✔ |
ADFS D | Floppy Disc | Old | - | New | No | ✔ |
ADFS E | Floppy Disc | New | 1 | New | No | ✔ |
ADFS F | Floppy Disc | New | 4 | New | Yes1 | ✔ |
ADFS D | HDD/SSD | Old | - | New | Yes | Not supported on RISC OS 3.5 onwards |
ADFS E | HDD/SSD | New | ≥1 | New | Yes | ✔ |
1 The Boot Block is required for ADFS F formatted floppy discs to specify which zones holds the map.
Format | DiscType | Density | Sectors/Track | Bytes/Sector | Heads | Storage |
---|---|---|---|---|---|---|
ADFS L | Floppy Disc | Double | 16 | 256 | 1 | 640K |
ADFS D | Floppy Disc | Double | 5 | 1024 | 2 | 800K |
ADFS E | Floppy Disc | Double | 5 | 1024 | 2 | 800K |
ADFS F | Floppy Disc | Quad | 10 | 1024 | 2 | 1.6M |
ADFS D | HDD/SSD | - | - | - | - | 512MB |
ADFS E | HDD/SSD | - | - | - | - | 4GB |