Ole Houen, 123RF

Ole Houen, 123RF

VAX emulation with OpenVMS

Time Machine

Article from ADMIN 15/2013
Emulators beam a long-lost computer age into the present day with SIMH software, which brings the OpenVMS system back to life on an emulated VAX computer.

Yesterday's computers – and not just old home computers and game consoles – still hold a great deal of charm for many people today. This is especially true of computers that, at the time, were prohibitively expensive, even for many businesses. Now you can experience some of these historical computers with the help of SIMH [1], which emulates a number of antiquities, including the VAX and PDP series of DEC computers, the MITS Altair, and computers by Hewlett Packard and Honeywell. Many of these dinosaurs were milestones in the development of information technology and marked the rise of entire companies.

One example is the series of VAX machines by Digital Equipment Corporation (DEC), which wrote the history book with its PDP series of computers. The VAX was groundbreaking in that it introduced a 32-bit architecture with virtual memory; it soon became the market leader in the business computer segment.

For their new computer, DEC released a new operating system called VMS; it implemented support for user terminals and advanced features such as clustering. VMS was also known for its sophisticated security concepts, including Access Control Lists (ACLs), and auditing capabilities. The VMS operating system still runs on many bank computers.


The SIMH emulator was written by DEC veteran Bob Supnik, who now works at Unisys. He was inspired by his colleague Larry Stewart, who pointed out that computer history was doomed to extinction if somebody didn't do something about it. This somebody was Supnik, who took the suggestion as an opportunity to move from assembler to the C programming language and begin the SIMH project.

SIMH is available in the repositories of some Linux distributions, but with some files missing. Installing from source, however, is easy. After you have downloaded the approximately 3MB ZIP file, create a folder before you unpack, because the archive does not contain one. If you simply unzip, all the files and directories end up in the current directory.

Build It Yourself

Assuming you have the files in the simh directory, change to it and type make. If you only want the VAX emulator, make vax will suffice. The results end up in the BIN directory and go by the name vax. It is best to copy the binary into a directory that is in the path, for example, /usr/bin or $HOME/bin. To give the emulator networking capabilities, you need to install the developer package for libpcap before compiling (on Debian/Ubuntu, libpcap-dev).

The cleanest approach is to create a separate directory for the VAX emulator (e.g., /home/oliver/vax). Copy the firmware file ka655x.bin to this directory; it is located in simh/VAX. Additionally, you need the configuration file, vax.ini, in the same place.

This file specifies the hardware configuration of the virtual VAX beginning with a statement that loads the firmware and then an instruction to attach a file for the non-volatile (NV) RAM, in which the boot parameters are permanently stored. The rest of the instructions are devoted to configuring the disks and the network interface. At the very end are a few special boot instructions, which I will talk more about later.


If you now call vax in the vax directory, you will see a few debug messages followed by a language selection. At this point, you don't have many other options because you are still missing a boot disk with an operating system that the VAX can boot. To leave the emulator at any time, press Ctrl+e, which sends you to an input prompt where you can control the emulator. Entering help shows the available commands; exit terminates the emulator.

Besides VMS, VAX also could use Ultrix, a Unix system. Then again, you could save yourself some trouble and just use Linux; however, the operating system for the VAX in this example will be good old VMS. Originally, VMS was known as VAX-11/VMS (like the first VAX 11/780). Later, the number was dropped, and DEC changed the name again in the early 1990s to OpenVMS. The system is still available under this name, but only for the Itanium architecture.

If you have a CD with OpenVMS for VAX, you can create a CD image; otherwise, you need to visit the OpenVMS Hobbyist program [2] to enroll and obtain a license for the operating system and all the other available software. Until recently, you also could order physical installation media, but now you can email a request for a link to the disk image download site. You will receive a license key by email.

In line with the configuration in Listing 1, the image must be named cdrom.iso and reside in the vax directory. Type the boot dua3 command at the boot prompt and the system will boot from the CD, which comes up with the OpenVMS trademark and version number and then prompts you to enter the date. It completely does without modern bells and whistles but expects the input in exactly one format:

22-APR-2013 11:54

that is, the day, month as a three-letter abbreviation, year, and time. Then the system searches for devices. After finding all the devices, in particular, the disks DUA0 to DUA2, confirm by pressing YES , and you are taken to a kind of minimal VMS.

Listing 1


01 load -r ka655x.bin
02 attach nvr nvram.bin
03 set cpu 64m
05 set rq0 ra92
06 set rq1 ra92
07 set rq2 ra92
08 set rq3 cdrom
10 attach rq0 d0.dsk
11 attach rq1 d1.dsk
12 attach rq2 d2.dsk
14 attach -r rq3 cdrom.iso
16 set rl disable
17 set ts disable
19 set xq mac=08-00-2B-AA-BB-CC
20 attach xq eth0
22 set cpu idle
23 boot cpu

The first step in the OpenVMS installation is to write a so-called "save set" of the operating system from the CD to the hard drive:

backup dua3:vms073.b/save_set dua0:

After doing this, you can boot from the hard disk for the first time and then continue with the installation. Ctrl+e changes to the emulator prompt, where exit ends the program. After restarting vax, this time enter

boot dua0:

and the system on the disk now boots (Figure 1). Again, you need to enter the date, then a label for the system disk, where you can simply accept the default. For the drive holding the OpenVMS distribution media , type DUA3 and then press Y .

Figure 1: OpenVMS during the first boot after installation on the hard disk.

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus