RE: [stella] bBasic feature requests / 0.3a teaser

Subject: RE: [stella] bBasic feature requests / 0.3a teaser
From: "Fred Quimby" <c9r@xxxxxxxxxxx>
Date: Fri, 19 Aug 2005 07:29:57 -0400
>There is a way to define a sprite shape.  It's nice
>that sprites can be any size rather than just 8
>scanlines.  However, I don't see any way to animate
>sprites without simulating some kind of massive
>switch-case construct.  Could there be a way to define
>arbitrary shapes and then just point the sprite to the
>data?  That would mean the kernel would have to do
>indirect loading.

The kernel does indirect loading of sprite data.  You can use on..goto as a 
pretty effective switch statement without needing to simulate it, and the 
playerx: command will set the pointers.  I guess you are talking about 
putting the pointers into a table so you can access them in an array instead 
of using the lengthy on..goto.

>45 playfield:

There has been talk about this on AA, but for some reason it didn't make 
into my todo list.  I'm on the verge of releasing 0.3a now so I'll put it on 
the list for 0.4a or later.

All I need to do before I release 0.3a is integrate Bob Montgomery's 
multisprite kernel (been putting this for the last thing because I think 
it's gonna be tough.)  As a teaser, this is what has already been added and 
will be in the upcoming release:

8.8 and 4.4 fixed point types
  automatic conversion from one type to another in assignments
  addition/subtraction routines do automatic conversion if multiple types 
are used
  immediate decimal numbers allowed, either negative or positive
  8.8 types can be used wherever integers are used
  4.4 can't be used anywhere but can be added/subtracted/assigned to other 
data statement length keyword
remove trailing commas from data statements
set optimization for size/speed
full divide/multiply
  optional: multiply can produce a16-bit result or divide can produce 
bit operations - assign one bit to another
for-next loop bug fixed (foward loops by step >1 ended too soon)
"else" allowed in if-thens
Able to set the filename of variable alias file
set ROM size to 2k or 4k
smartbranching now accessed via set instead of rem
REFPX bug fixed
uses includes file for spcifying kernels and organizing modules
include additional modules with include command
pfread function (determine if pixel is off or on)
fixed bug in decreasing for-next loops
function declaration for user functions:
  functions can be in bB or asm
  optinally can be compiled separately and included as modules
score=score+ var now supports vars other than a-z
fixed bugs in if-thens for bit reads
longer variable names allowed (50 chars max.)
allow arrays as arguments in all functions (in user functions or built-in 
fns like pfpixel)
improved error handling/reporting:
   more descriptive errors
   line in file now echoed
const statement for defining constants
optimized code
fixed < and > comparisons, and added <= and >=
fixed collision checks
used lex to help with parsing/preprocessing
score=score-1 bug fixed
fixed bogus gosub/return errors
on...goto now allows labels instead of just linenumbers
allow negative numbers in code

Don't get too excited though, as all this stuff will probably introduces new 
bugs, as I haven't been able to test everything thoroughly...

Archives (includes files) at
Unsub & more at

Current Thread