Zxbasic

Latest version: v1.17.1.post1

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

Scan your dependencies

Page 11 of 13

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.

1.1.9

===
+ ! Fixed a bug for constant string slicing, so
`"0909"(A TO B)` now works. Thanks to Britlion.
+ ! Expanded grammar to allow something like `"0909"(f)`
or `"0909"()` which are also allowed in **Sinclair Basic**. Thanks to Britlion.
+ ! Using expressions like `"0909"(f)` (like above) might corrupt the
HEAP memory, leading to a program crash. Fixed. Thanks, Britlion :-)
+ ! Fixed a bug in typecast from signed integers to float which
sometimes overflowed leading to wrong results.

Page 11 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.