VAX Emulation Project

SIMH emulates a variety of DEC systems such as VAX, PDP-11 and PDP-10. Xerox Sigma and a variety of other large systems from Control Data Corporation, IBM and Honeywell are also emulated. The emulator has evolved since the 1960s and is maintained by Robert Supnik, a former DEC engineer and Vice President. The goal of SIMH was to maintain historically significant computer architectures running through emulation. Many early computers fade into oblivion; the SIMH emulator project has the goal of keeping these important systems accessible even if the original hardware is no longer available. SIMH runs on Windows, Linux Apple OSX, FreeBSD, OpenBSD, NetBSD and OpenVMS. The latest version of SIMH is available on GitHub.
This project was to get SIMH 3.9 running a 32 bit VAX 3900 with the OpenVMS 7.1 operating system. Most VAX system processors had CPU clocks that ran in the MHz range. Modern processors, even those obsolete ones, run in the GHz range. With the SIMH emulation running on GHz level processors, the expectation is that the emulator performance will equal or better the performance of a mid range VAX system.
The VAX 3900 was a Q-Bus (22bit) system featuring a KA655 CPU (CVAX) and is similar to the MicroVAX III but in a different cabinet. It shipped with a TK70 tape drive and RA81/RA81 disk drives.
This project started by installing SIMH on an Apple PowerBook G3 (300 MHz) which used a 64 bit PowerPC architecture. Although the processor was slow and it literally took minutes to compile the SIMH source code, it was a good introduction to understanding how to build the VAX emulator. Unfortunately I was never able to get the ethernet adapter to work on the G3. The emulator operated well and it was possible to build a VMS image. However, the emulator worked very slowly due to the slow G3 and the slow laptop disk (5400 rpm). The G3 was replaced by a G4 PowerBook operating at 1GHz. The VAX emulation worked well at the better speed, however the slow laptop disk was still slow. The goal was to continue to use the G4 PowerBook for VMS operating system configuration changes, upgrades, etc. and then move the VMS disk image to a PowerMac G5 with more memory and processing speed.
The reason for using Apple PowerPC systems was primarily their low cost ($100 for G5 PowerMac), a unix based environment, availability of a GCC compliler through Apple's XCODE development environment and a performance that is still adequate for VAX emulation. The Apple OSX operating system has another advantage, in that it has the X11 environment, which is ideal for running the DEC$WINDOWS environment. Just one caveat, the X11 client cannot be on the same servers as the emulator. The system running the SIMH emulator can serve DEC$WINDOWS applications but another computer needs to display the windows applications in the X11 environment.

A difficult aspect of setting up SIMH was the correct setup of the intitiation file (.ini). The one I used is listed below and works for my configuration. The fle is named vax.ini for running the vax emulator. This file was first tested on a PowerBook G4 before being moved to the G5 PowerMac. The operating system is vaxvmssys.iso on an RQ0 (an emulated RA90). The other disks are emulated CD-ROM drives (RRD40) which conytain installable product save set images of various DEC CD-ROMs. In future, more disks can be added to the emulator, either more RA90s or more RRD40s. As well, SIMH supports various other disks.
The most difficult part was to configure the ethernet adapter. In the initiation file below XQ is equaited with a DELQA ethernet adapter. On the computer that SIMH runs on, you will need to find out the ethernet adapter name. This is en0 in the case of the G4 PowerBook and on the PowerMac G5 as well.
vax.ini |
---|
; ---------------------- start of vax.ini ----- ;Load CPU microcode LOAD -r ka655x.BIN ; ; Attach non-volatile RAM to file ATTACH nvr nvram.bin ; ; Max memory setting SET CPU 64M SET DZ LINES=8 ATTACH -a DZ 12000 ; ; ethernet (run with sudo for this to work) echo ** Attempting to attach XQ to en0 ; set XQ enabled set XQ mac=08-00-2B-AA-BB-CC set XQ type=DELQA attach XQ en0 echo ** Display available Ethernet Adapters show XQ eth echo -------------------- ; disbale devices we don't need set rl disable set ts disable set cr disable ; ; -------------------- DISKS ; allocate disks echo ** ALLOCATING DISKS SET RQ0 RA90 SET RQ1 RRD40 SET RQ2 RRD40 SET RQ3 RRD40 ATTACH RQ0 vaxvmssys.iso ATTACH RQ1 images/vaxvmscd.iso ATTACH RQ2 images/d1of12.iso ATTACH RQ3 images/d4of12.iso echo ** DISK ALLOCATION COMPLETE ; go to console on halt set cpu conhalt ; SET CPU IDLE ; ; start emulator ; echo ** Starting VAX 3900 Emulator in HALT Mode boot cpu ; ------------------------ end of vax.ini ----- |
To run the VAX emulator use the sudo command, where vax is the executable:
users-powerbook-g4-15:BIN manuel$ sudo ./vaxThe emulator then starts up as if a physical VAX was actually being booted. The boot device id DUA0: which is the RA90 that was defined in the vax.ini file. was
VMS 7.1 Startup |
---|
VAX simulator V3.9-0 NVR: buffering file in memory Listening on port 12000 (socket 5) ** Attempting to attach XQ to en0 Eth: opened OS device en0 ** Display available Ethernet Adapters ETH devices: 0 en0 (No description available) 1 en1 (No description available) -------------------- ** ALLOCATING DISKS ** DISK ALLOCATION COMPLETE ** Starting VAX 3900 Emulator in HALT Mode KA655-B V5.3, VMB 2.7 Performing normal system tests. 40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25.. 24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09.. 08..07..06..05..04..03.. Tests completed. >>>b dua0: (BOOT/R5:0 DUA0 2.. -DUA0 1..0.. %SYSBOOT-I-SYSBOOT Mapping the SYSDUMP.DMP on the System Disk %SYSBOOT-I-SYSBOOT SYSDUMP.DMP on System Disk successfully mapped OpenVMS (TM) VAX Version V7.1 Major version id = 1 Minor version id = 0 $! Copyright (c) 1996 Digital Equipment Corporation. All rights reserved. |