Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-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