Page 11 of 62
SBasic User's Manual SBasic Version 2.7 Page 11
Printed: December 5, 1999
Features
SB is a free-form Basic that supports enough control structures, such
as IF-ELSE-ENDIF, that line numbers should not be necessary. It does
not expect nor support line numbers; if you use them, you will get a
syntax error back.
SB does not support GOTO.
SB generates code that uses the target's largest commonly available
accumulator(s). This means that for the 68hc11 and 68hc12, SB uses
16-bit variables and 16-bit math operations.
SB compiles down to fairly concise assembly language. It does no
optimization from source line to source line. That is, it does not
maintain a history of register usage and attempt to optimize out
redundant operations. Even so, the generated code is quite compact,
and will run fast enough to accomodate most projects.
For those projects that demand higher performance, SB allows you to
embed assembly language source directly in your program. These
assembly statements are passed intact to the target assembler.
SB is case-insensitive with regard to statements, labels, variables,
and constants. The variable FOO may also be referred to as foo, Foo
or fOo.
SB has built-in maximums for several compilation elements such as
variables and labels. These limits are:
Depth of FOR-NEXT nesting is 25. No one should EVER hit this limit.
Compilation parsing stack is limited to 60 atoms. This is an internal
limit of the compiler that determines how complex of a statement the
compiler can parse. Again, no one should ever hit this limit.
Compilation data stack is limited to 40 cells. This should be
sufficient for all programs.
Maximum number of variables that a program can declare is 400. Note
that an array, no matter how large, counts as one variable.
Maximum number of constants is 400. Maximum number of labels is 500.
SB supports the following Basic functions and operators:
rem starts an SBasic comment
' (single quote) starts an SBasic comment
include includes other SBasic source files
org changes location of generated code
data stores 16-bit values in a ROM table
datab stores 8-bit values in a ROM table