Last edited by KermMartian on 07 Jan 2013 03:36:43 pm; edited 4 times in total

Long have I enjoyed offline graphing calculator emulators like Virtual TI, TiLeM, and WabbitEmu. The ability to run a TI-83 Plus or TI-84 Plus calculator on a computer is invaluable for math classes and programming, and I have seen more than a few teachers showing calculator skill in class with a projector and an emulator. However, installing an offline calculator emulator is often not feasible, and many popular emulators run only on Windows, not on Linux or Mac OS. To bring you a graphing calculator you can run on any platform with a web browser, I am proud to introduce jsTIfied 1.0.

jsTIfied is an online graphing calculator emulator, emulating the TI-83 Plus, TI-83 Plus Silver Edition, TI-84 Plus, and TI-84 Plus Silver Edition. It runs entirely in your browser using HTML5 and Javascript, so it requires neither Java nor Flash. For legal reasons, you must load your own ROM image, which is stored in your browser and never sent to the Cemetech server. As a full calculator emulator, it offers lots of features:

:: Full TI-83+/TI-84+ emulation including accurate LCD physics for good-looking grayscale
:: Runs on all major browsers and operating systems
:: Can take animated and still screenshots
:: Load any .8xp, .8xk, etc program or App to test it
:: Drag calculator files onto the jsTIfied LCD to import them
:: Can export all files from the emulated calculator
:: Integrated with the SourceCoder TI-BASIC IDE/editor, so that you can write programs in SourceCoder and immediately test them on a calculator
:: Built-in debugger and CPU/memory view for assembly programmers

I could go on and on about the thirteen months of optimization and development that made this project possible, but I'd rather you just get started using jsTIfied as soon as possible. Simply grab your calculator's ROM image (and be aware that many believe it is illegal to download ROMs from Google if you don't own the calculator) and load it into jsTIfied to get started. (Free and fast) registration is mandatory to use jsTIfied only to prevent abuse. Whether you're a student using jsTIfied for math, a teacher using it in a demonstration, or a programmer using jsTIfied to test a project, I hope you enjoy it.

I, too, have seen my math teacher use this (though she has yet to bring it up in class) because the school emulator is a peice of crap. i just wish it ran a tiny bit faster, but once again, that may be the schools crappy software. i do also enjoy that it never seems to fail with exporting of any Variable- a big problem ive encountered with other emulators.

Great, I'm glad to hear it! To everyone, feel free to tell your favorite math teachers about this if you think it might benefit them. Also, I have a request from Adriweb and critor for some sort of "Try in jsTIfied" API so that people can try programs in jsTIfied before downloading them from sites' archives.

if you accomplish that API, many people will be happy. though how would something like that work, when jsTIfied keeps the ROM on the user's computer?

The same way that fetching projects from SourceCoder into jsTIfied works: jsTIfied issues an AJAX request for the file in question, the Cemetech server fetches it (and unpacks the zip if it's in a zip), and forwards the data back to jsTIfied. jsTIfied then emulates the silent linking protocol to load the file(s).

if you accomplish that API, many people will be happy. though how would something like that work, when jsTIfied keeps the ROM on the user's computer?

The same way that fetching projects from SourceCoder into jsTIfied works: jsTIfied issues an AJAX request for the file in question, the Cemetech server fetches it (and unpacks the zip if it's in a zip), and forwards the data back to jsTIfied. jsTIfied then emulates the silent linking protocol to load the file(s).

No no. I believe he's talking about the ROM. How will jsTIfied fetch the ROM?

There are two types of people in the world: those who can extrapolate data from incomplete data

if you accomplish that API, many people will be happy. though how would something like that work, when jsTIfied keeps the ROM on the user's computer?

The same way that fetching projects from SourceCoder into jsTIfied works: jsTIfied issues an AJAX request for the file in question, the Cemetech server fetches it (and unpacks the zip if it's in a zip), and forwards the data back to jsTIfied. jsTIfied then emulates the silent linking protocol to load the file(s).

No no. I believe he's talking about the ROM. How will jsTIfied fetch the ROM?

No, he's talking about the files. Essentially, what he was talking about was having each file on a TI archive website have a "Try it out" link that would automatically send the file to the jsTIfied emulator.

Which makes me think: I know that computers can have filetypes registered to different programs. Does that also include websites? Because then we could automate the transfer system by allowing users to open files on their desktop directly in jsTIfied.

if you accomplish that API, many people will be happy. though how would something like that work, when jsTIfied keeps the ROM on the user's computer?

The same way that fetching projects from SourceCoder into jsTIfied works: jsTIfied issues an AJAX request for the file in question, the Cemetech server fetches it (and unpacks the zip if it's in a zip), and forwards the data back to jsTIfied. jsTIfied then emulates the silent linking protocol to load the file(s).

No no. I believe he's talking about the ROM. How will jsTIfied fetch the ROM?

No, he's talking about the files. Essentially, what he was talking about was having each file on a TI archive website have a "Try it out" link that would automatically send the file to the jsTIfied emulator.

Which makes me think: I know that computers can have filetypes registered to different programs. Does that also include websites? Because then we could automate the transfer system by allowing users to open files on their desktop directly in jsTIfied.

Sounds like a feature-request for tokens

[nikky] the free market will decide who gets to be on the channel and who isn't
Array(16).join("wat" - 1) + " Batman!"
CC20: Air

Essentially, what he was talking about was having each file on a TI archive website have a "Try it out" link that would automatically send the file to the jsTIfied emulator.

I know what he meant, I just thought it was suggested that jsTified would autoload the ROM from the host computer upon loading the program.

KermM, does jsTIfied hold on the program to be tried so it can successfully load after a ROM is loaded? Or is DOM storage shared in the browser so multiple tabs/pages can access the ROM that has been loaded?

There are two types of people in the world: those who can extrapolate data from incomplete data

DOM storage is segmented by domain, not page or address or tab, so any Cemetech page or tab can access all the DOM-stored data of any other Cemetech page. Presumably the way this would work would be to load the program(s) onto an already-initialized calculator.

I can probably guess the answer, but will there be any USB mingling with jsTIfied? I assume not due to the browsers using JS and speed concerns and that stuff.

Also, will there be any dev tools to aid in IO development? If I could get either custom JS running and handling the IO port or have 2 calcs connected on a virtual IO cable, GlassOS could get some official IO driver work.

[nikky] the free market will decide who gets to be on the channel and who isn't
Array(16).join("wat" - 1) + " Batman!"
CC20: Air

I can probably guess the answer, but will there be any USB mingling with jsTIfied? I assume not due to the browsers using JS and speed concerns and that stuff.

I have no USB stuff planned other than the bare minimum values necessary to make the TI-OS happy.

Quote:

Also, will there be any dev tools to aid in IO development? If I could get either custom JS running and handling the IO port or have 2 calcs connected on a virtual IO cable, GlassOS could get some official IO driver work.

I really wanted to implement gCn support, though it would totally slam the server running the backend. Two calculators connected via a virtual IO cable would be very interesting, but probably still slam the backend.

I sure did! Thanks for noticing. I'm not too surprised that a few of the comments are "dedicated graphing calculators are a waste of money", of course. We'll see if any of the other tech news sources pick up the story when they return from vacation tomorrow.

*bump* Thanks to a teacher who came here last night trying to use a TI-83 ROM, I realized that jsTIfied lacks TI-83 support. I looked up the differences, and it will mainly be (1) new in() and out() routines and (2) a new memory module for the different memory mappings that the TI-83 has. I'm debating whether to just shoehorn the support into my existing TI-83+ classes or try to pull things apart into a "general" class and TI-83+/84+ and TI-83-specific classes. The latter is probably a little cleaner, but the former would be much faster. Thoughts?

When you say faster do you mean emulation speed or time for you to code? If its coding time but results in cleaner more maintainable code I'd go that route. A little extra time spent now can save a lot later.

Especially as it may allow you to more easily add support for say the TI-86 or 82 as well.

"Always code as if the person who will maintain your code is a maniac serial killer that knows where you live" -Unknown

"If you've done something right no one will know that you've done anything at all" -Futurama

"Have a nice day, or not, the choice is yours." Tom Steiner

<Michael_V> or create a Borg collective and call it The 83+
<Michael_V> Lower your slide cases and prepare to be silent linked. Memory clears are futile.

Time for me to code; my time is at a ridiculous premium and getting worse by the minute. I certainly like the idea of being able to add TI-86 or TI-82 (or TI-73, TI-81, ...) support easily. I'll put more thought into how I can do this cleanly, thne.

I've been using jsTIfied as an emulator for my TI-84+. When I type Horiz or click on Horiz from the Mode button on the Keypad and run the program, there is always a syntax error located on the r of Horiz. It seems that the emulator is reading Horiz as a string of letters rather than a command.
Manually typing Split instead works, but my calculator doesn't have a Split command in the catalog.

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.