FileCore is a module that provides all the necessary entry points for FileSwitch that any other filing systems does, 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 a developer, as most of the functionality is provided by FileCore itself. A secondary module must, however, provide:
In addition, a secondary module may provide additional * Commands that provides extra functionality to the system
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 provided by FileCore itself.
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, while 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 | No2 |
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
2 Not supported on RISC OS 3.5 onwards
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 |