Fig. 1Black and white line drawing of Speak snd Spell - Use your keyboard!
Module in slot: (activate with "#")

Javascript Speak & Spell Simulator

How to Use

Updates

2020-09-30: Added the "Basic Builders" module! Also, UI to control module slot.

2020-05-15: Added module toggle announcement. Fixed overlap issues with sound toggle button. "Basic Builders" module is almost ready to be added: only missing level "D".

2019-11-1: Added "Say It" button and mode. Added "Letter" button which places a random letter on the screen and places you in "Secret Code" mode. Added images for all buttons.

2019-10-28: Added "Clue" button for the Mystery Word game. Added "Secret Code" button & mode. Javascript no longer tries to load character images that don't exist.

Creation and Evolution

The creation and evolution of this Javascript Speak & Spell simulator has spanned more than a decade. I created the first version back in July of 2008. At first, it only supported the "Mystery Word" (hangman) mode. Then, in May 2009 I added "Spell It" mode, which selected each word randomly from the list of all words I had recorded. Two years later in 2011, I added captions when sounds are muted, a change inspired by my attendance during 2010 and the following years of ASL (American Sign Language) classes. Most recently, in 2019, I made a concerted effort to add missing features and to dramatically improve the accuracy of the simulation to very closely match the behavior of a real Speak & Spell. Difficulty levels A-D can be selected, the spelling game reports your score after ten words, Replay and Repeat work, ambiguous words with clarifiers are supported (such as "for as in for someone"), and the accessibility of keyboard-based interactivity is much improved. I even added the entire contents of the "Noun Endings" module, and (most exhaustingly) all words are selected in the authentic order you'd get from a real Speak & Spell.

The image of the Speak & Spell on this page was the original inspiration for the project. I found myself looking at one of the patents hoping for clues which would help me to produce a "circuit bent" version of one of my Texas Instruments toys. I have not only my childhood Speak & Spell, but also a Speak & Math ("you've got my number!") and a Speak & Read. The Speak & Read being my least favorite and therefore most sacrificial, I had opened it up and was systematically connecting each pair of points on the circuit hoping for some cool effects. I have always wished to know more about electronics, and my level of knowledge and equipment did not afford me any more sophisticated techniques. That project never went anywhere, but when I saw the image of the Speak & Spell from the patent application, I knew I had a fun idea for reworking my ugly duckling of a programmer's website. Now, I can say with reasonable confidence that it is the only non-Flash online Speak & Spell, as well as the most faithful to the original!

Word Order

It was not until I found Furrtek's page about creating a custom module for the Speak & Spell that I realized that the order of the words given in the "Spell It" mode might be deterministic. His mention of the RSCRAM routine sent me off into the code from the patent (the source code is more easily readable there than in the earlier US4189779A) as well as his linked page about the TMS1000 opcodes.

After reading the opcodes in the RSCRAM routine, it was clear that relative to whatever random word was selected as the start of the ten-word sequence, the words were actually used in the following sequence of indexes: 6, 7, 5, 8, 9, 2, 0, 1, 3, 4. To my delight, my Speak and Spell exhibited this behavior experimentally. Therefore, I set out to determine the real underlying word order so that I could produce a more accurate simulation. I started by running through up to ten games of "Spell It" in order to determine the full order of words for a certain level. Later, I was able to strategically select 5-6 games to achieve the same result. In this time-consuming way, I eventually determined the underlying order of the build-in word lists as well as those in the "Noun Endings" module.

Try This

Here's a cool party trick which will earn you points with your fellow nerds: enter the first word of your "Spell It" session. If my simulator knows the word, it will output the full sequence of words that will come next (sometimes a word appears in the list twice, so there are two possible sequences). You'll look like a regular Nostradamus.

Simulator or Emulator

Strictly speaking, my Javascript Speak & Spell is not an emulation but a simulation. The logic and programming has been implemented from scratch. Therefore, it will always have certain inaccuracies in timing and so forth. It has crossed my mind that I might be able to create an emulator in the browser. For this, I would start either with the opcode listing from one of the patents, or with one of the ROMs for MAME that are available online. Then, I would write software to convert that into WebAssembly which could run in a browser. The voice synthesis and the display, however, would need to be done outside WebAssembly. So, it would still be somewhat of a combination between emulation and simulation, but the logic would certainly be about as accurate as possible. It would be fun to learn WebAssembly and create a cross-compiler, but it would also probably require a fair amount of effort.

That, and it's already been figured out, though the voice synthesis seems a bit off: Speak & Spell emulator in browser on archive.org via MAME compiled to WASM with Emscripten. At least, I think that's how they did it.

My Speak & Spell

My trusty, reliable Speak & Spell is a USA version with membrane keyboard and gold "Texas Instruments" lettering in the lower right of the display, indicating that it is a Type 2 model manufactured some time between 1980 and 1986. It is serial number LTA2884.