VAX Emulation Project

Microvax II image

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.

VAX 8200 CPU Card

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 ./vax

The 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.