Skip to content

Releases: llvm-mos/llvm-mos-sdk

SDK v20.2.0

30 Sep 17:35
80d3c4b
Compare
Choose a tag to compare

New targets

Optimizations

Bug fixes

SDK v20.1.0

19 Sep 05:09
5138223
Compare
Choose a tag to compare

New features

  • #365 - commodore - Add LOAD flag enum, including specific values for the cx16 - @mlund
  • #367 - cx16 - Add missing emulator registers - @mlund
  • #372 - cx16 - Add JSRFAR 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

  • #373 - commodore- Implement KERNAL LOAD function using inline assembly - @mlund

Bug fixes

  • #366 - cx16 - Correct leaf attribute placement - @mlund

SDK v20.0.0

04 Sep 15:42
2e15e78
Compare
Choose a tag to compare

Breaking changes

  • #357 - cx16 - Improve interface of cx16_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 in cx16.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 like fopen(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

19 Aug 21:37
Compare
Choose a tag to compare

Bug fixes

  • #351 - Fix memory leak on internal error in fopen - @pfusik
  • #352 - Fix null dereference on internal error in tmpfile - @pfusik

Examples

  • #350 - Added Commander X16 C++ plasma example - @mlund

SDK v19.1.0

31 Jul 05:26
ae3a96f
Compare
Choose a tag to compare

New features

  • #347 - [mega65] - Add DMA hardware registers and examples - @mlund

Optimizations

SDK v19.0.0

11 Jul 04:40
Compare
Choose a tag to compare

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

  • cx16 - 8b32a54 - Add DEVNUM to cx16.inc to fix file routine linking
  • cx16 - 255502c - Don't rts from file I/O init/fini snippets to prevent early return

SDK v18.0.0

25 Jun 16:21
d4f9574
Compare
Choose a tag to compare

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.

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

20 Jun 16:46
d107f88
Compare
Choose a tag to compare

Bug fixes

Optimizations

SDK v17.1.1

11 Jun 20:16
Compare
Choose a tag to compare

Bug fixes

  • 63e13de - Fix minimal stdio ungetc (and thus scanf)
    • The ungetc buffer was accidentally given type bool, so the characters that scanf would ungetc would be forced to 1.

SDK v17.1.0

03 Jun 14:44
Compare
Choose a tag to compare

New features

  • The SDK completes the first pass of porting cc65's stdio capabilities. It's not very well tested, so expect the unexpected. (I've given the commodore and atari ports some smoke testing, but not the rp6502. That is likely to work as-is though, since the cc65 POSIX stuff was already added to llvm-mos previously.)
    • Notable exception: atari's lseek has not yet been ported, since it only works on Sparta DOS X. See #333
  • ELF POSIX utility script to generate atari800 label files (atari800lbl)

Bug fixes

  • #332 - Exit to Atari DOS via JMP (DOSVEC). The DUP clobber detection isn't robust in Atari DOS, so exiting via RTS may cause a crash. We could have fixed this by re-ordering the XEX file chunks, but reloading the DUP effects a JMP (DOSVEC) anyway, so may as well. - @cwedgwood
  • Add missing devnum symbol to non-c64 commodore targets' POSIX file I/O layers. This fixes stdio on these targets.