Skip to content

Releases: dmsc/fastbasic

Release 3.5 - String Update

08 Jun 03:37
Compare
Choose a tag to compare

Adds more strings capabilities to the language:

  • Strings indexing (sub-strings), via the bracket operator: A$[Position, Count]. The indexing can be applied to any string expression, including constant strings, so you can write expressions like X = Asc("123456"[i]).
  • String concatenation, with the =+ assignment operator: A$ =+ " appended".
  • String arrays. Note that string arrays don't use memory for the cells that are not assigned, so you can DIM a big arrays and fill only some positions.

Some enhancements to the cross-compiler:

  • Better error messages on some errors.
  • Optimizations to more constant expressions.

The new integer IDE is 8156 bytes and the floating-point IDE is 9441 bytes.

Release 3.4

23 Mar 00:49
Compare
Choose a tag to compare

Some bugfixes and optimizations:

  • Fixes floating-point STR$ function.
  • Makes the IDE process much larger source lines without "long line" errors.
  • Allows joining lines in the editor by pressing DELETE at the end of one line.
  • Many simplifications to the editor, making the IDE smaller.

Release 3.3

26 Feb 01:33
Compare
Choose a tag to compare

A few bugfixes and enhancements to the language:

  • Fixes abbreviation of SOUND to "S.", and adds a "SOUND" with only one parameter to silence one sound voice.
  • Adds STR$ function, with integer and floating-point arguments.

Fixes to the IDE:

  • Detect bytecode parsing overflows on very big and complex lines, the parser shows the las correctly parsed position in the line on error.
  • Turn off al sounds before returning to the editor.
  • More simple optimizations to keep the integer-IDE size under 8k.

Fixes to the cross-compiler:

  • Allows end-of-line characters inside strings, this fixes compilation of sources in ATASCII that have the $0A (CONTROL-J) character inside strings.

Release 3.2

23 Feb 03:03
Compare
Choose a tag to compare

Fixes minor bugs in the cross-compiler:

  • include linker script into release ZIPs,
  • fixes windows cross-compiler BAT files.

Release 3.1

22 Feb 03:46
Compare
Choose a tag to compare

This is a minor release with mostly bugfixes and optimizations:

Fixes in the IDE compiler:

  • Fixes parsing of long lines with many ":".

Changes in the cross-compiler:

  • Accept ATASCII end of lines in the cross-compiler.
  • Adds a new optimization pass to remove redundant I/O channel settings, producing shorter code for PRINT.

Fixes in the IDE:

  • Prompt to save file only if there are unsaved changes.
  • Allow to cancel New / Quit / Load commands with "ESC", to cancel only the saving of current file, use CONTROL-C.

Release 3

19 Feb 02:38
Compare
Choose a tag to compare

New release with many enhancements, mayor ones:

  • Added string comparison operators,
  • Interpreter is about 3% faster in FOR loops and other simple operations. SIEVE benchmark now takes 17 seconds.
  • The integer-only IDE is now less than 8KB, the floating point IDE is 9.2kB.
  • Cross compiler produces smaller executables by only including used parts of the runtime.

Minor improvements to the IDE and language:

  • The IDE now can edit files with lines of up to 255 bytes.
  • The IDE is a little faster to parse large files.
  • More abbreviations to the statements, The list of abbreviations is in the manual.

Mayor improvements to the cross-compiler and optimizer:

  • New scripts for the cross-compilers allows passing options to the compiler and linker, also writes label files for debugging.
  • Cross compiler gives better errors in many cases.
  • Optimizer for NEG/MUL/DIV/MOD and all bitwise operations.
  • Optimizer ignores comments and can span multiple lines.
  • Adds tail-call optimizations (replaces CALL/RET with JUMP and JUMP to RET with RET)

And many fixes:

  • Optimizer no longer ignores negative numbers,
  • Correct corner cases with MOVE / -MOVE, updates docs.
  • Cleanup all variables and arrays on run, fixes on memory-clearing function.
  • Fixes some cases of integer to floating point comparisons.
  • Fixes parsing of NOT with parenthesis and NOT/NOT.
  • Fixes errors on line numbers > 255 in the IDE.
  • Fixes some corner cases in the IDE editor with lines at top/bottom of screen.
  • Parsing of statements after a ':' ignored errors.

Release 2

31 Dec 04:44
Compare
Choose a tag to compare

A minor bugfix release:

  • Fixes a bug with floating-point comparisons
  • Adds more usage information to the cross-compiler.
  • Adds missing BW-DOS binary.
  • Fixes display corruption in the editor.
  • Allows comments after any statement.

First released version

18 Oct 16:59
Compare
Choose a tag to compare
  • Full integer and floating point support,
  • Integrated editor (IDE), in standard and integer only versions,
  • Cross compiler 100% compatible with native compiler (needs cc65).