04-13-2013, 10:26 AM
Darkstar Wrote:Yes, it always truncates to 10 Chars, to be compatible with original Sinclair BASIC, but ZXB could, in fact, allow any length.Darkstar Wrote:I have not tried to SAVE with 11 chars.The original BASIC does not accept the command but comes up with: F Invalid file name, 0:1.
The compiled BASIC accepts the command but truncates the last letter when saved to tape but
I do hope that this does not lead to a buffer overflow of sorts.
The problem is, the more compatible with the original ROM, the more code I have to copy in the asm library (so your program will take more memory).
Darkstar Wrote:When saving with an empty string the original gives error message F while the compiled basic justI've added ERROR_InvalidFileName EQU 14
falls through to the next executable statement giving no clue at all.
Code:ERROR_Ok EQU -1
ERROR_SubscriptWrong EQU 2
ERROR_OutOfMemory EQU 3
ERROR_OutOfScreen EQU 4
ERROR_NumberTooBig EQU 5
ERROR_InvalidArg EQU 9
ERROR_IntOutOfRange EQU 10
ERROR_InvalidColour EQU 19
ERROR_BreakIntoProgram EQU 20
ERROR_TapeLoadingErr EQU 26
The program will fail silently, as you said, when saving an empty string, but ERR_NR system variable will be set. And the error will be triggered if you exit to BASIC with that code set (try it, download latest version, 1.3.0s986).