SP4CEBAR 2024-01-30 14:27
I just found that 2^15-1 is the maximum size of an array. And contrary to what I thought for years, you can have as many arrays of this size as you like.
SP4CEBAR 2024-01-30 14:35
These arrays have the same number of variables as there are bytes in ROM
SP4CEBAR 2024-01-30 14:36
Which is twice as much as the working RAM
SP4CEBAR 2024-01-30 14:43
It takes 15 frames to FOR loop through a max-sized array and assign a value to each index
SP4CEBAR 2024-01-30 14:50
You can shave two frames off of that if, instead of using UBOUND(A,1) you use UBOUND(A) or a variable
SP4CEBAR 2024-01-30 14:54
A function call in this loop adds four frames, and then two frames for each parameter passed to the function
SP4CEBAR 2024-01-30 15:04
The FOR itself loop accounts for 6 frames, a value assignment to a variable for 6 frames too, and a value assignment to an array for 7 frames
Timo 2024-01-31 11:00
As the memory for variables (and the BASIC interpreter in general) is not inside the "virtual machine", I just set arbitrary limits to avoid explosions ;)
SP4CEBAR 2024-01-31 15:16
That makes perfect sense