Skip to content
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

Open
hexwab opened this issue Jul 1, 2018 · 8 comments
Open

Cassette filing system is unhappy with filenames #35

hexwab opened this issue Jul 1, 2018 · 8 comments

Comments

@hexwab
Copy link

hexwab commented Jul 1, 2018

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.

@kieranhj
Copy link
Contributor

kieranhj commented Jul 2, 2018

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?

@hexwab
Copy link
Author

hexwab commented Jul 2, 2018

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

    10 *DISC
    20 *LOAD Bank0 2000
    30 *TAPE
    40 *SAVE Bank0 2000+3E00 8000 8000
    50 [...]

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 :)

@kieranhj
Copy link
Contributor

kieranhj commented Jul 2, 2018

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.

@kieranhj
Copy link
Contributor

kieranhj commented Jul 2, 2018

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.

@hexwab
Copy link
Author

hexwab commented Jul 3, 2018

Turns out there's *MOVE Bank0 -TAPE-Bank0 which neatly solves the BASIC length problem (although it seems there's also a ridiculous bug whereby the "RECORD then RETURN" message only appears in shadow screen modes).

@kieranhj
Copy link
Contributor

kieranhj commented Jul 4, 2018

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!

@hexwab
Copy link
Author

hexwab commented Jul 8, 2018

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

@simondotm
Copy link
Member

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants