v9.7
A big release this time
incompatible changes
- removed
diskio.set_drive()
, just setdiskio.drivenumber
directly sys.set_irq()
andsys.set_rasterirq()
no longer have a useKernal parameter! The irq handler routine must return a boolean instead in the A register, that determines if the system IRQ handler should run afterwards or not.palette
module: changed in the available preset routines.
new language features
- underscores are now allowed in numbers to group digits for improved readability of large numbers
- multiple variables can be declared on one line
ubyte x,y,z
- multiple assignments can be done in one go
x=y=z=calculate()
- new module directive
%encoding
to set the text encoding for the whole file - allow all character encodings for all compilation targets
- added
continue
statement to continue with the next loop iteration - allow Unicode letters in identifiers: things like
knäckebröd
andπ
are now valid identifiers. Addedfloats.π
constant. - allow constant expression intermediate values to be 32 bits integers to avoid overflow errors:
uword large = 320*240/8/8
is now okay.
specifics for the Commander X16
- new "master" irq handler see
cx16.enable_irq_handlers()
and associated subroutines, and "Commander X16 specific IRQ handling" in the manual - palette module got more accurate color space conversion
- improved the emudbg library
- added
bmx
library to read and write "BMX" bitmap images. See "showbmx" example - added some routines to the sprites module:
move
,movex
andmovey
to move the sprite by on offset - added more registers to verafx module
other things in general
- added various subroutines to the strings module:
hash
,isdigit
,isupper
,islower
,isletter
- added
pokef()
andpeekf()
for floating point numbers - added
floats.str_f()
to convert a float number to a string (without printing it) - many optimizations and bug fixes.
Full Changelog: v9.6...v9.7