Skip to content

version 10.4.1

Latest
Compare
Choose a tag to compare
@irmen irmen released this 20 Sep 18:49
· 39 commits to master since this release

This is a patch release that brings a bunch of optimizations and small tweaks.

(edit there's a known issue with certain asm routines such as floats.ceil() that generate invalid code. This has been fixed in the master branch already, but was found too late to be part of this release...)

Breaking Changes:

  • sprite.hide() behavior change: no longer moves sprite off-screen but changes the priority to disabled.
  • (subtle) the compile time const calculations have been tweaked a bit to avoid precision loss in some cases. It could mean that your code suddenly needs an extra typecast here and there (compiler will complain)

Other changes:

  • compiler option -nostrictbool has been removed. All code using bools now has to adhere to the stricter type checks (that have been the default for quite some time already)
  • subroutines do no longer have to end with a newline, so you can now write certain oneliners if you really want
  • graphics module on the X16 now uses the new rom R48 routines to draw circles and ovals
  • added new example program cx16/life.p8 (conway's game of life)
  • X16: added cx16.mouse_present() routine to check if a mouse is connected or not
  • X16: added emudbg.cpu_cycles() and emudbg.reset_cpu_cycles() which allow for some detailed performance counters when running on the X16 emulator
  • X16: added new rom R48 extapi definition cx16.EXTAPI_kbd_leds to control the keyboard leds
  • X16: added new gfx_lores module that contains heavily optimized graphics routines for 320*240 256color (8bpp) screen mode. (much faster than gfx2)
  • X16 and C64: added floats.time() routine to get the value of the jiffy clock as a single float value.
  • all the disc graphics routines (that draw filled circles) have been optimized to no longer draw some parts multiple times.
  • it's now actually possible to multi-assign multiple return status flags from asmsubs.
  • the compiler now actually uses @zp, @requirezp etc tags you put on subroutine parameters. Previously, those were silently ignored.
  • several code gen improvements
  • several bugfixes.

(donation: If you'd like to buy me a hot coffee or spicy pizza, to keep this project going, you can do so at https://ko-fi.com/irmen Thanks a lot!.)