-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MMFS2: Drives 2 and 3 don't work #25
Comments
It's likely this is by design. Looking a the code to parse a drive number deliberately limits the drive to 0 or 1: I think Martin envisaged the system to work more like physical disk drives, of which there are only two. *DIN can be used with physical drives 0 or 1. If you load a .ssd file to physical drive 0, then just drive 0 is populated. If you load a .dsd file to physical drive 0, then drive 0 and 2 are populated Really, *DIN to 2 or 3 should return an error, but in practive it silently maps 2->0 and 3->1. Martin's original note eludes to this:
Personally, I would prefer to also be able to load .SSD files to any of 0/1/2/3, but I can imagine issues, such as:
What happens to drive 0 now? Dave Dave |
It gets complicated. So it looks like MMFS2 take the same approach as B-Em does with plain image files in that, as one can't "mix and match" the sides of a physical disc it doesn't allow you do so with images. On the other hand B-Em supports MMB files too and this works as a kind of overlay. First, to explain, B-Em doesn't implement MMB by emulating an SD card and running MMFS or any of the other card filing systems, instead it uses the existing code for SSD/DSD and adds an offset for the selected image. B-Em implements the *DIN and *DABOUT commands and the file access is done by regular DFS. So when an MMB file is opened, initially it loads image 0 into drive 0 (side 0). If an SSD or DSD was loaded into that drive previously, the image file is closed by the filename is remembered. *DIN does allow loading images from the MMB file into drives 2 and 4. If the MMB file is "ejected" the non-MMB SSD/DSD images files, if any, are reloaded. So what to do about loading SSDs into the 2nd side of a drive. If there is an SSD loaded for the first side then it seems reasonable to load another SSD for the 2nd side but then it gets more complicated. If a DSD is already loaded in the drive and one tries to load an SSD into the 2nd side there are two choices:
Likewise there a similar choice when trying to load a DSD into the 2nd side:
The other complicationI can see is that there is probably not that much space to do anything fancy. |
Thanks. I was wondering if the problem was down to DSDs when I thinking about it last night but haven't had time to check today. If it was a choice of one on the other — support DSDs as the only mechanism to have a drive 2/3, or only support SSDs — I think I'd pick the latter as I only ever use SSDs and you can always split a DSD into two SSDs; having two extra SSD drives seems much more beneficial to me (especially as the Library is on 3 — I like having that permanently accessible). I suppose the simplest and least confusing situation, if it could accommodate both, would be to prohibit *DIN 2/3 if a DSD was loaded into 0/1. If a DSD is loaded as drive 2/3, maybe a warning would be enough. I don't know what's possible: I amazed all this fits into 16KB already! I was trying to understand the code last night and got very confused! :) |
From Mincr on stardot:
One quick bug: I don't seem to be able to *DIN drives 2 and 3, although 0 and 1 work fine. If I do *DIN 3 FILE.SSD, I don't get an error but a *CAT gives "Disc sector not found at :3 00/00". It makes no difference if I do that or *DRIVE 3 / *DIN FILE.SSD. The file and card are fine, I think, as it works as disc 0 or 1.
https://stardot.org.uk/forums/viewtopic.php?p=293279#p293279
The text was updated successfully, but these errors were encountered: