Sunday, March 14, 2021

Enjoying and Gaming on a TRS-80 Model 1

When one thinks of the 1977 Trinity, the Apple II, the TRS-80 and the Commodore PET, the Apple II invariably is deemed the greatest of them all.  In many ways it was, but at first it was little more than a niche hobbyist's computer.  The first computer to have any impact in the consumer market was not the Apple II but the TRS-80, later retroactively referred to as the Model 1.  You might not think that this B&W only machine with chunky graphics had anything other than some simple BASIC text and crude text-based ASCII games, but you would be mistaken.  In this article, let's look at some of the issues with using a TRS-80 and how you can play games.

TRS-80 - The "Three" Levels

When the TRS-80 was first released in 1977, it came with 4KiB of RAM and 4KiB Level I BASIC.  The CPU is a Z80 running at 1.774MHz.  These machines did not come with numberpads at first.  Due to the minimal amount of RAM and the very limited BASIC, they are not really going to play much, but there are some small games and other programs that will load into 4KiB.

The second level, and by far the most common, is the TRS-80 Level II BASIC model.  This model comes with a 12KiB Level II BASIC based off Microsoft BASIC and typically a numberpad and 16KiB of RAM.

The "third" level, and essentially the ultimate level during the Model 1's lifetime, was the addition of an Expansion Interface.  The official Radio Shack Expansion Interface plugged into the expansion connector on the rear of the Model 1 via a ribbon cable and added the ability to upgrade to 32 or 48KiB of RAM, a parallel printer interface, a serial interface, two more cassette ports and a floppy drive interface.  In this tier there are also mass storage device options, although for the TRS-80 this is mainly for convenience and loading speed.  The FreHD, the MIRE and TRS-IO-M1 are Model 1 compatible solutions which offer some form of support for hard drives or floppy disk image support.

Floppy Drives for the TRS-80 Model 1 use 35 tracks (first party) or 40 tracks (some third party) with 10 sectors and 256 data bytes per sector.  The file directory is stored on Track 17, not unlike a Commodore drive.  TRS-80 drives use FM (single density), not the more advanced GCR (double density-like storage) or MFM (double density) encoding of flux data.  Shugart SA-400 drives were used with the TRS-80, and it can support up to four drives as the original standard supported.  An index hole sensor is supported, so single sided drives cannot read the underside of a 5.25" disk unless it has a second index hole.

Using a TRS-80 : First Steps

If you have just bought or otherwise acquired a TRS-80, then there are a few things to know if you have had no prior experience with the system.  First, you should determine whether the keyboard/base unit is a Level I or Level II machine.  If your unit had a numberpad on it, it is almost certainly a Level II.  Usually there is a sticker above the Expansion Port which tells the owner that it is a Level II.  The button by the expansion port acts as a software reset switch.  

On the back of the Model I are three 5-pin DIN sockets.  Tandy had the brilliant idea of using identical DIN sockets for the Power Supply, the Video Output and the Cassette Input/Output.  No one would ever plug a cable into the wrong plug, nope, never!  Fortunately the plugs are marked Power, Video and Cassette from Right to Left as you look at them.  Remember that Power is always next to the Power Switch.  Always plug in the monitor before you plug in the cassette cable, there is +5v on that video connector.

The TRS-80 Video Display is a black and white TV tube with electronics that were slightly modified to show sharper text.  The input plug may have a DIN-5 connector, but the connection is composite-style 240p video.  If your TRS-80 did not come with a display, you can make or buy a cable that converts the 5-pin DIN to a 2-pin RCA connector.  The Video Display was sold separately from the TRS-80 base unit, but Tandy did release an RF Modulator (which needs +5v for power).  

When you power the Video Display on, it will take several seconds most likely for the tube to warm up.  If you see some flicker when there is no input, this is normal.  There are controls on the front for brightness and contrast and on the back for Horizontal Position and Vertical Hold.  If the picture is rolling or appears skewed diagonally, then try adjusting these.  Be very, very careful when opening a Video Display to do work on the internals, I understand the 120V models use "hot chassis", so the metal may conduct voltage if the monitor has been turned on recently.  If you do not have an isolation transformer, you should not work on hot chassis display at all, those voltages are very dangerous.

The TRS-80 comes with a power supply with a DIN-5 cable and a standard AC cable, which is convenient.  Inside the power supply is a transformer, a pair of diodes and a fuse.  If the power supply does not work, it is likely that the fuse is blown.  The diodes could also break down, and transformers do fail but it is not that common.  Unfortunately opening the power supply will in many cases require cutting the plastic off.  Plug in the power supply and measure the voltages with a multimeter before using it with the computer if the computer has not been used successfully recently.  Pins 1 and 3 should give something near 15-17 VAC and Pins 2 and 4 should give something near 19-21 VDC.

Working with Cassettes

If your TRS-80 came with a cassette recorder, then it will probably be the CTR-80A,  CCR-81 or CCR-82.  These were the models Tandy advertised as being suitable for the TRS-80 and later the Color Computer, but you do not have to use these.  Any cassette recorder can work, but there is one issue of which you should be aware.  Tandy's recorders came with Ear, Aux, Rem and Mic jacks.  Modern cassette recorders tend to ditch the Aux jack.  

Microphone and Auxiliary input differ by the amount of gain applied to the signal.  An auxiliary input is designed to receive a line level input which has already been amplified.  A microphone input is designed to accept an unamplified source of sound, such as the vibrations from a condenser microphone, and apply gain to the signal to amplify it to line level.  The TRS-80 sends out line-level output, so applying the gain from a microphone input may distort the resulting recording, making loading that data more difficult.

The Remote plug is the smaller, 2.5mm plug.  It can turn the cassette motor on and off, which usually just means it saves the user from having to press stop on the cassette deck himself.

The Earphone plug is the output where the cassette sends data to the computer.  The volume of the output should be loud but not to an extreme level because this invites distortion.  A level between 7-8 on a volume dial with 1-10 on it should be sufficient for most cassettes.  

The TRS-80s, including the Model III and the CoCos, use a 5-pin DIN socket for cassette input and output.  These cables came with the Radio Shack cassette recorders and can also be found for sale separately.  However if you are without a cable, you can make one, as I did, from a 5-pin MIDI cable.  The most important thing is that the pins 2, 4 & 5 have wires because they carry the ground, cassette output and cassette input signals respectively.  You can live without the remote connector, but if you really need it you will need a MIDI or other cable that has wires for all five pins.

Loading Software

When you turn on a Model 1, you will see a prompt shown either as MEMORY SIZE? or MEM SIZE? The prompt is given in case you wish to designate how much memory to reserve to your BASIC program.  To get pass this prompt and to BASIC proper, just press Enter.  Then you should see :




The command to load BASIC software is CLOAD.  When you enter this command the computer will appear to freeze, but if it sees a cassette input signal, it will show an * on the top right hand corner of the screen.  A second * will appear intermittently as the program loads.  When the program is done it will return you to the BASIC prompt.  Then you can type RUN to start the program.

To load machine language programs off cassette, a different command is required.  The command is SYSTEM.  This will show a S? prompt.  At this point each piece of software will have its own instructions, so you should try to find them before continuing.  

There are four versions of Level II BASIC, and if you see the "RADIO SHACK LEVEL II BASIC", you will have an earlier version of Level II BASIC which is more compatible with loading some of the earliest cassette software.  

If you do not own any cassettes or plan on buying any, you will need another solution to load programs into your machine.  The Windows program PlayCAS v2.0 I have found to be reliable in getting games to load on my TRS-80.  Plug your cassette input jack into your line out of your PC.  It works with .CAS files, which are tape dumps with information to tell an emulator what speed to play the tape back.  Usually .CAS files will come with a text file to tell you how to load the game.  Frogger, Zaxxon and Sea Dragon are all good games for the TRS-80 that work with a 16K Level II BASIC system.

Other games, such as Dancing Demon, are only present as .BAS files.  A BAS file is a stored version of a BASIC program.  PlayCAS cannot output BAS files directly, they must be converted to CAS.  For this, I have found that this site can produce a working CAS image.  

Graphics, Sound and Input

The TRS-80 has a text mode with a cell size of 6x12 and can display 64 or 32 characters per line by 16 rows.  This gives a fairly high text resolution of 384x192 pixels or 192x192 pixels.  There are 64 text characters which are displayed in a 5x7 pixel matrix.  Alternatively, the TRS-80 can show 64 blocky combinations pixels with an effective resolution of 2x3 pixels. These are the closest thing to a graphics that the TRS-80 can show.  Graphics will sometimes flicker but this is normal, the CPU and the video generation circuitry have to contend for memory access.

Text cells take their graphics from the character generator ROM. This ROM (in later versions) can generate 128 different characters.  However, the TRS-80 comes only with 1024 x 7 bits of video RAM, which prevents the RAM from selecting characters from the upper 64 characters generated by the ROM.  A common upgrade is to add an eighth 1024 x 1-bit SRAM chip.  That will give access to the lowercase character set, but Level II BASIC may show strange characters without a switch installed to disable the extra SRAM chip.  Different versions of the character generator ROM may do better with different mods, see here for a more fuller discussion about lowercase mods.

While neither the TRS-80 nor its Video Display has a speaker, it can still produce sound output via the cassette output port.  The resulting sound is very PC Speaker or Apple II Speaker like.  Many programs and games will produce sound via this method.  The idea was that you would connect the cassette output to an amplified speaker.  With the PlayCas method of transmitting data from a PC to the TRS-80, you can plug the cassette audio output into your PC's Line Input and hear sound as well as save data.

With the base model TRS-80, the only input available is the keyboard and its 53-keys and 12-key numeric keypad.  The Expansion Interface adds parallel, floppy and serial ports, but those really are not designed for an input device.  The TRS-80 had keys for Up and Down as well as Left and Right, unlike the Apple II with only Left and Right keys or the Commodore PET with its combined Up and Down and Left and Right keys.  Those with the Alps keyboard will have a much better time of it.

The only way to get alternative input is through the Expansion Port.  The Alpha STICK-80 was a popular adapter device that allowed you to plug in an Atari-style joystick onto the Port.  The TRISSTICK was a modification published by Big Five Software to modify how the fire button was read.  The later Alpha Joystick Adapter had a switch to chose between STICK-80 and TRISSTICK behavior.  Big Five Software made many good games for the TRS-80 and most of its games supported the expansion port joysticks.

Opening it Up

The TRS-80 is not difficult to open up, six screws on the bottom when removed will give access to the whole system.  The internals are made up of two parts, the keyboard and the main PCB.  Keep track of the six screws because they are different lengths.  Those that go closest to the port-side of the system are the longest and those that connect near the spacebar are the shortest.  When you screw them back in, make sure to turn the screws counter-clockwise until you feel that "bump" where the threading begins, then screw it in clockwise to avoid destroying the screw threads.

The keyboard comes in two varieties.  The first keyboards were from Hi-tech and used its linear switches.  (Stackpole cloned them.)  These switches can also be found in the TI-99/4A and the Atari 800. Nobody likes these, the contacts get dirty or warped, the housing gets worn and broken and the keypresses are stiff.  Tandy later scraped this keyboard and replaced it with an Alps mechanism.  The Alps is a far, far superior keyboard, easily putting the Commodore keyboards of the time to shame and easily rivaling many later computers.  Unfortunately the presence of a numeric keypad is not a guarantee that your keyboard will be the "good" keyboard.

Unfortunately the connection between the keyboard and the main PCB is an Achilles Heel of the TRS-80.  The two boards are joined by a mylar-like ribbon cable soldered to pins on each board.  The TRS-80 Model 1 was not manufactured after 1980, so these mylars are really old and can easily have broken traces.  Working on the main PCB is very difficult if the mylar connects the two boards.  Most people usually replace the mylar with ribbon cable, and you can solder a 20-pin pin header on each board and use a mated connector for ease of disassembly in the future.

Almost any Level II board is going to have some bodges on it.  Boards upgraded from a Level I BASIC as well as early non-upgrade Level II boards will have a ribbon cable from one of the ROM sockets going to a daughterboard with three ROM chips and a logic chip on it. Later boards will have both ROM sockets populated.  Regardless of whether you have a 3-chip or a 2-chip Level II, be careful not to break off the bodge wires.  The CPU, the BASIC ROMs, the DRAMs and Character Generator ROM should be socketed for easy replacement.   

The main PCB is not screwed into the plastic case.  There are holes into the PCB which slide around plastic posts which keep the PCB in place.  There are also some soft plastic spacers which help keep the main PCB in place and help minimize the vibrations from the keyboard.  If your spacers are cracked or broken they should be replaced.  There are 3-D printed replacements for those as well as the Expansion  Interface Port cover, which is also often lost or broken. 

You may see some upgrades on the main PCB.  If you see stacked DRAM chips (Z13-Z20), that is likely a 32K mod.  If you see one of the SRAM chips (Z45-Z48, Z61-Z63) stacked with wires going off it, that is a lowercase mod. 

Final Words

Even with a Level II TRS-80, there is some quality gaming to explore.  Color may be absent, resolution poor and sound crude, but even with 16KiB you can enjoy some quality games.  It is important to note that the TRS-80 was the first home computer with any substantial number of games available at retail, and not just from Radio Shack.  Games originally released on tape for this system like Adventureland and Temple of Asphai often had their first mass-market releases for the TRS-80.  Also, because tape was the principal medium of the TRS-80 longer than the Apple II, there are more games preserved on tape.

Floppy disks and generic mass storage will allow the full enjoyment of the TRS-80 game library.  Games like Zork (r2) had their first release on the TRS-80 platform, but require 32-48K and a disk drive.  If I acquire an appropriate solution, you can expect a second blog article discussing disk operations and formats.


  1. This is a great overview of the Model I!

    I used a Model III a bit in school (early-1980s), but I have never encountered the earlier models.

  2. An important computer in the history of computing, and an excellent blog post. Many professionals today learnt their skills on a model I programming a 'bare metal' z80 machine. Some great programming languages were available including the inbuilt Microsoft Level basic, and other tools like Editor/Assembler and debuggers. What a time to own your own microcomputer and be learning about computers. I also miss the highly technical and abundant magazines like 80-Microcomputing and others.