Here to announce a new version of beebasm, over four years after v1.09. This one contains a significant number of additions and bug fixes that have been tested by the community for the last month. Thank you to those to worked on improvements or helped test.
The pre-compiled Windows executable is available from the beebasm GitHub releases page https://github.com/stardot/beebasm/releases/tag/v1.10
Changelog for v1.10:
- (Potentially breaking) Random number generator now uses 32-bit ints.
- Documented "$" and "%" as literal prefixes (thanks to cardboardguru76 forpointing this out).
- Fixed silently treating label references starting with "." as 0 (thanks to Charles Reilly for this fix).
- Allowed "-h" and "-help" options to see help.
- Fixed tokenisation of BASIC pseudo-variables in some cases. (Thanks to Richard Russell advice on this.)
- Fixed incorrect line number for errors inside macros with blank lines inside them.
- Fixed incorrect line numbers from PUTBASIC in some cases.
- Fixed crashes in PUTBASIC caused by edge cases in end-of-file handling.
- Added FILELINE$ and CALLSTACK$ (thanks to tricky for this)
- Added -cycle, -dd and -labels options (thanks to tricky for these)
- Added CMake support and man page (thanks to Dave Lambley)
- Added string values and VAL, EVAL, STR$, LEN, CHR$, ASC, MID$,
- LEFT$, RIGHT$, STRING$, LOWER$, UPPER$, ASM. (Charles Reilly with thanks to Steven Flintham.)
- Support underscore separators in numeric literals. C++'s built-in parsing was used previously so beebasm's numeric syntax varied between compilers and platforms; this is fixed.
- Improved literal exponent parsing.
- Error on out of range integer conversions.