simh-testsetgenerator/VAX/tests/vax-diag_test.ini
Mark Pizzolato 621e97e170 MicroVAX1, all VAX: Add model specific instruction execution and emulation
- 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
2019-04-30 14:28:37 -07:00

139 lines
5 KiB
INI

:: vax-diag.ini
:: This script will run the available CPU instruction and core
:: functional diagnostics for the different VAX simulators.
::
:: Default output summarizes success or failure.
:: if the script is invoked with -v as a parameter, verbose
:: diagnostic output will be produced.
::
:: The related diagnostic files must be located in the same directory
:: as this procedure.
::
#set clock async
#set debug -ntp todr.dbg
#set todr debug
#set tmr debug
#set int-clock debug=calib
#set int-clock nodebug=queue;gettime;check
#set cpu hist=20000
#break A3B4 SHOW HIST=40
cd %~p0
set env DIAG_QUIET_MODE=0
if ("%1" == "-v") set console notelnet
else set -qu console telnet=65432,telnet=buffered; set env -a DIAG_QUIET_MODE=1
goto DIAG_%SIM_BIN_NAME%
:DIAG_INFOSERVER100
:DIAG_INFOSERVER1000
:DIAG_INFOSERVER150VTX
:DIAG_MICROVAX2
:DIAG_MICROVAX2000
:DIAG_MICROVAX3100
:DIAG_MICROVAX3100E
:DIAG_MICROVAX3100M76
:DIAG_MICROVAX3100M80
:DIAG_RTVAX1000
:DIAG_VAXSTATION3100M30
:DIAG_VAXSTATION3100M38
:DIAG_VAXSTATION4000M60
:DIAG_VAXSTATION4000VLC
echof "No diagnostics are available for the %SIM_NAME% Simulator\n"
exit 0
:DIAG_MICROVAX1
echo Running Hardware Core Test (EHKAA)
if not exist ehkaa-uv1.exe echof "\r\nMISSING - Diagnostic '%~p0ehkaa-uv1.exe' is missing\n"; exit 1
load ehkaa-uv1.exe
go -q 200
if (PC != 0x1150DA51) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 0
:DIAG_VAX
:DIAG_MICROVAX3900
echo Running Hardware Core Test (EHKAA)
if not exist ehkaa.exe echof "\r\nMISSING - Diagnostic '%~p0ehkaa.exe' is missing\n"; exit 1
load ehkaa.exe
go -q 200
if (PC != 0x80018AD1) echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 1
else echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EHKAA\n"; exit 0
:DIAG_VAX730
:DIAG_VAX750
:DIAG_VAX780
:DIAG_VAX8600
echo Running Hardware Core Test (EVKAA)
if not exist evkaa.exe echof "\r\nMISSING - Diagnostic '%~p0evkaa.exe' is missing\n"; exit 1
load evkaa.exe
expect "Hit any key to continue" send "\r"; go -q
expect [2] "done!" echof "\r\n*** PASSED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"; goto extended_tests
go -q 200
echof "\r\n*** FAILED - %SIM_NAME% Hardware Core Instruction test EVKAA\n"
exit 1
:extended_tests
reset -p
if (DIAG_QUIET_MODE) echof "\nStarting VAX Diagnostic Supervisor\n"
if not exist VAX_MINIMUM_DIAGS.dsk echof "\r\nMISSING - Diagnostic disk image '%~p0VAX_MINIMUM_DIAGS.dsk' is missing\n"; exit 1
attach -rq rq0 VAX_MINIMUM_DIAGS.dsk
goto %SIM_BIN_NAME%
:VAX730
# VAX 11/730 Diagnostic Supervisor Setup for EVKAB/C/D/E
expect "DS> " send "ATTACH KA730 HUB KA0 no 0 0 2048 no no\r"; go -q
expect "DS> " send "ATTACH DW730 HUB DW0\r"; go -q
goto Common
:VAX750
# VAX 11/750 Diagnostic Supervisor Setup for EVKAB/C/D/E
expect "DS> " send "ATTACH KA750 CMI KA0 yes yes yes 0 0\r"; go -q
expect "DS> " send "ATTACH DW750 CMI DW0 8\r"; go -q
goto Common
:VAX780
# VAX 11/780 Diagnostic Supervisor Setup for EVKAB/C/D/E
expect "DS> " send "ATTACH KA780 SBI KA0 yes yes 0 0\r"; go -q
expect "DS> " send "ATTACH DW780 SBI DW0 3 5\r"; go -q
goto Common
:VAX8600
# VAX 11/8600 Diagnostic Supervisor Setup for EVKAB/C/D/E
expect "DS> " send "ATTACH KA780 ABUS KA0 yes yes 0 0\r"; go -q
expect "DS> " send "ATTACH DW780 ABUS DW0 3 5\r"; go -q
goto Common
:Common
expect "DS> " send "ATTACH UDA50 DW0 DUA 772150 154 5 10\r"; go -q
expect "DS> " send "ATTACH RA81 DUA DUA0\r"; go -q
expect "DS> " send "SET LOAD DUA0:[SYSMAINT]\r"; go -q
expect "DS> " send "SELECT KA0\r"; go -q
expect "DS> "
boot -q RQ0 /R5:10
#set todr debug
#set tmr debug
#set int-clock debug=calib
#set int-clock nodebug=queue;gettime;check
#set nodebug
call do_test EVKAB "VAX Basic Instructions Exerciser"
call do_test EVKAC "VAX Floating Point Instructions Exerciser"
call do_test EVKAD "VAX Compatibility Mode Instructions Exerciser"
#call do_test EVKAE "VAX Privileged Architecture Exerciser"
echof "\n*** All Diagnostic Supervisor tests PASSED ***\n"
exit 0
:do_test
set env DIAG_TEST=%1
set env DIAG_DESC=%2
set env -a DIAG_ERRORS=1
noexpect
if (SIM_REGEX_TYPE == "") echof "Missing Regular Expression support - skipping %DIAG_TEST% test\n"; exit 0
expect -r "Hard error" go -q
expect -r "Pass 1, test ([0-9][0-9]*), subtest ([0-9][0-9]*), error ([0-9][0-9]*)," set env -a DIAG_ERRORS=_EXPECT_MATCH_GROUP_3; return
expect -r "System fatal error while testing" go -q
expect -r "\.\. End of run, ([0-9][0-9]*) (error|errors) detected, pass count is [0-9][0-9]*," set env -a DIAG_ERRORS=_EXPECT_MATCH_GROUP_1; go -q
expect "DS> "
if (DIAG_QUIET_MODE) echof "\nRunning - %DIAG_DESC% %DIAG_TEST%\n"
send "RUN %DIAG_TEST%\r"
go -q
if (DIAG_ERRORS > 0) echof "\n*** FAILED - %DIAG_DESC% %DIAG_TEST%\n"; exit 1
if (DIAG_QUIET_MODE) echof "\n*** PASSED - %DIAG_DESC% %DIAG_TEST%\n"
return