version 10.4.2
This release fixes some bugs and improves some things, and adds some new library modules and exampoles, but no major language changes.
breaking changes
- removed the broken
verafx.mult
routine (verafx doesn't support unsigned multiplications. The muls routine is still there, that one works fine) - added
verafx.mult16
for just the 16 bit unsigned results that worked fine. - string assignments got somewhat stricter to avoid problematic cases. If your code doesn't compile anymore, you should use
string.copy
explicitly now to set a new value to a string.
other changes
- fixed assembly optimization bug that removed a RTS sometimes. This broke
floats.ceil
and some other routines. - fixed "raw" output to also properly initialize variables.
- fixed C64 floating point sign problem
- added experimental
compression
library, it provides RLE compression and decompression routines. (the RLE algorithm supported is Byterun1/Packbits, which is used in Amiga IFF ILBM images among others) - cx16: added
audio
module with subroutines to simplify calling the Audio routines in the kernal. The 'audioroutines' example has been updated to use this. - cx16: kernal bank 0 is once again activated at startup to speed up kernal calls
- cx16: added
callfar2
builtin function that allows you to set A,X,Y and Carry parameters instead of only AY. - cx16: added color fade routines to the
palette
module - cx16: added a port of the c64's "balloonflight" example. Added 'starszoom' example.
- added
sys.sizeof_byte
etc etc constants that are the memory sizes of the given datatypes - many code optimizations
- several error message improvements.
- documentation improvements.
- added 'fractal-tree' example.
Thanks to the people in the Prog8 channel on the X16 discord for their contributions.