Subject: Re: VAX 780 and it's Microcode...
To: None <DSEAGRAV@toad.xkl.com, port-vax@NetBSD.ORG>
From: Ross Harvey <ross@teraflop.com>
List: port-vax
Date: 05/20/1998 10:02:00
> From port-vax-owner-ross=teraflop.com@NetBSD.ORG Wed May 20 06:48:53 1998
> Date: Wed, 20 May 1998 06:26:10 -0700
> From: "Daniel A. Seagraves" <DSEAGRAV@toad.xkl.com>
> Subject: VAX 780 and it's Microcode...
> To: port-vax@NetBSD.ORG
>
> Does the VAX 780 load ALL it's microcode at boot-time, or is some of it on
> ROMs?  From what I get from the manuals, and playing with the 785, there is
> a RX01 connected to the LSI mini at the bottom of the rack.  When you power
> it on, (And put grant continuity jumpers in the right places on the mini :)
> it loads microcode from the floppy, then becomes a terminal.
> You get a message similar to this:
> VER:  PCS=01 WCS=0E-10 FPLA=0E CON=V07-00-L  KE780 PRESENT
> PCS is the programmed control store, WCS is the writable control store,
> and FPLA (Field Programmable Logic Array) causes the VAX to fetch microwords
> from WCS instead of PCS.
> I take it that the PCS is on a ROM, and WCS and FPLA are on EEPROMs.
> If that's right, which board are the PCS ROMs on?  Has anyone made images of
> them?  Also, does anyone have a disk image of a VAX 780 microcode disk?
> Just getting curious about how big VAXen work...
> One more thing:  How does one go about getting NetBSD/vax on a 780?
> (Netboot?)
> How many out there (Besides Ragge) have large VAXen?
> -------
>


This brings back some memories. I worked for three years for National
Semiconductor where we had an original /780.

For fun, I wrote a microassembler and figured out how to microcode the
big beast. I wrote instructions (interruptible!) to scroll an experimental
frame buffer (OK, this was a long time ago) and also instructions to
do procedure entry and exit. I also had one that disabled the console
halt, and would try to get this loaded as a joke when the dec field
circus was scheduled. I used to test ucode with the system up and running
multiuser. I only crashed it once or twice. :-)

Anyway, IIRC, the answers to your questions are something like:

	most of the microcode is in ROM (bipolar fused PROM, I think)
	there is a supposedly optional board that has writable ucode RAM
	(it could be that all /780's actually had this board)

	I wrote a trivial driver to load ucode at runtime through a
	/dev/something node. (We were 4.1bsd. Bill Jolitz was our
	sysadmin.)

	the purpose of the FPLA is to disable buggy instructions and
	patch them over to the RAM ucode

	the official interface to the RAM ucode had a big startup
	overhead, because dispatch to the ucode for a particular
	"normal" instruction was done with a hardware-assist jump
	table, so the only way to intercept a normal instruction
	and the only way to define a new instruction with a fast
	startup or abitrary opcode was to load an FPLA program

	the FPLA program probably isn't something you want to screw
	around with. The existing ucode (you had to social engineer
	an insider out of his copy of the microfiche) and the
	schematics (everybody got those) serve as a great reference
	to writing new stuff, but its hard to figure out what to
	do with the FPLA. It was made by signetics, and was from
	their 82S series, but playing with it would be a bit like
	rewiring the CPU.

Ross Harvey