2025-05-25 - AlphaSmart 3000 And Unicode

Recently i bought two inexpensive AlphaSmart 3000's [1] at the thrift store. They are in good condition. I updated them to the last firmware, which took some doing. I replaced the CR2032 cells.

These were made in the USA and are said to have durable construction. The manual specifies that it can run for 700 hours on 3 AA batteries. They hold 100 pages of text. These are glorified electric typewriters, more suitable for the Noosphere than for jacking into cyberspace.

They connect to a PC as a PS2 or USB keyboard. After pressing the SEND key, the screen shows a progress bar while it "types" the document into the current window, like a player piano. In theory the printer port can send over RS-232 but i couldn't find pinout documentation.

Some Greek and Latin symbols exist, but they do not work out of the box in DOS nor in Linux. Symbols are sent by "typing" CP1252 Alt-codes [4]. These would work correctly in Windows, but in DOS they result in spurious characters.

For example, if i type recipe text below:

    Preheat oven to 350°F and sauté onions...

On the AlphaSmart, i would type Alt-Shift-8 for the DEGREE SYMBOL and Alt-E, then the letter e for the LOWERCASE E ACUTE SYMBOL, and the LCD displays the text as i would expect.

When i press the Send button, the AlphaSmart sends Alt-0176 for the degree symbol and Alt-0233 for the lowercase e acute symbol. On a DOS PC using CP437, this results in the LIGHT SHADE character and the GREEK CAPITAL LETTER THETA as shown below:

    Preheat oven to 350░F and sautΘ onions...

I wrote an AWK script [5] to convert these mis-encoded characters to \uXXXX escape sequences, which can be decoded by utf8tocp 0.9.5r5 [6].

Suppose i save the AlphaSmart text into a file named recipe.as3 and run my AWK script.

    C:\>mawk -f astouni.awk recipe.as3 >recipe.uni

Now the file named recipe.uni will contain the text below:

    Preheat oven to 350\u00B0F and saut\u00E9 onions...

I can use utf8tocp to convert this to UTF-8 like so:

    C:\>utf8tocp -r 437 recipe.uni recipe.txt

Now recipe.txt contains the UTF-8 text below:

    Preheat oven to 350°F and sauté onions...

Footnotes

[1] AlphaSmart (wikipedia)
[2] AlphaSmart 3000 User Guide (PDF)
[3] AlphaSmart System 3 Update Guide (PDF)
[4] Alt-codes (wikipedia)
[5] astouni.awk
[6] utf8tocp 0.9.5r5
[7] Writing On The AlphaSmart 3000 by pgadey

Tags

bencollver
retrocomputing
technical