The M7620 KA650-A CPU module was used in MicroVAX 3500 and
3600 systems, while the KA650-B was the heart of the VAXstation
3200 and 3500. The KA650-B is unctionally equivalent to the -A version,
the difference is the single-user VMS and Ultrix license shipped with it.

The heart of the module is the CVAX chip, which contains 180.000 transistors
and runs at 22 MHz. There are support chips for clock, floating-point accelerator
(70 instructions, 32 other are simulated in software), memory management
and qbus interfacing. The processor also utilizes 1 Kbyte first-level write-through
cache memory (90 ns cycle) and 64 Kbyte second-level cache. The module
also includes a system support chip (SSC) which provide console and boot
code support, console serial line, interval timer, time-of-year clock,
and some other functions. The processor's resident firmware consists of
128 KByte code stored in two 27512 EPROMs. It provides services for self
testing, initialization, console command language (CCL), bootstraps.

The KA650 CPU features LMI (Local Memory Interconnect), which uses three
different paths to system memory: the qbus, the C-D interconnect of the
backplane (thus it must be fitted into a Q22/CD backplane, which is usually
a BA215 enclosure with a 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,
in which case the system is sometimes nicknamed "MicroVAX III"),
and a ribbon cable that connects the CPU module to MS650 or compatible
third-party memory boards. This means, that you can use qbus memory cards
with the KA650 (although it results in weaker performance), or you can
use LMI MicroVAX III memory modules. Do not try to use LMI memory modules
intended for earlier MicroVAX systems (modules of the MS630-series, etc)!
The CPU module should go into the first slot of the backplane, the LMI
memory boards should be next. The maximal memory amount is 64 MBytes, although
this is limited to 48 MB in VAXstations.

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. The system can also be used in a BA11-S enclosure with straight-down
Q22/C-D backplane, but I've yet to see a MicroVAX III like that...

Upon powering up, the KA650 performs some special actions, like checking
the console firmware NVRAMs, locating the console device, query the console
language and then running some self-testss. Locating the console device
means sending some control characters to the SLU if there's a unit
responding to it. If there's a VCB02 (QDSS) graphics module in the system,
the console will be initialized here. (Note: the qbus hasn't been checked
yet, so if there are failures on the bus, the console can be "lost"). After
this is done, the firmware displays a banner message with the firmware
and VMB (primary bootloader) version numbers:

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

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:

This is a function used in the newer firmware, earlier revisions will search
for a boot device much like the KA630 CPU does:
1. MSCP disks (disk controller at 17772150 or at a floating CSR), named
DUxy, DAxy, DJxy (fixed disk, floppy)
2. TMSCP tape drive at 17774500 or at a floating CSR, named MUxy (for
example a TK50 drive)
3. boot PROM (for example on an MRC11 module)
4. Ethernet adapter at 17774440 or 17774460, named XQAx or XQBx

In this case, a successful bootstrap will look like this:

2..
-DUA0

1..0..
Loading system software.

This countdown is also displayed on the LEDs of the Cover/Patch Panel and
on LEDs on the CPU module.

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 KA650 (it would not be that easy anyway,
the connectors are 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. It's used in the BA2xx-series of enclosures (also called the "S-box").
On the inside, it has a one-piece ribbon cable which plugs into the SLU and
bulkhead panel connectors (J1 and J2) on the KA650, 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.

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:

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 KA650 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. Note: some of these comands may not
be present in earlier firmware versions.

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

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

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

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

INITIALIZEProcessor initialization.

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

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

NEXT"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 off 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.

UNJAMI/O bus reset.

The commands can be abbreviated (e.g. it's enough to type I for INITIALIZE,
etc). Later/other MicroVAX CPUs had more complex console commands.

Error codes of the KA650 CPU

Whenever an error occures, the KA650 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.

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.

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

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.