Wednesday, July 05, 2017

A Digital Walk Down Memory Lane: Hacking the TRS 80 Model 100

Any list of Greatest Computing Devices of All Time needs, in my opinion, to feature the TRS 80 Model 100 near the top. My Dad had one of these laptops growing up, and it was truly revolutionary. It was remarkably light (especially when compared to the Luggable of the day), ran for 20 hours on 4 double AA batteries and had an exceptionally high quality keyboard (even by today's standards). It included a built in 300 baud modem, which meant you can shuffle data on and off the device either by serial port or telephone line. In exchange for these remarkable features, you had to deal with a screen that was a measly 8 lines, and a system with 32KB of storage. (Though apparently, both of those limits were hackable to some degree.)

A couple of weeks back my Dad gifted me his original Model 100. In my experience, most computing hardware doesn't age well. What was once cutting edge tech, turns into bulky, plastic junk through no fault of its own. But not the Model 100. Slipping it from its black leather-like case, I couldn't help but feel like I was still holding a premium piece of computing tech.

(The banana is provided for scale)

I popped in 4 AA batteries, flicked the on switch, and the device immediately snapped to life. Oh yeah, I had forgotten that the Model 100 had nearly instantaneous 'on' with effectively no noticeable boot procedure.

I'd always thought of the Model 100 as the ultimate writer's tool, as it provided a high degree of portability with nothing to distract the author.

But, having spent a little over an hour playing with the device, I have a new found respect for it. This is a geek's dream. The computer appears to be essentially a Basic powered Read-Eval-Print-Loop. Sure, there's a text editor, and some sort of address and scheduling app, but really, this computer is little more than a Basic interpreter. There's no shell of any kind, just a Basic prompt. Want to delete a file? Use a Basic expression. Want to set the current time and date? Again, execute some Basic.

The quick reference guide for using the computer is a Basic programming reference manual, which hearkens back to a day when you really had to read the manual.

The Basic interpreter wasn't just a crude OS shell. As books like 44 Programs for the TRS-80 Model 100 Portable Computer show, it was intended to let you whip up little apps like you might find on your computer and phone today. Want to do cash flow analysis, calculate earnings on your investments or keep track of your running? A little Basic program was the answer.

I typed in the 'Daily Codes' program from the above text, and sure enough, it worked:

The codes program generates random numbers which can be used by a business as a 'secret' code for the week. Man, it must have been sweet to spend a few minutes typing this program in and then have the compute take over this tedious task.

I also experimented a bit with having the computer generate tones. I had high hopes of having it generate some musical tunes, but alas, I got stuck on it and decided I'd sleep on the problem for now.

After having fiddled with Basic for an hour, I have to say that using a line-number based programming language seems like an exceptionally idiotic choice. Either forth or lisp, both of which existed in the 1980's, would have been an infinitely better option than Microsoft Basic. There's a certain simplicity to GOTO 250 I suppose, but there's almost no support for modularity of any kind, which means that the system simply can't scale.

But the real demise of a programming environment as Kill App has to be the spreadsheet. Even the most primitive spreadsheets could trounce Basic (and other programming languages) in terms of ease of use and business-problem-solving bang for their buck.

Despite Basic being a nightmare, I'm still impressed with the device and what the makers were trying to accomplish.

But what's the next move? Do I find a way to hook up the Model 100 to my desktop or cell phone over a serial connection? Getting data on and off the laptop is going to be essential to using it. Once I can do that, I can install forth on it and potentially have a far better programming environment at the ready. And then? Oh, who knows.

Regardless of how functional the Model 100 is today, I'll say that it's definitely been an interesting glimpse in the past of computing and no doubt still has room to inspire.


  1. The logical next step is to get a mini Arduino, install a Forth on it and homebrew some hardware to make your own portable computer that runs on 4aa batteries. Logical is what I mean. And really really fun.

  2. As you'll see from my latest Model 100 post, I considered this exact scenario.

    Imagine it: Arduino, A small LCD screen, a tiny battery and Forth. Input could be accomplished via bluetooth. Or, as long as I'm dreaming, why not just make it be Wifi. I could connect up to the watch to feed it commands over a wireless telnet like session.

    Alas, I don't quite see the pieces of the puzzle to make that quite come together.

    But, I can treat the Model 100 as the embedded system that it is.

    And yes, I can load forth on it:

    It's not quite as slick a package as a wearable. But, it's got a great keyboard, so that's a plus.