A Tribute to the Dick Smith System 80
(aka Video Genie and PMC-80/81)

System 80 (and TRS-80 Model 1) Driving Instructions


This page is for all those people unfamiliar with the System 80 (and its equivalents) but who want to know how to operate the "beast", either so they can boot up a real one, or at least follow the documentation in the various emulators available on this site and so try some of the software.   These instructions are also applicable to the TRS-80 Model 1. The only differences are the words displayed on start-up (see below) and that the <NEW LINE> key is labeled <ENTER> in the TRS-80 Model 1.

Unlike the computers of today, the System 80 had no windows, no mouse, no touch-screens and no Internet.  Apps were known as Programs. There was no such thing as multitasking (i.e. running more than one program at a time) and the video was monochrome.  The computer was operated by typing in commands by way of a command line interface (CLI). Programs came on cassette tape, or on floppy disk.  Hard disks were amazing things whispered about in awe. These properties were similar to other early 8-bit computers of the time.

The System-80 came in two states.  With or without disk drives.  Software loading commands differed considerably depending on which configuration was being used.

The basic, unexpanded (diskless) System 80

The unexpanded System 80 uses the computer language BASIC as its operating system.  12k of Microsoft BASIC is included in ROM, which initializes when the machine is switched on.  

The first thing you will see when turning on a diskless System 80 machine (or emulator) is a message at the top of the screen that says "READY?" (in the TRS-80 Model 1 this says "MEMORY SIZE? or MEM SIZE?") (Figure 1).   This gives the opportunity to reserve some memory space for special machine language routines.  If a number is typed in next to the READY? (say 32000) then all memory locations at 32000 decimal and above will be safe from the workings of subsequent BASIC programs, which will reside at a lower location.

Figure 1. The first thing you should see when a diskless System 80 is switched on

Most programs do not need the user to reserve memory space, but a few do.  Normally, on seeing the READY? at initialization all that is required is to simply press the <NEW LINE> key.  

After reserving memory space (or more commonly not) you will then be presented at the bottom of the screen with a "READY" followed by a ">" (Figure 2).  This means BASIC is now initialized and ready for commands. You have arrived at the CLI for the machine.

Figure 2. The System 80 is now ready to take commands

There are two types of programs a waiting System 80 can now load and run.  In a diskless System 80, both types of programs are normally loaded from cassette tapes using the built-in cassette deck, or the external one.

All programs on tape have a name of up to six letters from which they can be identified by the computer. If you are loading a BASIC program, you don't need to know this name. However, if you are loading a machine language program, you need to know at least the first letter of the name.

Expect most programs to take many minutes to load in (it could be as much as 10 minutes or so). Take a moment to marvel at the patience of System 80/TRS-80 M1 users of the day!

(i) Loading BASIC programs

Mount the cassette then type CLOAD after the ">" command prompt, then press <NEW LINE>. This will activate the waiting tape (assuming the PLAY button on the tape deck is depressed) and the program will load (Figure 3). If you are using an external cassette deck, then the command is CLOAD #-2, .

Figure 3. Type in CLOAD, press <NEW LINE> and your program should now be loading.

A pair of blinking astrixes in the upper-right hand screen indicate progress. If the astrixes STOP blinking for more than 10 seconds or if a "C" appears in place of the right-hand one it means a loading error has occurred. If you are using a real machine, try reloading the tape with a different volume setting.

Once these stop and a new "READY and ">" appears, the program is loaded.  The command RUN can be then typed in (Figure 4) and <NEW LINE> pressed to start the program (Figure 5).

Figure 4. After loading is complete, type in RUN and press <NEW LINE>

Figure 5. Your program should appear

If you want to see the BASIC code for the program after loading rather than executing it, type LIST instead of RUN. The code will be written out to the screen. After the listing has finished and the "READY" then ">" is shown, you can type "RUN" to start the program.

(ii) Loading machine language programs

The second type of programs are those written in machine language (m/l).  These are direct Z80 instructions and do not need to be interpreted by the BASIC interpreter.  They are loaded using a different set of commands. 

First get the tape deck set up with a cassette containing the program you want to load. To start the loading sequence, type SYSTEM (Figure 6), then press <NEW LINE>.  An astrix followed by a "?" appears. (Figure 7).

Figure 6. Type in SYSTEM then press <NEW LINE>

Figure 7. The machine is now waiting for input i.e. a 6-character name of the program (actually just the first letter will do)

The computer is now waiting for you to type the name of the program. You only need to know the first letter of the name. This letter should be typed in and <NEW LINE> pressed. Now press the PLAY button on the cassette deck to start the tape moving. As with above, a pair of blinking astrixes shows loading is occurring (Figure 8). 

Figure 8. Blinking astrixes shows the program is loading

You must get that first letter right, otherwise the loading routine will skip right over the desired program, looking for one that starts with the letter you entered.  This can be a problem when loading an unknown program, as you might not know the name! Programs exist for the System 80/TRS-80 which can help you find this out, by looking for the NAME entry in an m/l program.

When loading is finished, another astrix appears beneath the first one (Figure 9). 

Figure 9. When a second "*?" appears, enter a "/" and press <NEW LINE>

Once you see the second "*?" and the prompt, type "/" and press <NEW LINE>.  The program then starts (Figure 10).

Figure 10. Program loaded. Time to have fun!

The disk-based System 80

There were many DOSs available for the System 80, each with their own commands and idiosyncrasies.  There were some things in common however.  

When a disk-based system is booted, (by switching on the machine or pressing the Reset button at the rear of the System 80) it loads the DOS into the memory (RAM) on top of the BASIC interpreter in ROM.  All of the DOSs use a command-line interface, and most will display a file list if you enter the command DIR x where x is the Drive number (e.g. 0, 1, 2 or 3) (Figure 11).

Figure 11. A disk directory on drive 1 (in this case, the second drive. The first is drive 0)

By convention, machine language programs on disk have the extension /CMD and BASIC programs usually have the extension /BAS.  The former are executed simply by typing the name in and pressing <NEW LINE> (Figure 12). 

Figure 12. The command to load and execute the game Sea Dragon (a cmd file)

BASIC programs require that BASIC be initialized first.  Often the initialization, program loading and instruction to execute can all be done in one line.  ' BASIC run"gammon/bas" to load a backgammon game is an example of such a command using NEWDOS/80 v2.0 (Figure 13).

Figure 13. An example of loading and starting a BASIC program from disk

Incompatibles between cassette and disk based software

Machine language programs written to be used in a cassette-based machine are usually incompatible with a DOS-based system.  The reason for this is that the machine code loads into memory at a specific location.  Usually loading starts just after the space allocated for the BASIC Interpreter (at 42E9 Hex or 17129 Decimal).  However, this is also where DOS programs load from in a Disk-based system.  This means that if a cassette-based m/l program was loaded from disk, the first thing it would do is overwrite the DOS.  It will load into the memory location the DOS is occupying!.  When this happens the system usually crashes. 

Machine language programs designed for cassette loading CAN be used from disk but they normally have to have extra code added that essentially relocates them gracefully after loading, terminating DOS but not crashing the system.

BASIC programs are a lot more flexible and usually a program designed initially for cassette systems can be loaded without problem.  However, some BASIC programs use machine code subroutines for extra speed or graphics.  These subroutines are memory location specific and programs using them can crash if run from a disk system.

Hopefully these notes will give you enough information to get your emulator, or System 80 up and running.  More information can be found in the Manuals section of this site.