Over 20 years ago, SourceCoder 1.0 started as a simple way to extract the source code from TI-83/TI-83 Plus/TI-84 Plus calculators into human-readable text. After joining forces with Brazucs and his optiBASIC project, in 2006,SourceCoder 2.0 brought support for strings, lists, matrices, groups, and more, as well as a more flexible tokenizer. It took another ten years before SourceCoder 3 was maybe finally nearly version 3.0, complete with a new interface, more supported calculator models, and the jsTIfied calculator emulator built in to speed up testing and debugging. Recently, I've been adding support for the newly released TI-84 Evo graphing calculator, and I realized SourceCoder never actually reached 3.0. We've now vaulted past that milestone with early support for the TI-84 Evo in SourceCoder 3.1 Beta.

Put simply, you can now import, edit, and export TI-84 Evo variables like programs, matrices, lists, numbers, and images, directly in your browser. Upload your favorite .8xp2, .8xl2, .8xm2, .8xn2, or .8ca2 files (hopefully those extensions don't get any longer...), and you can see the source code of your TI-BASIC programs, view the values in your matrices, lists, and numbers, or view and export the contents of your images. You can also create new programs, matrices, lists, or numbers, and edit them directly in your browser. When you're satisfied, export the resulting program or variable back to a file you can send to your physical TI-84 Evo or to the official TI-84 Evo emulator. Better yet, share your TI-84 Evo project in our file archives for the world to download and enjoy.

What works? You can import, create, edit, and export five types: programs, images (backgrounds), matrices, lists, and numbers. You can use almost all of the tokens that you can type on the calculator. As part of this effort, SourceCoder's backend has been upgraded to support Unicode, so you can now confidently enter or copy-and-paste the Unicode equivalents of various supported characters to include in your programs, as well as use versions of programs created with other tools that use Unicode representations.

What's coming soon? The community has discovered myriad tokens, including some that are repeated two, three, or more times with different encoded values. Many of these cannot be typed as their alternative form, but because the community is working to document them, SourceCoder will support them. In creating SourceCoder's TI-84 Evo support, I and other community members learned more about the TI-84 Evo group file format, which not only differs widely from the previous group format, but also is quite unlike the other TI-84 Evo file formats. TI-84 Evo group support will therefore be coming soon.

What's not coming soon? We have no plans to make the jsTIfied emulator support the TI-84 Evo in the foreseeable future. In addition, because there are many great Python editors and IDEs out there, we don't plan to add Python support soon.

How can I help? Use SourceCoder 3.1 Beta, make TI-84 Evo projects, and report the bugs that you find!

Use It Now
SourceCoder 3.1 Beta with TI-84 Evo support

Congratulations!
Thank you! Thanks also to Cemetechians who have been performing testing. Thanks to them, I've identified and solved a few bugs:
  • Both individual files and projects can now be tested in the in-IDE jsTIfied calculator emulator once again.
  • TI-84 Plus CE C programs can be compiled correctly, and z80/ez80 assembly programs can be assembled correctly.

As I was making this post, I discovered another couple of bugs:
  • If you upload pre-Evo programs, then change them to Evo programs, the project doesn't get changes to an Evo project. I'll need to add some UI and frontend code to show the project type and allow it to be changed.
  • Saving projects containing Evo files triggers a frontend error, and loading projects containing Evo files displays incorrectly tokenized/detokenized variable names


Edit: Cemetechian superfood discovered that tokenizing large programs exceeded the budgeted PHP execution time. I discovered that (logically) mb_substr() and mb_strlen() are much slower than their non-Unicode-aware equivalents, because of course they need to start from the beginning of the string every time to account for variable-byte-width characters. I modified the tokenization function to greatly reduce mb_strlen() calls, especially on long strings, and to keep mb_substr() calls to near the beginning of long strings, reducing execution time for a 24KB TI-BASIC program from >30 seconds to <1 second.
Nice job!
KermMartian wrote:
The community has discovered myriad tokens, including some that are repeated two, three, or more times with different encoded values.


Well, I'm not sure, but are those tokens in the token table or just overflows? Shock
They're actually in the token table, since the calculator makes use of established computer Unicode representations for some characters/tokens.

Various features implemented in development and coming soon to production:
  • Parsing TI-84 Evo groups containing lists and programs (for now)
  • Loading stored TI-84 Evo projects
  • Parsing TI-84 Evo Picture files (.8ci2) into images
  • Generating TI-84 Evo Picture files (.8ci2) from images, including round-tripping
Now available in production:
  • Storing and loading TI-84 Evo projects
  • Importing, editing, and exporting TI-84 Evo groups containing lists and/or programs
  • Importing and exporting TI-84 Evo pictures

Next up is explicitly converting pre-Evo projects to Evo projects.
Uh, you meant CE projects converted to Evo projects, or not? Old 84plus doesn't have colors...
Jeff calc 84 wrote:
Uh, you meant CE projects converted to Evo projects, or not? Old 84plus doesn't have colors...
Any pre-Evo projects or files, monochrome or color. Many (most?) home screen monochrome TI-BASIC programs would work just fine, for example.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement