; Load the GIC diagnostic from the tape. ; Set up the log(s). set -N console log=GICDIAG.log set -N console debug=GICDIAG-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 III,512K,REALTIME set IMBA ENABLED set console DEL=177 break delay 30 milliseconds ; Remove all devices from the GIC bus. set DC DISABLED set MA DISABLED ; Configure the Starfish. set GIC COUNT=2 set GICA CHANNEL=11 set GICB CHANNEL=12 ;set imba debug=csrw;data set gica debug ;set gicb 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 GICA channel=0 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 02" ; "Respond 'GO'" go until ">" ; set GICA 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 GICA 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 GICA CPP,B ; reply "GO\r" ; Respond to "Set 'SYS CTRL' switch on GIC under test to 'OFF' (out)" ; "Respond 'GO'" go until ">" ; set GICA NOSYS ; reply "GO\r" ; Respond to "Set 'SYS CTRL' switch on GIC under test to 'ON' ( in)" ; "Respond 'GO'" go until ">" ; set GICA SYS ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 03" ; "Respond 'GO'" go until ">" ; set GICA channel=3 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 04" ; "Respond 'GO'" go until ">" ; set GICA channel=4 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 05" ; "Respond 'GO'" go until ">" ; set GICA channel=5 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 06" ; "Respond 'GO'" go until ">" ; set GICA channel=6 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 07" ; "Respond 'GO'" go until ">" ; set GICA channel=7 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 08" ; "Respond 'GO'" go until ">" ; set GICA channel=8 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 09" ; "Respond 'GO'" go until ">" ; set GICA channel=9 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 10" ; "Respond 'GO'" go until ">" ; set GICA channel=10 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 11" ; "Respond 'GO'" go until ">" ; set GICA 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 GICA channel=12 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 13" ; "Respond 'GO'" go until ">" ; set GICA channel=13 ; reply "GO\r" ; Respond to "Set Thumbwheel of GIC under test to channel 14" ; "Respond 'GO'" go until ">" ; set GICA channel=14 ; reply "GO\r" ; Respond to "Set 'MODE' switch on GIC under test to 'TEST' (out)" ; "Respond 'GO'" go until ">" ; set GICA TEST; reply "GO\r" ; Respond to "Set 'PROCESSOR' switch on GIC under test to 'CPU' ( in)" ; "Respond 'GO'" go until ">" ; set GICA CPU; reply "GO\r" ; Respond to "Set 'MODE' switch on GIC under test to 'OPER' ( in)" ; "Respond 'GO'" go until ">" ; set GICA 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 GICA NOSYS,DIAGNOSTIC set GICB 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 ">" ; Reconfigure the diagnostic to reverse the channel assignments. set GICA CHANNEL=6 set GICB CHANNEL=9 reply "TEST 25\r" go until ">" ; reply "GO\r" ; Respond to "What is the CHANNEL address of GIC under test? " go until "What is the CHANNEL address of GIC under test? " ; reply "6\r" ; Respond to "What is the channel number of second GIC? " go until "What is the channel number of second GIC? " ; reply "9\r" ; Respond to "Connect GIC under test to second GIC with interconnect cable" ; "and no other device attached. go until ">" ; reply "GO\r" ; Complete the diagnostic. go until ">" exit