@dmsc dmsc released this Oct 27, 2018 · 46 commits to master since this release

Assets 8

A minor update, with the following additions:

  • Adds the CHR$ function.
  • Adds the MSET statement, this fills memory with the given value.
  • Adds CLS statement, clears the screen.
  • There is better error reporting in the cross-compiler.

Also, there are more optimizations, the parser is about 20% faster in the Atari and some bugs were fixed in the cross-compiler.

After all the additions, the integer IDE is only 30 bytes bigger at 8186 bytes and the floating-point IDE is 12 bytes bigger at 9453 bytes.

@dmsc dmsc released this Jun 8, 2018 · 71 commits to master since this release

Assets 6

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.

@dmsc dmsc released this Mar 23, 2018 · 89 commits to master since this release

Assets 6

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.

@dmsc dmsc released this Feb 26, 2018 · 115 commits to master since this release

Assets 6

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.

@dmsc dmsc released this Feb 23, 2018 · 125 commits to master since this release

Assets 6

Fixes minor bugs in the cross-compiler:

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

@dmsc dmsc released this Feb 22, 2018 · 129 commits to master since this release

Assets 7

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.

@dmsc dmsc released this Feb 19, 2018 · 146 commits to master since this release

Assets 6

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.

@dmsc dmsc released this Dec 31, 2017 · 234 commits to master since this release

Assets 6

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.

@dmsc dmsc released this Oct 18, 2017 · 245 commits to master since this release

Assets 5
  • Full integer and floating point support,
  • Integrated editor (IDE), in standard and integer only versions,
  • Cross compiler 100% compatible with native compiler (needs cc65).