VAX-11/785

Update: This functionality has now been incorporated in the standard Simh distribution. See at the bottom of this page for a link

This is a do-it-yourself guide to 'upgrading' the standard simh VAX-11/780 to a VAX-11/785. The VAX-11/785 was release in 1984 and is essentially the same system as the VAX-11/780 but with a faster CPU.

The first task is to modify the system ID register contents so that the system is recognised as an 11/785 instead of an 11/780. Every VAX has a system ID register, which informs the operating system about the CPU type. The generic format for the VAX system identification register is as follows:

    32            24 23                                            0
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   CPU Type    |               Model Specific                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The CPU types are:

01 = VAX-11/780,782,785
02 = VAX-11/750
03 = VAX-11/730,725
04 = VAX 8600,8650
...
07 = MicroVAX I
08 = MicroVAX II
...

For the 11/780 the SID has the format:
    32            24   22           15 14 12 11                    0
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |0 0 0 0 0 0 0 1| |   ECO level   |plant|    serial number      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ^
                     |
                     +--- 0 = VAX-11/780
                          1 = VAX-11/785
As we can see, bit 23 needs to be set. This is acheived by making a minor modification in vax780_defs.h. The existing line, which looks like this:
#define VAX780_SID      (1 << 24)                 /* system ID */
should be changed to this:
#define VAX780_SID      (3 << 23)                 /* system ID */
If you attempt to boot VMS at this point you will get a warning about the WCS or PCS microcode version being below the minimum required for VMS. To rectify this another change is needed in vax780_defs.h. The two lines which look like:
#define VER_WCSS        0x12                      /* WCS secondary version */
#define VER_PCS         ((VER_WCSS >> 4) & 0x3)   /* PCS version */
should be changed to:
#define VER_WCSS        0x52                      /* WCS secondary version */
#define VER_PCS         ((VER_WCSS >> 4) & 0xF)   /* PCS version */

That should do it :)

Downloads

File Type Date
simh-master.zip Source (github) -