EJK's Tandy Model 100


Here is to be my personal knowledgebase for the venerable, incredible durable, versatile, not edible, yet uniquely enduring Tandy Model 100 Portable Computer. First, an overview of this wonder and some of the history behind it.

The Tandy Model 100

The Tandy Model 100 was the first commercially successful portable computer. It weighs about 5 pounds. It occupies the same footprint as an 8.5x11 inch sheet of paper, and is about 1.5 inches tall. It has a 72-key typewriter-style keyboard (with actual push switches soldered to a PCB under every key),a 40x8 character LCD screen, and AC power, rs-232, parallel, and cassette ports. It also has a builtin modem. It runs for 20 hours on 4 AA batteries. And it runs a Microsoft operating system and programming language, both of which are simple, stable, and a pleasure to use (Strange, I know, but true).

Those are a few of it's more interesting features. Yet now, nearly twenty-two years after it was first introduced by Tandy-Radio Shack in 1983, the M100 (as it's loyal, dedicated users call it) remains remarkably useful. Just a few of the things I've personally done with it:

These are just the things that were memorable enough to occur to me after a moment's thought. The fascinating thing about the M100 is it's verstaility. Much of this comes from it's builtin Microsoft Basic, which lends itself extremely well to "quick and dirty" programs, that are used once to accomplish a specific task. They are then erased and never heard from again. Occasionally, a program proves itself valuable or powerful enough to be worth saving and polishing. Many of these are found at Club 100, one of the longest-running M100 groups. Club 100 maintains what is (to my knowledge) the largest repository of M100 programs and knowledge on the 'Net.

Another major element of the M100 is it's elegant simplicity and durability. Inside it's black-and-beige case, it's a single-board computer! One board, the size of the writable area of a sheet of paper, contains everything that is the M100. One auxiliary board holds the LCD, and another is the keyboard, but all the processing and storage is on one board. To open the M100 up for surgery, just take a phillips screwdriver and remove four screws from each corner, shake, and *pop* - the computer opens up. You can find the 300 baud internal modem; The 80c85 CPU, running at 2.4 megahertz; The bank of four 8-kilobyte SRAM memories; The Microsoft Basic chip; The battery backup. The M100 is so elegantly simple. When something goes wrong, you can (or rather, must) actually fix it rather than go buy a new one.

M100 problems && Solutions


For the last 3 years I've had my M100, I've used it a lot and found out many of it's quirks and bugs. Here is a picture of it's inside that you can refer to when reading below:


Tandy M100 problems and solutions:
0) OMG! My M100 cold booted! Nnnnoooooooooooooooo!!!
1) Backup Battery failure
2) Embarassing or otherwise untimely sounds
3) Printing non-ASCII characters

Public Enemy #0: Cold Restarts
The M100 uses battery-backed RAM to store information. This ram requires an absolutely uninterrupted supply of at least 3.6V or it will lose everything in about 60 nanoseconds. If you follow my battery back advice below, you shouldn't have to worry about that.

Far more dangerous is the cold reboot. Even though it is damn reliable (Never thought you'd hear someone say that about Microsoft software, huh?), it is still imperfect. Particularly if you leave the M100 on and put it in a backpack, enough buttons will get pressed to most likely cause a serious screwup. After panicking for a few minutes, you may think the problem is over when you clear out the command buffer. This is much like what happens if you are irradiated with 1000 rads of nuclear radiation: You will experience apparent well being for about 10 hours, then suddenly die.

You may be able to detect early signs of coming death if your M100 does strange things (KILL command generates SN? error, for example). This means that the system is corrupted, and gauranteed to fault in the near future. When that happens, it will lock up and all your files will dissappear when you restart it. If you can still use it, get all your programs & data off it by any means possible - to another computer, tape, floppy, anything. If the M100 cold starts, these will be present but completely unreadable.

The cardinal rule is: DO NOT PANIC! Unless it was a particularly ugly crash, most likely all your text files are safe! When the M100 restarts, it does NOT clear it's memory, so everything that was there is probably still there, but the M100's file table has been wiped clean. However, because of this, the M100 will now blindly overwrite previous information. WHEN THE M100 COLD STARTS, DO NOT ENTER ANYTHING BUT BASIC! TEXT AND TELCOM WILL WIPE OUT MEMORY CONTENTS!!!

Thus, your number one priority is to get everything out of your M100 onto another computer before doing anything else. To do this, you need a null modem cable. Open up a terminal in your computer, configure the serial port the M100 is attached to 600 baud/8bit word, and have it concantate the output to either the console or a file. Then, go to your M100, enter BASIC, and type these commands: 'open "com:48n1d" for output as 1' [enter] 'forx=32768to65535:lprintchr$(peek(x));:nextx'. When you are finished, your console or text file will have a complete dump of your M100's memory. From there, you can find individual text files and send them back. ML or BASIC programs not previously evacuated are most likely lost.

But don't get overconfident, either... After recovering all of my (nearly full) M100's contents (including two school assignments, needed notes, and a French/English dictionary I'd been working on for weeks) to console and thinking I'd gotten a 1-up on the cold start, I'm still completely and utterly at a loss trying to comprehend how in the name of f*** I managed to lose it.

Problem #1: Battery Backup Failure
The first real problem with the M100 that I came across was the result of how I use it: I carry it around with me all day in my backpack, and it gets bounced around quite a bit. The first thing to go was it's backup battery. This is a small 3.6 volt, 60mAh NiCad battery that holds the SRAM data when the computer is off. It is the size of 3 large button cells stacked, and is held in place by nothing more than it's soldered leads. If you pop an M100 open, it's near the top center of the board by the AA holder. All that bouncing around continually shook the NiCad loose and continually wiped my memory out. My solution was as elegantly simple as the M100 itself: Run flexible wires between the battery and it's solder points and tape the battery in. Vibration problem solved and M100 reliability returned to 100%.

Problem #2: Embarassing sounds
If you do something the M100 wished to express strong disapproval of and really doesn't like, it will make a conspicuously loud, high-pitched BEEP. It is also capable of making 16383 other pitches lasting multiples of a fraction of a second. However, when you are in a classroom where you technically aren't even supposed to have a computer (but the teacher allows it because after the first day no one pays it any attention), BEEP is not good. The simple solution (assuming to you don't need sound for any other purpose) is to unwire the speaker. Look at the picture above - the speaker wire is the one at the bottom of the LCD panel. Pull it out, problem solved.

Problem #3: Printer doesn't understand M100 characters
Tandy's model 100 does a far better job at allowing users to input extended characters [runs off trying to find out how to enter ^ and ' characters to PC keyboard] than most PCs. Getting accented vowels is just the CODE key away. Why doesn't my PC have a code key to let me enter accented vowels, huh? However, as easy as they are to enter to the M100, I've found them much more problematic to export to Dead Tree Format. Thing is, the M100's extended ASCII character set is now 22 years old and unless you have a matching DMP-10x series printer from the same era, it's pretty much gauranteed that the M100's extended chars don't match the printers'. The solution to this problem is two-fold:

First, you have to find out if the printer does in fact have the characters, but at different places (ie ASCII 140 rather than 173). To do this, enter this one-line program in BASIC with the printer attached and on:
10 forx=32to255:lprint"(";x;":";chr$(x);")";:nextx
This will generate a list of every character and it's ASCII value on the printer. If the accented vowels are there, then you simply need a program to remap your extended characters to the printers'. That is an exercise I'll leave to the reader. If the accented characters are absent, it's a bigger problem: Your printer's character set needs to be changed.

I have a Panasonic KX-P2023 printer that I use for printing with the M100. It's got 5 builtin fonts and numerous character sets, and connected to a PC is capable of up to 360x180 graphics. Snicker all you want - unless you do digital photography, 180x180 halftone is plenty. Anyway, I leared from Bill Marcum on the M100 mailing list that the following will set the the KX-P2023 and apparently many compatible printers into international character mode:
10 E$=CHR$(27)
20 LPRINT E$+"t1"+E$+"6";
At that point, get another character list and rewrite your remapper. Problem solved thanks to Bill Marcum!

----
Contact ejkeever AT nerdshack DOT com.