hoglet wrote: ↑Wed Aug 14, 2019 7:55 pm
BeebMaster wrote: ↑Wed Aug 14, 2019 7:35 pm
Also PAGE (at &8F00) is lower than the load address of BASIC, so amn't I going to overwrite BASIC with BASIC at some point?!
Indeed....
It needs a loader writing that will relocate it to very high in memory.
This became a problem recently as I am using the Native ARM so I can have a very large (eg. 8MB) data buffer in BASIC.
My first solution was to set PAGE to &20000 and add this to my *KEY10 definition (which already includes *GO F12C to re-start BASIC without having to load the file again).
Now I have discovered that BASIC 1.35 appears to be relocatable, so it can be loaded anywhere. I've set its load/exec addresses to &1800000 so it's well above HIMEM. (I have to *GO it from 180012C however).
The first time I did it, I used an extra nought and loaded it at &180000000, which still worked, so the co-pro must be able to access at least 400MB of RAM if anyone wanted to increase the available RAM to the Native ARM co-pro, for instance...
A couple more quirks with the Native ARM if I may:
If there's a BASIC program loaded and you generate an error in immediate mode, the error message is appended with "at line <last line of BASIC>".
*. (but no other * command I've tried, including *CAT) always reports the ARM Tube help line.