Talk:Simtec USB technical
I don't think the following is correct :
MassFS presents the drive as a single file of filetype DOSDisc. This is then openable using DOSFS. This means native (FileCore) formatted flash drives aren't supported, though it might be possible using a FileCore image filing system such as FCFS. It doesn't support devices over 2GB (due to the limitations of the RISC OS image filing systems) and doesn't provide any means to access the raw sector data of such devices. It appears devices larger than 2GB aren't recognised even if they have a partition smaller than 2GB.
Filing systems which, typically, get their data from physical medium wishing to support image filing systems on that medium, they always implement a FileCore instance (including MassFS). When accessing the FS registered with FileCore, FileCore will always look first at the contents of disc/hardware medium/whatever gets offered via its interface to see if it isn't a FileCore formated medium.
If so, it will deal with it automatically and no ImageFS gets a change to do anything. There are no 2GB limits in this case.
If not (and only then), it will ask all ImageFS around (via the Service Call IdentifyDisc) if someone else recognizes the format. When an ImageFS acknowledges the format layout, the disc will get a filetype from the ImageFS (not the host FS !) and the ImageFS reads/writes to that medium with a FileSwitch handle. So only in this situation you have the 2 GB limit.
So summerized:
- MassFS presents the drive as a single file of filetype DOSDisc : incorrect, it is DosFS recognizing the format and also giving the DOSDisc filetype. If you would have a Macintosh HFS disc layout on your USB stick, it would be MacFS setting the filetype MacDisc.
- This means native (FileCore) formatted flash drives aren't supported, though it might be possible using a FileCore image filing system such as FCFS. : incorrect. When you have a FileCore layout on your MassFS disc, FileCore will deal it before any ImageFS can do it. In fact, I'm pretty sure about this because I've banged a FileCore disc contents on an USB stick and in an A9home I got a working FileCore disc.
- It doesn't support devices over 2GB (due to the limitations of the RISC OS image filing systems) and doesn't provide any means to access the raw sector data of such devices. It appears devices larger than 2GB aren't recognised even if they have a partition smaller than 2GB. : generally speaking this is incorrect, When it is FileCore formated medium there is no 2GB limit and also for ImageFS which doesn't use a FileSwitch handle to access the medium (e.g. using the information passed in the Service IdentifyDisc call sent), like MacFS, Win95FS, ...
Filing systems which, typically, get their data from physical medium wishing to support image filing systems on that medium, they always implement a FileCore instance (including MassFS). When accessing the FS registered with FileCore, FileCore will always look first at the contents of disc/hardware medium/whatever gets offered via its interface to see if it isn't a FileCore formated medium.
- This isn't true in the case of MassFS on Simtec USB cards. It only makes use of FileSwitch and presents a single file of MassFS::discname.$ (which is why it's possible to access sectors of it with OS_GBPB 2/4, which won't work on a FileCore disc). This is then handed over to the image FS subsystem. It never goes anywhere near FileCore. I think, though I can't check now, that it's filetyped as DOSDisc by MassFS which then causes DOSFS to pick it up. Service_IdentifyDisc only works for FileCore discs (requires a FileCore disc record) so it can't use this mechanism to pass around the foreign format.
- Jason Tribbeck said on csa.hardware a day or two ago that there's a version of MassFS that supports >2GB discs on the A9home. This may well be radically different: I haven't seen it. I have used a Simtec USB card with MassFS 1.00 and it behaves as described.
- Caliston 12:53, 25 Apr 2006 (BST)