v1.0.10 (10/17/2023) :
- Bug fix : Already defined local functions in blocks
- Bug fix : Forbid complex 16 bits operations with 8 bits shifts
- Bug fix : corrected (short >> 8) >> 4
- Bug fix : corrected 16 bits +X, +Y
v1.0.9 (10/09/2023) :
- Removed a debug println
v1.0.8 (10/08/2023) :
- Fixed a bug on win32 with CR/LF included asm files
v1.0.7 (10/05/2023) :
- Fixed bankswtiching issue with SuperGames
v1.0.6 (10/02/2023) :
- Added bank header to asm files
v1.0.5 (09/25/2023) :
- Corrected a bug wrt parameter passing (and comma operator)
v1.0.4 (09/18/2023) :
- Corrected a bug wrt whitespace management in grammar (charz = 1 was accepted as a z variable declaration)
v1.0.3 (09/04/2023) :
- Corrected a bug wrt to double use of Y register when assigning to Y while using Y as an index
v1.0.2 (08/28/2023) :
- Corrected a small bug in assemble.rs in optimizer, the sometimes results in a Rust panic during compilation
v1.0.1 (08/14/2023) :
- Corrected bug wrt cc2600 compatibility with v1.0.0
v1.0.0 (07/13/2023) :
- Accept *ptr with ptr not const (allows char* params)
- Generate performance warning for *ptr ("hidden" Y indirect access)
- Added W (warnings) compile flag
- Corrected ptr[0] error
v0.9.2 (07/12/2023) :
- Corrected bug with variables beginning with char or int
v0.9.1 (07/12/2023) :
- Added sizeof(type) support
- Added preliminary support for function parameters
- Added support for bytes hint in asm statment
v0.9.0 (07/09/2023) :
- Added support for local variables
- Corrected a small bug wrt ++/-- in subscript of 16-bits instructions
- Optimized out ORA #0 instructions
- Added support for references (pointers) in arrays of char definition (not just immediate values)
v0.8.1 (06/28/2023) :
- Small bug correction for char * pointers references
- Added optimization : optimized TXA/TAX & TAY/TYA pairs
- Corrected a bug with line numbering with included assembler code
- Added comparison between Acc & Tmp
v0.8.0 (06/19/2023) :
- Better integration of assembler code (with codesize comment)
- Corrected a big bug with assembler code inclusion (preprocessing of strings)
v0.7.4 (06/14/2023) :
- Added recursion in preprocessor
- Changed regex of #define to cope with () expressions (up to 3 levels of depth)
- Corrected a bug in carry propagartion error
- Experimental: now accepts any subscript expression (not only X and Y)
v0.7.3 (06/12/2023) :
- Detect carry propagation errors in 16 bits arithmetics code
- Implmented function return in accumulator
- Added support for & 0xff to extract lower byte of short
v0.7.2 (06/08/2023) :
- Refactoring: Split huge generate.rs file into multiple source files
- Added optimized implementation of 16 bits increment and decrement
- Added optimization : removed first LDA followed by a second LDA
- Added optimization : removed LDA followed by STA with same mnemonic
- Bug correction: avoided panic when inline function is not defined before use
- Bug correction: removed optimization around JSR
v0.7.1 (06/05/2023) :
- Bug correction : big bug in switch/case...
- Bug correction : tmp was sometimes not released during 16-bits compare
- Bug correction : registers out of zeropage are set to ramchip memory (instead of zeropage)
- Corrected a bug: return Y didn't work
v0.7.0 (06/02/2023) :
- Changed interface to actually compute call tree (for linker)
v0.6.0 (05/28/2023) :
- Mark functions actually in use (for linker)
- Implemented 16-bis comparisons (partial)
- Corrected a bug in 16-bits negation
- Added function return values (in cctmp)
- Added NMI interrupt routine support
v0.5.3 (5/25/2023) :
- Moved processing of literal strings to preprocessor, in order to avoid troubles with comments inside strings
v0.5.2 (5/22/2023) :
- Corrected a bug with mutiple string literals
- Added missing cases for conditions on X or Y
v0.5.1 (5/15/2023) :
- Added support for function macros without parameters
- Solved an issue with for statement
- Fixed ++/-- with 16 bits operations
- Fixed -- prefix operator
- Fixed sizeof operator
- Added support for ternary expressions in declarations
- Added quoted character support
- Corrected a bug with carry flag
- Added better support for immediate expression results
- Added int type (short int)
v0.5.0 (4/29/2023) :
- Added -g debug flag
v0.4.1 (4/24/2023) :
- Corrected a bug with splices processing under windows
v0.4.0 (4/24/2023) :
- Changed out.a default output file name to classical a.out
- Added -S option for assembler output only
- Enhanced error reporting in case of syntax error in array definitions
v0.3.5 (4/16/2023) :
- Shortened included C comments
- Even better optimization for branching (added carry_flag_ok flag)
v0.3.4 (4/13/2023) :
- Added better optimization for branching (to be fully tested)
- Added better support for macros with parameters (accepts spaces after comma, substitutes words only)
v0.3.3 (4/6/2023) :
- Removed strange MemoryOnChip flag in compile_var_decl for constants out of zeropage...
- Added SuperGame bankswitching (for Atari 7800)
- Added a default 3 bytes for inline asm (for code size estimation)
v0.3.2 (4/4/2023) :
- Added screencode support for constant strings declarations
- Added support for comma operator
v0.3.1 (4/3/2023) :
- Added function size_bytes() to generated code
- Checked scattering validity for atari 7800 (8 or 16 lines)
v0.3.0 (4/2/2023) :
- Added "atari2600" and "atari7800" cargo features
- Corrected missing acc in use flags
- Corrected bug with respect to definition of multiple arrays on the same line