Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
errcon.c08
There is 1 other file named errcon.c08 in the archive. Click here to see a list.
REP 38/32 ;08C1
MOVEM T1,.CPSUP## ; AND IN CDB
WIT
MOVEM T1,.CPSNM## ; AND IN CDB
REP 23/36 ;08C2
SETOM .CPOK## ;INSURE THAT BECOM0 WILL BE CALLED
DIENLK ;NO LONGER HAVE INTERLOCK
MOVEI T1,SR.DIE ;TELL CP1CRS THAT WE WANT THE OPERATOR
IORM T1,.CPSBR## ; TO MANUALLY RESTART THIS CPU
SKPCPU (1) ;IF ON THE BOOT CPU, WAIT FOR SOMEONE
JRST .-1 ; TO ASSUME THE ROLE
PJRST REBOOT## ;SAVE STATE OF THE MACHINE
WIT
SKPCPU(1) ;SLAVE CPU?
JRST CPUST2 ;NO, DO BOOT DEATH THINGS
SKIPGE .CPOK## ;DID EVERYONE THINK WE WERE DEAD?
SETZM .CPOK## ;NO, LET THEM KNOW (ESPECIALLY LSTCPU)
HRRZ T1,.CPSLF## ;POINT TO OURSELVES
PUSHJ P,BRKLOK## ;DECLARE OURSELVES DOWN (DOES A DIENLK)
CPUST1: MOVEI T1,SR.DIE ;TELL CP1CRS THAT WE WANT THE OPERATOR
IORM T1,.CPSBR## ; TO MANUALLY RESTART THIS CPU
PJRST REBOOT## ;SAVE STATE OF THE MACHINE
CPUST2: SETOM .CPOK## ;SINCE BOOT, MAKE SURE BECOM0 WILL BE CALLED
DIENLK ;NO LONGER HAVE INTERLOCK
CPUST3: MOVEI T1,^D10000 ;NUMBER OF TIMES TO LOOP WHILE WAITING
CPUST4: SKPCPU(0) ;STILL THE POLICY CPU?
PJRST CPUST1 ;NO, SAVE STATE OF THE MACHINE
SOJG T1,CPUST4 ;YES, LOOP
PUSHJ P,LSTCPU## ;LOOP EXPIRED, DID ALL THE OTHERS GO AWAY?
JRST CPUST3 ;NO, LOOP SOME MORE
PUSH P,.CPTOA## ;SAVE TYPEOUT ADDRESS
MOVEI T1,CTYWAT## ;REPLACE IT WITH ONE
MOVEM T1,.CPTOA## ;THAT DOESN'T NEED PI
MOVSI T1,(DF.RAD) ;RELOAD AFTER DUMP BIT
IORM T1,DEBUGF## ;LIGHT IT FOR MONBTS (DON'T DUMP TWICE)
PJRST RELOAD ;AND GO RELOAD THE SYSTEM
REP 52/53 ;08C3
PUSH P,T1 ;THIS COULD BE CHEAPER IF 2 ACS COULD BE USED, BUT?
WIT
DOINT1::PUSH P,T1 ;THIS COULD BE CHEAPER IF 2 ACS COULD BE USED, BUT?
REP 37/58 ;08C4
PUSHJ P,DOINT ;PREPARE INTERCEPT
WIT
PUSHJ P,DOINT1 ;PREPARE INTERCEPT
SUM 177967