Page 1 of 1

Bug Report

Posted: Wed 09 Sep, 2009 7:19 pm
by James
If I should be posting this somewhere else, by all means, tell me.

Some bug reports:

1) Saving a program with no extension sometimes results in "Disk full" when it obviously isn't (Still 9000 bytes free RAM).
2) Trying to load a program that is TI-BASIC (or whatever you call it) can cause the calc to crash and clear RAM.

Thanks for the help; BBCBASIC(Z80) is great.

EDIT: Forgot *BUILDINFO :
Revision 720

Re: Bug Report

Posted: Wed 09 Sep, 2009 8:02 pm
by benryves
Thanks for your reports!

With regard to 1, how are you measuring "free RAM"? When you start BBC BASIC it allocates a block of RAM for BASIC (heap, stack, current program memory) and leaves the rest for TI-OS variables (saved programs). This is not ideal as the two different areas of RAM have to fight amongst eachother (BBC BASIC is designed for computer systems that store files externally, eg on a floppy disc or a compact cassette). There's not much I can do about this rather messy state of affairs - in an ideal world I'd allocate all RAM to BBC BASIC and write files directly to the archive, but this sadly isn't possible with the way the hardware and TI-OS currently works.

As for 2, cheers for the report. I suppose I could add a file format check when loading to ensure it's a valid BBC BASIC variable.

It'll be a while until I can do anything about these issues, sorry, but I have a huge amount of work on my plate at the moment..! :(

Re: Bug Report

Posted: Thu 10 Sep, 2009 1:12 am
by James
Regarding #1:

I archived some stuff from the [2nd] Mem menu, and now it works. I guess there wasn't enough RAM for BBC to work with.

Thanks!

Re: Bug Report

Posted: Thu 10 Sep, 2009 1:43 am
by benryves
You can retrieve the amount of free RAM outside BBC BASIC's memory (that is, free RAM for storing programs in) with EXT#-1 (most useful when combined with very careful use of *HIMEM).

Re: Bug Report

Posted: Wed 11 Nov, 2009 5:18 pm
by tribal
Found a bad little bug on BBC r762

RAM Clear by having a list with less than 4 characters and is given a illegal value.
ex:

Code: Select all

10 DIM LIS$(2)="0"
RUN
During first run, the console will output "No FN at line 10". If you type 'RUN' again, the interpreter will crash with a 'RAM Clear'.

Something interesting when I forgot you have to have STRING$(##, "")...

Re: Bug Report

Posted: Wed 11 Nov, 2009 5:55 pm
by benryves
Hm, odd. The CP/M version doesn't appear to have the same issue:

Code: Select all

A0>BBCBASIC
BBC BASIC (Z80) Version 3.00
(C) Copyright R.T.Russell 1987
>10 DIM LIS$(2)="0"
>RUN

No FN at line 10
>RUN

No FN at line 10
>RUN

No FN at line 10
>
I'll look into it and see if I can work out why it's crashing.

Edit: Well, that's weird. When that particular error handler is called and HIMEM is &C000, SP is set to &C002. Little wonder that pushing some additional stuff onto the stack triggers a crash, is it? :o

Edit 2: Try the latest version, does that work for you?