First up, please download the new version which fixes some major crashing bugs in the file handling code. It also adds the
EXT# statement (lets you
set the size of a file as opposed).
b-flat wrote:
1) Would it be possible to have one of the several exit commands check to see if you have modified your program before you quit (to avoid accidental data loss). AKA, it would be like windows. This can be easily achieved by having a bit that is set anytime you edit the loaded program and checking to see if the bit is set when you exit.
I don't think this would be possible. What is in memory is a copy of the contents of the file, not the actual file, and as such I can't tell if it's been modified or not (as once loaded BBC BASIC forgets about the underlying file). I also can't tell the difference between entering a line of program code and entering a line of test via
INPUT (both go via the same routine). I'll be thinking about it, though!
Quote:
2) I got an "error: disk full" (I think it was on v588, but I'm not sure how to replicate it), when I tried to save my program one time. The problem was that my program somehow got deleted out of this and I had no way to save my current file because the "disk was full." I had over 500k of archive space available at the time and over 20K RAM.
In this instance, this may have been one of the serious bugs in the file handling code that has now been fixed, but it may be a more concerning problem. If you have lots of files, BBC BASIC may end up allocating *all* of the available memory for itself (it normally only allocates up to address $C000), which would leave no room for new files. When you
SAVE over an existing file it first deletes the old one then writes the new one. If the new file was slightly larger than the old one it would delete the old one but not be able to save the new one!
Whilst I don't know if there will be an ideal solution to get around this issue, I can at least put the free space check
before the old file is deleted, which should at least preserve the old file if there is insufficient room for the new one.
Quote:
With the new version (688) the link port often gets set to a value that causes the calculator to freeze. I have to go to CalcSys to manually change the value of the link port to fix it.
Did you try using any of the
ADVAL functions? I may have fixed it in r700.