System 80 Driving Instructions


This page is for all those people unfamiliar with the System 80 but who want to know how to operate the "beast", so they can at least follow the documentation in the various emulators available on this site and http://www.trs-80.com/ , and so try some of the software.  

Much of what is written here also pertains to other 8-bit computers of the time. Unlike the computers of today, the System 80 had no windows and no mouse.  There was no such thing as multitasking and colour was something unheard of.  Programs came on cassette tape, or on floppy disk.  Hard disks were amazing things whispered about in awe. 

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 it's operating system.  12k of Microsoft BASIC is included in ROM, which initializes when the machine is switched on.  

The first thing a System 80 user will see when turning on a diskless 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?").   This gives the opportunity for users 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.

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 <NEW LINE> (or <ENTER> on a TRS-80).  

After reserving memory space (or more commonly not) a user is then presented at the bottom of the screen with a "READY" followed by a ">".  This means BASIC is now initialized and ready for commands.

There are two types of programs a waiting System 80 can now run.  In a diskless System 80, both types of programs need to be loaded from cassette tapes.

The first of these, are programs written in BASIC.  A simple CLOAD typed after the ">" command prompt activates the waiting tape and loads the program.  A pair of blinking asterixes in the upper-right hand screen indicate progress.  Once these stop and a new ">" appears the program is loaded.  The command RUN can be then typed in and <NEW LINE> pressed to start the program.

The second type are those programs 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.  The user types SYSTEM, then presses <NEW LINE>.  An asterix appears.  The user now types in the name of the program on the tape (actually the first letter will do).  <NEW LINE> is  then pressed and the program loads.  As with above, a pair of blinking asterixes shows loading is occurring.  However, when loading is finished, another asterix appears beneath the first one.  A user then types "/" and presses <NEW LINE>.  The program then starts.

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 the user enters the command DIR.   By convention, BASIC programs on disk usually have the extension /bas and machine language programs use /cmd.  The latter are executed simply by typing the name in and pressing <NEW LINE>.  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"invade/bas" ' is an example of such a command using NEWDOS 80 v2.0.

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.