Jeff Vavasour of Vancouver, BC, has written an emulator for MS-DOS that emulates a T/S 1000 with a T/S 1016 16K memory pack and T/S 2040 printer. The program is freeware and is available on the Internet on simtel20.army.mil and oak.oakland.edu. Others can get it through Update or your local users group.
The emulator will run on any PC with CGA graphic or better. A 12 MHz system, or better, is recommended. The emulator executable is about 8K and the ROM is about another 8K. The zip file with the executable, the ROM, and a readme file is about 13K. In comparison to other emulators, this is very small.
The emulator emulates a full T/S 1000. The keyboard is mapped to feel like the T/S 1000 keyboard (delete is shift 0 not the delete key). The emulator does not have an onscreen display of the keyboard, so a manual would be handy.
The emulator does not support cassete loading (the LOAD and SAVE commands), but does support a “snapshot” type of saving and loading. Hiting the F3 key gives you the option to save the current computer setting or load one in. When loading a snapshot file, the emulator returns to the same state as when the file was saved. Essentially the file is nothing more than a memory dump. This means the each saved file is about 16K.
The emulaor supports the printer commands and provides support for Epson or Proprinter II printers. Not having one of these printers hooked two either of the two test computers I have not tried this option.
The emulator also comes with a built in debuger. F1 will bring up a main menu. The debugger options are: set a breakpoint, edit memory, load registers, view memory, reset the emulator, quit the emulator, and step through a Z80 instruction.
I have tested the emulator on a 33 MHz 386 computer and my 7 MHz 8088 laptop. On the 386 computer I found the emulator to be fairly slow. Having used XTender (another ZX81 emulator for MS-DOS) I expected it to be fast. I could not type in characters too fast, as they would be lost. The display worked like it was in fast mode, except that it would not blank the screen, but leave it unchanged before the results of a computation were finished.
I used an example program to test this out.
10 CLS
20 PRINT "TEST"
30 CLS
40 FOR X = 1 TO 1000
50 NEXT X
60 PRINT "DONE"
When this program ran, only DONE would be printed on the screen and the screen would not clear until the FOR..NEXT loop was complete. I tried the FAST and SLOW commands, but neither seemed to do anything. This may be fine for some programs, but it can be a serious handicap for others. Since a user will have to type in programs into the emulator, they could change the code to adapt to this problem.
Other than that, the display is fast. You don’t see the individual lines be printed on the screen. They just all appear there.
When I tested the emulator on my laptop, I found it to be very slow. It took about 3 seconds for a key to register and it took just under a minute for the emulator to reset (memory check). Loading and saving files did not seem to be affected. Hiting any of the three supported function keys would bring an immediate response. It was only the T/S 1000 keys that were slow.
In summary, I find the emulator sort of usefull on a faster MS-DOS machine but almost unusable on a slower machine. In comparison with XTender, it does not fare too well. The only advantage TS1000 has is that it is free (XTender is about $25). I’m a big fan of Freeware and Jeff has done a good job in writing the emulator (and keeping it small). I think it’s worth a look.
As a note of interest, in talking with Jeff (via e-mail) he mentioned that he wrote a basic program to dump the whole ROM, with checksums, to a printer, then the typed the whole thing into his MS-DOS computer. Quite a bit of work.
Also, Jeff has written an MS-DOS emulator for a TRS-80 Model I computer, his first computer. The code for this emulator was the base for the T/S 1000 emulator. The debugger works essentially the same on both emulators.