Kappa>
Software>
Basalt
|
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.
INFO
, INFO$
and ARGS
give information about the program and its environment.
LIBRARY
loads a translated library to the dynamic heap and also tokenises text files.
LINE
and ORIGIN
give positions in the program and libraries. TRACE PROC
clears the variable cache so that names are reported reliably. TRACE ENDPROC
reports the ends of routines. REPORT
uses the Reporter module to put messages in a window.
RETURN$
, MOD$
and SWAP$
manipulate strings. PTY
gives information about a character. NUM$
and NUM
extend the string/number conversions. LET
can allocate string blocks from the dynamic heap which can be 'garbage collected' by CLEAR$
. INKEY
'types' a string into the keyboard buffer.
MATCH
, MATCH$
, SEARCH
, SEARCH$
, REPLACE
, COMPILE
, GROUP
, GROUPS
and GROUP$
are used with the RegEx module.
FIELDS$
returns fields from a string treated as a demarked record, such as a file path. FIELDS
gives the number of fields.
BIT
and BITS
change individual bits of an integer.
DIM
manipulates dynamic blocks and arrays. EXT
gives the size of memory claimed from the heap. SORT
uses the Armsort module to sort arrays. SPRITES
and TOKENS
deal with sprite areas and messages files. BLOCK
provides a 256-byte block for Wimp operations with simple access and bounds checking on its use.
FN
and PROC
call named user-defined routines.
CLOSE
# does a safe close of a file handle.
ERROR
enhances the use of errors and makes nested error handling feasible. EXIT
breaks out of a loop.
SYS
handles system variables. VDU
gives the values of VDU variables.QUIT
provides an experimental return code.
TIME
sets and returns a program timer based on the monotonic timer. SECOND
, MINUTE
, HOUR
, DAY
, MONTH
, YEAR
, DAY$
, MONTH$
, NOW
, UTC
, DOW
, DOY
, WEEK
, SECONDS
manipulate UTC time values.
EVAL
assigns 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.
Download:
Basalt 0.98b beta; zipfile;
Basalt manual zipfile.
Toolbox examples zipfile.