Introduction to Emulators and DMK’s

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

This page is broken into multiple sections. The first is for those who are absoutely new to emulating a TRS-80 and have no idea how to begin. The second is for those who know how to use an emulator, but have disk images that they want to use, including disk images which I have prepared for them. The third invites you to let me know if anything is unclear. The fourth was a request to add Hard Drive Emulation

Except for some limited instructions in Part 5, 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

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, you will need to go with the listed emulator:

Do you run LINUX or MAC
Does it have to be free
Do you need ROM files built in
Do you need to see scanlines
Do you need 100% GUI (Windows)
Do you need to use Model III High Speed Tapes
Do you need to use WAV files for cassette input
Do you need to print out EPSON Graphics
Do you need to emulate wait states (0/1/2)
Do you need to emulate an Alpha Technology memory board
Do you need to emulate the MEM line of memory boards
     HyperMEM, SuperMEM, MegaMEM
Do you need to emulate an Alpha Products Joystick
Do you need to emulate a Trisstick Joystick
Do you need to emulate a lightpen
Do you need to emulate the Electric Crayon
Do you need to emulate an Exatron Stringly Floppy
Do you need to emulate an Aculab Stringly Floppy
Do you need to emulate the Archbold Speed-Up Kit
Do you need to emulate the Holmes Sprinter II/III
Do you need to emulate the Seatronics Super Speed-Up Board
Do you need to emulate a Smartwatch or NEWCLOCK/80
Do you need to emulate a custom character set
Do you need to pass through the RS-232 to the computer Serial Port
Do you need to pass through the RS-232 to the Internet
Do you need to emulate the Omikrom Mapper
Do you want to use HFE or IMG images

Other than the above, they either emulate the same things (both support saving the machine state, both support ORCHESTRA 80/85/90, mice, hard drives, etc.) 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 extry 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 you 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 thas 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 can need to start up the emulator. TRS80GP for Windows and Linux requires you to enter everything on a command line (to get to the command line in Windows, you would type CMD on the search bar), and the instructions for using that emulator can be found at the TRS80GP web site. 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:

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.
Enter trs80gp -m1 -dx from the command line to run at regular speed or trs80gp -turbo -m1 -dx to run at the fastest speed your computer’s processor will allow.

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:

Press F9 and choose your file.

You will also need to virtually push PLAY on the controls by hitting CTRL + F9 and then pressing PLAY.
Go to Cassette -> Insert and choose your file. Alternatively, if you wan to do this from the command line then you would use trs80gp -m1 -dx -c filename (or trs80gp -turbo -m1 -dx -c filename to run at turbo speed) where filename is the full filename of the image you wish to use, including 3 letter extension.

If you want to boot into DOS:

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

Then hit SHIFT + F8 to cold reboot the emulator.
  • To run boot.dmk as a Model I 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 4 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
  • To do any of the above at turbo speed (the fastest speed your computer can supply) make sure to add -turbo after trs80gp

Part 6 – Files and Extensions Primer

Non-DOS files are loaded from cassette and those files do not have extensions. Extensions are only for programs saved in DOS. Since the TRS-80 was a computer and not a video game console, people could name their files whatever they want. As a result, it is not possible to list every possible extension and what it might be. An extreme example would be someone who wanted to be very descriptive might choose a filename for the game of Chutes and Ladders as CHUTELAD/DER. There’s nothing wrong with this, except that it would be up to the user to know if this was a BASIC file, a SYSTEM file, etc. So the below are the COMMON extension names, and what to do about them (but even those aren’t cut and dried). The word filename is used to match whatever the filename at hand is.

A 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”
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.
A 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)
A 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).
An Overlay file. Something needed by a program – You would never run this; it just needs to be present for other files.
For 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.
For 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.
For an Emulator file, this would be a diskette image.
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.
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.
An 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.
A Model I or III program ported to run on a Model 4. This requires use of the program ExEC to run the file.
A 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.
A 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.

Part 7 – Some TRS-80 Basics

In case you do not remember how your TRS-80 works, here are a few commands to get you started:

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 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, 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 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.

Section 2 – You Know How to use an Emulator and Have Disk Images

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 from

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 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 3 – 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 4 – I was asked to add HARD DRIVE support to this FAQ so …

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 …

  • Double click on the TRS32 Icon to run the emualtor
  • 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
  • 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
  • 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 seial numbers? Y <ENTER>
  • Number of Megabytes: 10 <ENTER>
  • Press any key when ready to continue: <ENTER>
  • How many logical drives: 8 <ENTER>
  • How many floppy drives? 4 <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? Y <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>.

After it’s done formatting the prompts and questions continue …

  • The system will tell you to swap disks. “Remove” the boot.dmk from :0 and add the other disk from the zip file to :0. Then hit <ENTER>.
  • The system will do some stuff and tell you to swap disks back. “Remove” the DOS you have as :0 and put boot.dmk as :0. Then hit <ENTER>.

At this point, if you start the emulator using trs80gp -m4 -turbo -h harddrive.hdv -d0 boot.dmk, you will have the hard drive as :0 and the boot disk as :4. You are then running your system off of the hard drive.