TRS-80 Emulators for Windows and MS-DOS

Matthew Reed's emulators, utilities, and development tools for TRS-80 Models I/III/4

Documentation — TRS-80 Model I/III/4 Emulator for Windows

Introduction

This program emulates a popular series of early microcomputers, the TRS-80 Model I, III, 4, and 4P. The CPU emulation is extremely accurate, supports all known instructions, and runs at exact TRS-80 speed. It is also extremely fast, being written in assembly language, and can exceed actual TRS-80 speed on any computer capable of running Windows. The floppy disk emulation is incredibly accurate and will even work great with self-booting or protected disks, such as Super Utility.

The unregistered shareware version of the program emulates a TRS-80 Model I, III, 4, or 4P with four floppy disk drives, a cassette tape drive, an Exatron Stringy Floppy, and printer, serial, and joystick ports.

The registered version adds support for additional hardware, including multiple types of high-resolution graphics boards, Orchestra 85/90 music generation, several types of real-time-clocks, up to 1Mb of additional memory (in Model 4 or 4P mode), hard disk support, and an Epson FX-80 compatible printer.

Installation

TRS32 is distributed as a self-installing executable file. To install it, download the file to your hard drive, double-click on its filename in Windows Explorer, and answer the questions as the installer asks them.

Operation

To start the TRS32 emulator, double-click on its icon on the Windows desktop, or select it from the Start menu. When you use the emulator for the first time, you may see this message onscreen:

ROM IMAGE NOT FOUND!
USE THE “OPTIONS”, “ROM IMAGE PATHS” MENU OPTION TO SELECT THE PROPER PATH TO YOUR ROM FILES.

If you see this message, open the emulator’s Options menu, click on the ROM Image Paths menu option, and select the directory where your emulator ROM images are stored.

The Menus

The File Menu

Run /CMD file — Runs a TRS-80 program file. The file can be in CMD or Intel HEX format. The program file will not work unless it is appropriate for the TRS-80 model and state. For instance, if the program will only work using LDOS, then you must load LDOS before loading the program with this command.

Autostart floppy disk — Automatically boots a floppy disk image. The emulator will determine the appropriate TRS-80 model from the disk image, switch to that model, and boot the disk image. The method of determination is not foolproof, but should work with almost all bootable disk images.

Load snapshot — Loads a previously saved snapshot. The snapshots must have been created with this emulator.

Save snapshot — Saves a snapshot of the emulated TRS-80 state. This snapshot can be loaded at a later time to return the emulator to the same state. Almost everything in the state will be saved except for the current disk and cassette transfer.

Save screenshot — Saves a BMP graphics image of the screen. This image file can then be used by any Windows graphics programs.

Pause — Pauses the emulated TRS-80. You can end the pause and resume emulation at a later point.

Soft reset — Performs a soft reset of the emulated TRS-80. In Model I cassette mode this will return to the READY prompt in BASIC. In all other modes, this performs almost exactly the same as the Hard reset command. This command is not present in Model 4 or 4P mode.

Hard reset — Performs a hard reset of the emulated TRS-80. This is equivalent to the red reset button present on the TRS-80 models.

Exit — Exits the emulator. You will be prompted before exiting if you have enabled the Confirm on exit option.

The Edit Menu

Copy — Copies text from the emulator screen. The copied text can be pasted into any Windows program that supports the clipboard.
Paste — Pastes text into the emulated computer. The paste operation can be cancelled at any time by pressing a key on the keyboard.

The Storage Menu

Insert floppy disk — Inserts or creates a floppy disk image. The disk image type will be automatically determined by the emulator. If the filename you specify doesn’t exist, then you will be prompted to create it. The Floppy drives option must be enabled for the floppy disk image to work with an emulated TRS-80.

Remove floppy disk — Removes the floppy disk image from the virtual floppy drive.

Write protect floppy disk — Write-protects the floppy disk image. For most virtual disk types, this write-protect status will be saved with the floppy disk image.

Insert Stringy Floppy — Inserts or creates a Stringy Floppy wafer image. If the filename you specify doesn’t exist, then you will be prompted to create it and also for the wafer length. The Stringy Floppy option must be enabled for the Stringy Floppy image to work with an emulated TRS-80.

Remove Stringy Floppy — Removes the Exatron Stringy Floppy wafer image from the virtual Stringy Floppy.

Write protect Stringy Floppy — Write-protects the Exatron Stringy Floppy wafer image. The write-protect status will be saved with the wafer image.

Select hard disk — Inserts or creates a hard disk image. If the filename you specify doesn’t exist, then you will be prompted to create it. The Hard drives option must be enabled for the hard disk image to work with the emulated TRS-80. Remember that you must have a hard disk driver in the emulated TRS-80 mode to use the hard disk.

Remove hard disk — Removes the hard disk image from the virtual hard drive.

Write protect hard disk — Write-protects the hard disk image. This write-protect status will be saved with the hard disk image.

Insert cassette tape — Inserts or creates a cassette image into the virtual cassette recorder. The file can be in either the CAS or WAV formats. If the filename you specify doesn’t exist, you will be prompted to create it. The new file will be created as a WAV file unless you give the filename an extension of CAS. Cassette support is not available in Model 4P mode.

Remove cassette tape — Removes the cassette image from the virtual cassette recorder.

Write protect cassette tape — Write-protects the virtual cassette recorder. This write-protect state is specific to the cassette recorder and is not saved with the cassette image.

Show cassette recorder — Displays a windowed representation of a cassette recorder on screen. The buttons on this window can be used to control the cassette recorder. While this window is active, you can use SHIFT+F9 to switch between it and the main emulator window.

Control cassette tape — Shows the submenu which allows you to perform cassette tape functions. The submenu contains these options:

Stop Stops the cassette recorder. This behaves in the same manner as pressing the STOP button on an actual cassette recorder.
Play Starts the cassette recorder playing. This behaves in the same manner as pressing the PLAY button on an actual cassette recorder.
Record Starts the cassette recorder recording. This behaves in the same manner as pressing the REC button on an actual cassette recorder.
Move to counter reading Fast forwards or rewinds to a specific counter value on the cassette recorder.
Rewind to beginning Rewinds to the very beginning of the cassette file.
Fast forward to end Fast forwards to the very end of the cassette file.
Insert/remove plug Inserts or removes the cassette plug on the cassette recorder. When the cassette plug is inserted, the cassette recorder will operate only when the TRS-80 allows it (such as during a CLOAD or CSAVE). When the cassette plug is removed, the cassette recorder will operate at any time. This matches the behavior of a real TRS-80.

The Options Menu

Fullscreen — Enables and disables fullscreen mode. The menu bar is hidden in fullscreen mode, but can be redisplayed by pressing the ALT key.

Sound enabled — Enables or disables TRS-80 sound generation. This applies to all sound: cassette game sound, Orchestra 85/90 sound, Stringy Floppy, and floppy drive sound.

Floppy drive sound enabled — Enables or disables TRS-80 floppy drive sound generation. This mimics the sound of an actual TRS-80 floppy drive as closely as possible. The Sound enabled setting above must be enabled for this option to have any effect.

Stringy Floppy sound enabled — Enables or disables Exatron Stringy Floppy sound generation. This mimics the sound of an actual Exatron Stringy Floppy drive. The Sound enabled setting above must be enabled for this option to have any effect.

Control dot-matrix — Brings up the submenu which allows you to control the emulated dot-matrix printer. The submenu contains these options:

Form feed Use this command to move to the next page of the emulated printer. This is equivalent to pressing the form-feed button on a dot-matrix printer.
Use unprintable area Use this command to print in the unprintable area of your Windows printer. Most laser or ink-jet printer can print on a smaller area of the page than a dot-matrix printer can. The dot-matrix emulation normally works with this smaller printable area. If your TRS-80 program uses margins, then this command can make the page a more reasonable size. The usefulness of this command varies widely among printers, so you should experiment for best results.
LF after CR Use this command to treat a carriage-return as a CR, LF sequence. Unless you have a good reason, this option should always be on when using dot-matrix emulation.

Configuration — Brings up the configuration dialog box. This lets you change the emulator configuration. The dialog box contains these options:

Computer There are four options:

  • Model I, Level I: This emulates the original TRS-80 (later known as the Model I), with the Level I ROMS operating at 1.77 MHz.
  • Model I, Level II: This emulates the Model I with Level II ROMS operating at 1.77 MHz.
  • Model III, Level I: This emulates the rarely seen Model III with Level I ROMS operating at 2.02 MHz.
  • Model III, Level II: This emulates the Model III with Level II ROMS operating at 2.02 MHz.
  • Model 4: This emulates the Model 4 operating at a speed of 2.02 or 4.05 MHz.
  • Model 4P: This emulates the Model 4P operating at a speed of 2.02 or 4.05 MHz.
Memory There are five options in Model I and Model III (Level I or Level II) modes:
  • 4K: this is the lowest memory size possible. It was a very common configuration for Level I machines.
  • 8K: this memory size was possible, but rarely seen.
  • 16K: this was a common size for cassette based Level II machines. On a Model I, this was the maximum memory size possible without using an expansion interface or hardware modification.
  • 32K: this is the minimum memory size required for using a disk operating system. On a Model I, this memory size and above required an expansion interface.
  • 48K: this is the maximum memory size. Unless you are testing a special configuration, you should leave it at this setting.

There are six options in Model 4 and 4P modes:

  • 64K: this is the minimum memory size required by most Model 4 operating systems.
  • 128K: this is the maximum capacity of a stock Model 4 or 4P. The additional memory can be used as a RAM disk and by some programs. You should leave it at this setting unless you have programs that recognize additional memory.
  • 256K: this is the minimum memory size possible with the Alpha Technology memory board, a popular add-on. The additional memory could be used as a RAM disk and by some programs, most notably LeScript.
  • 512K: this is another Alpha Technology configuration.
  • 768K: this is another Alpha Technology configuration.
  • 1024K: this is the maximum capacity of the Alpha Technology memory board. You should leave it at this setting if you have any programs that can use the additional memory.

Setting this option to 256K and above is only possible with the registered emulator.

Keyboard There are two options:
  • TRS-80: this tries to match the layout of the original TRS-80 keyboard. This layout can be useful for certain games that rely on the positioning of the arrow keys.
  • Windows: this attempts to map the Windows keyboard to the TRS-80 keyboard in an intelligent fashion. All shifted number keys retain their Windows meanings but are mapped correctly within the TRS-80 emulation. As an additional feature, international Windows keyboard layouts are correctly recognized and mapped. Remember that the shifted numeric keypad keys are not translated in the same way as the normal number keys. For example SHIFT+2 creates @ using the number keys, but " using the numeric keypad.
Control key Unlike the Windows keyboard, the Model I and III keyboard did not have a **CONTROL** key. Different programs used different key combinations for that purpose. This setting allows you to select which key combination the Windows **CONTROL** key uses. A Model 4 keyboard did have a **CONTROL** key, but it is sometimes useful to map it to another combination. There are four options:
  • SHIFT-DOWN: this key combination was used by many programs, including Level II BASIC. This is the best option for Model I and III mode.
  • @: this was used as a control key by some programs, notably Scripsit.
  • Electric Pencil: this special key was used by Electric Pencil. This was not a built-in key, but one added by a hardware kit.
  • CONTROL: this selects the Model 4 control key. This is usually the best option for Model 4 mode.
Lowercase A stock Model I was only able to display uppercase characters. This limitation became famous, and was soon corrected by Radio Shack and by third-parties. Lowercase modifications were very common add-ons and were supported by most programs. Remember that you will need to run a lowercase driver within Model I mode to type lowercase characters. There are two options only in Model I mode (the Models III and 4 had lowercase built-in):

  • Not installed: this emulates the uppercase only original Model 1.
  • Radio Shack: this emulates the Radio Shack lowercase modification.
Doubler This setting controls the type of doubler that is emulated in Model I mode. A doubler was an optional add-on that allowed the Model I to use double-density disks. The Model III and 4 came standard with double-density support, so this option is disabled in Model III and 4 mode. There are four settings:

  • None Installed: turns off all doubler support.
  • Percom: emulates the Percom doubler. This was the first doubler standard, and was also used by several other manufacturers.
  • Radio Shack: emulates the Radio Shack doubler, which was used only by Radio Shack.
  • Both: emulates both the Percom and Radio Shack doubler at the same time. This can be convenient for testing unknown disks, but can cause problems with some programs.
Dot-matrix emulation This setting enables emulation of an Epson FX-80 compatible dot-matrix printer. The FX-80 characters and control codes are interpreted within the emulator and the output is sent to your Windows printer. If this setting is enabled, then the LF after CR setting should almost certainly be enabled as well.
There are two settings:

  • Disabled: no emulation is performed.
  • Enabled: emulation of an Epson FX-80 compatible dot-matrix printer is performed.

This setting is only available in the registered emulator.

Printer port This setting enables emulation of a TRS-80 printer (parallel) port. The output ignores the Windows drivers as much as possible and sends the printer data directly to the attached printer. If dot-matrix emulation is disabled, then no data translation is performed. This means that you must have a printer that is software compatible with a TRS-80 (such as a dot-matrix or daisy wheel printer).
LF after CR This setting is important only if printer output is being sent to a printer. Most TRS-80 printers were set up to require only a CR (ASCII 13) at the end of a printed line. Almost all non-TRS-80 printers require a CR, LF combination (ASCII 13 followed by ASCII 10).

If dot-matrix emulation is disabled, then there are two settings:

  • Disabled: no conversion is performed.
  • Enabled: TRS-80 style printer output (CR) will be converted to non-TRS-80 style printer output (LF, CR).

If dot-matrix emulation is enabled, then there are two settings:

  • Disabled: a CR is treated as a carriage-return only.
  • Enabled: a CR is treated as a CR, LF sequence by the dot-matrix emulation. This is almost always the correct setting in dot-matrix emulation mode.
Real-time clock This setting controls the type of real-time clock that is emulated. There are four settings:

  • None: turns off all real-time-clock emulation.
  • SmartWatch: emulates the SmartWatch, a popular later clock/calendar. You must have TRS-80 software that will support this setting.
  • Newclock-80: emulates the Newclock-80, a popular early clock/calendar. You must have TRS-80 software that will support this setting.
  • Automatic: automatically keeps the time and date correct in TRS-80 memory. This option requires no additional software, and works with almost all TRS-80 operating systems.

This setting is only available in the registered emulator.

Mouse emulation This setting enables emulation of a serial mouse using your Windows mouse. You can then install the mouse driver of your choice within the TRS-80 environment. The RS-232 port option is disabled while this option is enabled. There are three settings:

  • Disabled: turns off mouse emulation.
  • 2-button mouse: emulates a 2-button Microsoft mouse.
  • 3-button mouse: emulates a 3-button Mouse Systems mouse.
RS-232 port This setting enables emulation of a TRS-80 serial port. Compatibility is quite good, but will depend on the serial device being accessed. This option is disabled if the mouse emulation option is enabled.
Character set This setting selects the character set to be used by the emulated Model 4 or 4P. There are two options:

  • Early: this character set was used in early Model 4’s.
  • Later: this character set was used in later Model 4’s and includes the international characters.
Interrupt rate This option controls the interrupt rate of the emulated Model III or 4. The interrupt rate varies because it was based on the AC current frequency, which is different in different countries. The Model I interrupt rate is based on a crystal and is constant across all models. There are two settings in Model III, 4, and 4P mode:

  • United States: this uses an interrupt rate of 60 times per second. This setting will work with most programs.
  • International: this uses an interrupt rate of 50 times per second. Use this setting if your software is patched to use this interrupt rate.
Graphics board This setting controls the type of high-resolution graphics board to be emulated. These boards were all optional add-ons to the main TRS-80. There are three options in Model 4 and 4P mode:

  • None installed: turns off all high-resolution graphics emulation.
  • Micro-Labs: emulates the MicroLabs Grafyx Solution high-resolution graphics board.
  • Radio Shack: emulates the Radio Shack high-resolution graphics board, including all undocumented features.

Most Model 4 high-resolution software will work with either board.

There are three options in Model III mode:

  • None installed: turns off all high-resolution graphics emulation.
  • Micro-Labs: emulates the MicroLabs Grafyx Solution Model III high-resolution graphics board. The Model III board is not compatible with the Model 4 Grafyx Solution board.
  • Radio Shack: emulates the Radio Shack high-resolution graphics board. Use this board if you are unsure what your software requires.

There are two options in Model I mode:

  • None installed: turns off all high-resolution graphics emulation.
  • 80-Grafix: emulates the 80-Grafix high-resolution character generator.

This setting is only available in the registered emulator.

Speed-up board There were a number of speed-up boards for the Model I. Most used the software interface used by the Archbold speed-up kit, which is what is emulated here. There are four options in Model I mode:

  • Not installed: no speed-up is possible.
  • 2X: the Z80 is speeded up to twice its normal speed when enabled in software.
  • 3X: the Z80 is speeded up to three times its normal speed when enabled in software.
  • 4X: the Z80 is speeded up to four times its normal speed when enabled in software. This is the maximum speed-up possible.
Add on music The Orchestra 85 and Orchestra 90 were popular stereo music synthesizers for the TRS-80. They produced good quality music with their accompanying software. Many people wrote their own Orchestra 85/90 music files, and they can still be found on the Internet. Remember that you will need the Orchestra 85/90 TRS-80 software in order to listen to the music files.

There are two options in Model I mode:

  • Not installed: turns off Orchestra 85 emulation.
  • Orchestra 85: emulates the Orchestra 85 music add-on.

There are two options in Model III and 4 mode:

  • Not installed: turns off Orchestra 90 emulation.
  • Orchestra 90: emulates the Orchestra 90 music add-on. The Orchestra 90 is not hardware-compatible with the Orchestra 85, but most software will work with either type.

This setting is only available in the registered emulator.

Joystick This setting enables emulation of a TRS-80 joystick. If enabled, the Windows joystick emulates the Alpha Products joystick (the later version) and the Big Five TRISSTICK. All fire buttons on the Windows joystick are mapped to the one fire button on the TRS-80 joystick. Since Windows joysticks tend to be analog and the TRS-80 joystick was digital, this works better in some games than others. Be sure not to move the joystick when starting a TRS-80 game. Many programs disabled the joystick if any movement was detected as the program started, because they assumed they were seeing a noisy expansion bus rather than a joystick.
Floppy drives There are two options:

  • Disabled: the floppy disk controller is disabled and the emulated computer acts like a cassette-based TRS-80.
  • Enabled: the floppy disk controller is enabled and the emulated computer acts like a disk-based TRS-80.
Hard drives The TRS-80 Model I/III/4/4P never came from Radio Shack with a built-in hard drive, but many companies (including Radio Shack) sold hard drive add-ons. Remember that you will need compatible TRS-80 drivers to use the hard drive (just like you would on a real TRS-80). There are two options:

  • Disabled: the emulated computer acts like a TRS-80 with no hard drive.
  • Enabled: the emulated computer acts like a TRS-80 with a WD1000 controller add-on.

This setting is only available in the registered emulator.

Stringy Floppy One of the most popular storage devices for the TRS-80 Model I was the Exatron Stringy Floppy, which stored data on a continuous loop wafer. Remember that you will need to enable the Stringy Floppy using this command from BASIC:
SYSTEM
/12345
There are two options:

  • Disabled: no Exatron Stringy Floppy is emulated.
  • Enabled: one Exatron Stringy Floppy drive is emulated.
Foreground color This setting sets the color used by the TRS-80 screen. The color defaults to white, but green is another good choice if you want to mimic the look of a green-screen Model 4. Be sure not to set this to be the same as the background color.
Background color This setting sets the color used by the background of the TRS-80 screen, which is normally black. You can obtain unusual effects by changing this value. Be sure not to set this to be the same as the foreground color.
Speed By default, the emulator runs at the exact TRS-80 speed. Sometimes, you might want to run the TRS-80 at faster speeds. This option allows you to run at up to ten times the normal speed. This multiplier acts after the Model I speed-up board option. If you set the speed to a setting higher than your Windows computer can successfully emulate, then the emulation will become erratic. If this happens, then just set the speed to a lower setting.

Remember that the speed-up suffers from the same problems that plagued actual TRS-80 speed-up kits; namely that floppy disk access is not reliable at faster speeds and key repeat can become annoying. Unless you have a good reason, you should probably leave this option at the lowest setting.

ROM image paths --- Sets the path where the TRS-80 ROM files will be found. The ROM files (if present) must have these names:

LEVEL1.ROM – for the Model I, Level I ROM
MODEL1.ROM – for the Model I, Level II ROM
M3_L1.ROM – for the Model III, Level I ROM
MODEL3.ROM – for the Model III, Level II ROM
MODEL4.ROM – for the Model 4 ROM
MODEL4P.ROM – for the Model 4P ROM
ESF.ROM – for the Exatron Stringy Floppy ROM

Confirm on exit --- Enables or disables prompting before exiting. This can be useful if you don’t want to accidentally exit the emulator and lose your running program.

Keyboard Shortcuts

TRS-80 layout only:
[ Left arrow
] Right arrow
` (left single quote) Up arrow
TAB Down arrow
Special keys:
ESC BREAK
END @
HOME CLEAR
BACKSPACE Left arrow
Hotkeys:
F4 Pause emulator
ALT F4 Exit emulator
F5 Load snapshot
SHIFT F5 Save snapshot
CTRL F5 Save screenshot
ALT F5 Run /CMD file
F6 Insert floppy drive 0
SHIFT F6 Insert floppy drive 1
CTRL F6 Insert floppy drive 2
SHIFT CTRL F6 Insert floppy drive 3
ALT F6 Remove all floppy disks
F7 Select hard drive 0
SHIFT F7 Select hard drive 1
CTRL F7 Select hard drive 2
SHIFT CTRL F7 Select hard drive 3
ALT F7 Remove all hard disks
F8 Invoke configuration dialog box
SHIFT F8 Hard reset
CTRL F8 Soft reset (Model I only)
F9 Insert cassette
SHIFT F9 Switch to cassette dialog box
CTRL F9 Toggle display of cassette dialog box
ALT F9 Remove cassette
ALT ENTER Toggle full-screen mode

TRS32 TRS-80 Model I/III/4 Emulator for Windows
Registered Version --- $69.00

Includes these extra features not available in the shareware version: