Zxbasic

Latest version: v1.17.3

Safety actively analyzes 714792 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 13 of 13

1.1.4

===
+ The peephole optimizer has been enabled and seems to be working
reasonably well.
+ ! When a DIV BY ZERO error occurs with floating point numbers the program
crashes and resets the computer. This behaviour has been fixed
and now returns 0 value and sets the error code 6 (Number Too big)
in the `ERR_NR` system variable.
+ Refactorization of both the assembler and compiler so they now
shared the OPTIONS storage in a better way (still to be finished). This
makes easier to program future compiler options. Now also `--debug`
flag is additive, showing more verbosity the more it is used.
+ Memory optimization: `PRINT` routine (which is about 1K size) is not
included if not USED.

1.1.2

===
+ ! Fixed a bug in negative constant integer typecasting (Thanks to LCD
at WoS for reporting it! `;-)`). It was causing decremental `FOR`..`NEXT`
to fail.
+ ! Scientific notation numbers (e.g. `2e10`) were not correctly parsed.
Fixed. Thanks again to LCD. ;-)
+ Added `TAB` compatibility for the `PRINT` command (both as a command
and as a `CHR$` control character).
+ `PRINT` code optimized for size, maintaining speed.

1.1.1

===
+ ! Fixed a bug in `CONTINUE DO` which was not being correctly compiled
+ `PRINT` routines were included even when neither PRINT nor
drawing primitives were used. Optimized.
+ ! Fixed a lot of syntax error checks with array operations.
+ ! Fixed array dimension checking
+ Expanded syntax: Direct array assignation `a = b` (being a and b
arrays of the same type an size)
+ ! Fixes an error exception on syntax error for array subscripting.
+ Changed alloc functions to match names of that of FreeBASIC ones.
+ Using a wrong sigil in array declaration is now forbidden.
+ Better sigils (suffixes) types managements at `DIM` declarations.
+ Lot of internal source code refactoring
+ `DIM r AT a(k0, k1, ...)` is allowed (being k0, k1, ... constants)
+! Fixed a bug for local variables and parameters when the offset is
very large (> 128)
+ Enabled the `--sinclair` cmdline flag for automatic sinclair libraries inclusion
+ Added `SetAttr()` routine which changes the attribute of
screen coordinate at (I, J) with the given color attr value.
+ ! Fixed buggy `modu16` and `modi16` IC implementation that was not compiling
correctly
+ Output asm code is now slightly optimized (for speed an memory)
+ ! Fixed a bug in integer parameters (16 and 32 bits)
+ ! Fixed a compiler crash when using arrays of Fixed Point numbers

1.1.0

===
* SCREEN$ coordinated were swapped. Fixed.
* DIM .. AT was not correctly working with local vars nor params. Fixed.
+ Added BOLD "attribute". PRINT BOLD 1; "Hello"
+ Added ITALIC "attribute". PRINT ITALIC 1; "Hello"
+ Added malloc, free and realloc functions to work with the heap
* Some code rearrangement
* The IFDEF directive was not working in the preprocessor. Fixed.

1.0.9

===
+ Fixed a bug which could crash the program if no memory
+ Added better error handling for parameter declaration
+ Added `UCase` function
+ Added `Lcase` and fixed ucase to be case insensitive
+ Added `MultiKeys` function (similar to that of FreeBASIC) so
multiple keys can be checked at once
+ Added `GetKeyScanCodes`
+ Added HEX and HEX16 functions to return HEXadecimal
string representation of numbers
+ Fixed a bug when `a$(n TO)` was specified
+ ! Optimization: Remove unnecessary jumps at function returns.
+ ! `store16` IC instruction now generates a more efficient backend (Z80 ASM) code.
+ Added alias for arrays. Now you can declare:

DIM a(10)
DIM c at a

+ ! Better code generation for `store32` and `storef` backend
+ ! Optimized constant array assignation as a direct store.
+ ! Added constant array Read access optimizations

Page 13 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.