It's been over two years since I first posted news entitled "SourceCoder 3 Nears Completion", but today, I'm proud to say that SourceCoder 3 actually is nearing completion. Unless you looked closely at the version number at the bottom-right of SourceCoder 3's main menu, I bet you might not have realized that SourceCoder 3 was technically still in beta, but I'm happy to say that in preparation for T^3 2016 and as various planned features come together, it has reached Release Candidate status. The biggest brand-new feature is in-browser compiling of ez80 C programs for the TI-84 Plus CE, but myriad other tweaks, adjustments, fixes, and updates have been added to SourceCoder 3 in the past two years.

If you've hung around Cemetech long enough, you probably know what SourceCoder 3, but if not, it's a universal in-browser IDE for graphing calculator programmers. It can help you write BASIC, Assembly, and C programs for TI-83 Plus and TI-84 Plus graphing calculators, edit and export lists, numbers, matrices, pictures, AppVars, and more, and even edit Casio fx-9860 and Prizm programs and images. With the integrated jsTIfied emulator, you can test programs right in your browser, take screenshots, and never need to use an offline calculator or offline emulators. In fact, SourceCoder and jsTIfied even work on smartphone and tablets (including the iPad), meaning that students in schools that issue Chromebooks or iPads can still use it.

I'll save the exhaustive list of features for the inevitable SourceCoder 3.0 announcement; for now, here are the highlights of what has been added to SourceCoder in the past two years:
  • TI-84 Plus CE C Support: Thanks to help from Cemetech administrators Tari and elfprince13, as well as excellent tools and libraries developed by the inimitable Cemetech moderator MateoConLechuga, you can now write, compile, and export C programs for the TI-84 Plus C right in your browser. With TI-84 Plus CE support planned for jsTIfied, you'll even be able to test C programs in an in-browser TI-84 Plus CE.
  • Overhauled Interface: Awkward dropdown menus and huge icon-filled buttons are a thing of the past. SourceCoder 3's editor now shows all of the files in a project as tabs, and contains a sleeker interface above the editor. Layout is now almost purely done in CSS (rather than the older Javascript layout engine), and is designed to flow better on devices with smaller screens.
  • Indentation: TI-BASIC and C programs are automatically indented as you type to make it clearer where your loops, conditionals, and functions start and end. In addition, indentation is automatically added to programs that you upload. As with many other features, you can turn indentation on and off from the Settings tab of the main menu, and you can choose how many tabs or spaces to use to indent your code.
  • z80 ASM and ez80 ASM Support: Thanks in great part to Tari's emscriptening of SPASM-ng, you can write, assemble, and test z80 and ez80 ASM programs directly in SourceCoder 3. Projects can also contain multiple assembly programs and includes that are assembled together.
  • Casio fx-9860 and Prizm Images: SourceCoder 3 can import and export Casio calculator images, which required reverse-engineering and documenting the format.


Have you found SourceCoder 3 useful? Let me know! Have you encountered bugs while using it lately? I definitely need to know that too. Finally, although I'm anticipating adding only one additional planned feature for SourceCoder 3.0, feature requests are always welcome.

Launch Tool
SourceCoder 3 Online TI-BASIC, ASM, and C Editor and IDE

KermMartian wrote:
Have you encountered bugs while using it lately?
KermMartian wrote:
  • Indentation: ...


Very Happy
Good work on almost finishing this, and I'm glad I helped you facing bugs, and testing features. Keep up the greak work! Good Idea
What do you need to finish SC?
Haha, yes, I owe a debt of gratitude to you (and jonbush) for reporting the latest indentation bugs and helping me to track it down. I'm sorry that indentation was buggy for so long, including eating the first character of programs! I also must thank you, MateoConLechuga, and KInfinity for beta-testing the C support, and I need to reiterate Elfprince13's coding help and moral support creating SC3's compiler framework, and Tari for checking its security and providing additional technical support.
How do the headers work? I assume SC3 includes the standard headers but what if someone were to include a custom header? How are those defined? Is there a pool of headers that programmers can select from, as I suspect with the "Other available headers" comment or can they each upload/create their own headers?

Nonetheless, incredible work. I'm impressed how far SourceCoder and jsTIfied have come and look forward to where they will go.
comicIDIOT wrote:
How do the headers work? I assume SC3 includes the standard headers but what if someone were to include a custom header? How are those defined? Is there a pool of headers that programmers can select from, as I suspect with the "Other available headers" comment or can they each upload/create their own headers?
You can include arbitrary .h and .c files in your projects simply by adding them as new files. The compiler will compile the .cs into .os, link everything together, and give you the resulting binary. Yes, it offers the full pool of libraries made by Mateo, and he of course deserves full credit for his tireless, selfless work creating those.

Quote:
Nonetheless, incredible work. I'm impressed how far SourceCoder and jsTIfied have come and look forward to where they will go.
My sole concern is that the programmers of today and tomorrow have as many freely-available tools to learn programming with as possible, and if I can make Cemetech members' lives easier at the same time, all the better. Smile
Congrats! Now I won't have to set up the SDK if I ever get a CE. Razz

I've been playing around with the C compiling and I keep getting this error:


Code:
CC: No file(s) "\bin\eZ80cc.c" found
catylizm.c
catylizm.src
Linking...
WARNING (708) --> ".header" is not a valid group,space, or segment.


The only code I have is header includes. Bug?
That sounds like a convoluted way of it saying there's no int main() { } to me; is that possible?
KermMartian wrote:
That sounds like a convoluted way of it saying there's no int main() { } to me; is that possible?


Okay, I thought that might be the issue. I'm trying it out now. Thanks. Razz
Spenceboy98 wrote:
KermMartian wrote:
That sounds like a convoluted way of it saying there's no int main() { } to me; is that possible?


Okay, I thought that might be the issue. I'm trying it out now. Thanks. Razz
Sure thing. Smile MateoConLechuga astutely suggested, and I'm going to add soon, a C program template that starts you off with the basic includes, a skeletal main, and some comments about how to expand it at the top.
KermMartian wrote:
Spenceboy98 wrote:
KermMartian wrote:
That sounds like a convoluted way of it saying there's no int main() { } to me; is that possible?


Okay, I thought that might be the issue. I'm trying it out now. Thanks. Razz
Sure thing. Smile MateoConLechuga astutely suggested, and I'm going to add soon, a C program template that starts you off with the basic includes, a skeletal main, and some comments about how to expand it at the top.


Sounds great! That'll sure make things easier for beginners and lazy people. Razz Keep up the great work! Very Happy
Spenceboy98 wrote:
KermMartian wrote:
That sounds like a convoluted way of it saying there's no int main() { } to me; is that possible?


Okay, I thought that might be the issue. I'm trying it out now. Thanks. Razz


Prototypes technically should be void main(void), as per the ZDS docs, not too important though Razz Anywho, you have to do #include <ti84pce.h> at the top of your file as well.

In addition, great work Kerm! This is definitely going to be quite helpful for many people. The new improvements are also a large plus Smile
I look forward to when this project is open sourced so the entire community can help extend functionality, fix bugs, build new exciting things based on it, and learn from the code!
I wondering, would/could you implement Prizm C programming as well? It would sure save some time for beginners, so they wouldn't have to find all the latest Prizm SDK files.
That's quite a good idea, actually; let me explore what we'd need to do for this, and perhaps see if I can delegate it to our Prizm C toolchain experts, Tari and Jonimus.
Hey, I'm pretty sure this is some sort of a bug:


I literally have nothing on line 72 and line 76 doesn't even exist.
Are you missing some closing brackets or something? Those messages are from Zilog's compiler, which unfortunately is closed-source and which we cannot fix. Mateo, elfprince13, have you encountered that?
KermMartian wrote:
Are you missing some closing brackets or something? Those messages are from Zilog's compiler, which unfortunately is closed-source and which we cannot fix. Mateo, elfprince13, have you encountered that?

Did you #include <ti84pce.h> in the file?

Also, from before:

me wrote:
Main prototypes technically should be void main(void), as per the ZDS docs


Is there a newline at the end of the file?
Also, there isn't nearly enough context to diagnose the line 72 error. I suspect a missing semicolon or something or something on a previous line wasn't detected until the } appeared, because whitespace isn't something that matters in C.
elfprince13 wrote:
Also, there isn't nearly enough context to diagnose the line 72 error. I suspect a missing semicolon or something or something on a previous line wasn't detected until the } appeared, because whitespace isn't something that matters in C.


Turns out this was it. Thanks guys. I'll be sure to keep this in mind next time an error like this occurs.
Glad to be of service. Smile
  
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 3
» 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