xpet 4040 not handling REL files correctly
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
REL files on a D64 disk image are not being handled correctly. The drive reports 'OK' status when positioning with a byte offset that's past end of the defined record size. Similarly, it reports 'OK' to record positions that are larger than the file size. The former should return 51, RECORD OVERFLOW and the second 50, RECORD NOT PRESENT.
please attach your settings. if it happens with TDE enabled... then this is a DOS bug :)
OOoof. Not sure what is going on, but I just tried this again with a D64 image and it provided the correct behavior. But, in the large something is flaky with this build. I've had it crash in flames for no apparent reason and several times it's become unresponsive and had to be killed. Is GTK-3 build of 3.4 r38766 expected to be stable on Ubuntu 18.04?
I tried it with this little test program and this command line:
The result is on a vdrive disk image. Log output was
so here the 1st error is handled ok but the second isn't. DS$ has a very weird value.
On drive 8, output is
and the relative file has been extended to 50 records (its R00 container is 1007 bytes). Log output:
And if I turn on True Drive Emulation, I get
so the file has not been expanded to 50 records. That happens only if I add
530 print#1,"...";.Last edit: Olaf Seibert 2020-10-17
r38822 improves the file system device in this matter.
r38823 adds some semicolons that were mysteriously missing.
Last edit: Olaf Seibert 2020-10-17
Hahaha... I was just about to report the syntax issues in fsdevice-read.c :-). But, yes, REL behavior with .R00 files seems now to be correct. Previously, position commands would mysteriously extend the file even when no write had occured. Nice work, Olaf!
Does this fix apply to the vdrive on unit 9? I just put in a patch (39131) for this so it won't give you garbage back when reading the error channel.
I checked the original code with the latest versions and the output matches. The rel file contents are good as well so I'm closing this one.