v11.0 (2022-12-06)
-
New features
- Add usbdrvce library for interfacing with the USB port by @jacobly0
- Add srldrvce library for interfacing with serial-based devices by @commandblockguy
- Add msddrvce and fatdrvce libraries for interfacing with mass storage devices by @mateoconlechuga
- Add fileioc library
ti_ArchiveHasRoomVarfunction by @mateoconlechuga - Update convimg to support more conversion options by @mateoconlechuga
-
Bugfixes
- Fix fileioc library
ti_ArchiveHasRoomfunction by @mateoconlechuga - Ensure spaces aren't provided in the program name by @mateoconlechuga
- Fix convimg option
max-entriesby @mateoconlechuga - Fix defines for OS_VAR_Z and OS_VAR_THETA by @commandblockguy
- Fix fileioc library
-
Improvements:
- Optimize utility function in fileioc by @jacobly0
- Optimize 24-bit right shift for much lower maximum runtime by @calc84maniac
- Improve macOS codesigning and nightly builds by @adriweb
- Update documentation for
os_GetCSCandos_GetKeyby @RealStoneSword - Optimize
__ishlfor bounded execution time for larger shifts by @calc84maniac
v10.2 (2022-08-10)
-
New features
- Add
os_Evalandos_EvalVarfor direct evalution of equations by @mateoconlechuga. - Add automated DMG code signing / notarization for nightly macOS builds by @adriweb.
- Updated and improved
convfontsupport with text-based fonts by @drdnar. - Added comments for 8XP programs in
convbinby @mateoconlechuga. - Added transparent pixel support in
convimgby @mateoconlechuga.
- Add
-
Bugfixes
- Fix comparison of int32_t and int64_t by @runer112.
- Fix
printfwhen printing certain floating point values by @mateoconlechuga. - Fix printing of
int32_tby @jacobly0. - Fix
gfx_FloodFillissue on bottom on screen wrapping by @mateoconlechuga. - Change the type of CLOCKS_PER_SECOND to match clock_t by @commandblockguy.
- Compiler fix for missing register class check by @jacobly0.
-
Improvements:
- Deprecate
TI_REAL_TYPEandti_Ansstyle of macros by @mateoconlechuga. - Deprecate
sk_key_tandti_var_ttypedefs by @mateoconlechuga. - General documentation updates and improvements.
- Deprecate
v10.1 (2022-06-03)
-
New features
- Adds
byteswap.hheader file as standard. - Added
zx0compression option for generating compressed programs viaconvbin. - Added
zx0compression option for images converted withconvimg. - Added optional LibLoad library support via
LIBLOAD_OPTIONALmakefile option.
- Adds
-
Bugfixes
- Fixes invalid jump targets generated by the compiler.
- Fixes strcasecmp compilation.
- Fixes
make debugwhen LTO is enabled.
-
Improvements:
- Moves C++ includes to separate include directory to ensure no C include overlap.
- Implement optimized
lbswapandllbswapby @runer112 in CE-Programming#386
-
Documentation:
- Documentation updates and improvements, mainly to makefile options
v10.0 (2022-05-25)
-
New features:
- Implement 64-bit math support. By @runer112 in CE-Programming#354
- LTO (link-time optimization) is now available and enabled by default - it may help generating smaller binaries.
make testis available for the examples to launch the autotest if available, which uses a now-shipped CLI-based CEmu with the autotester.- A "nightly" automated release is now available for each new commit on the master branch, thanks to @mateoconlechuga
allocais now available. By @mateoconlechuga and @jacobly0- More/Better support for C++ in various headers
- Ellipse and filled ellipse routines added to GraphX by @PeterTillema
-
Bugfixes:
- A few bugs in the ez80-clang compiler were fixed by @jacobly0
- A few bugs in the tooling (convimg, convbin...) and libload were fixed by @mateoconlechuga
- Pop arguments after calling
_asinby @PeterTillema in CE-Programming#352 - Implement
strrchrsince the static zilog one was broken. By @jacobly0 - std: Fix various standard defines. By @jacobly0
- Fix
NULLargument tostrtok(fix CE-Programming#348) by @commandblockguy - FileIOC: Fix return value for ti_RclVar. By @commandblockguy
- Switch addresses of
os_RealAsinRadandos_RealAcosRadby @arjvik in CE-Programming#358
-
Improvements:
- Optimize and add static math functions. By @runer112 in CE-Programming#354
- Complete refactor of the headers to simplify and better split features. By @drdnar in CE-Programming#378
- Better code generation possible with more section-ing (
section .texthas to be added in ASM files before code, now) - Two examples/templates are now available as template repos, make it easier to start developing. Thanks @commandblockguy
-
Documentation:
- Lots of improvements and details added, following the various refactors listed above, but also typos, clarifications, etc. (By @drdnar mainly, but also @runer112, @tari, @mateoconlechuga, @Dragon-Hatcher, @Chr1sDev, @PeterTillema, @mrwompwomp, @Aulimaitar, @HexCodeFFF)
v9.2.2 (2021-09-21)
- Fix an edge case when creating multiple appvars with convimg
- Prevent fileioc from crashing if the user provides an invalid slot
v9.2.1 (2021-09-11)
- Patch for edge case where
delay()andusleep()functions may freeze - Minor documentation updates
v9.2 (2021-09-09)
- Deprecate
timer_GetLowandti_CloseAllfunctions - Remove pixelShadow from BSS to fix issue #298
- Bug fixes for convimg and convbin programs
- Add more missing C++ headers and add typeinfo support (thanks jacobly)
- Added
clock,sleep,usleep,msleep,ticksleep, and other clock related functions (thanks Runer112) - Added
os_RunPrgmfunction for running programs on the calculator - Added
boot_TurnOnfunction which turns on the hardware - Implementation and improvements to C++ for
static_assertandquick_exit(thanks jacobly) - Updates to fasmg linker files; fasmg now uses 64 bit release on Linux
- Pressing [on] doesn't throw an error on exit anymore (thanks commandblockguy)
- Fix bug when compiling icon source file
- Remove Windows installer program and use batch file instead (thanks DrDnar)
- General core makefile improvements
- Makefile now handles recursive search better and extra source files
- Linux releases have binaries marked as executable
- Documentation is now versioned based on release
- Linker bug when using debug mode resolved
- Test toolchain with compression enabled and disabled, as well as remove convimg build artifacts
- Added
cedev-configprogram to handle miscellaneous toolchain things - Documentation improvements (thanks Michael0x18)
- Added general coding guidelines and working with Git documentation
v9.1 (2021-01-16)
- Update fasmg (fix linker bug that could unnecessarily require a library)
- Update ez80-clang (fix compiler bug where taking the address of stack variables in simple functions was broken)
- Improve CI
v9.0 (2020-12-26)
Starting with this version, the toolchain is now based on LLVM, an open-source retargetable compiler infrastructure. The backend was created by Jacobly and the compiler (named clang, which you may see as ez80-clang in the toolchain) is now able produce eZ80 assembly from C/C++ source files. This is a major milestone as it allows the CE toolchain to move away from using the legacy Zilog ZDS compiler, which is closed-source, proprietary, only worked on Windows, and contained numerous bugs. Thanks to LLVM, later standards of the C and C++ specifications are supported (you're not stuck with C89 anymore!), code optimization actually works, and the compiler is able to run natively across multiple platforms.
- Lots of cleanup and improvements to the standard includes and headers in general, made possible by the compiler change mentioned above.
- Various changes and improvements to the fasmg linker (written by Jacobly as well)
- Some "hacks" like
_OSand_asmaren't needed anymore, they are now gone. - Debug info is now produced in the Dwarf format (and source-level debugging support within CEmu is getting closer to being ready!)
- The convimg project has been updated to support a new YAML format that is easier for beginners and tooling. The previous toolchain release (v8.8) also used a YAML format, however some slight modifications were made in order to make it standard-compliant. Example
convimg.yamlconversion files can be found in the examples. - New fileioc function:
ti_SetGCBehaviorto set routines to run before and after a garbage collect would be triggered. - New keypadc defines: many keypad key defines corresponding to the TI-83 Premium CE keypad were added for easier coding
- New usb.h function:
usb_BatteryChargingto check if the battery is currently charging. - New time.h headers and functions: standard features. See commit for details.
- New tice.h defines and macros: easier ways to control timers. See commit for details.
- Revamped v/s/printf functions, now available if needed thanks to a light third-party library, see docs.
- New C++ header-only "library" for easily manipulating "TI real" numbers (see this PR), making some math operations easier. See examples.
abort()doesn't generate code that would make CEmu open its debugger anymore - you can use the specific debug functions for that now.- Various optimizations in library functions
- Various makefile improvements and cleanup (bugfixes, portability...)
- Improved autotests for the examples
- fasmg got a speed boost thanks to CALM instructions.
- Documentation improved and revamped. Available on online here, which replaces the repo's wiki
- The build/CI infrastructure was migrated from Travis to Github Actions.
These massive internal changes do mean that some programs might not compile right away anymore, but don't worry, it shouldn't be too difficult to fix your code. Check out the v9.0 release note for migration tips.
v8.8 (2020-01-19)
- Documentation fixes and headers cleanup
- Fix
gfx_TilePtrandgfx_TilePtrMapped - Expose more OS functions (see
tice.h) - Add LCD cursor defines
- MMIO defines are all volatile
- Submodules update
- "development library" generation
- Examples folders hierarchy improved
- Prepare makefile for future changes
- Fix warnings
v8.7 (2019-08-25)
- Documentation fixes
- Fix
gfx_Beginsignature - Fix
gfx_RotateSpriteC - Fix
ti_Str0value and add missingti_Str9 - Fix
gfx_SetCharData(#221) - Improve build
- Add
ti_ArchiveHasRoom
v8.6 (2019-06-30)
- New libray: FontLib by DrDnar
- Add
kb_IsDownkeypadc macro - Add
gfx_CopyRectangle - Add
os_TestFlagBitsFast - Fix
gfx_GetClipRegion - Fix
getstringinput - Fix
strncasecmp - Fix
ti_SetArchiveStatusignoring archived argument - Improve comments and
printTextSmallfunction - Improve
gfx_Wait - Improve CI
- Improve build files in general, more parallel and portability support
- More documentation
v8.5 (2018-10-31)
- LibLoad and linker improvements
- AppVeyor CI support
- Fix
ti_RclVar - Improve and fix tests in general
- Optimize a few graphx routines (SetPalette, SetClipRegion, RLETSprite)
- Add
os_NewLine - Fix MMIO defines (size/volatility) in tice.h
- Add 32-bit "atomic" load functions and stopwatch example
v8.4 (2018-08-23)
- Fix fileioc bug not bypassing archived header in ti_SetArchiveStatus
- LibLoad optimizations
- Documentation fixes and improvements
- GraphX optimizations
- Replace NSIS by Inno for Windows installer
- Add a better GraphX template
- Improve some build-related stuff
v8.3 (2018-07-25)
- Misc. build improvements and fixes (MateoConLechuga + Runer112 + Adriweb)
- Travis config file cleanup (Adriweb)
- New macros and features related to fasmg (Jacobly)
- Added dbg_ClearConsole (MateoConLechuga)
- Compression-related APIs fixes and updates (MateoConLechuga)
- Misc. code cleanup (MateoConLechuga)
- Some documentation updates (TIAnonyme0 + Runer112)
- Submodules updates for ConvPNG and fasmg (MateoConLechuga + Jacobly)
- Minimized waiting by gfx_SwapDraw, added gfx_Wait (Runer112)
- Improved behavior of length argument to gfx_PrintInt and gfx_PrintUInt (Runer112)
- Many small optimizations (Runer112 + Jacobly)
- Added ti_DetectAny, ti_GetName, ti_Rename, and ti_RenameVar (MateoConLechuga)
- Added ti_GetVATPtr (PeterTillema)
- Fixed ti_GetC for empty variables (PeterTillema)
- Fixed variable creation erroneously opening closed slots (Runer112)
- Fixed ti_DetectAny type access (PeterTillema)
v8.2 (2018-03-24)
- Add full screen image example (MateoConLechuga)
- Improved os_GetStringInput (MateoConLechuga)
- Fixed a Windows build issue for src/std/linked (Runer112)
- Blitting demo instead of buffering demo (Runer112)
- Use latest-stable CEmu for Travis auto-tests (Adriweb)
v8.1 (2018-02-19)
- Improved several autotests (Runer112)
- Build fix for Windows regarding icon handling (MateoConLechuga)
- Misc. build and Travis fixes/improvements (Adriweb)
- Submodules updates for ConvPNG and fasmg (MateoConLechuga + Jacobly)
v8.0 (2018-01-30)
- Replace ZDS assembler with fasmg-ez80 (Jacobly)
- Replace ZDS linker/librarian with fasmg-ez80 (Jacobly))
- Integrate fasmg-ez80 into toolchain (MateoConLechuga)
- Library translation to fasmg-ez80 format (MateoConLechuga)
- Add more tests and header file cleanup (Adriweb)
- Optimize gfx_FillScreen() and gfx_ZeroScreen() (Runer112)
- Fix gfx_FillTriangle() and gfx_FillTriangle_NoClip() (MateoConLechuga)
- Add gfx_SetCharData() and os_GetStringInput() (MateoConLechuga)
v7.4.2 (2017-08-13)
- Misc. code fixes (Adriweb)
- Fix environment variable setting and paths on the windows installer (MateoConLechuga)
v7.4.1 (2017-08-10)
- Better Travis settings for docs deployment (Adriweb)
- Tested-functions-list tool (Adriweb)
- Deprecate support for mode 2 interrupts and related things (MateoConLechuga)
- Minor header fixes (missing includes) in GraphX and FileIOC (Adriweb)
- Code optimizations in GraphX (PeterTillema)
v7.4 (2017-07-25)
- Various Makefile fixes (windows spaces, subdirectories...) (MateoConLechuga)
- More and better documentation (MateoConLechuga+Runer112+Jacobly)
- ConvPNG updates to use W/H defines (MateoConLechuga)
- Fixed gfx_RLETSprite where width != height, and in a right clip case - (
5c84e9b- Runer112) - Add gfx_RotateScaleSprite and related functions + docs (MateoConLechuga)
- Improve line routine implementation (MateoConLechuga)
- Fix the new gfx_Begin and some bad macro usages (Jacobly)
v7.3 (2017-07-04)
- Automated testing through Travis (Adriweb)
- Fixed C++-compatibility-related things (Adriweb)
- Fixed/improved autotester files (Adriweb+MateoConLechuga)
- Improved Makefile (MateoConLechuga)
- Misc. fixes and optimizations (MateoConLechuga+Runer112+Jacobly)
- Fixed some docs and examples (MateoConLechuga)
- More demos (MateoConLechuga)
- Fixed bss and cstarted-related things (MateoConLechuga)
- Added millisecond delay function (
ae19350- Runer112) - Improved (pseudo)random number generation (
b6c1929- Runer112) - Overall misc. cleanup and documentation (Runer112)
- Clipped sprites fixes (MateoConLechuga)
- Code optimizations (MateoConLechuga+Runer112+Jacobly)
- ConvPNG-related updates (MateoConLechuga)
- ConvTile-related updates (MateoConLechuga)
- Renaming: gfx_sprite_t from gfx_image_t (MateoConLechuga)
- Fixed green LSB in default palette colors (
be9fea4- Runer112) - Added fast (RLE) transparent sprite type, gfx_rletsprite_t, and functions: gfx_AllocRLETSprite, gfx_MallocRLETSprite, gfx_UninitedRLETSprite, gfx_RLETSprite, gfx_RLETSprite_NoClip, gfx_ConvertFromRLETSprite, gfx_ConvertToRLETSprite, gfx_ConvertToNewRLETSprite, gfx_ConvertMallocRLETSprite (
e26bf07- Runer112) - Fixed drawing unclipped sprites with odd width (
5a4cc95- Runer112)
v7.2 (2017-05-06)
- Implicit
prgm_CleanUpby default - (MateoConLechuga) - Examples cleanup - (MateoConLechuga)
- Fix some example screenshots - (MateoConLechuga)
- Routines optimizations - (MateoConLechuga+Runer112)
- Misc. fixes - (MateoConLechuga+Runer112+PeterTillema)
v7.1 (2017-04-30)
- Compatibility headers and better include paths - (Adriweb)
- Travis CI integration - (Adriweb)
- Example screenshots - (Adriweb)
- Improved documentation - (MateoConLechuga)
- Misc. fixes - (MateoConLechuga)
- Fix Windows install - (MateoConLechuga)
- Bug. fixes - (MateoConLechuga+PeterTillema)
- Optimizations - (MateoConLechuga)
v7.0 (2017-04-07)
- Rework entire toolchain setup and hierarchy (
559dd1c- MateoConLechuga) - Doxygen header files (
4402637- MateoConLechuga)
- Added gfx_FloodFill (
60006ac- MateoConLechuga) - Added gfx_ScaleSprite (
7618598- MateoConLechuga) - Added gfx_SetFontHeight (
4402637- MateoConLechuga) - Optimized ClipDraw helper function (
82e5d5a- MateoConLechuga) - Optimized gfx_AllocSprite (
2c12310- Runer112)
v6.999 (2017-02-17)
- Add scripts to build/clean libraries and examples easily (
61d915f- MateoConLechuga) - Move spasm to /bin rather than /lib/src/include (
61d915f- MateoConLechuga) - Fix graphx demo 11 readme (
3017951- Runer112) - Add Changelog file (
0595378+544e75f- MateoConLechuga+Adriweb) - Restrict LF EOL conversions to text files (
c19b360- Adriweb)
v6.95 (2017-02-10)
- Improve build system and misc. cleanup (
63ff603+4b3f137- MateoConLechuga+Runer112) - Modify
cstartup.asmto disable usb timers and reset them on exit (63ff603+03809e5- MateoConLechuga) - Characters
0x01-0x1Fare considered printable rather than control (de96c7a- Runer112) - CR EOL purge (
15a573e- Runer112) - Minor documentation fixes
- Optimize gfx_Darken (about 25% faster) and gfx_Lighten (about 19% faster) (
9e7835a- Runer112) - Optimize _SetColor and _SetTransparentColor (
fc43abb- Runer112) - Optimize _SetTextXY (#47) (
6643e90- Runer112) - Add support for width/height of tiles not powers of 2 (
93930fb+78be69c- MateoConLechuga) - Fix bug with tile index 255
v6.91 (2017-01-20)
v6.9 (2016-12-28)
v6.8 (2016-12-28)
v6.7 (2016-12-21)
v6.6 (2016-12-18)
v6.5 (2016-12-12)
Closed issues:
- obj dir something something #43
v6.3 (2016-11-24)
Fixed bugs:
- demo2 doesn't compile #42
v6.2 (2016-11-23)
v6.1 (2016-11-19)
Implemented enhancements:
Merged pull requests:
- optimised _PrintUInt & _FillScreen #40 (Grosged)
- faster ScaledSprite_NoClip & Sprite_NoClip #39 (Grosged)
- optimisation of imuls|imulu (8,5% faster) #37 (Grosged)
- suggest a faster FillCircle_NoClip routine #34 (Grosged)
v6.0 (2016-10-26)
Closed issues:
- Cannot make examples' makefile #29
Merged pull requests:
- _VertLine_NoClip improvements #30 (Grosged)
- Optimized _TransparentPlot_ASM for speed* #28 (Runer112)
v5.9 (2016-10-15)
v5.7 (2016-09-21)
v5.6 (2016-09-20)
v5.5 (2016-09-10)
Fixed bugs:
- gfx_Shift<> performs improperly #22
Closed issues:
- Tilemap only renders if gfx_tilemap_t is local #25
- Clipping is broken #24
- SEEK_* are defined and implemented incorrectly #23
v5.2 (2016-08-25)
v5.1 (2016-08-23)
v5.0 (2016-08-23)
v4.6 (2016-05-26)
v4.5 (2016-05-24)
v4.0 (2016-05-19)
v4.4 (2016-05-19)
v4.2 (2016-05-19)
v3.4 (2016-04-04)
v3.3 (2016-04-04)
v3.2 (2016-04-03)
v3.1 (2016-03-21)
v3.0 (2016-03-21)
v2.2 (2016-03-20)
v2.1 (2016-03-18)
Implemented enhancements:
- Makefile bugs and improvements... #20
Fixed bugs:
- Makefile bugs and improvements... #20
- Including ti84pce.h in multiple files causes linktime warnings. #16
Closed issues:
- tice.h does not include string.h #21
v2.0 (2016-03-06)
Implemented enhancements:
- Improved demo0 "purity", moved template-like stuff to a template dir #19 (KermMartian)
Fixed bugs:
- executing makefile twice in succession outputs 8xp even if linking fails #7
- Makefile incorrectly escaped with wine 1.9.2 under Ubuntu 14.04 #6
v1.7 (2016-02-11)
Implemented enhancements:
- More portable deletion of build products #18 (elfprince13)
Fixed bugs:
- ti84pce.h relies on headers which it does not include #17
- incorrect typedef of ptrdiff_t #15
- <assert.h> depends on <debug.h>, does not include it #14
Closed issues:
- <debug.h> should respect the NDEBUG flag used by <assert.h> #12
- abort() should not be redefined in <debug.h> #11
v1.6 (2016-02-06)
Closed issues:
- dbg_printf should not take a buffer argument. #13
v1.5 (2016-02-06)
Implemented enhancements:
- Increase subdirectory portability #9 (elfprince13)
- These environment variables are unused #8 (elfprince13)
Closed issues:
- No bin folder present in CEDev #1
