SIMH/Draft

From Computer History Wiki
Jump to: navigation, search

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:

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!!!