SIMH/Draft
SIMH consists of simulators for a lot of different machines, and as such, is a very important emulator for anyone interested in computer history; in particular, that of DEC systems, as the PDPs and even some VAX models are well emulated by it.
It can even emulate network interfaces for some of the simulated computers, e.g. the PDP-10, PDP-11 and VAX, so the emulated systems can network directly onto the Internet, if the emulated operating system supports it, like BSD or VMS.
SIMH was primarily written by Bob Supnik of Zork porting fame, and is now widely contributed to by others as well.
SIMH Flavors
For some time passed there are three flavors of SIMH now:
- "Classic" SIMH (http://simh.trailing-edge.com/)
- "New" SIMH (https://github.com/simh/simh)
- OpenSIMH (https://opensimh.org/)
It is relatively hard for a beginner to decide which way to go. I will not give any specific advice, but some short descriptions:
"Classic" SIMH is the oldest one, whereof the others were forked later on. It is Bob Supnik work mostly, except for some HP simulators. Development apparently stopped (or at least slowed down) in December 2022. The current version is SIMH V3.12-3.
"New" SIMH was the first bigger fork and added a lot more simulated computer systems.
"OpenSIMH" forked from "New" SIMH because of insurmountable different opinions of both maintainers and contributors.
Usage
SIMH can either take in configuration parameters interactively, or you can store them in a file. If the file is the name of the emulator+.ini it will load them automatically (eg vax.exe loads vax.ini automatically). Once running, the CONTROL+E key will break the emulation and bring you back to the SIMH console where you can alter the running state.
Networking is covered in the Networking with SIMH guide.
SIMH Media Handling
SIMH handles computer storage media in the form of data files called "images" for:
All of these image files are said to be interchangeable between the three SIMH flavors with one exception: Image files used with "New" SIMH may be unreadable with the other two flavors because of 512 byte of meta data appended to the standard SIMH images.
Sorry, Windows folks, the next two commands are for Linux only! - If someone knows how to do the same in Windows, please add it here.
You can visualize the appended metadata under Linux with (example image file trek7.rk7):
$ tail -c 512 trek7.rk7 | hexdump -C 00000000 73 69 6d 68 56 41 58 20 31 31 2f 37 35 30 00 00 |simhVAX 11/750..| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000040 00 00 00 00 52 4b 30 37 00 00 00 00 00 00 00 00 |....RK07........| 00000050 00 00 00 00 00 00 02 00 00 00 d2 1e 00 00 00 02 |................| 00000060 4d 6f 6e 20 41 70 72 20 20 33 20 30 39 3a 31 39 |Mon Apr 3 09:19| 00000070 3a 32 34 20 32 30 32 33 0a 00 00 00 00 02 00 00 |:24 2023........| 00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 fa 1e 03 18 |................| 00000200
In the metadata you can see:
- the simulated computer model:
simhVAX 11/750
- the disk model:
RK07
- the time stamp:
Mon Apr 3 09:19:24 2023
The problem can be cured under Linux using (example image file trek7.rk7):
$ truncate -s -512 trek7.rk7
This truncates 512 bytes (the metadata) at the end of the image file.
Keep in mind that the truncate
command truncates whatever file you specify, so look first if metadata is present.
Another possible pitfall:
If you leave out the -
(minus) before the 512
, you will end up with a corrupted image of 512 bytes only!
Caution:
Truncating does not work with SIMH disk images in VHD format!!!