Introduction to Emulators and DMK's

Introduction to TRS-80 Emulation

This page will try to give a quick start to getting a TRS-80 emulator running.

This page is broken into multiple sections. Except for some limited instructions in Part 6, this page does NOT attempt to teach you how to use a TRS-80, and assumes you know how to use one.

Section 1 - Basics of Emulation

To get started with TRS-80 emulation, you'll need to pick an emulator, obtain the necessary ROM files, and learn how to start it up.

Part 1 - Pick an Emulator

First, you need to pick an emulator. While there are quite a few emulators, all of which can be found on the emulator page, two stand out as being the most complete - TRS80GP and TRS32. These two are equal except for the following, so if any of the below is something you are interested in, you will need to go with the listed emulator:

QuestionUse This Emulator
Do you run LINUX or MACTRS80GP
Does it have to be freeTRS80GP
Do you need ROM filesTRS80GP
Do you need 100% GUI (Windows)TRS32
Do you need to use Model III High Speed TapesTRS80GP
Do you need to use WAV files for cassette inputTRS32
Do you need ORCH-85/90 in StereoTRS32
Do you need to print out EPSON GraphicsTRS32
Do you need 1MB of RAM support in Model 4 ModeTRS32
Do you need to emulate a mouseTRS32
Do you need to emulate a lightpenTRS80GP
Do you need to emulate the Electric CrayonTRS80GP
Do you need to emulate a TrisstickTRS80GP
Do you need to emulate an Exatron Stringy FloppyTRS32
Do you need to emulate an Aculab Stringy FloppyTRS80GP
Do you need to emulate a Smartwatch or NEWCLOCK/80TRS32
Do you need to emulate a custom character setTRS80GP
Do you need to pass through the RS-232 to the computer Serial PortTRS32
Do you need to emulate the Omikrom MapperTRS80GP
Do you want to use HFE or IMG imagesTRS80GP

Other than the above, they either emulate the same things or neither does (like a voice synthesizer, speed-up card). You will need to register TRS32 to get all of its features. TRS80GP is completely free.

Now that you have picked and downloaded your emulator, either install TRS32 on your system or unzip TRS80GP to a directory of your choosing.

Part 2 - ROMs

TRS80GP has ROMs built in for the Model I, III, 4, and 4P. TRS32 does not come with ROMs.

For those choosing TRS32, you will need to get the ROMs, which you can find packaged in an older emulator by googling david keil emulator download. Once you have the ROM's you will need to put them into a directory and point the TRS32 emulator to that directory under OPTIONS -> Image Path.

Part 3 - For the ULTRA Beginners

Based on emails I get from time to time, I am adding this subsection to cover the basics of UNZIPPING, directories, and the command line for those who might need a little bit of help for Windows. I have never used a Mac (well, not since the 1 summer I worked at a store selling the original Mac) so I cannot provide details for that OS. If you know how to unzip files, copy files, create directories, and to bring up the DOS command prompt, you have NO need to read this section.

Windows has the built in ability to unzip files. Since TRS80GP supports so many different systems, and is packaged in a way that has each system in a separate directory, simply unzipping the ZIP file may overcomplicate things.

To simplify the process, first use Windows Explorer to create a directory somewhere that works for you. For example, you might want to Right-Click on the C: icon in Windows Explorer and when the menu comes up, choose NEW, and when the next entry pops up to the right, choose FOLDER. It will ask you for a name. Choose what you want, but I will assume you typed in trs80.

If you did this, you now have a directory called trs80. Next, download the TRS80GP emulator, and if the browser lets you choose a directory, choose c:\trs80. Regardless of whether the browser does or doesn't let you choose, then once the download finishes, if your browser lets you see the file you downloaded, then double-click on the download.

You should get a list of files. Find the one that says trs80gp.exe and right-click on it. Choose extract (or copy - I'm not entirely sure what comes up because I use a different program) and let it extract the file to c:\trs80.

Hopefully you now have a directory called c:\trs80 that has the file trs80gp.exe in it.

Next, you will need to copy any DMK files ou have or you want to use into c:\trs80. Hopefully you know how to use Windows Explorer to do this.

Once you have done this, it is time to go to the command prompt. Go to your START MENU and find WINDOWS SYSTEM, and click to expand. You will then see COMMAND PROMPT. Choose that, and a DOS window will open. Type CD \trs80" and hit the ENTER key. This will put your DOS window into the C:\TRS80 directory you created that has both trs80gp.exe and your DMK files.

Once inside c:\trs80 like that, you can now follow the below instructions for starting and running tr80gp.

Part 4 - Starting Up

Next, you need to start up the emulator. TRS80GP for Windows and Linux requires you to enter everything on a command line, and the instructions for using that emulator can be found here. To run TRS32 or TRS80GP on a Mac, just double click on the icon.

Part 5 - Do you want Cassette BASIC or DOS?

If you want to just get into non-DOS BASIC, and load tapes (SYSTEM or BASIC) tapes, you would need to do either of the following to get to the READY prompt:

TRS32 Emulator

Double-click on the icon to get the emulator to run. You will see a blank screen.

Press and hold the ESC key (which is the TRS-80 equivalent of BREAK) and while holding that down, hit both the SHIFT+F8 keys (which is a cold reboot code).

You should now see MEMORY SIZE? or MEM SIZE? or CASS? depending on which Model and which ROM you used. If you do not need to set a memory size, just hit ENTER. If you have CASS, the answers are either H for HIGH SPEED tapes and L for low speed.

TRS80GP Emulator

Enter trs80gp -m1 -dx from the command line.

The emulator is set up to bypass the MEMORY SIZE question and go straight to BASIC. If you do not want to bypass the MEMORY SIZE question, you will need to add -nlc to the command line to turn off the lower case driver. If you do want lower case, then type SYSTEM followed by ENTER and /0 followed by ENTER at the /? prompt, and you will restart back at MEMORY SIZE.

To mount a tape, both emulators will be GUI driven at this point, so:

TRS32 Emulator

Press F9 and choose your file.

You will also need to virtually push PLAY on the controls by hitting SHIFT+F9 and then pressing PLAY.

TRS80GP Emulator

Go to Cassette ? Insert and choose your file.

Alternatively, if you want to do this from the command line then you would use trs80gp -m1 -dx -c filename where filename is the full filename of the image you wish to use, including 3 letter extension.

If you want to boot into DOS:

TRS32 Emulator

Press F6 and choose the disk image you want to boot.

Then hit SHIFT+F8 to cold reboot the emulator.

TRS80GP Emulator
  • To run boot.dmk as a Model 1 disk:
    trs80gp -m1 -d0 boot.dmk
  • To run TRSDOS v1.3 as a Model I disk:
    trs80gp -m1
  • To run LDOS v5.3.1 as a Model I disk:
    trs80gp -m1 -ld
  • To run boot.dmk as a Model III disk:
    trs80gp -m3 -d0 boot.dmk
  • To run boot.dmk as a Model IV disk:
    trs80gp -m4 -d0 boot.dmk
  • To run boot.dmk in drive 0 and data.dmk in drive 1 as a Model III disk:
    trs80gp -m3 -d0 boot.dmk -d1 data.dmk

Section 2 - Basics of TRS-80 Usage

This is just a quick primer for those who might have forgotten some of the basics. This is NOT an instructional for using a TRS-80

Extensions

ExtensionPurpose
BASA BASIC file. You need to be in BASIC to run this file. To enter BASIC from DOS, you would usually type the word BASIC, answer the questions that may come up. Once you are in BASIC and have the READY prompt, type RUN"filename/BAS"
(none)A BASIC file or a DATA file. If its a BASIC file, you would usually type the word BASIC, answer the questions that may come up, and then type RUN"filename" except if using LDOS. If using LDOS, for some reason I still do not quite get, you would need RUN"filename/" instead.
ASCA BASIC file stored in ASCII. Same instructions for a BASIC file, but using ASC. There is a chance you would might get an error if a line is too long (BASIC files are compressed in memory so they take less space on a line, ASCII files are not compressed, so they can exceed the amount of space allowed on a line)
CMDA Machine Language file. In DOS you would type the filename. You do NOT need to add /CMD to run the file, but you do need /CMD to do anything else with the file (like copy it).
OVL
OV1
SYS
An Overlay file. Something needed by a program - You would never run this; it just needs to be present for other files.
CASFor an Emulator file, this would be a cassette image. For a TRS-80 file, this would likely be a BASIC file but the person may have put /CAS to indicate that it is a cassette version of the software.
DSKFor an Emulator file, this would be a diskette image. For a TRS-80 file, this would likely be a BASIC file but the person may have put /DSK to indicate that it is a diskette version of the software.
DMKFor an Emulator file, this would be a diskette image.
JCL
BLD
A batch file. This file would contain a number of commands which are followed by the computer. Methods of running them vary from DOS to DOS, some of which include DO filename/BLD or CHAIN filename/JCL. Consult the manual for the specific DOS you are using to see how it runs batch files.
ASM
SRC
Assembly language source code. You cannot run this. To load, modify, save, compile, etc, you would need to use an Assembler program, such as Radio Shack's Editor Assembler or Misosys' EDAS.
LBRAn packed library - like a ZIP file. If a program required a bunch of other files (like OVL files, explained above), it may be distributed as a LBR so that all of its parts are present. You would need a program on the TRS-80 to unpack the file, and enough disk space to hold what is inside.
ExEA Model I or III program ported to run on a Model 4. This requires use of the program ExEC to run the file.
CIMA core image dump; kind of a cheat to just slam a program into memory. Usage is fairly complicated and very specific to each CIM file.
??ZA file compressed by SQUEEZE. The first two letters (represented by ??) are the first 2 letters of what the extension would have been if it wasn't compressed. You need to use an UNSQUEEZE program.

Random commands

  • To load a BASIC program called "FILE" in non-DOS BASIC: At the prompt you would type the word CLOAD and hit ENTER. When it is done you would type RUN.
  • To load a SYSTEM (machine language) program called "FILE" in non-DOS BASIC: At the prompt you would type the word SYSTEM and hit ENTER. At the first *? prompt type FILE and hit ENTER. At the second *? prompt, hit / and hit ENTER. If you do not know the filename you can use TRS80GP to show it to you (after you mount it, go back to CASSETTE and it will show you the filename and speed), you can use Lawrence Kesteloot's site, or you can use any viewer and look at the file ... it will be in the beginning.
  • To run a BASIC program called "FILE/BAS" in DOS BASIC: At the prompt you would type the word BASIC and hit ENTER to any prompts given to you. Once in BASIC you would type RUN"file/bas" and it will load and run.
  • To run a CMD program called "FILE/CMD" in DOS: At the DOS command line you would type FILE and hit ENTER.
  • To see a directory of drive 0: At the prompt you would type DIR :0
  • To see a directory of drive 1: At the prompt you would type DIR :1
  • To read the NEWDOS/80 Manual click Here.
  • To download the Model I BASIC Manual click Here.
  • To download the Model III BASIC and TRSDOS Manual click Here.
  • To download the Model 4 BASIC and TRSDOS Manual click Here.
  • To download the LDOS and LSDOS Manual click Here.
  • To download the MULTIDOS Manual click Here.

DOS and Non-DOS Environments

Working in a NON-DOS Environment

  • In non-DOS, all you have a is a cassette or a .CAS file. Without additional tools, you will not know what is on it ... or whether the next bit of data is a BASIC file, a SYSTEM file, or data. There are 2 current ways to figure that out:
    • You can upload the CAS file to Lawrence Kesteloot's Web Site at https://www.my-trs-80.com/cassette/ and it will tell you what is on the tape, what type of file it is, and the filename
    • When you mount the tape in TRS80GP, the CASSETTE pulldown menu will show you what is on the tape, the speed, and the filename.
  • To load a BASIC program: Type CLOAD and hit ENTER. When it is done you would type RUN.
  • To load a SYSTEM (machine language) program called filename: At the prompt you would type the word SYSTEM and hit ENTER. At the first *? prompt type in the filename (whatever it might be) and hit ENTER. At the second *? prompt, hit / and hit ENTER. If you do not know the filename you can use TRS80GP to show it to you (after you mount it, go back to CASSETTE and it will show you the filename and speed), you can use Lawrence Kesteloot's site at https://www.my-trs-80.com/cassette/, or you can use any viewer and look at the file ... it will be in the beginning.
  • NOTE: When loading, you should see two "*"'s in the upper right corner, one of which blinks intermittently. Both TRS80GP and TRS32 will show a counter as the virtual tape moves forward. If the counters stop and you never get the appropriate prompt, then your load failed. On a real TRS-80, you would rewind the tape, change the volume setting, and try again. That does not apply to an emulator. If that happens on an emulator then either the CAS file is bad, you typed in the wrong filename, you were using the wrong speed file, or something else has gone wrong.

Working in a DOS Environment

  • To run a BASIC program called "FILE/BAS" in DOS BASIC: At the prompt you would type the word BASIC and hit ENTER to any prompts given to you. Once in BASIC you would type RUN"file/bas" and it will load and run.
  • To run a CMD program called "FILE/CMD" in DOS: At the DOS command line you would type FILE and hit ENTER.
  • To load a casette tape, you would do all the steps from the non-DOS environment under BASIC EXCEPT that on a Model I would need to type in CMD"T" before typing in SYSTEM or CLOAD. Note that if you make any mistakes between those two, you will need to enter in CMD"T" again, because anything that causes disk access will undo that
  • To see a directory of drive 0: At the prompt you would type DIR :0
  • To see a directory of drive 1: At the prompt you would type DIR :1

Section 3 - You Know How to use an Emulator and Have Disk Images

If you already know how to use an emulator and have disk images to work with, this section covers manipulating those images and understanding disk image naming conventions.

Part 1 - Manipulating Disk Images

If you have disk images, such as disk images that I might have read for you, things get a little trickier. The various DOS's in some cases cannot read each other and not every disk has a DOS on it. What makes things easier is to extract the contents of the disk image, and put it on a different disk image that you know will work with the DOS you want to use.

The best tool out there to manipulate disk images is a Windows utility called TRSTools, written by the author of TRS32. TRSTools can be downloaded here.

TRSTools is a Windows Explorer-like utility that makes it easier to work with virtual disk images. With TRSTools you can:

  • Drag and drop files to and from TRSTools and the Windows Explorer
  • Open an existing virtual disk image
  • Create a new virtual disk image
  • Add files to or extract files from the disk image (with file dates preserved)
  • Preview files (with integrated viewer)
  • Rename files
  • Delete files
  • Change the disk label and volume date

The integrated viewer is actually really powerful. If you make sure you select the right thing in the dropdown box, you can view a BASIC file as ASCII (so you can just copy the ASCII straight out of the viewer and have the ASCII dump of a program), you can view a CMD file as a disassembly or as text, you can view a high res picture as the picture! And as mentioned above, these things will allow you to see if a program is corrupt or not, as corrupt files will not show as ASCII, Disassembly, or graphics.

TRSTools will also attempt to show you the PDRIVE of the disk if it was written on NEWDOS/80 and the DOS of the disk, under PROPERTIES.

Part 2 - A note to those who had disk images read by me

I have named each DMK according to the label of the disk so you know which is which. Damaged disks will have a code at the end in brackets such as [Tx-a b c d e, or Txsy-a b c d e, or Tx-Align]. These mean:

  • Tx-y: Track number x has bad sectors a, b, c, d, and e.
  • Txsy-z: Track number x on side y has z bad sectors a, b, c, d, and e. This would be for double sided disks.
  • Tx-Align: Track x reported a non-standard number of sectors, but reported it as a good read. An example would be if a Model III disk, which will ordinarily have 18 sectors per track, reports a single track as having 17 sectors without also reporting that one is missing!

In these cases, I would recommend using TRSTOOLS to look at each program on the disk. If you come across a /CMD file or a /BAS file which looks like junk, chances are that the file was corrupted because of the bad sector. For other types of files, it is just not possible to see if data is missing or corrupted by looking at them through TRSTools. If you are desperate to learn what file was corrupted, you can use SuperUtility to see what was on the bad sector. What I usually do is [1] Run DMKCheck on the DMK image, [2] configure SuperUtility for the appropriate DOS under item 9, and then [3] use the FILE LOCATIONS (Menu item 8 and then 7) to see what file was on the bad sector.

Section 4 - Did I miss anything?

If you are new to emulation and you have questions I haven't answered (that are not about how to work a TRS-80), please contact me and I will update this page.

Section 5 - Hard Drive Support FAQ

I was asked to add HARD DRIVE support to this FAQ so here are the steps to set up hard drive emulation.

Pick a directory you want to use to house your boot image and hard drive. If it doesn't exist, create it.

Next, download the Hard Drive Operating System v6.02.00 to that directory and unpack the ZIP file.

Next, rename "Hard Drive Operating System v6.02.00 (1984)(Logical System)[M4][Original][Set 1][Initialization].dmk" to "boot.dmk".

The next steps are broken down by emulator of choice:

TRS32 Emulator
  • Double click on the TRS32 Icon to run the emulator
  • Choose File ? Autostart
  • Choose boot.dmk and click OPEN
  • Hit F7 to choose a Hard Drive Image
  • Enter the hard drive filename you wish to use and click OPEN
  • Click the YES button to create the hard drive
TRS80GP Emulator
  • Go to the directory where boot.dmk is located.
  • Type:
    trs80gp -m4 -turbo -h harddrive.hdv -d0 boot.dmk

The rest of the steps are inside the emulator:

  • Enter the date
  • BASIC ENTER
  • RUN"HARDGEN/BAS" ENTER
  • Is your system ready? Y ENTER
  • How many floppy drives are connected? 4 ENTER
  • How many hard drives are connected? 1 ENTER
  • Serial Number: Enter a 5 digit number
  • Did you enter all the serial numbers? Y ENTER
  • Number of Megabytes: 10 ENTER
  • Press any key when ready to continue: ENTER
  • How many logical drives: 2 ENTER
  • How many floppy drives? 1 ENTER
  • Do you want to reserve a local drive? N ENTER
  • How many logical drives do you want to use? 1 ENTER
  • Do you want to change any value? N ENTER
  • Which Method do you Prefer? A ENTER
  • Press any key when ready to continue: ENTER
  • Do you want the hard disk to be the system device? N ENTER
  • Do you want the hard drive to be searched first? N ENTER
  • Is the configuration correct? Y ENTER
  • Enter the Disk Pack name? ENTER
  • Enter the Master Password? ENTER
  • To Proceed, type "YES"? YES ENTER

The emulator will start formatting and verifying when its done it will say press Enter. So ... press ENTER.

At this point, you have a hard drive as :1. Make sure to use the boot.dmk as your boot disk when you want to access the hard drive image.