high level programming language and compiler targeting 6502 machines such as the C-64 and CommanderX16
Mainly a release with some important bugfixes. It is advised to upgrade.
unroll
statement now correctly accepts (contant) expressions rather than just a fixed integerThis is a pretty big release since the previous version, with the focus on 2 things: getting rid of the software evaluation stack, and better code generation for nested expressions.
The software evaluation stack has been removed from the compiler. This means a page of memory is no longer required for it, and the X register has been freed for general purpose use and doesn't have to be saved/restored all the time. Programs should be a bit smaller due to this, and run a bit faster as well.
Other changes:
Bug fix release to correct problems that crept into 9.1:
when
conditionswhen
conditionscx16.reset_system()
to use Reset SMC sequence instead of hard reset.cx16.vaddr_autoincr()
, cx16.vaddr_autodecr()
, cx16.vaddr_clone()
gfx2.text()
: fixed per-pixel positioning, optimized text drawinglsb()
issue when assigning back to uword typeMajor new release with some breaking changes over version 8, see below.
Some guidance on how to upgrade your programs from version 8 is here https://prog8.readthedocs.io/en/latest/upgrading8.html
@split
storage class for (u)word arrays to store them as split lsb/msb arrays which is more efficient (but doesn’t yet support all array operations)@split
Bugfix release.
Mainly code generation optimizations to avoid the slow stack-based expression evaluation code even more. Some programs are now significantly smaller and faster than before.