geosread command seems broken. It always report "invalid filename".
To reproduce this issue, download geocomix-for-distribution.d81 from http://www.huxter.org/c64/geos/download.htm
It is a d81 image but if you try with a d64 you'll get the same result.
$ c1541 geocomix-for-distribution.d81 c1541 V4.1 (VICE 3.1) Copyright 1995-2017 The VICE Development Team. C1541 is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type `show copying' to see the conditions. There is absolutely no warranty for C1541. Type `show warranty' for details. c1541 #8> dir 0 "GEOcOMIX sOURCE " GC 3d 14 "rEADmE" usr 28 "GEOcOMIX" usr 54 "tHE oRB" usr 50 "tHE oRB.T" usr 296 "tHE oRB.G" usr 23 "GEOcOMIX DOCS" usr 9 "GEOcOMIX.DOCS" usr 19 "sCRIPTwRITER" usr 92 "mAINlsRC" usr 18 "hELPlsRC" usr 32 "iNFOsRC" usr 18 "fILEsRC" usr 19 "lASTlsRC" usr 8 "GEOcOMIXhDR" usr 6 "GEOcOMIX.LNK" usr 20 "iNFOlsRC" usr 9 "fILElsRC" usr 8 "GEOcOMIXlhDR" usr 15 "GEOSmAC" usr 59 "GEOSsYM" usr 69 "sCRIPTsRC" usr 10 "sCRIPThDR" usr 5 "sCRIPT.LNK" usr 141 "geowrite 128" usr 51 "wRONG IS wRITE8N" usr 2087 blocks free. c1541 #8> geosread "rEADmE" ERR = 62, FILE NOT FOUND, 00, 00 cannot read `rEADmE' on unit 8 invalid filename c1541 #8> geosread "GEOcOMIX DOCS" ERR = 62, FILE NOT FOUND, 00, 00 cannot read `GEOcOMIX DOCS' on unit 8 invalid filename c1541 #8> geosread "GEOcOMIX.DOCS" ERR = 62, FILE NOT FOUND, 00, 00 cannot read `GEOcOMIX.DOCS' on unit 8 invalid filename c1541 #8> geosread "geowrite 128" ERR = 62, FILE NOT FOUND, 00, 00 cannot read `geowrite 128' on unit 8 invalid filename c1541 #8>
It seems to be the same issue that was reported here:
http://www.lemon64.com/forum/viewtopic.php?p=743854&sid=1c6f723309a0c1d1bbc8ae8fd0e149d3#743854
Bye,
Andrea
Indeed this all fails, even inverting the case for the
geosread
argument doesn't help. Event the standardread
command fails with the files on that disk. The problem appears to be deep in the vdrive code. Somehow the filetype used is 2 (PRG) which probably should be 3 (USR), but even hardcoding the filetype to USR doesn't work.Another issue is probably that GEOS filenames are in ASCII (padded with 0xA0) instead of PETSCII, I temporary removed translating the filename to PETSCII, still no dice.
Once VICE 3.2 is out, I'll have another look.
Fixed in r34822. Please give it a try.
I grabbed vice 3.2 and tested the updated c1541. It seems geosread now works but I found some glitches.
You have to enter the filename as written in GEOS (BTW docs should be updated). It is fine, but there should be a way to display this name within c1541.
If the <destination> parameter is not specified, geosread should copy into a file with the same name as . This is not the case, and the PETSCII name is used.
The problem is the directory functions (correctly) assume PETSCII, so the case of GEOS filenames get inverted (these are ASCII and go against CBMDOS conventions). Hacking the directory display functions to display the (invalid) GEOS filenames is going to take a lot of work and probably won't happen. But I'll have a look anyway.
We could of course add a note to the help (and the man page) to inform users that when using
geosread
they should invert the case of the file they want to extract.Writing a file (such as "ReadMe" (displayed by C1541 as "rEADmE") without explicitly setting an output filename indeed results in "rEADmE" being written to the host OS. I'll fix that.
But it's good to know that the
geosread
command at least works, even if a bit iffy. Next will be thegeoswrite
command, that one suffers from the same problemsgeosread
has/had.I've removed the ASCII to PETSCII translation from
geosread
, so currently doing ageosread ReadMe
will write 'ReadMe' to the host OS.I'm not going to change the directory listing for GEOS disks, that behaves like CBMDOS should. Even inspecting every directory entry for possible GEOS data will fail since a directory entry can contain garbage data that might give false positives.
Thanks @compyx for fixing
geosread
(andgeoswrite
next).When I suggested a way to display GEOS directory entries within c1541, I didn't think about amending the current
dir
command. I was thinking about a newgeosdir
command. I don't know if it is feasible but it would increase usability.