Menu

#1006 geosread command broken

v3.1
closed-fixed
compyx
vdrive (1)
c1541
2019-08-23
2018-05-17
No

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

Discussion

  • compyx

    compyx - 2018-05-17
    • labels: --> vdrive
    • assigned_to: compyx
     
  • compyx

    compyx - 2018-05-17

    Indeed this all fails, even inverting the case for the geosread argument doesn't help. Event the standard read 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.

     
  • gpz

    gpz - 2018-05-18
    • Port: Linux -->
     
  • compyx

    compyx - 2018-05-18
    • status: open --> pending-fixed
     
  • compyx

    compyx - 2018-05-18

    Fixed in r34822. Please give it a try.

     
  • Andrea Musuruane

    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.

     
  • compyx

    compyx - 2018-05-20

    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 the geoswrite command, that one suffers from the same problems geosread has/had.

     
  • compyx

    compyx - 2018-05-20

    I've removed the ASCII to PETSCII translation from geosread, so currently doing a geosread 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.

     
  • Andrea Musuruane

    Thanks @compyx for fixing geosread (and geoswrite 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 new geosdir command. I don't know if it is feasible but it would increase usability.

     
  • gpz

    gpz - 2019-08-23
    • status: pending-fixed --> closed-fixed
     

Log in to post a comment.