Cemetech's jsTIfied calculator emulator started fifteen months ago as an online TI-83+ emulator, then gradually expanded to support the TI-83+SE, TI-84+, and TI-84+SE. A month or two ago, I added TI-73, TI-76.fr, TI-81, TI-82, TI-82 Stats.fr, and TI-83 support to this tool. Now that I have my hands on the TI-84+CSE, I'm happy to announce that I have implemented TI-84 Plus C Silver Edition support in jsTIfied.

Of course, since only a few calculators exist in the wild, very few users even have calculators to dump ROMs off of, and to save temptation, jsTIfied's TI-84+CSE features will not be present in the public copy of the emulator for a few weeks. Since the community discovered the LCD controller model from critor's review model, it was possible to start thinking about the changes I would need to make to jsTIfied to support the TI-84+CSE. Once I got my own calculator, I was able to use assembly stubs to dump the ROM, one page at a time, and use it to test out my work. I hope that this addition to my venerable tool proves useful, and I will unlock the TI-84+CSE emulation to the public once I see that more calculators are making their way into the wild. Remember, kids: sharing ROMs is illegal, and downloading ROMs for calculators you don't own is illegal too.

I do what I can. Unfortunately, beyond emulating the LCD (which was a pain in the neck, because it has 8 rather confusing auto-increment modes, according to the datasheet), I also had to write some compression for storing calculator state in DOM storage. It turns out that Chrome is particularly miserly about LocalStorage space, and I was surprised to read that the developers wish they didn't even have to support the feature.

Do you have some error detection on the DOM storage stuff to suggest users change their settings?

Unfortunately, Chrome doesn't support enlarging DOM storage, and it doesn't look like Firefox does either. Do you know if any browsers (other than Chrome) have somewhat restrictive settings that I should test to make sure it's functional for others once I make this new feature available?

Just not from script. For example, Chrome allows webapps to enlarge "permanent storage", but only if they're special Chrome apps, as far as I can tell. I believe I've seen reports that Firefox is shrinking its DOM storage from 5MB to less in future versions, though, so I need to see if that's the case. The TI-84+CSE emulation needs about 4.3MB of DOM storage: 4MB for the Flash, 128KB for the RAM, and the rest to save CPU state, screen image, emulator state, and other fun stuff.

Edit: @comic: It's locked down in that the modules that implement 84+CSE support are disabled in the public version of the javascript mass that clients get. Only my private version (at a separate URL) has the modules enabled.

In firefox you can about:config increase the DOM storage as I had to do it at home because for some reason if you try a smaller rom first and switch to a larger one it sometimes will just fall over and error.

If I get a chance to play with a clean fresh Firefox profile I'll narrow down which about:config setting it is.

"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.

Great work ! But as far as I understand, only you, Critor and a few others will be able to use it ?

Correct, at least until people are able to buy the calculators, at which point anyone who knows reverse-engineering skills would be able to theoretically make their own emulator, so I might as well make the features public.

Jonimus: Interesting, I'll have to look into that so I can offer the user options if jsTIfied can't get the space it needs to save state.

Remember, kids: sharing ROMs is illegal, and downloading ROMs for calculators you don't own is illegal too.

Sharing ROMs without permission certainly is illegal, but downloading ROMs (whether for calculators you own or not) is not illegal, at least in the US. Heck, I've downloaded ROMs for a calculator I don't own from TI's site; would you say that is illegal? I didn't have to accept any form of EULA, and copyright law doesn't prohibit it. Even if I were to download the file from someone who does not have permission to share it (eg, from a a site), I would not be infringing any copyright; the other party would be the infringer.

Likewise, downloading music is also not illegal. Uploading music without permission is illegal. All copyright cases involving music "downloads" have actually been about sharing the music (usually by using some peer-to-peer* client that was not configured not to share). But that's going off-topic, so I'll stop here.

Remember, kids: sharing ROMs is illegal, and downloading ROMs for calculators you don't own is illegal too.

Sharing ROMs without permission certainly is illegal, but downloading ROMs (whether for calculators you own or not) is not illegal, at least in the US. Heck, I've downloaded ROMs for a calculator I don't own from TI's site; would you say that is illegal? I didn't have to accept any form of EULA, and copyright law doesn't prohibit it. Even if I were to download the file from someone who does not have permission to share it (eg, from a a site), I would not be infringing any copyright; the other party would be the infringer.

Likewise, downloading music is also not illegal. Uploading music without permission is illegal. All copyright cases involving music "downloads" have actually been about sharing the music (usually by using some peer-to-peer* client that was not configured not to share). But that's going off-topic, so I'll stop here.

Restrictions: You may not reverse-assemble or reverse-compile the software program portion of the Licensed Materials that are provided in object code format. You may not sell, rent or lease copies of the Licensed Materials. You may not use the Licensed Materials on any emulator of a TI calculator unless the emulator is obtained from TI.

Well, in order to be able to downlaod the ROM, it would have to be uploaded first, and the ones who could do that are Critor and KermM, for now, so, that would be traced back preffy easily by TI

That's true in this case. I'm sure those two won't redistribute the ROM anyway even if it couldn't be traced to them.

KermMartian wrote:

adriweb wrote:

(Also, I'm not 100% sure, but the OS you can freely download from TI aren't exactly ROMs)

They lack both the boot code and the calculator's unique certificate. So you can't download those OSes an use them unless you already have those other pieces from a real (or fake) calculator.

True, but that issue is orthogonal and irrelevant to the copyright status of the files.

elfprince13 wrote:

This is only true if you can show in good faith that you didn't know the offending uploader didn't have a license to share.

Copyright law deals with the reproduction and redistribution of copyrighted works. Simply receiving a copy (eg, downloading) is neither reproduction nor redistribution (by the party receiving the copy) and cannot constitute infringement, just as simply using (viewing, reading) a copyrighted work cannot be considered infringement.

Like I said, all copyright cases so far have revolved around distributing files without license to do so; none have been about receiving copies. I believe this is because receiving copies of copyrighted works is not illegal.

I also said that I didn't have to accept it. Downloading is not an action that can indicate or imply agreement to any arbitrary terms that they post elsewhere on the page, just as installing software does not indicate agreement to any arbitrary terms (note that installing software, like downloading, does not require permission from the copyright owner). If they had required me to click an "I agree" button before downloading the file, that would be a different story. But I think mentioning an EULA is a distraction from the actual issue of copyright (ie, you don't need to agree to an EULA to use a copyrighted work). A pirate site will likely not have an EULA of any form anyway, and yet using copyrighted works from such a site is still legal.

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.