Adjust the RUNLIMIT to specify instructions instead of wall clock time. On an unfettered system, the sel32 test completes after some 588 million instructions. On a slow host system, the system clock tick processing will add to the total instructions executed. Increase the limit to 750 million instructions.
109 lines
3.4 KiB
INI
109 lines
3.4 KiB
INI
:: pdp8_test.ini
|
|
::
|
|
:: Run the paper tape-based diagnostics for the PDP-8 simulator.
|
|
::
|
|
::
|
|
:: Script is where the diagnostics ought to reside as well.
|
|
cd %~p0
|
|
|
|
:: Limit maximum diagnostic execution time
|
|
runlimit 1500M instructions
|
|
set on
|
|
on error ignore
|
|
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; exit 1
|
|
|
|
:: Maximum memory, extended address element:
|
|
set cpu 32k
|
|
set cpu eae
|
|
|
|
:: AND, TAD, Operate and basic MQ instruction test (D0AB)
|
|
:: This test halts after the first 3 instructions to let the
|
|
:: operator verify that HLT and CLA works before continuing
|
|
:: onto the real tests.
|
|
echof -n "** PDP-8: Basic Instruction Test (1): "
|
|
load diags/maindec-8e-d0ab-pb.bin
|
|
:: Patch address 5276 with HLT to stop execution after a
|
|
:: full pass is done or else it will send BEL every 1440
|
|
:: iterations.
|
|
dep 5276 7402
|
|
dep sr 07777
|
|
go -q 200
|
|
if (PC != 0147 || AC != 0) echof "MAINDEC-8/E-D0AB failed."; exit 1
|
|
go -q
|
|
if (PC != 05277) echof "MAINDEC-8/E-D0AB failed."; exit 1
|
|
echof "passed"
|
|
|
|
:: Autoindexing, Indirect addressing, and the DCA instruction with
|
|
:: "minimal" testing for interrupt, AND, TAD, ISZ, JMS, JMP and
|
|
:: processor IOT instructions.
|
|
echof -n "** PDP-8: Basic Instruction Test (2): "
|
|
load diags/maindec-8e-d0bb-pb.bin
|
|
:: Patch address 3740 with HLT, otherwise the test will loop every
|
|
:: 1550 iterations and send BEL to the TTY. We really do want the
|
|
:: test to halt.
|
|
dep 3740 7402
|
|
dep sr 0
|
|
go -q 200
|
|
if (PC != 03741) echof "MAINDEC-8/E-D0BB failed."; exit 1
|
|
echof "passed"
|
|
|
|
:: The ADDER test
|
|
echof "** PDP-8: Adder tests: "
|
|
load diags/maindec-8e-d0cc-pb.bin
|
|
:: Patch address 4561 with HLT. Test loops between SIMAD, SIMROT, FCT and
|
|
:: RANDOM, ad infinitum. We really want the test to halt.
|
|
dep 4561 7402
|
|
:: And ask the tests to be quiet, test extended (banked) memory.
|
|
dep sr 0200
|
|
go -q 200
|
|
if (PC != 04622) echof "MAINDEC-8/E-D0CC failed."; exit 1
|
|
echof
|
|
echof "** PDP-8: Adder test passed."
|
|
|
|
:: Random AND tests
|
|
echof -n "** PDP-8: Random AND test: "
|
|
load diags/maindec-8e-d0db-pb.bin
|
|
:: Halt after one 4096 loop pass, suppress output
|
|
dep sr 02400
|
|
go -q 200
|
|
if (PC != 00355) echof "MAINDEC-8/E-D0DB failed."; exit 1
|
|
echof "passed."
|
|
|
|
:: Random TAD tests
|
|
echof -n "** PDP-8: Random TAD test: "
|
|
load diags/maindec-8e-d0eb-pb.bin
|
|
:: Patch 6743 with HLT to stop the test after 4096 iterations. Would
|
|
:: normally output a "T" until machine halted.
|
|
dep 6743 7402
|
|
:: Suppress output
|
|
dep sr 00400
|
|
go -q 200
|
|
if (PC != 06744) echof "MAINDEC-8/E-D0EB failed."; exit 1
|
|
echof "passed."
|
|
|
|
:: Random ISZ tests
|
|
:: Bit more of a challenge: cant just put a HLT instruction to
|
|
:: terminate the test loop. And cant squelch the output either.
|
|
if (SIM_REGEX_TYPE == "") echof "Missing Regular Expression support - skipping Random ISZ test\n"; goto ISZ_DONE
|
|
echof "** PDP-8: Random ISZ test: "
|
|
load diags/maindec-8e-d0fc-pb.bin
|
|
dep sr 0
|
|
expect -r [25] "\r\nFC" echof; echof "** PDP-8: Random ISZ test: passed."
|
|
expect -r "F [0-7]{4}" echof; echof "** PDP-8: Random ISZ test: MAINDEC-8/E-D0FC failed."; exit 1
|
|
go -q 200
|
|
:ISZ_DONE
|
|
|
|
:: Random DCA tests
|
|
echof -n "** PDP-8: Random DCA test: "
|
|
load diags/maindec-8e-d0gc-pb.bin
|
|
:: Patch 0404 with HLT to stop the test after 28,328 iterations (one complete pass)
|
|
dep 0404 7402
|
|
dep sr 0
|
|
go -q 200
|
|
if (PC != 0405) echof "MAINDEC-8/E-D0GC failed."; exit 1
|
|
echof "passed."
|
|
|
|
echof
|
|
echof "!! All Tests Passed !!"
|
|
echof
|
|
exit 0
|