[Simh] VAX emulation issues on Raspberry Pi

Jeremy Begg jeremy at vsm.com.au
Mon Jul 30 18:57:26 EDT 2018


Hi,

A while ago the power supply in my VAXstation 4000/96 died and rather than
fix it I decided to move it to a Raspberry Pi 3.

The VAXstation has a 100MHz CPU and the RPi has a 1.2GHz CPU - about 120
times faster.  Yet the performance of SIMH basically sucks, especially when
logging in to the emulated VAX via SSH.

On the real VAXstation, establishing an SSH sesison was slow -- it would
take the better part of a minute -- but once established it was very usable
and quite capable of running a DECterm to an X11 display on a remote PC over
an SSH tunnel.

On the Raspberry Pi the SSH session establishment takes several minutes and
trying to run a DECterm is painful to say the least.  I was hoping that the
RPi's much faster CPU would compensate for the emulation overhead,
particularly on a very CPU-intensive task like SSH session establishment, so
this result is rather disappointing.

I could perhaps put up with those issues but there two other, more
fundamental problems when starting the simulation.

The first one is, the emulation can't be started automatically; I have
to run it interactively in a terminal window.  If I try to automate the
startup using, for example

   $ ./vax < vax.ini

the VAX console boot ROM fails a self test and refuses to boot into VMS.
If I type the commands from vax.ini by hand, it works fine.

A similar issue occurs if I try to load the boot console NVR from a file:
the VAX console boot ROM fails its self-test and won't boot VMS.

The second problem is that the simulated VAX is *always* a VAXserver 3900. 
Trying to SET CPU MODEL=MicroVAX just doesn't work, so my VAX-VMS licence
PAK's availability table code don't suit the machine any more.

The SIMH version is currently 

   MicroVAX 3900 simulator V4.0-0 Beta       git commit id: 733ac0d9

I tried downloading the latest from Github (git commit id: 8077d4de) but it
didn't fix the startup issues so I haven't persisted with it.

Before starting this exercise I had read several reports of people
successfullly using Raspberry Pi to run an emulated VAX so I have to think
something is very broken in my RPi environment, but I'm not sure what I
should be looking for.

FWIW the Raspberry Pi is running

Linux pieric 4.14.52-v7+ #1123 SMP Wed Jun 27 17:35:49 BST 2018 armv7l GNU/Linux

and the file /etc/os-release is:

PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

SIMH was built with "gcc (Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516".
Here is the full SHOW VERSION output:

sim> show version
MicroVAX 3900 simulator V4.0-0 Beta
    Simulator Framework Capabilities:
        64b data
        64b addresses
        Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 5
    Host Platform:
        Compiler: GCC 6.3.0 20170516
        Simulator Compiled as C arch: ARM (Release Build) on Nov  9 2017 at 08:04:00
        Memory Access: Little Endian
        Memory Pointer Size: 32 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        RegEx support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        OS: Linux pieric 4.14.52-v7+ #1123 SMP Wed Jun 27 17:35:49 BST 2018 armv7l GNU/Linux
        git commit id: 733ac0d9

The later version (which I'm not running because it didn't fix the startup issues) is:

sim> show version
MicroVAX 3900 simulator V4.0-0 Current
    Simulator Framework Capabilities:
        64b data
        64b addresses
        Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC 6.3.0 20170516
        Simulator Compiled as C arch: ARM (Release Build) on Jun 17 2018 at 21:12:47
        Memory Access: Little Endian
        Memory Pointer Size: 32 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        RegEx support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        OS: Linux pieric 4.14.52-v7+ #1123 SMP Wed Jun 27 17:35:49 BST 2018 armv7l GNU/Linux
        git commit id: 8077d4de
        git commit time: 2018-06-17T08:37:08+02:00


Thanks,

        Jeremy Begg

  +---------------------------------------------------------+
  |            VSM Software Services Pty. Ltd.              |
  |                 http://www.vsm.com.au/                  |
  |---------------------------------------------------------|
  | P.O.Box 402, Walkerville, |  E-Mail:  jeremy at vsm.com.au |
  | South Australia 5081      |   Phone:  +61 8 8221 5188   |
  |---------------------------|  Mobile:  0414 422 947      |
  |  A.C.N. 068 409 156       |     FAX:  +61 8 8221 7199   |
  +---------------------------------------------------------+


More information about the Simh mailing list