trs80gp - A TRS-80 Model 3 and Model 1 Emulator
This emulator runs under Windows either XP or Vista and probably even older versions. If your processor is less than a Pentium 3 or 1 GHz you can still run it but the "-na" option will be necessary.
My brother and I built it primarily as a development tool for software written for real TRS-80's and for experiments in improved emulation fidelity. That's why it can load programs in .cas, .hex, .bas or .cmd format directly but has no disk emulation nor can use use CLOAD or SYSTEM to load .cas files (as in most normal emulators). I like to think of it as the best and worst TRS-80 emulator out there.
The Best
- Window scalable to any size with realistic phosphor-dot rendering.
- Near perfect video emulation including beam drop-outs, wait states and various other subtle effects.
- Cycle perfect sub-instruction Z-80 and video timing.
- Built-in Z-80 debugger (just good enough to be useful and no more).
- Model 3 and Model 1 supported.
- AVI video and GIF screenshot capture.
- Will fast boot and load program on command line.
- Can visually indicate Z-80 video memory conflicts.
The Worst
- Keyboard is physically mapped (see Keyboard below)
- Cassette based-sound but no cassette loading.
- No floppy disk or hard disk emulation.
- Primitive line printer support.
- Hardware emulation gaps fixed on a "as I need them" basis.
Instructions
trs80gp has several command line options to control its operation. Run "trs80gp -?" to get the latest information on them.
| Option | Effect |
|---|---|
| -h | Start in halted state |
| -m1 | Emulate Model 1 |
| -m3 | Emulate Model III (default) |
| -l1 | Run Level 1 BASIC ROM |
| -l2 | Run Level II BASIC ROM (default) |
| -bd | Turn beam debugging on |
| -na | Turn off authentic display |
| -win WxH | Set window width and height |
| -time render/frame | Show timing in title bar |
| -showkey | Show Windows key code in title bar |
| file | one or more files to load after auto-boot |
Keyboard
The TRS-80 had 53 keys. The emulator is set up so that PC keys in roughly the same physical location as the TRS-80 keys will activate them. Most of the symbols on your keyboard will correspond to the same key on the TRS-80. The letters, numbers, arrow keys and Enter will do what you expect and !#$%;<>,. are in the same spot, otherwise:
| To Get | Press | |
|---|---|---|
| ` | shift [ | |
| @ | [ | |
| & | shift 6 | |
| * | shift - | |
| ( | shift 8 | |
| ) | shift 9 | |
| - | = | |
| + | shift ; | |
| = | shift = | |
| : | - | |
| ' | shift 7 | |
| " | shift 2 | |
| Break | Pause/Break or F9 | |
| Clear | \ |
The menus are pretty self-explanitory except for the "Record" menu which is a little unfriendly. All of those items output to a sequence of hard-coded files and will overwrite those files if they already exist. As well the "Video" and "Z-80 Profile" options begin recording and only stop when you select them again. Finally, the video recording is uncompressed. It generates huge files and is only good for a few minutes at most. Use your preferred video editor/encoder to get more reasonably sized video (but they do zip up nicely).
| Record | Output files |
|---|---|
| Video | trs80-0.avi, trs80-1.avi, trs80-2.avi, ... |
| Screenshot 12 | trs80-0.gif, trs80-1.gif, trs80-2.gif, ... |
| Profile | profile-0.txt, profile-1.txt, profile-2.txt, ... |
Emulated printer output is appended to the "trs80-printer.txt" file.
Pretty much anything else depends on knowing how to operate a TRS-80 or program a Z-80.
George Phillips, November 2, 2009. gp2000 -at- shaw.ca