Memory is claimed from a dynamic heap maintained above HIMEM.
Extra variable types are implemented using float variables. This is only for long strings (strands) at the moment.
There is now extensive support for the Toolbox, but too much for me to put details here. Please download the StrongHelp manual and the examples.
Here are some features, but this list is not up to date now.
ARGSgive information about the program and its environment.
LIBRARYloads a translated library to the dynamic heap and also tokenises text files.
ORIGINgive positions in the program and libraries.
TRACE PROCclears the variable cache so that names are reported reliably.
TRACE ENDPROCreports the ends of routines.
REPORTuses the Reporter module to put messages in a window.
PTYgives information about a character.
NUMextend the string/number conversions.
LETcan allocate string blocks from the dynamic heap which can be 'garbage collected' by
INKEY'types' a string into the keyboard buffer.
GROUP$are used with the RegEx module.
FIELDS$returns fields from a string treated as a demarked record, such as a file path.
FIELDSgives the number of fields.
BITSchange individual bits of an integer.
DIMmanipulates dynamic blocks and arrays.
EXTgives the size of memory claimed from the heap.
SORTuses the Armsort module to sort arrays.
TOKENSdeal with sprite areas and messages files.
BLOCKprovides a 256-byte block for Wimp operations with simple access and bounds checking on its use.
PROCcall named user-defined routines.
CLOSE# does a safe close of a file handle.
ERRORenhances the use of errors and makes nested error handling feasible.
EXITbreaks out of a loop.
SYShandles system variables.
VDUgives the values of VDU variables.
QUITprovides an experimental return code.
TIMEsets and returns a program timer based on the monotonic timer.
SECONDSmanipulate UTC time values.
EVALassigns to a named variable.
The full details can only be found in the StrongHelp manual, which can be downloaded separately.
I am still experimenting with Basalt so a few keywords may yet change and I would very much like feedback.
In the future I plan to have long strings, structures and objects, with a number of other esoteric types.
I introduced a bug in the heap code while tring to make it more efficient, which will principally affect DIM. Version 0.98b should correct this.
Basalt 0.98b beta; zipfile;
Basalt manual zipfile.
Toolbox examples zipfile.