tschak909 / platoterm64

PLATOTerm for the Commodore 64
GNU General Public License v3.0
35 stars 11 forks source link

Filename handling. #15

Closed mr-atari closed 5 years ago

mr-atari commented 5 years ago

Some other thing I dug up for you:

Found: Changing the config will save a file called CONFIG.SER Cause: This is due to a residue of letter from the last file accessed (ATRRDEV.SER) left in the filename-buffer. But the main cause is that there is no EOL character after the filename.

You can solve this by clearing the buffer first or (preferred) ending the filename with $9B

tschak909 commented 5 years ago

Checked in a fix. plato-fix-filenames.zip Please let me know if this problem still persists. -Thom

mr-atari commented 5 years ago

naamloos Sorry, there still is residue of your previously opened file in the filename buffer-area you use. See screenshot above. CONFIG is saved with residue of the ATRRDEV.SER

I did notice that when I load plato from D5, it saved to D5: Nice. :-)

greg-king5 commented 5 years ago

Shouldn't that issue be handled by cc65's Atari library, not PlatoTerm?

tschak909 commented 5 years ago

Yes. This is something unique to LiteDOS, as it doesn't seem to happen on any of the other DOSes. (full disclosure, Sijmen is running this on a DOS he designed.) -Thom

tschak909 commented 5 years ago

All the same, let's see if changing the fill byte to $9B will work around it for now.

tschak909 commented 5 years ago

and it does... image

plato-litedos.zip

mr-atari commented 5 years ago

To atari standards the EOL character ($9B) must be used in any device/filename handling. Relying on the illegal use of $00 as EOL-marker in most DOS-versions is not recommended. Beside, this protocol is used in all devices and handlers, not only device "D:" So "D2:NAME",$9B is valid and "D2:NAME",$00 is not.

Great to have solved this issue

:-)

greg-king5 commented 5 years ago

My point still is true! PlatoTerm's high-level functions shouldn't care about what any Atari DOS needs. They are written in C; they should use C-style filename strings. The translation from .byte "name",$00 to .byte "D2:NAME",$9B should be done by low-level I/O functions in cc65's Atari library.

In other words, this issue doesn't belong here; it should be submitted to the cc65 project. The fix should be done there, not here in PlatoTerm's code.

mr-atari commented 5 years ago

Sure, what ever you say. I just see this error happen and I have no clue what cc65 does or does not compile. So I can only report this error and tell you what is wrong. I can't tell who makes the error and is surely not relevant for me, the coder will know where to look. I am just debugging and monitoring data going in/out through the BIOS......

tschak909 commented 5 years ago

I'm gonna call this guy closed.