- The VAX 11/780 runs the VAX Diagnostic Supervisor the EVKAE (Privilege
Architecture Exercisor) tests cleanly.
All other Unibus VAXen execute different instructions in EVKAE
Test 8 (KERNEL STACK NOT VALID) subtest 2 when compared to the 11/780.
On these processors a REI instruction with reserved operands is invoked and
this causes a failure of this subtest for these processors.
We avoid this diagnostic test that fails.
- The VAX 8200 has some issues with the VAX Diagnostic Supervisor.
Specifically, the EVKAA (Hardware Core Instruction) test uses the processor
interval timer to measure the passage of time and expects the interrupts
that are generated to occur at IPL 24 (0x18). Meanwhile, the actual
hardware is documented to generate Interval Timer interrupts at
IPL 22 (0x16). EVKAA fails when interrupts occur at IPL 22(0x16).
If the processor is is built with Interval Timer interrupts at IPL 24(0x18),
then EVKAA passes, but the EVKAE (Privileged Architecture Exercisor)
Interval Timer test fails since the interval timer interrupts occur at
IPL 24(0x18) and not at IPL 22(0x16).
Once operating systems are running, operating system behavior will
generally be unaffected if Interval Timer interrupts occur at a higher
IPL than the OS expects, so the VAX 8200 is built that way and we avoid
the diagnostic that fails.
- The DEC supplied instruction diagnostics actually time the execution of
instructions being tested using the interval timer and the time of day
clock. When instructions take too long, they fail the test. The
VAX 11/730 simulator actually fails some of these instruction tests when
run at precisely .3 the instruction rate of the VAX/11 780. We therefore
adjust the nocalibrate execution rate to 320K vs the VAX 11/780 running
at 1000K.
- uncalibrated clock mode executes at a precisely specified instruction
rate relative to pseudo wall clock time independent of the host
computer's speed or other loads on the host system.
- Provide additional failure state if/when diagnostics fail.
- Run Floating Instruction diagnostics for 2 passes - these have
been observed to fail on the VAX730
- Increase allowed run limit
- When diagnostics fail, emit the diagnostic session output if
diagnostics were not being run in verbose mode.
This procedure establishes a telnet listen port solely so that the console
output traffic can be buffered (and not emitted). Since nothing will ever
connect to this port we bound it to the localhost address so that firewall
prompts aren't generated when building in a new directory.
- Different VAX models had different groups of instructions which were
implemented in hardware vs trappng to the OS for emulation. Functionality
has been added to differentiate the various mix of instruction groups for
different models and to display both the groups and the actual instructions.
- Visibility to Instruction groups is provided by SHOW CPU INSTRUCTIONS
and the list of the active instructions implemented and emulated via
SHOW CPU -V INSTRUCTIONS.
- The MicroVAX I CPU handled some execution fault conditions differently
from other VAX systems these differences are now specifically handled.
- Add build time test support to MicroVAX I running EHKAA v1.13
suggested in #683
- Add more CPU debug details relating to exception and interrupt processing
- OS X libpcreposix segfaults when a compiled regular expression is freed.
- Revise regular expression syntax used in VAX diagnostic scripts to avoid
Perl oriented extensions.
- Diagnostic execution happens as a normal part of the makefile build.
- Diagnostic execution can be suppressed by invoking make with TESTS=0
on the command line
- Diagnostic execution during build is produced in summary form.