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.
104 lines
3.3 KiB
INI
104 lines
3.3 KiB
INI
:: pdp9_test.ini
|
|
::
|
|
:: Run the paper tape-based diagnostics for the PDP-9 simulator.
|
|
::
|
|
:: Maximum memory, Extended Arithmetic Element
|
|
set cpu 32k
|
|
set cpu eae
|
|
|
|
cd %~p0
|
|
:: Limit maximum diagnostic execution time
|
|
::
|
|
set runlimit 10M instructions
|
|
set on
|
|
on error ignore
|
|
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; exit 1
|
|
|
|
:: LAC, TAD, ADD, SAD, XOR and all Operate instruction test (D01A)
|
|
echof -n "\rRunning MAINDEC-9A-D01A PDP-9 Instruction Test 1"
|
|
if not exist diags/maindec-9a-d01a-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d01a-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d01a-ph.rim
|
|
:: Break at 13030 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
break 13030
|
|
de asw 22
|
|
boot -q ptr
|
|
go -q 13041
|
|
if (PC != 013030 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof Passed"
|
|
|
|
:: DZM, DAC, ISZ, JMP, CAL, JMS, XCT, Autoindex, Indirect, Time Clock, PI, DBR (D02A)
|
|
echof -n "Running MAINDEC-9A-D02A PDP-9 Instruction Test 2"
|
|
if not exist diags/maindec-9a-d02a-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d02a-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d02a-ph.rim
|
|
:: Break at 6256 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
break 6256
|
|
de asw 22
|
|
boot -q ptr
|
|
go -q 6265
|
|
if (PC != 006256 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof "Passed"
|
|
|
|
:: JMP Self (D0DB)
|
|
echof -n "Running MAINDEC-9A-D0DB PDP-9 JMP-Self Test"
|
|
if not exist diags/maindec-9a-d0db-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d0db-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d0db-ph.rim
|
|
:: Break at 17521 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
break 17521
|
|
de asw 17500
|
|
boot -q ptr
|
|
go -q 17500
|
|
if (PC != 017521 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof "Passed"
|
|
|
|
:: JMP Self (D0EA)
|
|
echof -n "Running MAINDEC-9A-D0EA PDP-9 JMP Y - Interrupt Test"
|
|
if not exist diags/maindec-9a-d0ea-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d0ea-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d0ea-ph.rim
|
|
:: Break at 17474 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
de asw 17400
|
|
boot -q ptr
|
|
break 17474
|
|
go -q 17400
|
|
if (PC != 017474) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof "Passed"
|
|
|
|
:: JMP Self (D0FA)
|
|
echof -n "Running MAINDEC-9A-D0FA PDP-9 JMS Y - Interrupt Test"
|
|
if not exist diags/maindec-9a-d0fa-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d0fa-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d0fa-ph.rim
|
|
:: Break at 17512 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
break 17512
|
|
de asw 17400
|
|
boot -q ptr
|
|
go -q 17400
|
|
if (PC != 017512) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof "Passed"
|
|
|
|
:: JMP Self (D0BA)
|
|
echof -n "Running MAINDEC-9A-D0BA PDP-9 ISZ Test"
|
|
if not exist diags/maindec-9a-d0ba-ph.rim echof "\r\nMISSING - Diagnostic '%~p0diag/maindec-9a-d0ba-ph.rim' is missing\n"; exit 1
|
|
att -q ptr diags/maindec-9a-d0ba-ph.rim
|
|
:: Break at 144 to stop execution after a full pass is done.
|
|
de all 0
|
|
nobreak all
|
|
break 144
|
|
de asw 100
|
|
boot -q ptr
|
|
go -q 100
|
|
if (PC != 000144 || AC != 000000) echof "Failed."; ex pc; ex ac; exit 1
|
|
echof "Passed"
|
|
|
|
echof
|
|
echof "!! All Tests Passed !!"
|
|
echof
|
|
exit 0
|