This sounds like a very ambitious project and I can't wait to see a proof
of concept. Given how limited Atari 2600 Basic Programming was, I wonder
just how much more can be done with the aid of cross-compiling on a machine
1000 times as fast as the VCS.
My first suggestion here is to provide a mechanism for variable reuse.
This could be done either through overlays (being able to manually assign a
variable's address storage ala equates) or the implementation of
local/global variables where the compiler automatically allocates and
deallocates RAM when necessary.
This is really going to be a key feature in order to do anything productive...
Also, for the graphics datatype, you should allow for 0 with the period,
not just the space. It's hard to visualize a bit with a space, especially
when you are using a nonproportional font.
I would also try to allow for:
ADR() (to retrieve the address of a variable or register)
USR() (machine language subroutines)
PEEK()
POKE()
I would also try to provide an abstraction layer for controller and console
routines, so you can set up automatic debouncing.
You may also want to implement simple automatic boundary
checking/wraparound for the sprites.
I also think that in the long run it might be better to enforce strict
timings on VBLANK processing. I don't think anybody is going to want to
play a 2600 game that stutters because the processing is constantly
spanning frames. At least it needs to inform the user when there is likely
to be too much calculation going on during VBLANK.
I also see no reason not to support passing arguments to functions. These
would wind up becoming temp variables that survive only during the calling
and called functions.
----------------------------------------------------------------------------------------------
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/