Zx

Latest version: v0.11.0

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

Scan your dependencies

Page 11 of 13

1.2.6

===
+ Bitwise `bAND`, `bOR`, `bXOR`, `bNOT` finally added for 8, 16 and 32 bits
+ The assembler now supports `ALIGN <integer>` directive
+ Added support for logical `XOR` (`IF A XOR B THEN`...)
+ Added support for checking out of memory in runtime (`--debug-memory`)
+ Added support for checking BREAK in runtime (`--enable-break`)
+ Added support for Subscript Out of Range in runtime (`--debug-array`)
+ Added support for `--strict-boolean` (0 or 1) values
+ Added `print64()` by Britlion library routine, and Mojon Twins FourSpriter version (more to come).
+ Fixed a bug in `RANDOMIZE` which wasn't updating the seed correctly.
+ Fixed a pragma typo in `POS.bas` library which lead to errors.
+ ! Fixed a bug in `STR$`, `VAL`, `CHR$` and `CODE` which could crash the program.
+ ! Fixed a bug in string comparison
+ ! Fixed 2 more bugs in the peephole optimizer (`-O3`) which could crash the program.
+ ! Fixed some syntax bugs. `PI()` and `RND()` are now allowed.<br />
Calling functions with no parenthesis is allowed too.
+ ! Fixed a parser bug in which empty `WHILE` / `DO` .. `LOOP` loops crashed the compiler. Fixed.
+ ! Array access has been optimized for speed. Now faster.
+ ! For loops have been slightly optimized.
+ ! MEM_FREE heap routine has been slightly optimized.
+ The `print*` intermediate code instructions have been removed and converted to routines.
+ Lot of code refactoring, and moved to the standard trunk/tag/branches SVN repository scheme.
+ String expressions are now standardized (like any other data type).
+ TDD: Begin to create tests cases for the compiler.

1.2.5

===

Assembler:
+ ! Under some pathological cases, compiling or assembling will last for exponential time (minutes to hours!),
due to a possible bug/misuse of a regular expression. Fixed. Now it takes linear time.
+ Added support for `IXh`, `IXl`, `IYh`, `IYl` registers.
+ Added support for `DEFS` macro. Now `DEFS n, B` creates a block of n times byte B
+ ! Instructions `LD A, R` and `LD R, A` where also missing. Fixed.

Compiler
+ ! The optimizer -O2 was broken, and contained 3 bugs. Fixed.
+ ! The optimizer -O3 was broken, and contained more than 15 bugs. It's been almost completely rewritten.<br />
Fixed. Now it even tries to optimize ASM users code.
+ ! The operator was broken under some circumstances (array accesses and variables). Fixed.
+ ! The memory heap was also broken almost always when using any string in the program (INKEY$, STR$, CHR$, $ variables). Fixed.
+ ! Signed LONG division was wrong for positive divisors. Fixed.
+ ! Byte comparison operators < > = >= <= were sometimes bugged. Fixed.
+ ! using MOD with Fixed type was unsupported. Fixed. Now MOD used Fixed type.
+ ! INT(Fixed) was wrong. Fixed.
! Temporary attributes BOLD and ITALIC were disabled. Now they are back.

1.2.4

===
* Added `SAVE`/`LOAD`/`VERIFY` `CODE`/`SCREEN$` capabilities (uses ROM routines)
* Fixed a bug in ` `operand which produced a memory leak

1.2.3

===
* ! `CHR$` and `STR$` might not use the HEAP without initializing
it first, leading to memory corruption. Fixed. Thanks to Britlion.
* HEAP size can now be set with a command line parameter.

1.2.2

===
* ! `DIM` with array base was buggy. Fixed.
* ! `INK 8` and `PAPER 8` were being ignored. Now they work.

1.2.0

===
* ! `DIM f% = <value>` was not working. Now it does.
* ! HEAP memory init routine slightly improved.
Also removed a possible bug of memory corruption reported
by Britlion. (Thanks)
* New memory scheme: Now variables and heap zone are moved
to the end of the memory (high area). This should make
easier to implement data bank switching on 128K machines.
It also allows to `SAVE` all data memory in a single block.
This is a feature to be implemented in near-future releases.
* ! Undeclared local variables caused a compiler error.
They should just compile (like global ones do).
* ! String variables used in string slices where sometimes
optimized (ignored).
* ! `ELSEIF` constructions were not being compiled correctly.

Page 11 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.