[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