stardot / MatrixBrandy

Matrix Brandy BASIC VI for Linux, Windows, MacOSX
http://brandy.matrixnetwork.co.uk/
43 stars 8 forks source link

Variables and functions not found when they really are there #79

Open jgharston opened 3 years ago

jgharston commented 3 years ago

Using test program at http://mdfs.net/temp/vdata.zip

Unzip, will give: ViewData Acorn tokenised BASIC program 0 Teletext page file

From Brandy, CHAIN "ViewData". Teletext test page displayed ok. Press Escape. Gives error: Cannot find function 'FNerr' LIST Program has vanished. LOAD "ViewData" LIST 1140,1160 - the function definition is there. PRINT FNerr Cannot find variable 'flg%' at line 1150 Ok. flg%=0:PRINT FNerr Cannot find variable 'flg%' at line 1150 Yerwot???

If I edit line 1150, delete flg% then retype it, doing flg%=0:PRINT FNerr works. If I RUN the program it goes back to the initial problem, FNerr not found, program vanishes.

I'm trying to track down what is causing this and trying to create a minimum test case.

Matrix v1.22.10 (MinGW/x86-32/SDL) 14 Feb 2021

soruk42 commented 3 years ago

Trawling back to very old versions via git, the version prior to where I merged your Banana Brandy changes fell over with Unsupported BASIC V feature on the USR&FFDD statement on line 1510. After the merge, it fell over with a segfault on 64-bit, and losing its program on 32-bit on an error condition. But I am quite confused......

soruk42 commented 3 years ago

Incidentally, OSFILE via &FFDD is not supported, but is a no-op.

jgharston commented 3 years ago

On 11-03-2021 13:34, Michael McConnell wrote:

Trawling back to very old versions via git, the version prior to where I merged your Banana Brandy changes fell over with Unsupported BASIC V feature on the USR&FFDD statement on line 1510.

Odd, it shouldn't even be getting that far.

IF PAGE<&FFFF THEN BBC API call PAGE is &verybignumber something like &015D0000 on my system.

After the merge, it fell over with a segfault on 64-bit, and losing its program on 32-bit on an error condition. But I am quite confused......

Me too. :)

-- J.G.Harston - @.*** - mdfs.net/jgh

soruk42 commented 3 years ago

Ah, in those old versions the addressing was relative to the workspace memory block so PAGE=0.