xahmol/GeoUTools

ED64InvalidSector: Track #3 does not contain 40 sectors.

Closed this issue · 7 comments

Hello!

Trying to build GeoUTools on my Debian 12 system and I'm getting the following error:

Cloning into 'GeoUTools'...
remote: Enumerating objects: 820, done.
remote: Counting objects: 100% (227/227), done.
remote: Compressing objects: 100% (174/174), done.
remote: Total 820 (delta 138), reused 140 (delta 53), pack-reused 593
Receiving objects: 100% (820/820), 20.35 MiB | 8.00 MiB/s, done.
Resolving deltas: 100% (557/557), done.
16
cl65 -t geos-cbm  -Os -I include -C geoumount_cc65config.cfg -m geoumount.map -o geoumount.bin geoumount.grc src/mount.c src/interface.c src/mount_common.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_dos_lib.c src/geoumountHdr.s
cl65 -t geos-cbm  -Os -I include -C geoutime_cc65config.cfg -m geoutime.map -o geoutime.bin geoutime.grc src/time_synch.c src/time_common.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_time_lib.c src/ultimate_network_lib.c src/geoutimeHdr.s
cl65 -t geos-cbm  -Os -I include -C geouconfig_cc65config.cfg -m geouconfig.map -o geouconfig.bin geouconfig.grc src/config.c src/mount_common.c src/time_common.c src/interface.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_dos_lib.c src/geouconfigHdr.s
rm -f geoutools.d81 2>/dev/null
/usr/local/bin/GEOSBuild geoumountd81.gbuild
GEOS Build.

Processing:  geoumountd81.gbuild
Opening existing disk image: GeoUTools.d81
Opened info/header file: geoumountHdr.bin
Info/header file size: 256
Using destination file name: GeoUMount
Allocated info/header sector.
Scratching existing file.
Allocated file data fork of size: 15887 (63 blocks)
Allocated file entry.
Wrote disk image.
Done.
/usr/local/bin/GEOSBuild geoutimed81.gbuild
GEOS Build.Cloning into 'GeoUTools'...
remote: Enumerating objects: 820, done.
remote: Counting objects: 100% (227/227), done.
remote: Compressing objects: 100% (174/174), done.
remote: Total 820 (delta 138), reused 140 (delta 53), pack-reused 593
Receiving objects: 100% (820/820), 20.35 MiB | 8.00 MiB/s, done.
Resolving deltas: 100% (557/557), done.
16
cl65 -t geos-cbm  -Os -I include -C geoumount_cc65config.cfg -m geoumount.map -o geoumount.bin geoumount.grc src/mount.c src/interface.c src/mount_common.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_dos_lib.c src/geoumountHdr.s
cl65 -t geos-cbm  -Os -I include -C geoutime_cc65config.cfg -m geoutime.map -o geoutime.bin geoutime.grc src/time_synch.c src/time_common.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_time_lib.c src/ultimate_network_lib.c src/geoutimeHdr.s
cl65 -t geos-cbm  -Os -I include -C geouconfig_cc65config.cfg -m geouconfig.map -o geouconfig.bin geouconfig.grc src/config.c src/mount_common.c src/time_common.c src/interface.c src/uultimate_geosassembly.s src/ultimate_common_lib.c src/ultimate_dos_lib.c src/geouconfigHdr.s
rm -f geoutools.d81 2>/dev/null
/usr/local/bin/GEOSBuild geoumountd81.gbuild
GEOS Build.

Processing:  geoumountd81.gbuild
Opening existing disk image: GeoUTools.d81
Opened info/header file: geoumountHdr.bin
Info/header file size: 256
Using destination file name: GeoUMount
Allocated info/header sector.
Scratching existing file.
Allocated file data fork of size: 15887 (63 blocks)
Allocated file entry.
Wrote disk image.
Done.
/usr/local/bin/GEOSBuild geoutimed81.gbuild
GEOS Build.

Processing:  geoutimed81.gbuild
Opening existing disk image: GeoUTools.d81
Opened info/header file: geoutimeHdr.bin
Info/header file size: 256
Using destination file name: GeoUTime
Allocated info/header sector.
Scratching existing file.
Exception at 00000000004884D7: ED64InvalidSector:
Track #3 does not contain 40 sectors.
make: *** [Makefile:121: geoutools.d81] Error 252


Processing:  geoutimed81.gbuild
Opening existing disk image: GeoUTools.d81
Opened info/header file: geoutimeHdr.bin
Info/header file size: 256
Using destination file name: GeoUTime
Allocated info/header sector.
Scratching existing file.
Exception at 00000000004884D7: ED64InvalidSector:
Track #3 does not contain 40 sectors.
make: *** [Makefile:121: geoutools.d81] Error 252

I've attached the .d81 and .d64 images.

Thanks for any help you can provide!
diskimages.zip

-Ron

Yeah, there is a bug in the GEOSbuild tool that apparently never has been fixed by its creator (not me).

See, M3wP/GEOSBuild#2

In that thread there is also the solution on getting it to work.

Alternatively you could of course also download my latest zip with working images 😉could also send you a working GEOSbuild compile if you want.

Thanks for the interest!
Xander

Appears alas that that GEOSbuild tool became abandoned ware. Pity as it works great, and the fix for this problem is so easy: the correct module is already in his other project.

I went ahead and replace those 2 modules - GEOSBuild compiled fine. I proceeded to rebuild GeoUtools, but getting the following new error:

Processing:  geouconfigd81.gbuild
Opening existing disk image: GeoUTools.d81
Opened info/header file: geouconfigHdr.bin
Info/header file size: 256
Using destination file name: GeoUConfig
Allocated info/header sector.
Allocated file data fork of size: 13736 (55 blocks)
Allocated file entry.
Wrote disk image.
Done.
c1541 -attach geoutools.d81 -geoswrite "gEOutOOLS dOCuk.cvt"
Error - Cannot open file `/home/ron/source/GeoUTools/geoutools.d81'.
cannot open file `/home/ron/source/GeoUTools/geoutools.d81'
Segmentation fault
make: *** [Makefile:123: geoutools.d81] Error 139

The issue is case sensitivity of the disk image file. I have the following disk 2 image files created in my working folder:

GeoUTools.d64
GeoUTools.d81

The step at the bottom of the error is looking for geoutools.d81 in all lowercase.

Strange as the Makefile uses this:

        c1541 -attach $(SUITE).d81 -geoswrite "gEOutOOLS dOCuk.cvt"
        c1541 -attach $(SUITE).d81 -geoswrite "gEOutOOLS dOKde.cvt"

... and $(SUITE) is defined as:

SUITE = geoutools
It should be OK.

I'm sure there is something easy I'm missing. I wish to compile your program as there are times I do things on my Raspberry Pi and there's not always ARM binary builds available.

I do enjoy this project (and some of your others). Your help is appreciated!

Thank you!

-Ron

I "fixed" the case issue for the disk images by redefining the SUITE variable.

I did find one more case issue:

make: *** No rule to make target 'readme.pdf', needed by 'GeoUTools-v11-20240126-0649.zip'.  Stop.

Makefile:ZIPLIST = $(SUITE).d64 $(SUITE).d81 readme.pdf readme_de.pdf

ron@x570:~/source/GeoUTools$ ls -l *.pdf
-rw-r--r-- 1 ron ron 1149219 Jan 26 06:46 README_de.pdf
-rw-r--r-- 1 ron ron 1006256 Jan 26 06:46 README.pdf

I can resolve this one, too. Perhaps you build in a Windows environment where case is not as issue? :)

-Ron

I build using Ubuntu under Windows Subsystem for Linux 2, but the source is on an NTFS formatted drive. Maybe that is the issue?

Probably should only use lowercase to avoid issues like this.

See the issue. Indeed the Makefile uses lowercase only names, the GEOSBuild files (the .gbuild files) use mixed case.
Think I need to change the .gbuild files to use lowercase as well, spares a lot of possible issues.
Of course, changing the Make variables to mixed case also works.

That I never had an issue must be because my NTFS drive formatting where the source resides.

By the way, the strange case for the .cvt files is caused by the disk image using PETSCII with GEOS itself using ASCII. So lower case and uppercase get mixed.

Made the makefile case sensitive.