The Model 100 Serial Terminal Project


Disclaimer: Several things: 1, I did all of this over a year ago and I don't have the setup with me to check facts. 2, I generally don't know what I'm doing, and there are probably easier and better ways to do this. 3, This is about as useful as recording TV onto vinyl. Sure you can do it, and sure you'll be able to point to it and say "Hey, isn't that cool", but it's not really all that useful.
When I was growing up at home, my parents used to have a teletype sitting in the junk room in our basement. It was one of the late model ones from the Teletype Corporation, I used to know the exact model but I forgot. It had those round keys and everything.

Anyway, the main thing it did was sit in a corner of the room and pick up dust. By the time the two factors that would've revived it came into play (1: I realized how cool it was, and 2: I realized I had the means to use it), my parents had gotten rid of it.

But, (and this is an important but, since it's the reason for this page) by that time a Tandy TRS-80 Model 100 had come into my possession. One of my Grandfather's clients died (he's a lawyer), and the will didn't specify for what would happen to the laptop. So he got it, and then when my folks and I visited, it came into our possession. And eventually I was the only person who kept interest in it, so it became mine. Then, one day I realized I could probably hook the Model 100 to my desktop computer over a serial cable, and this project was born.

Hardware

The first step in the project was connecting the model 100 to my linux desktop machine. I had plenty of db9-db25 connectors, so that wasn't a problem. What was a bit of a problem, however, was finding a null modem cable. After finding none around, I was forced to make a null modem cable. After some digging in the garage to find soldertail db9 connectors, some digging online to find the pinouts for a null-modem cable (If memory serves correctly, they were on the serial-terminal howto), and a few snips of the wire cutters on an old cat5 cable, I was in business. One important note about using cat5 for a serial cable: Try to make sure that the pairs twisted together are ones which are complementary. This probably doesn't make much of a difference, but it's something to think about.

Now that you've got the hardware down, it's time for the software which faciltates the connection.

Software

Now, there are two ways to go about this. 1) make the model 100 speak in a language your server understands, or 2) make your server speak model 100. Why is this so? Well, because of a comment in termcap:
# 9.11.2 (Tue Nov  7 00:21:06 EST 1995):
#       * Exiled some utterly unidentifiable custom and homebrew types to the
#         UFO file; also, obsolete small-screen hardware; also, entries which
#         look flat-out incorrect, garbled, or redundant.  These include the
#         following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
#         tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
#         apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
#         fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
#         yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
#         vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
#         trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
#         att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
#         tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,   
#         c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,  
#         regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
#         vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, 
#         vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
Yes, the trs100 is the one we want, and no, I've never been able to find this "UFO" file. The reason for it's exile was almost definately because it's "obsolete small-screen hardware"(40x8 chars).

So, this seems to suggest that the best solution is to make the model 100 speak another language. This seems easy enough. I found an application called vtemul.co lying around online. But, whenever I tried to install it, it failed miserably, resulting in large amounts of RAM vanishing. So, after wiping the RAM, did the only other thing possible: Searching the internet for a nearly 5 year old (This was in the summer of 2000) configuration file.

What are the odds of finding such an obsolete file on the internet? Well, apparently the probability is 1, since I found one:
trs100|Radio Shack Model 100:\
        :am:bs:xt:\
        :co#40:li#8:\
        :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\
        :cr=^M:dl=\EM:do=^J:ho=\EH:kb=^H:kd=^_:kl=^]:kr=^\:\
        :ku=^^:le=^H:nd=\034:se=\Eq:sf=^J:so=\Ep:up=\EA:\
        :ve=\EP:vi=\EQ:
After copying this into my /etc/termcap file, re-compiling my terminfo, I had my server speaking model 100, so far so good.

*UPDATE* Setting this up again, my new Debian Testing distro doesn't have termcap, so just make a file with that in there and run "tic" on it. Also, I did manage to find the UFO file on ESR's webpage. So now you can compile ALL the obsolete/small screen hardware your heart desires!

The next part is rather simple: setting up getty on the serial port. All I had to do was research the correct command-line, and enter it in my /etc/inittab file next to all the other gettys:
S1:2345:respawn:/sbin/getty -h ttyS1 9600 trs100
Then all you've got to do is get your computer to re-parse your /etc/inittab file (telinit q). Now just set up your Model 100 to connect through the serial port at the correct settings (Hit [STAT] and then type "88N1E"), and you should get something like this:

Use

Now, a few notes on using this with anything. First off, colors will not work. The color codes will be transmitted to the TRS-80 and you'll get weird characters on the screen. One would expect the termcap file to intercept that, but it's actually rather crappy. Hey, I didn't make it and I don't know how to fix it.

I managed to check my mail using mutt, although you'll want a special muttrc since the model 100 doesn't handle the highlighting well (Luckily the mutt author planned for this eventuality).

A note about using BitchX: Don't. ircii works if you want to irc, but make sure to turn colors off. I don't know about the various other terminal-based irc clients, though.

The Future

I haven't really played with this in over a year, since I got a much more recent laptop (Powerbook G3) then. I have been thinking of getting an acoustic coupler hooked up to it and using it on a road trip to check my e-mail and occasionally IRC, but that's one of those things that'll probably never happen.
projects