|
|
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.