Releases: llvm-mos/llvm-mos-sdk
Releases · llvm-mos/llvm-mos-sdk
SDK v20.2.1
Bug fixes
- llvm-mos/llvm-mos#479 - Fixed linker crash when constant subtractions less than -128 are folded into zero page indexed addressing
- 16-bit indexed addressing is used instead
- This release also allows folding subtractions <= -128 into zero page indexed addressing, which the linker would previously disallow
- #378 - Fix odd behavior of
atari
minimalgetchar
by buffering a full lineatari
'sgetchar
requires a line to be read at a time without any intervening writes to the screen to operate correctly, but typical C practice does not expect interleavingputchar
andgetchar
to interrupt the action ofgetchar
.
SDK v20.2.0
New targets
- #375 -
geos-cbm
- Create applications for Commodore GEOS! - @Dirk-Schnorpfeil
Optimizations
- llvm-mos/llvm-mos#474 - Follow
TAX
andTAY
when optimizing immediate loads - @pfusik
Bug fixes
- llvm-mos/llvm-mos#476 - Allow the project to compile on Apple Silicon again - @pr1metine
- #376 - Fix
strpbrk
(and thusstrtok
) - @ivop
SDK v20.1.0
New features
- #365 -
commodore
- AddLOAD
flag enum, including specific values for thecx16
- @mlund - #367 -
cx16
- Add missing emulator registers - @mlund - #372 -
cx16
- AddJSRFAR
macro - @mlund - #368 -
cx16
- Add ROM bank label enum - @mlund - #369 -
cx16
- Split wrapper routines into dedicated sections for linker garbage collection - @mlund - #370 -
cx16
- Add VERA PSG register data structure (__vera_psg
) - @mlund
Optimizations
Bug fixes
SDK v20.0.0
Breaking changes
- #357 -
cx16
- Improve interface ofcx16_k_joystick_get
- @mlund freopen(NULL, ...)
now fails unconditionally - @pfusik- This is simpler than attempting to reopen the file, and the prior implementation was buggy. Failing is allowed by the C standard, and it's "good enough for Windows CRT".
Bug fixes
- #357 -
cx16
- Fix joystick bitmasking bugs incx16.h
- @mlund - #354 - Fix double free in
freopen
on OOM - @pfusik - Fix memory errors on
freopen
failure - @pfusik - #362 - Prevent
fopen(filename, "a")
from truncating file likefopen(filename, "w")
- @pfusik - #364 - Fix use after free in
_stdio_closeall
(file closure at program end) - @pfusik
Optimizations
- Various code size and performance optimizations for
freopen
- @pfusik
SDK v19.1.1
SDK v19.1.0
New features
Optimizations
- llvm-mos/llvm-mos#471 - Prevent debug instructions from preventing late copy optimization - @Domkeykong
SDK v19.0.0
Breaking changes
cx16
- 2850b2a - Exit by return to BASIC on Commander X16 (rather than the infinite loop of other Commodore targets)- This target's BASIC functions somewhat more like a shell than the other Commodore family targets, and along those lines, it manages to keep most of the zero page available for user programs. Accordingly, C can be seen to operate within, rather than replace, the BASIC environment.
neo6502
- #345 - Output.neo
file format instead of raw binary - @bcampbell
Bug fixes
SDK v18.0.0
Breaking changes
- #342 -
commodore
family targets now infinitely loop on exit- This fixes a day-one SDK bug with the
commodore
targets. They freely clobber BASIC ZP, but they then return to BASIC. This is arguably a bug fix, but I'm marking it as a breaking change due to how significantly the behavior changes. - See #341.
- This fixes a day-one SDK bug with the
New features
- From upstream, C23's
#embed
is now supported. This allows turning arbitrary binary files into comma-separated lists of numbers in the preprocessor, for direct inclusion in character arrays.
SDK v17.1.2
SDK v17.1.1
Bug fixes
- 63e13de - Fix minimal
stdio
ungetc
(and thusscanf
)- The
ungetc
buffer was accidentally given typebool
, so the characters thatscanf
wouldungetc
would be forced to 1.
- The