-
Notifications
You must be signed in to change notification settings - Fork 2
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
Cassette filing system is unhappy with filenames #35
Comments
18 minutes! That's dedication to the cause. I can fix the filenames to be FS-agnostic. Not sure how to make UEF files. Presume a BASIC program that just *LOADs from disc and *SAVEs to tape would be next best thing? |
It was actually 18 minutes times four sigh. First time it just gave me a black screen. Second time I did exactly the same, despite reflecting that allegedly the definition of insanity is doing the same thing over and over again, but expecting different results. After another black screen I figured out that my machine (actually the local hackspace's, and before that a local school's I suspect) had ROMs in sockets 6 and 7 (why, with 16 slots to choose from, Acorn didn't offer a way for internal ROMs to not obscure sideways RAM I have no freaking idea). Third time I tried *UNPLUG, in the feeble hope I wouldn't have to actually open the case. Fourth time I broke out the screwdriver and the manual and it was all good. Yes, a BASIC file is the next best thing, but if it's as simple as
then keeping the filesizes in sync would be annoying. (And I object to just making them all &4000 bytes on the grounds that 18 minutes is Quite Long Enough :) |
I hope it was worth the wait?! I'm tempted to send you a Gotek; they're only £13 on eBay and you already have DFS installed. I can get the file sizes from BeebAsm during build but would have to think if I can generate the BASIC program from it. Should be possible. |
Looks like there is a Python script to create UEF images here. Would probably have a separate/optional build step that extracts the final DFS image into a directory with .inf files and then write those in order to the UEF. |
Turns out there's |
I have removed the DFS directory signifier from the build, which will hopefully help. Haven't had chance to look at any kind of UEF generation. Feels like there should be a generic SSD -> UEF creation tool! |
It doesn't; that was the first thing I tried. The issue is that CFS doesn't understand space as a padding character (maybe I should've used monospace above). But this seems possible: hexwab@f85eda4 |
To be fair, I never really like how disksys uses filenames, it was written very quickly one night and saved me writing a function to scan a disk catalogue that could parse standard CR terminated filename strings! |
So I copied the files to tape[1] using the obvious filenames in the order in which they are loaded ("Twisted", "Brain", "Bank0", "Bank1", "Bank2", "Music", "Hazel"). Given that the fast disksys routines are disabled in favour of straight OSFILE I had high hopes it would Just Work, but no such luck. To CFS, "Bank0", "Bank0 " and "$.Bank0 " are all distinct. I brute-forced this by changing the OSFILE filename pointer at &1CAB from &1CA1 to &1CAA (""), which worked just fine (as, I suspect, would saving files called "$.Bank0 " etc.). However, it would be great if (a) the filenames passed to OSFILE were truly FS-agnostic (also maybe worth *OPT1,0 to avoid spoiling the countdown); (b) there was an official UEF build (or even an audio file for the UEF-impaired), as not everyone has a working disc system or the means to easily transfer disc images (and having this demo work far and wide is the goal, right? :). Not sure of the best way to automate UEF creation, although a program on disc that saves a bunch of files to tape may suffice for use in an UEF-writing emulator such as BeebEm (what I used for UEF creation, although not for playback to real hardware).
[1] Sadly, at just shy of 18 minutes' loading time, still currently the fastest way of getting code into my Master.
The text was updated successfully, but these errors were encountered: