[Coco] BASIC compiler for Rainbow IDE ? (Roger Taylor)

Roger Taylor operator at coco3.com
Thu May 15 13:32:34 EDT 2008


At 10:16 AM 5/15/2008, you wrote:
>Roger,
>
>I would love to see this available, even though I currently don't 
>use the Rainbow IDE (running Linux, for one, and too many other 
>projects in the way for another).
>
>I don't know much about how the BASIC interpretor works in the CoCo, 
>but if I understand how such things work in general, the system 
>takes each line, converts the commands into tokens (and probably 
>stores/looks up constants and variables and such into memory 
>locations and/or registers), then looks up those tokens in a lookup 
>table which points to the individual "commands" coded as assembler 
>routines, executes the routine, then returns to the interpretor, 
>where it continues doing the same thing until the end.


>If I have that correct - might it not be possible to build a 
>compiler that just takes out the interpretor steps, and strings 
>together all the other pieces as assembler, calling the pieces (in 
>ROM/RAM) the interpretor would normally call? You would end up with 
>a smaller executable (because you wouldn't compile the code the 
>calls point to, they are already machine code from the BASIC ROM), 
>although you might not end up with as much extra speed, like a full 
>compiler could possible create (ie, IIRC, routines such as the LINE 
>routine aren't very optimized in the ROM, for instance).


>Going this route, potentially you wouldn't have to code all of the 
>BASIC commands, because you would use what is already available in 
>the standard ROMs. In fact, you could do this as a "first pass", and 
>later revisions change over more of the code to you own code 
>(instead of calls to ROM routines, you would call your own custom 
>routines which are optimized).
>
>Does any of this make sense?

Yepper.




>  I guess all of this could be "out the window" if I am seriously 
> misinterpreting how the BASIC interpretor works (hah!). But I don't 
> think I am far off the mark, plus I know I have seen various 
> routines in the "Unravelled" ROM code listings to know it works 
> something like the above.
>
>Anyhow - as a fan and owner of CBASIC-3, which was a great BASIC 
>compiler for the CoCo 3 - and as a fan of BASICs in general - any 
>step in this direction would be an interesting one, however you 
>decide to pursue it.
>
>I look forward to your progress...
>
>-- Andrew L Ayers, Glendale, Arizona




As I mentioned earlier, what I'll being doing is turning a BASIC 
program into a stand-alone machine language program, not a tokenized 
program that needs an interpreter to run.  The idea is to not require 
any ROM calls but it would be silly to deny that ability if a user 
wanted to do something like EXEC 43304 for some reason.

You'll have to LOADM your compiled programs/games unless you build as 
a ROM(Pak) image.





More information about the Coco mailing list