[Antonio Carlini, replying to me]
I now favour
the "executing out of prefetch buffer" theory,
reinforced by the following comment snippet someone sent me,
supposedly taken from the source to MicroVAX console ROMs:
[...] To turn on MMGT and execute the following REI depends on a
"quirk" of the MicroVAX chip. Namely, if the MTPR and REI
instruction are both fetched as part of the same instruction
prefetch, then the REI will be executed regardless of the enabling
of mmgt. [...]
OK. So it sounds like you have strong evidence for a chip bug
here.
I'm not sure I'd call this a _bug_, really; my VARM, at least, does not
indicate that changing MAPEN is supposed to do anything to any
instruction prefetch buffers - yet the prefetch was clearly considered,
since the REI description does specifically say that "[a]ny instruction
lookahead in the processor is reinitialized". If anything, I'd say
it's the author(s) of the ROM code that are sloppy here, for depending
on the ability to execute out of the prefetch buffer. (But given the
target for their code, I'm not sure it's fair to say even that much.)
I have done tests, and the real thing does in fact execute out of the
prefetch buffer after changing MAPEN.
If the console code has such comments in, it's
best to believe them.
Even if it's merely alleged to, I'm inclined to believe them when my
own tests indicate that something very similar is in fact going on. :)
Heh. I
don't suppose the microcode is available anywhere?
I don't have the KA630
microcode and I don't know anyone who does.
That's about what I expected. And I can't imagine that it's
programmer-visible at the VAX programmer level, so I can't dump it as
trivially as I did the console ROM code...ah well.
Though it really would have been pretty cool to build an emulator for
the micromachine instead and then run the real thing's microcode. :-)
[Hans B PUFAL, responding to Antonio Carlini's response to me]
Have you taken this up with Bob Supnik, he of SIMH
fame?
Me, no, I haven't. I may eventually if I run up against something I
can't handle on my own, but so far I haven't reached that point.
I'm now well into the code that selftests the FPU, writing emulations
of the various floating-point instructions. Tedious but not difficult.
We'll see what I run into once that's done.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse(a)rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B