Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
[InDev] jsTIfied, a Javascript TI-83+ Emulator
Published by KermMartian on January 24, 2012 at 3:31:54 PM CST | Discuss this article (46)

For many years, perhaps since I first designed the fledgling version of SourceCoder 2.5, I have wanted to make a Javascript graphing calculator emulator. SourceCoder has a keypad that lets you enter tokens and symbols into its editor, but imagine if you could have a real calculator emulator right on the page to test your programs! Imagine if you could do BASIC development and testing online without having to touch an offline emulator or real calculator! This was my dream, but a combination of limited technology, limited experience, and legal hurdles restricted me from following through.

No longer.

First, the legal hurdles. It is illegal to distribute ROM images, so I couldn't make an emulator with a ROM image hosted on Cemetech. I couldn't even let people upload their own ROM images, or in any way let ROM images touch the Cemetech server. HTML 5 offers a solution to this conundrum in the form of what is called DOM Storage. Cemetech gives the javascript for my z80 core to clients, and they load their (legal, I hope) ROM image from their own personal calculator into their browser, but still entirely client-side. No ROMs are distributed in any form.

Second, the technical hurdles. The canvas element of HTML4/5 is powerful and fast enough to be manipulated and display a smooth image of a calculator screen in real-time. Modern computers and modern Javascript implementations are fast enough to run the massive code required for an emulated 6MHz CPU at faster than realtime. In addition, tools such as Google's Closure Compiler exist to optimize and compress Javascript for speed and size.

In a total of about four days separated by two months, I have put together jsTIfied, pronounced "justified", a Javasdript TI-83+ emulator. It is not ready for any public testing or release, and thus is sitting happily offline and not anywhere on Cemetech, but I'm proud to announce that it is fully-functional. As you can see from the screenshots below, I can do math, run applications, and I assure you, almost everything else an emulator such as PindurTI can do. Indeed, I owe a debt of thanks to Gergely Patai (or Patai Gergely), the author of the original PindurTI, for swathes of C code that I studied for jsTIfied, and for the key layout that I used for jsTIfied. In homage to PindurTI, I made the appearance resemble that much-loved emulator. I also owe thanks to JSSpeccy, a Javascript ZX Spectrum emulator that heavily contributed to my understanding of emulating a z80 processor, and some segments of code from which found their way into jsTIfied, especially in helping me to wrap my head around emulating interrupts.

I have great plans for jsTIfied, including letting you somehow test programs from the archives, run SourceCoder projects, and much more straight from your browser. Before that can happen, there are plenty of tweaks and changes for smoothness to be made and features to be added, so for now, enjoy the screenshots below!



Permalink
2012 Articles
January 2012 January 2012 [Back to News Archives Index]

» Happy New Year; Cemetech's 2011 In Review published January 5, 2012 by KermMartian
» Defeat SOPA/PIPA; Contest 8 End Looms published January 18, 2012 by KermMartian
» 900K Downloads; Contest 8 Ends Today published January 22, 2012 by KermMartian
» [InDev] jsTIfied, a Javascript TI-83+ Emulator published January 24, 2012 by KermMartian

February 2012 February 2012 [Back to News Archives Index]

» [Prizm] Tetrizm v1.0 published February 2, 2012 by KermMartian
» Public jsTIfied Beta: a TI-83+ in Your Browser published February 6, 2012 by KermMartian
» Cemetech Contest #8 Results published February 22, 2012 by KermMartian
» State of the Prizm: February 2012 published February 24, 2012 by KermMartian
» Introducing "Programming the TI-83+/84+" published February 28, 2012 by KermMartian

March 2012 March 2012 [Back to News Archives Index]

» Cemetech to Bring Full-Color Prizm 3D Graphing published March 3, 2012 by KermMartian
» Graph3DP Video Demo; Prizm OS 1.04 published March 15, 2012 by KermMartian

April 2012 April 2012 [Back to News Archives Index]

» Graph3DP v1.0 Beta 1; Prizm Hacking Continues published April 1, 2012 by KermMartian
» Prizm Successfully Overclocked, Underclocked published April 4, 2012 by KermMartian
» United-TI To Merge Into Cemetech published April 15, 2012 by KermMartian
» United-TI Forum Archives Open at Cemetech published April 21, 2012 by KermMartian

May 2012 May 2012 [Back to News Archives Index]

» More Prizm Gaming: 3D and OverClui published May 2, 2012 by KermMartian
» New Moderators: Tari, Weregoose, Xeda112358 published May 9, 2012 by KermMartian
» Kernel Hacking: Connect an SSD1289 LCD to a Beaglebone published May 17, 2012 by KermMartian
» SourceCoder: A TI-83+ Emulator in your TI-BASIC Editor published May 28, 2012 by KermMartian

June 2012 June 2012 [Back to News Archives Index]

» First Impressions of the Casio ClassPad 330 published June 19, 2012 by KermMartian
» "Programming the TI-83+/84+" Heads to Production published June 21, 2012 by KermMartian
» Doom, 3D Graphing Advance on Casio Prizm published June 25, 2012 by KermMartian

July 2012 July 2012 [Back to News Archives Index]

» Doors CS 7 Ornament, IRC Stats, Updates published July 12, 2012 by KermMartian
» A Formal Unveiling of WikiPrizm published July 20, 2012 by KermMartian

August 2012 August 2012 [Back to News Archives Index]

» TI-89 Titanium Disassembly and Backlighting published August 9, 2012 by KermMartian
» [Prizm] Introducing LuaZM published August 17, 2012 by KermMartian
» Back-To-School Guide 2012 Part 1: Buying a Graphing Calc published August 27, 2012 by KermMartian

September 2012 September 2012 [Back to News Archives Index]

» Graph3DP 1.0 Release Candidate 1 published September 2, 2012 by KermMartian
» Back-To-School Guide 2012 Part 2: Put Games on Your Calc published September 4, 2012 by KermMartian
» [Prizm] Graph3DP 1.0 Released published September 6, 2012 by KermMartian
» LuaZM v0.1 Beta: Lua for the Casio Prizm published September 8, 2012 by KermMartian
» Back-To-School Guide 2012 Part 3: Learn to Program published September 12, 2012 by KermMartian
» Calculator Hacking at Maker Faire 2012 published September 13, 2012 by KermMartian
» jsTIfied Online Emulator Adds Beta TI-84+/SE Support published September 18, 2012 by KermMartian
» "Programming the TI-83 Plus/TI-84 Plus" Published published September 28, 2012 by KermMartian
» Maker Faire 12 Day 1: Educators' Choice; Hackaday Interview published September 29, 2012 by KermMartian

October 2012 October 2012 [Back to News Archives Index]

» Cemetech at World Maker Faire 2012 Recap published October 3, 2012 by KermMartian
» Games: Alien Breed 5 and Bloxorz published October 6, 2012 by KermMartian
» jsTIfied 1.0 Release Candidate 1 published October 9, 2012 by KermMartian
» Play @ Cemetech: MC and UT2004 published October 14, 2012 by KermMartian
» "Programming the TI-83+/84+" for Kindle/eBook published October 20, 2012 by KermMartian
» Cemetech Gets a Fresh Look published October 25, 2012 by KermMartian

November 2012 November 2012 [Back to News Archives Index]

» TI-84 Plus C Color-Screen Calculator Discovered published November 8, 2012 by KermMartian
» Cemetech Founder to Speak at Texas Instruments T3 Conference published November 9, 2012 by KermMartian
» Official Updates About TI-84 Plus C Silver Edition Software published November 12, 2012 by KermMartian
» Cemetech Contest #9 Announced published November 14, 2012 by KermMartian
» Nspire Ribbon Repair And Miscellany published November 18, 2012 by KermMartian
» 200K Posts, Other Stats published November 18, 2012 by KermMartian
» Exploring Options for Expansion published November 19, 2012 by Alex
» Casio Announces ClassPad fx-CP400 Color Touch Calculator published November 29, 2012 by KermMartian

December 2012 December 2012 [Back to News Archives Index]

» Official TI-84+CSE Updates: Specs, FAQs, More published December 12, 2012 by KermMartian
» "Self-Teaching a Love of STEM: A Personal Tale" published December 27, 2012 by KermMartian
» Announcing jsTIfied 1.0, an Online Graphing Calculator published December 31, 2012 by KermMartian

Advertisement