KA655-A/B "MicroVAX III+" CPU

Click here for the full-size image
Picture : the M7625 CPU module

The H3600-SA CPU Cover Panel
The CPU Patch Panel
Console commands
Error codes


The M7625 KA655-A CPU module was used in MicroVAX 3800 and 3900 systems, while the KA650-B was the heart of the VAXserver 3800 and 3900. The module itself can be seen as an enhanced version of the KA650 CPU. It has a CVAX chip on it, running at 33 MHz (272 hardware instructions, 32 emulated by software, 9 hardware data types, 7 emulated), with an 1KByte L1 cache at 60 ns, and 64 KBytes L2 cache at 120 ns. The memory management works up to 64 MBytes, the system accepts MS650 memory boards (up to four). As it's mostly an upgrade to the KA650, it's normaly housed in the same BA213 boxes (with straight-down Q22/C-D backplane), but it can also be used in the first few Q22/C-D slots of a BA23 or BA123.

The console is used through a CPU Patch panel, which in the case of BA2xx enclosure is the H3600-SA cover panel, or the bulkhead CPU Patch Panel Insert on a BA23/BA123.

Connectors on the board

The module has three connectors:
J1:   CPU patch panel ("bulkhead panel") connector #1: serial line connector
J2:   CPU patch panel ("bulkhead panel") connector #2: LED display and switches
J3:   memory interconnect cable
All three cables are straight-through ribbon cables, nothing special.


Upon powering up, the KA650 performs special actions, like checking the console firmware NVRAMs, locating the console device, query the console language and then running some self-tests. Locating the console device means sending some control characters to the SLU if there's a unit responding to it. After this is done, the firmware displays a banner message with the firmware and VMB (primary bootloader) version numbers:

KA655-A V5.3, VMB 2.7
Next, if the Power-up Mode Switch on the CPU Cover/Patch Panel is in the Language Query position, or the previous value was lost due to failure of the back-up battery unit, the firmware asks for the language to use in console messages. After that, a sequence of tests is executed. On some (earlier) versions of the firmware, the countdown starts at 30 instead of 40 as shown here.
Performing normal system tests.
Tests completed.
The example here shows a normal countdown; if there's an error, you'll get a dump of registers, and the message "Normal operation is not possible.". The interpretation of these messages is not trivial, here's a little hint:
?16 2 08 FF 00 0000
"16" is the number of the test that bombed.
"2" is the severity factor. "2" causes the register dumps to be displayed and the autoboot prohibited. "1" just prints this erro message line, and doesn't disables the autboot functionality.
"FF" is the code of the error found. FF: normal error exit form diag, FE: unanicipated interrupt, FD: interrupt in cleanup mode, FC: interrupt in interrupt handler, FB: test script requirements not met, FA: no such diagnostics, EF: unanticipated exception in executive.
"0000" is the total number of errors encountered.

Now, depending on the state of the Halt Enable switch on the CPU Cover/Patch Panel, the console prompt (">>>", also called the "chevron") is displayed (if halt is enabled), or the system attempts to boot (if halt is disabled). If no default boot device is set, the firmware will prompt you for one:

Loading system software.
No default boot device has been specified.
-DUA0 (RA81)
-MUA0 (TK50)
-XQA0 (08-00-2B-06-F3-E4)
Device? [XQA0]
(BOOT/R5:0 XQA0)
If you fail to suply to boot device, the firmware will try the ethernet adapter XQA0.
If you type the name of a boot device, the system boots from there. In this case, a successful bootstrap will look like this:
Loading system software.
This countdown is also displayed on the LEDs of the Cover/Patch Panel and on LEDs on the CPU module.

The steps of the power-up tests:
F:   Waiting for CDOK
E:   Start executing ROM firmware code
D:   Waiting for Power OK
C:   SSC and ROM tests
B:   CPU tests
A:    FPA tests
9:    Memory management chip tests
8:    Memory tests
7:    Qbus tests
6:    Console loopback/QDSS tests
5:    Cache tests
4:    Miscellanous tests running
3:    Console I/O mode
2:    Searching for bootstrap device, control passed to VMB
1:    Bootstrap device found, control passed to secondary bootstrap
0:    Program I/O mode, controll passed to operating systems

Some tips for troubleshooting

If there's nothing on the console display, nor on the hex LED display, check if the CPU's in place, check the cable from the CPU module to the bulkhead panel. I've experienced some silly behaviour when using too long ribbon cables between the CPU and the Patch Panel... I you cannot use the computer, as it loops through the tests, check if the power-on mode switch on the Patch panel is in the "test loop" position.
Although I mentioned this earlier, I'll do it again: don't use MS630 or compatible memory boards with the KA655 (it would not be that easy anyway, the connectors are not in line to warn you!).

H3600-SA CPU Cover Panel (BA2xx enclosure)

The H3600-SA is a special I/O panel covering the CPU and the first memory module in the BA2xx-series of enclosures (also called "S-boxes"). On the inside, it has a one-piece ribbon cable which plugs into the SLU and bulkhead panel connectors (J1 and J2) on the KA655, the battery back-up unit (BBU, a battery pack) and a rotary switch for baud rate selection. On the outside there's a hex LED display, the power-up mode switch (Halt enable/disable, the upper position is "enabled"), a recessed rotary switch for language selection ("face" for language inquery, "arrow" for normal operation, "T in circle" for loopback test), and the SLU connector, which is a modified modular jack (MMJ), which can be used with the Digital "office cable" equipment, or you can break off the little "twitch" of a normal phone cable with MJs on both ends (the MMJ is just like a normal phone connector with this twitch off-center) so that it fits (although it will slide out quite easily). The newer Digital CRT terminals (VT320 and above) all have MMJ connectors ("DEC423" in the configuration menus), on VTs with a normal DB25 connector you must use a converter.

Baud rate selection:

0 -   300 bps
1 -   600 
2 -  1200
3 -  2400
4 -  4800
5 -  9600
6 - 19200
7 - 38400

The CPU Patch Panel Insert (BA 23/BA123)

Picture 2: The CPU Patch Panel, sometimes called the "bulkhead"

The two-position switch is for halt enable/disable ("dot in circle" is enabled).
The LED display is for displaying the power-up test countdown
The three-position rotary switch is for selecting power-up modes ("arrow": normal operation", "face": language inquery mode, "T in circle": test loop mode)
The eight-position rotary switch is for selecting the baud rate for the console terminal (from 300 baud to 38400)

The console port

The male DB9 connector is for the console. It's not a 9-pin PC serial port! You must have a Digital BCC08 cable, or build one. The pinout is:

DB9 (VAX)    DB25 (PC)
1  ----------->  1
2  ----------->  3
3  ----------->  2
4  ----------->  5
5  ----------->  6
6  ----------->  20
7  ----------->  7    
8  --\
9  --/
This is in general a null modem cable (pins 2-3, 3-2, 7-7, with the 8th and 9th pin on the VAX-side shorted; speaking from experience, you don't need all the pins that are connected in the BCC08 cable).

Console commands

The KA655 has two operating states. One is normal operation (programmed I/O), the other is console I/O. Console I/O is entered when the "Halt enable/disable" switch on the Cover/Patch Panel is in the enable position and a/ the "Halt" button on the system control panel is pressed b/ upon power-up. You are also dropped into console mode, when something fatal occurs to the operating system. You can identify the console state from the "chevron" prompt:

You can enter bootstrap/diagnostic commands form this prompt (e.g. you can play around with memory locations, registers, etc), up to 80 characters once. Commands can be abbreviated.

The most important commands:

BOOT </qualifier> [DEVICE]
Boots the specified device (DUxy for disks where x is the controller number, y is the disk on that controller, MUxy for TMSCP tapes (in the same manner) XQA0 or XQB0 for Ethernet). If no device is pecified, the system goes through the sequence discussed at power-up tests. Qualifier: /R5:<value> - the <value> gets passed to VMB (primary boot loader). If you enter "BOOT" alone, the console goes through the normal bootstraping procedure. A default boot device can be given with SET BOOT <DEVICE>. Default boot flags can be set with SET BFLG <FLAG> .

This is a utility that is similar to the VMS SYSGEN program: it generates a table of CSR and vector addresses of devices entered interactively.

The CPU starts instruction execution from the address in the PC (Program Counter). No initialization is performed.

DEPOSIT [qualifier] <address> <data>
Deposits <data> into the address specified. Special address specifications include PSL (Processor Status Longword), PC, SP (Stack Pointer), Rx for register #x, + for the next location (counted in the unit given with the qualifier), - the previous location, * the last referenced location. Qualifiers: /b data size is byte, /w data size us word, /l data size is longword, /v address is in the virtual address space, /p physical memory, /i internal processor register, /g general register, /u access to console program memory locations, /N:<count> range of the operation.

EXAMINE [qualifier] <address>
Examines the data at the given address. The qualifiers are the same as with DEPOSIT.

Processor initialization.

No effect, as the processor is in the halt state when in console I/O mode.

Displays a list of commands and their arguments.

MOVE [qualifier] <src address> <dest address>
Moves the block of memory starting at <src address> to a block beginng at <dest address>. The data format qualifiers are the same as with DEPOSIT and EXAMINE.

"Steps" the processors <n> macro instructions. If no count is specified, single-step is assumed.

REPEAT <command>
Repeats <command> until CTRL+C is pressed.

SEARCH [qualifiers] <address> <pattern> [mask]
Search for occurences of a pattern. The data size qualifier can be supllied as with DEPOSIT and EXAMINE. The mask is for not taking care of some bits: if you specify "1", bit 0 will be ignored.

SET <parameter> <value>
Sets the indicated parameter to <value>. The following console parameters will be accepted: BFLAG (boot flags), BOOT (default boot device), LANGUAGE (default language). SET HOST is using the DUP or MAINTENANCE driver on the selected node (intelligent storage controllers, such as the KFQSA DSSI adapter).

SHOW <parameter>
Displyas the value of the parameter, which can be one of: BFLG (default boot flag), BOOT (default boot device), DEVICE (all devices in the system), ETHERNET (hardware address of the ethernet adapter), LANGUAGE (default console language), MEMORY (memory configuration, also accepts the /full switch), QBUS (all addresses that respond to an aligned word read), RLV12, UQSSP, VERSION (version of the firmware and VMB).

START <address>
Starts instruction execution at <address>

TEST [test number]
The test identified by [test number] is invoked. If no number is specified, no test is performed. TEST 9E lists the available diagnostic tests.

I/O bus reset.

Error codes of the KA655 CPU

Whenever an error occures, the KA655 dumps a small error message on the console, which consist of a two-digit hexadecimal number, a small, abbriviated message, and the content of the PC.

|HEX VALUE|   MESSAGE   |         EXPLANATION                                 |
  02        EXT HLT         Break was typed on the console, QBINIT or QHALT 
                            was asserted.
  04        ISP ERR         In attempting to push state onto the interrupt 
                            stack during an interrupt or exception, the 
                            processor discovered that the interrupt stack was
                            mapped NO ACCESS or NOT VALID.
  05        DBL ERR         The processor attempted to report a machine check 
                            to the operating system, and a second machine check 
  06        HLT INST        The processor executed a HALT instruction in kernel 
  07        SCB ERR3        The vector had bits <1:0> equal to 3.
  08        SCB ERR2        The vector had bits <1:0> equal to 2.
  0A        CHM FR ISTK     A change mode instruction was executed when 
                            PSL<IS> was set.
  0B        CHM TO ISTK     The exception vector for a change mode had 
                            bit <0> set.
  0C        SCB RD ERR      A hard memory error occurred while the processor was 
                            trying to read an exception or interrupt vector.
  10        MCHK AV         An access violation or an invalid translation
  11        KSP AV          An access violation or an invalid translation
                            occurred during processing of an invalid kernel
                            stack pointer exception.
  12        DBL ERR2        Double machine check error. A machine check occured
                            during processing of a kernel stack, not valid
  13        DBL ERR3        Double machine check error. A machine check occured
                            while trying to service a machine check.
  20        CORRPTN         The console database was corrupted. The console
                            program simulates a power-up sequence and
                            rebuilds its database.
  21        ILL REF         The requested reference would violate virtual
                            memory protection, the address is not mapped,
                            the reference is invalid in the specified
                            address space, or the value is invalid in the
                            specified destination.
  22        ILL CMD         The command string cannot be parsed.
  23        INV DGT         A number has an invalid digit.
  24        LTL             The command was to large for the console to
                            buffer. The message is issued only after receipt
                            of the terminating carriage return.
  25        ILL ADR         The address specified falls outside the limits
                            of the address space.
  26        VAL TOO LRG     The value specified does not fit in the
  27        SW CONF         For example, for example two different data sizes are
                            specified with an EXAMINE command.
  28        UNK SW          The switch is unrecognized.
  29        UNK SYM         The symbolic address in an EXAMINE or DEPOSIT
                            is unrecognized.
  2A        CHKSM           The command or data checksum of an X command
                            is incorrect. If the data checksum is
                            incorrect, this message is issued and is not
                            abbreviated to "Illegal Command".              
                            occurred during machine check exception
  2B        HLTED           The operator entered a HALT command.
  2C        FND ERR         A FIND command failed either to find the RPB or
                            64 kb of good memory.
  2D        TMOUT           During an X command, data failed to arrive in
                            the time expected.
  2E        MEM ERR         Parity error detected.
  2F        UNXINT          An unexpected interrupt or exception occurred.
  40        NOSUCHDEV       No bootable devices found.
  41        DEVASSIGN       Device is not present.
  42        NOSUCHFILE      Program image not found.
  43        FILESTRUCT      Invalid boot device file structure.
  44        BADCHKSUM       Bad checksum on header file.
  45        BADFILEHDR      Bad file header.
  46        BADIRECTORY     Bad directory file.
  47        FILNOTCNTG      Invalid program image file.
  48        ENDOFFILE       Premature end of file encountered.
  49        BADFILENAME     Bad file name given.
  4A        BUFFEROVF       Program image does not fit in available memory.
  4B        CTRLERR         Boot device I/O error.
  4C        DEVINACT        Failed to initialize boot device.
  4D        DEVOFFLINE      Device is offline.
  4E        MEMERR          Memory initialization error.
  4F        SCBINT          Unexpected SCB exception or machine check.
  50        SCB2NDINT       Unexpected exception after starting program
  51        NOROM           No valid ROM image found.
  52        NOSUCHNODE      No response from load server.
  53        INSFMAPREG      Invalid memory configuration.
  54        RETRY           No devices bootable, retrying.

Back to the top
Back to "Qbus modules"
Full Table of Contents
Back to the main page

Created by: Ákos Varga Last modified: