-
Notifications
You must be signed in to change notification settings - Fork 24
Add support for "RDOS 3.3" disk format #110
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
Conversation
Uses 16 sectors, with ProDOS sector ordering.
|
fixes #109 |
a2geek
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a good start! Thanks for the sample disk as well.
A few items:
- I noticed that the title is crazy characters. Can that either be made sensible or just be blank (maybe even just an empty string if there's nothing useful hidden in the disk)? This is what I was seeing with
ac:
$ java -jar app/cli-ac/build/libs/AppleCommander-ac-1.9.0-SNAPSHOT.jar -ll lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk
lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk `abcd)*+h,-./012pq345678x9:;<=>?
B 032 RDOS 3.3 COPYRIGHT 1986 8,192 000 $1000
T 001 SYSTEMBOOT 256 032 $B100
A 005 START 98 033 $0801
RDOS 2.1 format; 106,752 bytes free; 9,728 bytes used.
-
Notice that the format type is RDOS 2.1 in the output, that should be corrected as well (this is
getFormat). -
Any idea if that
STARTprogram is genuinely messed up or not? I get an index error when I try to list it.
$ java -jar app/cli-ac/build/libs/AppleCommander-ac-1.9.0-SNAPSHOT.jar -e lib/ac-api/src/test/resources/disks/RDOS_33_boot.dsk START
Error: Index 98 out of bounds for length 98
java.lang.ArrayIndexOutOfBoundsException: Index 98 out of bounds for length 98
at com.webcodepro.applecommander.util.AppleUtil.getWordValue(AppleUtil.java:66)
at com.webcodepro.applecommander.util.ApplesoftTokenizer.getNextToken(ApplesoftTokenizer.java:101)
at com.webcodepro.applecommander.util.ApplesoftTokenizer.getNextToken(ApplesoftTokenizer.java:108)
at com.webcodepro.applecommander.storage.filters.ApplesoftFileFilter.filter(ApplesoftFileFilter.java:54)
at com.webcodepro.applecommander.ui.ac.getFile(ac.java:447)
at com.webcodepro.applecommander.ui.ac.main(ac.java:140)
Thanks!
|
Oh, I didn't realize that about the title. I saw in the source that "RDOS really does not have a disk name" so I ignored it, but I see it does actually return something for the older format. The version numbers are confusing - I suspect, but I'm really not sure, that RDOS 2.1 is the version of the "OS", and not the disk format. Diskm8 and Ciderpress call the older version "3.2" and the newer version "3.3" FWIW, the developer of CiderPress was also heavily involved in hacking RDOS back in the day. I'll look for some solutions. |
|
I don't know what's going on with the START file. If you do a raw (-g) extract, the result is identical to that given by ciderpress. Something about the conversion from AppleSoft to text is failing. |
|
Ah, that could be. I did just try |
|
After doing some tests, it really seems like that file is just messed up, or maybe contains some weird RDOS-specific thing at the end of it. |
|
Yeah, there are three disk formats supported by the other tools: Original 13 sector. I have no experience with images of these. 16 sector, only 13 used. Mostly cracked software. Actual 16 sector with ProDOS ordering. LIttle more direct may be to just call them something like "RDOS (13 Sector)", "RDOS (13/16 Sector)" and "RDOS (16 Sector)" A lot of my info I got from https://fenarinarsa.com/boutillon/Underground/Outils/Rdos/Rdos.html (and google translate) |
|
I just noticed that RDOS_33_boot.dsk (which I got from here: https://gswv.apple2.org.za/a2zine/Sel/RDOSstuff.html) is actually based on a copy of Phantasie III. |
|
Sounds like a plan! |
|
Testing with more complete disk images reveals there is still more work to do to read the catalog and higher blocks correctly. Working on a more generalized fix. |
|
I'm not seeing any other issues now |
a2geek
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. Looks good! I did find a bug in the Applesoft decoder that probably was responsible for the other issues -- if the basic program bumps right up to the end of the file buffer, that could cause an array index out of range exception. I'll patch that in the main branch after the merge. Thank you!

Uses all 16 sectors, and with ProDOS sector ordering.
Thought this would have been messy to get working, but was surprisingly simple in the end.
I'm not really sure if it the correct thing would be for this to be its own format or just melded in with the existing one like I did, as everything else seems exactly the same.