already). I picked the KA630 because it's the
only VAX implementation
I have enough information on to even really attempt to build a
simulator for.
A KA630 is a good choice, but there's plenty out there on
the MicroVAX 2000/VAXstation 2000 (and they're based on the
same CPU chip and don't have a Qbus to worry about) and the
KA650/KA655. The same is probably true of the VAX-11/780/750
and 8600 ... just a few more learning exercises for later :-)
I dumped the ROMs from one of my KA630s (e/l/p/n:3fff
20040000, plus
some postprocessing of the capture file) to get firmware. But the
emulated VAX hangs at selftest step B. The manual I have
(EK-KA630-UG-001) says this means that the IPCR is not
working properly
(probably broken Qbus electronics, on a real KA630), but it doesn't go
into any significant detail.
IIRC that's the dorrbell register. The uVAX II implemented it
to allow for the possibility of multiple CPUs in one box. I
don't think anyone really used it. You can find a description
of it in the KA680 Tech Manual (EK-KA680-TM, available on
all good Internets ...). It's almost certainly the same.
Basically, some hardware somewhere (probably in the Qbus
controller) will normally send the right reply. Since
you have a KA630 you could try "SHOW QBUS" and see
what it really comes back as, but 0x0020 is my guess.
You need to handle accesses to the Qbus address where that
register lives and make sure the right value is returned.
Furthermore, if I break to the simulator and manually
advance it past
the "blbc r0,." that it's hanging at, it continues, but ends
up with an
error at step 7 - apparently it can't find any working memory(!).
Did you remember to give it any :-)
Exactly how does it die? I presume that some time ago it
politely asked the memory controller for what might be
happening and got "dunno" as the reply ...
Or I could be mis-emulating the Qbus stuff.
Probably - there's more to the system that just the
CPU chip.
Or I could have a bug in the emulation of an
instruction somewhere.
Almost certainly.
So, I'm looking for either or both of (a) someone
who's enough of a
KA630 guru to help or (b) some kind of VAX instruction-set test suite,
to help verify that I have the instruction emulations right.
(I caught
one instruction emulation bug already, quite by chance; there
is surely
at least one more.)
I'm no guru - I don't meditate enough :-) You could try asking
Bob Supnik or Tim Stark what they used to stress-test their
VAX implementations. I know that internally DEC used a tool
called AXE which essentially ran random tests for ever on the
target machine. Once you get as far as a console prompt, then
booting OpenVMS or NetBSD (or VAX-Linux, soon) will presumably
provide at least a first-level of comfort!
Antonio
--
---------------
Antonio Carlini arcarlini(a)iee.org