SourceCoder 2.5 is one of Cemetech's most popular tools, often vying with the site's front page as the most-visited page each month. SourceCoder began as a simple tool to generate human-readable source code from .8xp TI-BASIC programs, then gradually expanded to understand other file types as well. It added an editor where you could modify or create programs, then export them as calculator program files or save them on Cemetech for later use. Recently, I even embedded the jsTIfied online calculator emulator into SourceCoder so you can write and test TI-BASIC programs without leaving Cemetech. However, SourceCoder 2 is starting to show its age. It can't edit Axe or Grammer source code, the backend is a horrific relic of a decade of honing my PHP skills, and modern editor features like syntax highlighting and code completion are sorely lacking.

To resolve these shortcomings, I am proud to announce SourceCoder 3, a new SourceCoder written completely from scratch. PHP, MySQL, Javascript, and jQuery combine to make a new SourceCoder that is cleaner, easier to use, and more powerful. What features does SourceCoder 3 have, and what unfinished features are planned?

:: Support for TI-83+/TI-84+ BASIC, TI-84+CSE BASIC, Axe, and Grammer programs (mostly complete).
:: Support for viewing, editing, and exporting lists, matrices, and numbers (mostly complete).
:: Better jsTIfied integration: pull out the calculator when you need it, or let it shrink back into the margin when you want to focus on coding (complete).
:: Support for TokenIDE-style editing and a dedicated pane full of tokens and commands, thanks to Shaun "Merthsoft" McFall's hard work and excellent token definition files (to which I am proud to have contributed a modicum of help) (complete).
:: Support for working on, saving, and exporting project, containing programs, pictures, appvars, lists, matrices, and more (mostly complete)
:: BASIC, Axe, and Grammer syntax highlighting, token hinting, and automatic complete (partially complete).
:: Possible sprite/image editing (incomplete).
:: More image export options (incomplete).

Hopefully you're sufficiently intrigued as to be looking for a link to try out this first Alpha release of SourceCoder 3. You're looking in vain, as the application is too rough around the edges for me to publicly link yet. However, I will be accepting requests from particularly motivated alpha testers to give SourceCoder 3 a try, and I look forward to the community's usual excellent feedback on my efforts thus far.


A side-by-side comparison of SourceCoder 2.5's program editor (left) and SourceCoder 3's fledgling interface (right)
Sounds and looks nice. Very Happy I would like to try it out. Smile

I just tested a g3m and an image and they both gave me:
Quote:
Error: Unable to load RPG1.g3m. Are you sure it's a valid file type?
More Information: error


Also, are you going to make it so that you can paste the image code in and have it convert? If not, could you?
This has come a long way since I saw it last. Are you creating it so it'll be easy to add other languages later on? Such as how TokensIDE uses XML files? Hopefully if that's true, support for the Prizm wouldn't be terribly hard to add in - though a Prizm calc and a Prizm version of jsTIfied would be lacking.

It seems putting in support for "Token Hinting" would be a bit more tedious to implement for XML support. Is that where you can type out a token and SC3 will give you the argument definitions? If I were to type in "preg_grep(" in my web IDE, it auto-completes too: "preg_grep(string $pattern, array $input)" Or is "Token Hinting" more of a feature that tries to guess what token you are typing?
I obviously need a link, so I can give it the official awesome certification. Otherwise, it's just a tool.

:p

Definitely looks awesome, though, and that list of features really adds to what it is. Hopefully this can become a full range editor for all calcs, and maybe the other languages at some point? Would be interesting to bring back the 68k series through the efforts of SC Smile
Comic: Thanks. Since Shaun's token XML files were (long long ago) partially based on SC2's token definitions, and Shaun has generously released his token definitions under a broad license, I am using them directly. That means that the same code can be used in TokenIDE and SC3, which I suspect will be a boon to both IDEs. The only thing necessary to update the tokenization system is to update the XML files and run a PHP preprocessor script I wrote.

The "token hinting" I referred to is more like tab completion. I don't currently plan to integrate reference information, though it's a potential future addition.

Spence: Please try again.

TIFreak8x: Thanks, I would appreciate your badge of approval. Very Happy I'm trying to write this the right way this time, to make it easier to expand and easier to maintain.
Thanks for the link. For anyone else that wants it, it's http://tifreakisatool.cemetech.net

It nicely recognized the fact it is an 84+CSE program, which is nice. going off the fact it had the color tokens in it, I presume?

Also, I'd like to say the text box for viewing and editing the code could stand to be much taller. Maybe nearly double in height?
tifreak8x wrote:
Thanks for the link. For anyone else that wants it, it's http://tifreakisatool.cemetech.net

It nicely recognized the fact it is an 84+CSE program, which is nice. going off the fact it had the color tokens in it, I presume?
The version byte in the .8xp header is supposed to indicate if the program is a TI-84+CSE program. Since TokenIDE doesn't set that byte, I have a mechanism that bumps TI-83+/84+ programs up to TI-84+CSE programs if the Parser/Tokenizer encounters an unknown token. It's not my favorite way of handling it, but it's a decent enough failure mechanism.

Quote:
Also, I'd like to say the text box for viewing and editing the code could stand to be much taller. Maybe nearly double in height?
Yes, it's going to stretch out to fit the height of the div that it's in. I'm still finessing the layout; notice that the project listing doesn't really fit nicely either.
If Prizm programs are supported, would you accept converting to/from the g3m and txt versions?
Yeah, was just something I was pointing out Smile

Seems saving and recalling saved programs is working, however, there is nothing in it that allows the deletion of old files? And will we be able to link files to projects from the main menu eventually?
So umm, the casio side of things didn't get any updates?
flyingfisch wrote:
So umm, the casio side of things didn't get any updates?
The tokenizer is much cleaner and matches TokenIDE's Prizm token definitions, and the image viewing will be improved. It will get the same syntax highlighting and command hinting. What else is there to add, other than writing a Prizm emulator?
That's pretty awesome, I like the cleaner, easier to read interface, do we have an expected release date?
I should take a crack at a JS sprite editor since I see it is not yet implemented yet Smile Time to exercise my rusty JS knowledge and get a monochrome/greyscale/color sprite/animation editor made.
I've tested the feature of transferring a program straight to jstified, nicely done! It seems transferring from jstified to sc3 hasn't been implemented yet, has it? I clicked on the buttons (they said SC2) and nothing seemed to happen.

So far, loving it Smile
AHelper wrote:
I should take a crack at a JS sprite editor since I see it is not yet implemented yet Smile Time to exercise my rusty JS knowledge and get a monochrome/greyscale/color sprite/animation editor made.
If you could make one, and you'd be down with it, I'd love to integrate that into SC3. Smile

Link: Nothing projected, although it would be cool to have a public beta ready soon, with y'all's help.

TIFreak: Yes, I have a TODO note to myself in the source code for that. Let me know if you feel that's a priority and I'll bump it higher on my list. I also need to figure out how to cleanly style those transfer buttons and where to put them. And implement sending non-programs to and from jsTIfied.
KermM, if I make one, just let me know what sort of integration you want/can offer in terms of images.

I will try to work on it on the fight back from DC tomorrow and keep you posted on progress.
AHelper wrote:
KermM, if I make one, just let me know what sort of integration you want/can offer in terms of images.
I'm thinking of two possibilities:
1) In-source sprite editing for things that look like sprites in hex, as Deep Thought added to his IDE
2) General-purpose editing for .png/.gif/.jpg/.bmp/.8xi/.8ca files.
1) That's what I was going to put in my post, but deleted it :/
2) I plan on that, but will have to figure out the best way to load those into a browser (again, I am rusty).

As you know from me working on GlassOS and my lack of using TIOS, I remember that SC offers projects. I don't know much about them, but can images (either in the native format or in a custom format to prevent abuse) be stored on the site, or is it restricted to only source files?

I will try to make this able to be embedded in a page rather than its own page.
AHelper wrote:
1) That's what I was going to put in my post, but deleted it :/
2) I plan on that, but will have to figure out the best way to load those into a browser (again, I am rusty).
Canvases. jsTIfied can easily push data into canvases and out again using data URIs; I recommend that's what you do as well.

Quote:
As you know from me working on GlassOS and my lack of using TIOS, I remember that SC offers projects. I don't know much about them, but can images (either in the native format or in a custom format to prevent abuse) be stored on the site, or is it restricted to only source files?

I will try to make this able to be embedded in a page rather than its own page.
Thanks. Smile SC2.5 does not offer projects, but SC3 does. Images in native calculator format can be stored; images in computer format cannot.
I get this massive error block:

Quote:
Error on line 40 at "... FILING, CREATIN...".<br />Error on line 40 at "... CREATING<br />:Text(...".<br />Error on line 41 at "... PROCESSING LIST...".<br />Error on line 41 at "... LIST DATA...<br />:T...".<br />Error on line 41 at "... DATA...<br />:Text(1...".<br />Error on line 42 at "... ALEX GLANVILLE ...".<br />Error on line 42 at "... GLANVILLE 2005<br />...".<br />Error on line 42 at "... 2005<br />:Text(24,2...".<br />Error on line 43 at "... BE USED WITH:<br />:...".<br />Error on line 43 at "... USED WITH:<br />:Tex...".<br />Error on line 43 at "... WITH:<br />:Text(30,...".<br />Error on line 44 at "... SIM - 5. DRAW C...".<br />Error on line 44 at "... - 5. DRAW CARDS...".<br />Error on line 44 at "... 5. DRAW CARDS<br />:...".<br />Error on line 44 at "... DRAW CARDS<br />:Tex...".<br />Error on line 44 at "... CARDS<br />:Text(56,...".<br />Error on line 49 at "... LEFT TO SORT:",...".<br />Error on line 49 at "... TO SORT:",X," ...".<br />Error on line 49 at "... SORT:",X," ...".<br />Error on line 49 at "... "<br />:&#87...".<br />Error on line 49 at "... "<br />:&#873...".<br />Error on line 49 at "... "<br />:&#8735...".<br />Error on line 49 at "... "<br />:∟...".<br />Error on line 49 at "... "<br />:∟S...".<br />Error on line 49 at "... "<br />:∟SU...".<br />Error on line 49 at "... "<br />:∟SUI...".<br />Error on line 49 at "... "<br />:∟SUIT...".<br />Error on line 49 at "... "<br />:∟SUIT(...".<br />Error on line 118 at "... PROBABILITY: OV...".<br />Error on line 118 at "... OVER ",A<br />:Text...".<br />Error on line 118 at "... ",A<br />:Text(6,6,...".<br />Error on line 118 at "... ",A<br />:Text(6,6,"...".<br />Error on line 120 at "... :",E<br />:Te...".<br />Error on line 120 at "... :",E<br />:Tex...".<br />Error on line 120 at "... :",E<br />:Text...".<br />Error on line 120 at "... :",E<br />:Text(...".<br />Error on line 120 at "... :",E<br />:Text(1...".<br />Error on line 120 at "... :",E<br />:Text(18...".<br />Error on line 120 at "... :",E<br />:Text(18,...".<br />Error on line 120 at "... :",E<br />:Text(18,1...".<br />Error on line 121 at "... :",F...".<br />Error on line 121 at "... :",F<br />...".<br />Error on line 121 at "... :",F<br />:...".<br />Error on line 121 at "... :",F<br />:T...".<br />Error on line 121 at "... :",F<br />:Te...".<br />Error on line 121 at "... :",F<br />:Tex...".<br />Error on line 121 at "... :",F<br />:Text...".<br />Error on line 121 at "... :",F<br />:Text(...".<br />Error on line 121 at "... :",F<br />:Text(2...".<br />Error on line 121 at "... :",F<br />:Text(24...".<br />Error on line 121 at "... :",F<br />:Text(24,...".<br />Error on line 121 at "... :",F<br />:Text(24,1...".<br />Error on line 123 at "... :",G<br />:1&...".<br />Error on line 123 at "... :",G<br />:1&#...".<br />Error on line 123 at "... :",G<br />:1&#8...".<br />Error on line 123 at "... :",G<br />:1&#85...".<br />Error on line 123 at "... :",G<br />:1&#859...".<br />Error on line 123 at "... :",G<br />:1&#8594...".<br />Error on line 123 at "... :",G<br />:1→...".<br />Error on line 123 at "... :",G<br />:1→Z...".<br />Error on line 135 at "... PROBABILITY: OV...".<br />Error on line 135 at "... OVER ",A<br />:Text...".<br />Error on line 135 at "... ",A<br />:Text(6,6,...".<br />Error on line 135 at "... ",A<br />:Text(6,6,"...".<br />Error on line 137 at "... :",I<br />:Te...".<br />Error on line 137 at "... :",I<br />:Tex...".<br />Error on line 137 at "... :",I<br />:Text...".<br />Error on line 137 at "... :",I<br />:Text(...".<br />Error on line 137 at "... :",I<br />:Text(1...".<br />Error on line 137 at "... :",I<br />:Text(18...".<br />Error on line 137 at "... :",I<br />:Text(18,...".<br />Error on line 137 at "... :",I<br />:Text(18,1...".<br />Error on line 138 at "... :",J<br />:Te...".<br />Error on line 138 at "... :",J<br />:Tex...".<br />Error on line 138 at "... :",J<br />:Text...".<br />Error on line 138 at "... :",J<br />:Text(...".<br />Error on line 138 at "... :",J<br />:Text(2...".<br />Error on line 138 at "... :",J<br />:Text(24...".<br />Error on line 138 at "... :",J<br />:Text(24,...".<br />Error on line 138 at "... :",J<br />:Text(24,1...".<br />Error on line 140 at "... :",L<br />:Text(3...".<br />Error on line 140 at "... :",L<br />:Text(36...".<br />Error on line 140 at "... :",L<br />:Text(36,...".<br />Error on line 140 at "... :",L<br />:Text(36,1...".<br />Error on line 141 at "... :",M<br />:Text(4...".<br />Error on line 141 at "... :",M<br />:Text(42...".<br />Error on line 141 at "... :",M<br />:Text(42,...".<br />Error on line 141 at "... :",M<br />:Text(42,1...".<br />Error on line 142 at "... :",N<br />:Te...".<br />Error on line 142 at "... :",N<br />:Tex...".<br />Error on line 142 at "... :",N<br />:Text...".<br />Error on line 142 at "... :",N<br />:Text(...".<br />Error on line 142 at "... :",N<br />:Text(1...".<br />Error on line 142 at "... :",N<br />:Text(12...".<br />Error on line 142 at "... :",N<br />:Text(12,...".<br />Error on line 142 at "... :",N<br />:Text(12,4...".<br />Error on line 145 at "... :",Q<br />:Text(3...".<br />Error on line 145 at "... :",Q<br />:Text(30...".<br />Error on line 145 at "... :",Q<br />:Text(30,...".<br />Error on line 145 at "... :",Q<br />:Text(30,4...".<br />Error on line 146 at "... :",R<br />:Te...".<br />Error on line 146 at "... :",R<br />:Tex...".<br />Error on line 146 at "... :",R<br />:Text...".<br />Error on line 146 at "... :",R<br />:Text(...".<br />Error on line 146 at "... :",R<br />:Text(3...".<br />Error on line 146 at "... :",R<br />:Text(36...".<br />Error on line 146 at "... :",R<br />:Text(36,...".<br />Error on line 146 at "... :",R<br />:Text(36,4...".<br />Error on line 147 at "... :",S<br />:Text(4...".<br />Error on line 147 at "... :",S<br />:Text(42...".<br />Error on line 147 at "... :",S<br />:Text(42,...".<br />Error on line 147 at "... :",S<br />:Text(42,4...".<br />Error on line 149 at "... :",U<br />:2&#859...".<br />Error on line 149 at "... :",U<br />:2&#8594...".<br />Error on line 149 at "... :",U<br />:2→...".<br />Error on line 149 at "... :",U<br />:2→Z...".<br />Error on line 161 at "... PROBABILITY: OV...".<br />Error on line 161 at "... OVER ",A<br />:Hori...".<br />Error on line 161 at "... ",A<br />:Horizonta...".<br />Error on line 161 at "... ",A<br />:Horizontal...".<br />Error on line 202 at "... PROBABILITY: OV...".<br />Error on line 202 at "... OVER ",A<br />:Hori...".<br />Error on line 202 at "... ",A<br />:Horizonta...".<br />Error on line 202 at "... ",A<br />:Horizontal...".<br />


Corresponding code:


Code:
:Text(0,0,"SCANING, FILING, CREATING
:Text(6,0,"AND PROCESSING LIST DATA...
:Text(18,8,"(C) ALEX GLANVILLE 2005
:Text(24,23,"TO BE USED WITH:
:Text(30,6,"PROB SIM - 5. DRAW CARDS
:Text(56,0,"VERSION:2.0.1
:A+1→X
:For(B,1,A
:X-1→X
:Text(50,0,"CARDS LEFT TO SORT:",X,"         "
:∟SUIT(B→C
:∟VALUE(B→D
:etc


SC3 doesn't play nice with HTML codes. Like &#8735; for the List L.
  
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
» Goto page 1, 2, 3, 4, 5, 6  Next
» View previous topic :: View next topic  
Page 1 of 6
» 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