Comments

Using an LMM macro jump vector table will simplify things and allow you to use
the same kernel regardless of where the LMM macros are implemented.
The downside is using longs for the table and slightly delayed execution.

Having seen on a board in front of me the awesome power of LMM with Catalina C (programs hundreds of kilobytes long), I'm really excited about similar code for Basic.

A few months ago I was pretty chuffed when I compiled a C and a Basic program on the Zicog, and after compilation both returned a "40kb free" message. More than the memory on the propeller. Then RossH goes and blows that out of the water with ten times that. And now PropBasic is heading the same way. I am *very* impressed.

The code looks great. Speed is not a big issue ('tis now as it ever was, use assembly for speed), but the ability to start writing a program and to keep writing and keep writing and never worry about running out of space, well that is just awesome.

@Dr_Acula,· PropBASIC LMM is not virtual memory. It runs from HUB ram, so programs are still limited to 32K. But that is a far cry from 2K. Also lots of room for variables with LMM.

· Speed is about 1/5 of native code. I think that is a fair trade-off. Code with lots of calls and jumps will suffer most, but will still be·blazing compared to spin.

· You will be able to specify LMM for the main code, and for each TASK. So some tasks can be native (for video drivers and stuff) and some can be LMM within the same program.

· Actually for small TASKs it takes less space to make them native. I think very few TASKs will be LMM, but I wanted to have the option.

· I ran into an issue using VAR arrays. I use MOVS and MOVD to do indexing, well that doesn't work in LMM. So I had to make two more LMM routines to handle it.· I'm going through the compiler and making the changes to handle LMM. I may post it for some testing, but NOT as the offical beta version.

· Once you get your head around it, LMM isn't that hard. I hope the LMM code generated will provide assistance to PropBASIC users who want to do LMM in assembly.