TRS-80 Model 100
(Last modified 22 Jan 2010)


I picked up a couple of  TRS-80 Model 100 (M100) laptops a couple of years ago, and dusted them off again just recently.  I have never been a fan of Microsoft, but I will give credit where it is due.  Bill Gates and his team did a remarkable job on this box.  When it came out, and for years afterward, it was a truly kick-ass machine.  It's still a hoot to tinker with, even now.

If you're sitting in front of a 3 GHz quad-core with 2 GB of RAM, or reading this on a 400 MHz PDA with Bluetooth and WiFi, you may be chuckling about a machine with 32 KB (yes, kilobytes) of RAM and a clock speed of 2.4 MHz (yes, megahertz).  But if you're really into embedded control and if you like to get your hands dirty in the innards of a well-designed machine, I doubt you'll find anything better.

I'll skip the obligatory list of features and options; you can do a search for "TRS-80 model 100"
and find lots of pages filled with that stuff.  Two pages I've found especially helpful are Club100 and Ira Goldklang's TRS-80 Revived Site.

Instead, I'll describe some quick hacks I did on one of these units to get it back on-line.


Wall-wart

One of the units did not have a wall-wart supply with it.  The M100 takes a 6VDC wall-wart but I was a bit concerned.  The M100 draws a tiny amount of current when at rest.  If I hooked up my bench supply and set it for 5 VDC, the current meter on the supply didn't even budge, so the box was drawing way less than 100 mA.  At that low of a draw, I was afraid to hook up an unregulated 6 VDC wall-wart.  One such module I pulled from my junk box tested out as 7.7 VDC unloaded.  If the M100 didn't draw enough current, I was concerned I would be applying too much voltage to the circuitry and could end up frying something.

So I scrounged a 5 VDC switching wall-wart from my junk box.  This type of wall-wart is ideal, since its output is fixed at 5.0 VDC.  If you're digging through a surplus shop looking for such a wall-wart, check the weight; a switching supply is usually very light, especially for the rated amount of current (this unit is rated for 2.5 AMPS, way more than the M100 is ever going to need).  I recabled the wall-wart by cutting off the end plug, finding another plug that matched the M100's jack, then hooked it up to the new wall-wart.  Be sure you wire the plug as center-negative!


Battery-backup

The M100 used a soldered-in NiCd battery to keep the contents of the 32K static RAM intact when unpowered.  The battery was rated to preserve memory for 30 days.  Unfortunately, the battery in this unit had died long ago.  I didn't have the exact replacement and frankly, didn't feel like putting another battery in since this one had leaked a bit at the edges when it died.

I opted for replacing the battery with a 1 F (yes, Farad) super-capacitor.  These are available at different websites; I think I got mine at Electronic Goldmine years ago.  Make sure the super-cap you use is rated 5 VDC or better.  The pictures below show what is involved.

Battery and super-caps

On the left is the original battery pulled from the M100 motherboard.  On the right are two 1 F super-caps.  I soldered one of these caps on the motherboard in place of the battery.


Super-cap installed on motherboard


Here is the super-cap installed on the motherboard.  I've added short red and black wires to reach the solder pads, stuck the cap down with a little blob of hot glue, then added more hot glue to the top of the cap to keep the connections from shorting against anything.

I powered the M100 from its new wall-wart for a while, then removed power and tested the voltage across the super-cap.  It maintained its voltage very well and makes a nice battery backup source.  Since I did that mod, I've had the power removed for as much as 12 hours with no loss of RAM.  Someday, I'll do a more exhaustive test to see how long the M100 can sit without power before RAM finally dies.  For now, I'm satisfied that this is a good solution.


Y2K fix

The M100's real-time clock did not handle century values; it was designed in the late 1980s and I doubt anyone expected it to be around into the next century.  So the last time I powered up my M100, it confidently announced that today was January 21, 1910.

The fix for this is well known; change two bytes at specific locations in the M100's ROM.  To do that, you have to have a 27C256 EPROM and an EPROM programmer.

Note that the early motherboards used a ROM with non-standard pinout.  You can tell if your motherboard has a ROM compatible with the 27C256 by looking at the part number on the current ROM; if the P/N is 3256C07-xxx, your ROM is compatible; the 'xxx' is a three-character revision code and could be anything.

Happily, my M100 motherboard used a ROM with a pinout that matched a 27C256 UV-erasable EPROM.  A quick root through my junk box turned up a spare 27C256.

The rest is easy if you have the right tools.  I pulled the original, uneraseable 27C256 from the motherboard, stuck it in my venerable EMP-10 programmer, and read the contents into a file on the PC.  I then used the EMP-10's buffer editor to change:

Address
From
To
0x5A53
0x31
0x32
0x5A56
0x39
0x30

I put my erased 27C256 into the programmer and burned the modified image into it.  I then plugged the new 27C256 into the motherboard, applied power, and the M100 got the date right!


ROM modified to be Y2K-compliant

Above is a picture of the motherboard with my modified 27C256 installed.



The web is filled with pages devoted to these little boxes and the community built around them is still turning out mods and hacks.  The motherboard brings out plenty of signals for hacking in your own hardware, and there are lots of option ROMs floating around that will add new features to your old M100.  In fact, I was tempted to pull out my M100 because of an article I found while rereading an early issue of MAKE magazine.  So dust off that old treasure and have some fun with it!


Home