; Load the GIC diagnostic from the tape. ; Set up the log(s). set -N console log=GIC.log set -N console debug=GIC-debug.log ; Establish the initial environment. ; ; The CPU clock must be REALTIME to pass GICDIAG section 24 (timeouts). echo echo Configuring the simulation environment. set CPU 512K,REALTIME set console DEL=177 break delay 30 milliseconds ; Remove all devices from the HP-IB set DC DISABLED set GIC COUNT=2 set GIC CHANNEL=11 set GICA CHANNEL=12 set imba debug=csrw;data set gic debug set gica debug set cpp debug=cmd;data;opnd;serv echo echo echo ------------------------------ echo General I/O Channel Diagnostic echo ------------------------------ echo echo Loading the GIC diagnostic. ; Cold load the DUS-III tape. attach -e -r MS0 DUS-III.tape boot MS0 echo echo Configuring the diagnostic. deposit SWCH 1 ; Load and start the diagnostic. ; ; The diagnostic loads from tape and then waits for a . echo echo Starting the diagnostic. reply "\r" delay 2 seconds ; Configure the diagnostic ; ; Test 18 is omitted as it tests memory parity errors, which are not simulated. go until ">" ; reply "SWITCHES\r" go until ">" ; reply "TEST 1/17,19/25\r" go until ">" ; reply "GO\r" ; Correct the diag from 021001 (LDI 1) to 000600 (ZERO,NOP) deposit 00.075515 000600 ; Respond to "More than one Memory Controller installed in system?(Y/N)" go until "(Y/N)" ; reply "N\r" ; Respond to "How many channels of all types are there installed? " go until "installed?" ; reply "2\r" ; Respond to "Set Thumbwheel of GIC under test to channel 00" ; "Respond 'GO'" go until ">" ; set GIC channel=0 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 02" ; "Respond 'GO'" go until ">" ; set GIC channel=2 ; reply "GO\r" ; Respond to "Set 'PROCESSOR' switch on GIC under test to 'CPU' ( in)" ; "Set 'DEVICE TYPE' switch on GIC under test to 'A' ( in)" ; "Respond 'GO'" go until ">" ; set GIC CPU,A ; reply "GO\r" ; Respond to "Set 'PROCESSOR' switch on GIC under test to 'CPP' (out)" ; "Set 'DEVICE TYPE' switch on GIC under test to 'B' (out)" ; "Respond 'GO'" go until ">" ; set GIC CPP,B ; reply "GO\r" ; Respond to "Set 'SYS CTRL' switch on GIC under test to 'OFF' (out)" ; "Respond 'GO'" go until ">" ; set GIC NOSYS ; reply "GO\r" ; Respond to "Set 'SYS CTRL' switch on GIC under test to 'ON' ( in)" ; "Respond 'GO'" go until ">" ; set GIC SYS ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 03" ; "Respond 'GO'" go until ">" ; set GIC channel=3 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 04" ; "Respond 'GO'" go until ">" ; set GIC channel=4 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 05" ; "Respond 'GO'" go until ">" ; set GIC channel=5 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 06" ; "Respond 'GO'" go until ">" ; set GIC channel=6 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 07" ; "Respond 'GO'" go until ">" ; set GIC channel=7 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 08" ; "Respond 'GO'" go until ">" ; set GIC channel=8 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 09" ; "Respond 'GO'" go until ">" ; set GIC channel=9 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 10" ; "Respond 'GO'" go until ">" ; set GIC channel=10 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 11" ; "Respond 'GO'" go until ">" ; set GIC channel=11 ; reply "GO\r" ;;; SKIP because second channel is at 12 ;;; ; Respond to "Set Thumbwheel of GIC under test to channel 12" ; "Respond 'GO'" ; ;go until ">" ; set GIC channel=12 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 13" ; "Respond 'GO'" go until ">" ; set GIC channel=13 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 14" ; "Respond 'GO'" go until ">" ; set GIC channel=14 ; reply "GO\r" ; Respond to "Set 'MODE' switch on GIC under test to 'TEST' (out)" ; "Respond 'GO'" go until ">" ; set GIC TEST; reply "GO\r" ; Respond to "Set 'PROCESSOR' switch on GIC under test to 'CPU' ( in)" ; "Respond 'GO'" go until ">" ; set GIC CPU; reply "GO\r" ; Respond to "Set 'MODE' switch on GIC under test to 'OPER' ( in)" ; "Respond 'GO'" go until ">" ; set GIC OPER; reply "GO\r" ; Respond to "What is the channel number of second GIC? " go until "What is the channel number of second GIC? " ; reply "12\r" go until ">" ; Respond to "Connect GIC under test to second GIC with interconnect cable" ; "and no other device attached." set GIC NOSYS,DIAGNOSTIC set GICA DIAGNOSTIC ; Respond to "Set 'SYS CTRL' switch on GIC under test to 'OFF' (out)" ; "Respond 'GO'" reply "GO\r" ; Either alternate is OK, although the former might be easier to read. if "%1" == "" 'set cpu exec=027000;177400' ; set cpu debug=exec if "%1" != "" 'set cpu debug,nodebug=fetch;pserv' go until ">" exit