MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      33  HISTORY			; DETAILED

   (2)      41  SYMBOL DEFINITIONS

   (2)     175  TRANSLATION BUFFER PARITY ERRORS

   (2)     222  INTERFACE FROM MACHINE CHECK HANDLER TO ERROR L

   (2)     251  ERRORS DETECTED IN INSTRUCTION DECODE ROMS

   (2)     252  CONTROL STORE PARITY ERRORS

   (2)     389  MEMORY ERROR TIMERS

   (2)     435  CACHE PARITY ERROR

   (2)     461  CP TIMEOUT / SBI ERROR CONFIRMATION

   (2)     471  READ DATA SUBSTITUTE ERROR

   (2)     546  TABLE OF RESUMABLE INSTRUCTIONS.

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   1

HJ01                                                                                                                             (1)



                                     0000     1 	.TITLE	MCHECK - MACHINE CHECK EXCEPTION HANDLER

                                     0000     2 	.IDENT	/HJ01/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

                                     0000     7 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000     8 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000     9 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000    10 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000    11 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000    12 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

                                     0000    15 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000    16 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

                                     0000    19 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000    20 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    21 

                                     0000    22 ;++

                                     0000    23 ; FACILITY:	EXECUTIVE, ERROR HANDLING

                                     0000    24 ;

                                     0000    25 ; ABSTRACT: IN A NUTSHELL, LOG IT AND TRY TO RECOVER.

                                     0000    26 ;

                                     0000    27 ; ENVIRONMENT:	RUNS ON INTERRUPT STACK AT IPL 31 UNTIL ERROR TYPE IS KNOWN

                                     0000    28 ;;		AND (IF POSSIBLE) CORRECTED, THEN RUNS AT SYNCH LEVEL

                                     0000    29 ;		TO DO THE ERROR LOGGING.

                                     0000    30 

                                     0000    31 ;--

                                     0000    32 ;

                                     0000    33 	.SBTTL	HISTORY			; DETAILED

                                     0000    34 ;

                                     0000    35 ; AUTHOR: RICHARD LARY	, CREATION DATE: 6-NOV-77

                                     0000    36 ;

                                     0000    37 ; MODIFIED BY:

                                     0000    38 ;	, : VERSION

                                     0000    39 ; 01	 -

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   2

HJ01            SYMBOL DEFINITIONS                                                                                               (2)



                                     0000    41 	.SBTTL	SYMBOL DEFINITIONS

                                     0000    42 

                           00000000  0000    43 WISHES	=	0	;IF 1 WE COULD DISABLE HALVES OF THE TB FROM ISP-LEVEL

                                     0000    44 

                           0000000A  0000    45 CH_THRESHOLD	=	10.		;3 ERRORS IN 100 MS TO DISABLE CACHE

                           00010000  0000    46 CH_MISSG0	=	^X10000		;"FORCE MISS GROUP 0" BIT

                           00008000  0000    47 CH_MISSG1	=	^X8000		;"FORCE MISS GROUP 1" BIT

                           00004000  0000    48 CH_REPLG0	=	^X4000		;"FORCE REPLACE GROUP 0" BIT

                           00002000  0000    49 CH_REPLG1	=	^X2000		;"FORCE REPLACE GROUP 1" BIT

                           00000003  0000    50 CH$V_G0ERRS	=	3		;START OF GROUP 0 ERRORS IN PARITY REG

                           00000007  0000    51 CH$S_G0ERRS	=	7		;LENGTH OF GROUP 0 ERROR BITS

                           00000001  0000    52 CHLOG_DISAB0	=	1		;LOG BIT SAYING WE DISABLED GROUP 0

                           00000002  0000    53 CHLOG_DISAB1	=	2		;LOG BIT SAYING WE DISABLED GROUP 1

                                     0000    54 

                           00000000  0000    55 	.IF	NE	WISHES

                                     0000    56 TB_THRESHOLD	=	10.		;3 ERRORS IN 100 MS TO DISABLE TBUF

                                     0000    57 TB_MISSG0	=	^X10000		;FORCE MISS GROUP 0

                                     0000    58 TB_MISSG1	=	^X20000		;FORCE MISS GROUP 1

                                     0000    59 TB_REPLG0	=	^X40000		;FORCE REPLACE GROUP 0

                                     0000    60 TB_REPLG1	=	^X80000		;FORCE REPLACE GROUP 1

                                     0000    61 TB_REPLBOTH	=	^X100000	;FORCE REPLACE IN BOTH GROUPS

                                     0000    62 TB_G0ERRS	=	^X38E00		;MASK OF GROUP 0 ERRORS IN TBER0

                                     0000    63 TBLOG_DISAB0	=	1		;LOG BIT SAYING WE DISABLED GROUP 0

                                     0000    64 TBLOG_DISAB1	=	2		;LOG BIT SAYING WE DISABLED GROUP 1

                                     0000    65 	.ENDC

                                     0000    66 

                           00000019  0000    67 SBIFS$V_NEF	=	25		;NESTED ERROR FLAG IN SBI FAULT/STATUS

                                     0000    68 

                                     0000    69 ;THE FOLLOWING 5 DEFINITIONS ARE IN THE SBI ERROR REGISTER

                           00000040  0000    70 SBIER$M_IBTO	=	^X40		;IB TIMEOUT LATCH

                           00000080  0000    71 SBIER$M_IBRDS	=	^X80		;IB RDS LATCH

                           00001000  0000    72 SBIER$M_CPTO	=	^X1000		;CP TIMEOUT LATCH

                           00002000  0000    73 SBIER$M_RDS	=	^X2000		;RDS LATCH

                           00004000  0000    74 SBIER$M_CRD	=	^X4000		;CRD LATCH

                                     0000    75 

                                     0000    76 

                                     0000    77 ;	MACHINE CHECK HARDWARE LOG OFFSETS

                                     0000    78 

                           00000000  0000    79 MCL_COUNT	=	0		;BYTE LENGTH OF AREA (28 HEX)

                           00000004  0000    80 MCL_SUMMARY	=	4		;SUMMARY WORD - BYTE 0=CODE, BYTE 1=

                                     0000    81 					;TIMEOUT PENDING FLAG

                           00000008  0000    82 MCL_CES		=	8		;CPU ERROR STATUS

                           0000000C  0000    83 MCL_UPC		=	12.		;MICRO-PC AT FAULT TIME

                           00000010  0000    84 MCL_VA		=	16.		;VIRTUAL ADDR AT FAULT TIME

                           00000014  0000    85 MCL_D		=	20.		;CPU D REGISTER AT FAULT TIME

                           00000018  0000    86 MCL_TBER0	=	24.		;TRANSLATION BUFFER STATUS REG 0

                           0000001C  0000    87 MCL_TBER1	=	28.		;TBUF STATUS REG 1

                           00000020  0000    88 MCL_TIMOADDR	=	32.		;PHYSICAL ADDRESS CAUSING SBI TIMEOUT

                           00000024  0000    89 MCL_PARITY	=	36.		;CACHE STATUS REGISTER

                           00000028  0000    90 MCL_SBIERR	=	40.		;SBI ERROR REGISTER

                           0000002C  0000    91 MCL_PC		=	44.		;PC OF INSTRUCTION WHICH CAUSED CHECK

                           00000030  0000    92 MCL_PSL		=	48.		;PSL OF MACHINE AT FAULT TIME

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   3

HJ01            SYMBOL DEFINITIONS                                                                                               (2)



                                     0000    94 ;MEMORY CONTROLLOR AND ERROR DEFINITIONS

                                     0000    95 

                           0000001C  0000    96 MRC$V_ELSRF	=	28		;ERROR LOG SERVICE REQUEST

                           10000000  0000    97 MRC$M_ELSRF	=	^X10000000	;WRITE 1 TO CLEAR FLAG

                           0000001D  0000    98 MRC$V_HERIMF	=	29		;HIGH ERROR RATE IN MEMORY

                           20000000  0000    99 MRC$M_HERIMF	=	^X20000000	;WRITE 1 TO CLEAR FLAG

                           0000001E  0000   100 MRC$V_INHBCRD	=	30		;1 DISABLES CRD INTERRUPT

                           40000000  0000   101 MRC$M_INHBCRD	=	^X40000000	;0 CRD INTERRUPT ENABLE, 1 CRD DISABLE

                                     0000   102 

                           00000384  0000   103 REENABTIME	= 60*15			;REENABLE INTERRUPT ERROR LOGGING

                                     0000   104 					;EVERY 15 MINUTES

                           0000003C  0000   105 SOMETIME	= 60			;SCAN FOR NON-INTERRUPT ERRORS

                                     0000   106 					;EVERY 60 SECONDS

                           00000003  0000   107 CRDINTMAX	= 3			;MAXIMUM NUMBER OF INTERRUPTS A CONT

                                     0000   108 					;IS ALLOWED WITHIN REENABTIME

                           00000006  0000   109 CRDWATCHMAX	= 6			;MAXIMUM NUMBER OF ERRORS TO BE LOGGED

                                     0000   110 					;WITHIN REENABTIME

                                     0000   111 ;	INCLUDED SYMBOL DEFINITIONS

                                     0000   112 

                                     0000   113 	$EMBDEF	<MC,SB,SE>		;DEFINE EMB OFFSETS

                                     0000   114 	$IPLDEF				;PROCESSOR INTERRUPT LEVELS

                                     0000   115 	$PCBDEF				;PROCESS CTL BLOCK

                                     0000   116 	$PFNDEF				;PFN DATA BASE

                                     0000   117 	$PRDEF				;DEFINE PROCESSOR REGISTER NUMBERS

                                     0000   118 	$PSLDEF				;DEFINE PSL

                                     0000   119 	$PTEDEF				;PTE SYMBOLS

                                     0000   120 	$SSDEF				;DEFINE SYSTEM STATUS VALUES

                                     0000   121 

                                     0000   122 

                                     0000   123 ;	LOCAL DATA STORAGE

                                     0000   124 

                                 00000000   125 	.PSECT	$$$260,QUAD,WRT

                                     0000   126 

                           00000000  0000   127 	.IF	NE	WISHES

                                     0000   128 EXE$GL_TB1OLD::	.LONG	0		;TIME OF LAST TB ERROR

                                     0000   129 EXE$GL_TB2OLD::	.LONG	0		;TIME OF NEXT-TO-LAST TB ERROR

                                     0000   130 	.ENDC

                                     0000   131 

                           00000000  0000   132 EXE$GL_CSBITA::	.LONG	0		;USED TO HOLD COMPLEMENT OF SBITA

                           00000000  0004   133 EXE$GL_CH1OLD::	.LONG	0		;TIME OF LAST CACHE ERROR

                           00000000  0008   134 EXE$GL_CH2OLD::	.LONG	0		;TIME OF NEXT-TO-LAST CACHE ERROR

                           00000000  000C   135 EXE$GL_CPTIMOUT::.LONG	0		;TIME OF LAST CP TIMEOUT/SBI ERROR

                           00000000  0010   136 ECC$AB_MEMERR::	.LONG	0		;ERROR COUNTERS FOR 4 MEMORY CONT.

                               0000  0014   137 ECC$GW_REENAB::	.WORD	0		;REENABLE TIMER

                               0000  0016   138 ECC$GW_WATCH::	.WORD	0		;SCAN MEMORY CONTROLLER TIMER

                           00000000  0018   139 MMG$GL_CRDCNT::	.LONG	0		;COUNT OF CORRECTED MEMORY ERRORS

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   4

HJ01            SYMBOL DEFINITIONS                                                                                               (2)



                                 00000000   141 	.PSECT	WIONONPAGED,QUAD,RD,WRT

                                     0000   142 	.LIST	MEB			;SHOW MACRO EXPANSIONS

                                     0000   143 

                                     0000   144 ;	MACHINE CHECK ENTRY POINT - SCB VECTOR POINTS HERE.

                                     0000   145 ;	IPL ^X1F = 31

                                     0000   146 

                                     0000   147 	.ALIGN	LONG			;A VECTOR MUST HAVE LONGWORD ALIGNMENT

                                     0000   148 EXE$MCHK::

                                     0000   149 					;ALL INTERRUPTS ARE LOCKED OUT!

            7E            33     DB  0000   150 	MFPR	#PR$_SBIMT,-(SP)	;SAVE OLD COPY OF CACHE CONTROL REG

            33   0001C000 8F     DA  0003   151 	MTPR	#CH_MISSG0!CH_MISSG1!CH_REPLG0,#PR$_SBIMT

                                     000A   152 					;DISABLE CACHE COMPLETELY

         08 AE         F0 8F     8B  000A   153 	BICB3	#^XF0,MCL_SUMMARY+4(SP),-(SP) ;GET LOW 4 BITS OF TYPE CODE

                          7E         000F       

                                     0010   154 	CASE	(SP)+,<-		;BREAKOUT TYPE CODE

                                     0010   155 		CPTIMEOUT,-		;CPU TIMEOUT/SBI ERROR CONFIRMATION

                                     0010   156 		CSPARITY,-		;CONTROL STORE PARITY ERROR

                                     0010   157 		TBUFPARITY,-		;TRANSLATION BUFFER PARITY ERROR

                                     0010   158 		CACHEPARITY,-		;CACHE PARITY ERROR

                                     0010   159 		BADTYPE,-		;THIS CODE DOESN'T EXIST

                                     0010   160 		READSUBST,-		;READ DATA SUBSTITUTE (MEM READ ERROR)

                                     0010   161 		IBROMCHECK,-		;"CAN'T GET HERE" ERROR FROM INST ROMS

                                     0010   162 		BADTYPE,-

                                     0010   163 		BADTYPE,-

                                     0010   164 		BADTYPE,-	

                                     0010   165 		TBUFPARITY,-		;IB-DETECTED TBUF ERROR

                                     0010   166 		BADTYPE,-

                                     0010   167 		READSUBST,-		;IB-DETECTED MEMORY ERROR

                                     0010   168 		CPTIMEOUT,-		;IB-DETECTED TIMEOUT OR SBI ERROR CONF

                                     0010   169 		BADTYPE,-

                                     0010   170 		CACHEPARITY>, TYPE=B	;IB-DETECTED CACHE PROBLEM

            00            8E     8F  0010       	CASEB	(SP)+,#0,S^#<<30001$-30000$>/2>-1

                          0F'        0013       

                                     0014       30000$:

                               0272' 0014       	.WORD	CPTIMEOUT-30000$

                               0086' 0016       	.WORD	CSPARITY-30000$

                               0024' 0018       	.WORD	TBUFPARITY-30000$

                               021B' 001A       	.WORD	CACHEPARITY-30000$

                               0020' 001C       	.WORD	BADTYPE-30000$

                               0288' 001E       	.WORD	READSUBST-30000$

                               0086' 0020       	.WORD	IBROMCHECK-30000$

                               0020' 0022       	.WORD	BADTYPE-30000$

                               0020' 0024       	.WORD	BADTYPE-30000$

                               0020' 0026       	.WORD	BADTYPE-30000$

                               0024' 0028       	.WORD	TBUFPARITY-30000$

                               0020' 002A       	.WORD	BADTYPE-30000$

                               0288' 002C       	.WORD	READSUBST-30000$

                               0272' 002E       	.WORD	CPTIMEOUT-30000$

                               0020' 0030       	.WORD	BADTYPE-30000$

                               021B' 0032       	.WORD	CACHEPARITY-30000$

                                     0034       30001$:

                                     0034   171 

                                     0034   172 BADTYPE:

                                     0034   173 	BUG_CHECK BADMCKCOD,FATAL	;BAD MACHINE CHECK CODE

                               FEFF  0034       		.WORD	^XFEFF

                               0004' 0036       		.IIF IDN <FATAL>,<FATAL> , .WORD	BUG$_BADMCKCOD!4

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   5

HJ01            TRANSLATION BUFFER PARITY ERRORS                                                                                 (2)



                                     0038   175 	.SBTTL	TRANSLATION BUFFER PARITY ERRORS

                                     0038   176 

                                     0038   177 TBUFPARITY:

            33            8E     DA  0038   178 	MTPR	(SP)+,#PR$_SBIMT	;RE-ENABLE CACHE

            39            00     DA  003B   179 	MTPR	#0,#PR$_TBIA		;CLEAR ENTIRE TBUF

                                     003E   180 

                           00000000  003E   181 	.IF	NE	WISHES

                                     003E   182 	MFPR	#TBER0,-(SP)		;GET TBUF CONTROL REGISTER

                                     003E   183 	MFPR	#PR$_TODR,-(SP)		;GET TIME-OF-YEAR CLOCK

                                     003E   184 	SUBL3	TB_TWOBACK,(SP),-(SP)	;HOW MUCH TIME HAS ELAPSED SINCE THE

                                     003E   185 	CMPL	(SP)+,#TB_THRESHOLD	;ERROR BEFORE LAST?

                                     003E   186 	BGTR	20$			;A WHILE - GIVE TB ANOTHER CHANCE

                                     003E   187 	BITB	#TB_MISSG0!TB_MISSG1@-16,6(SP) ;SEE IF GROUP ALREADY DISABLED

                                     003E   188 	BNEQ	20$			;BRANCH IF YES - CANNOT DISABLE BOTH

                                     003E   189 	BITL	#TB_G0ERRS,MCL_TBER1+8(SP) ;SEE WHICH GROUP IS BAD

                                     003E   190 	BNEQ	10$			;BRANCH IF GROUP 0 HAD THE ERROR

                                     003E   191 	BISB	#TB_REPLG0!TB_MISSG1@-16,6(SP) ;SET TO DISABLE GROUP 1

                                     003E   192 	MOVB	#TBLOG_DISAB1,MCL_SUMMARY+8+2(SP) ;LOG THAT WE DID IT

                                     003E   193 	BRB	20$

                                     003E   194 10$:	BISB	#TB_REPLG1!TB_MISSG0@-16,6(SP)	;SET TO DISABLE GROUP 0

                                     003E   195 	MOVB	#TBLOG_DISAB0,MCL_SUMMARY+8+2(SP) ;LOG THAT WE DID IT

                                     003E   196 20$:	MOVL	W^EXE$GL_TB1OLD,W^EXE$GL_TB2OLD ;SHIFT THE HISTORY FILE

                                     003E   197 	MOVL	(SP)+,W^EXE$GL_TB1OLD

                                     003E   198 	MTPR	(SP)+,#TBER0			;DISABLE A GROUP, MAYBE.

                                     003E   199 	.ENDC

                                     003E   200 

                                     003E   201 TRYRESUME:

         04 AE       01F0 8F     B3  003E   202 	BITW	#^X1F0,MCL_SUMMARY(SP)	;IS ERROR ABORT OR TIMEOUT PENDING

                          5C     12  0044   203 	BNEQ	AMPUTATE		;BRANCH IF YES, NO HOPE OF RESUMING

         04 AE            08     93  0046   204 	BITB	#8,MCL_SUMMARY(SP)	;SEE IF ERROR WAS IB ERROR

                          0A     12  004A   205 	BNEQ	10$			;IF SO, WE CAN "DEFINITELY" RESUME

            7E         2C BE     9A  004C   206 	MOVZBL	@MCL_PC(SP),-(SP)	;GET OPCODE FOR RESTARTABILITY CHECK

       034F'CF            8E     E1  0050   207 	BBC	(SP)+,W^RESUMABLE,AMPUTATE ;BRANCH IF INST NOT RESUMABLE,ABORT

                          4C         0055       

                                     0056   208 10$:	;THERE IS A LOW PROBABILITY CASE HERE THAT MAY ALLOW THIS CODE TO

                                     0056   209 	;CONTINUE WHEN WE CAN'T - IF A LOCATION IS READ FROM THE IO PAGE AND

                                     0056   210 	;HAS A SIDE AFFECT WHICH MODIFIES THAT LOCATION, THE INSTRUCTION IS

                                     0056   211 	;NOT RETRYABLE, A SOFTWARE SOLUTION IS TO IMPLEMENT A FLAG SET BY ANY

                                     0056   212 	;POTENTIAL REFERENCE TO THE IO PAGE THAT MAY CAUSE A SIDE AFFECT.

                                     0056   213 	;BBS	#IOSAFLAG,FLAG,AMPUTATE	;BRANCH IF INST MAY OF HAD SIDE AFFECT

                          3F     BB  0056   214 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	;SAVE REGISTERS

                                     0058   215 RESUME:

            53            02     B0  0058   216 	MOVW	#EMB$K_MC,R3		;SET TYPE OF LOG ENTRY

                          06     10  005B   217 	BSBB	LOGIT			;WE'RE GOING TO MAKE IT - LOG ERROR

                          3F     BA  005D   218 	POPR	#^M<R0,R1,R2,R3,R4,R5>	;RESTORE REGISTERS

            5E            8E     C0  005F   219 	ADDL	(SP)+,SP		;POP HARDWARE LOG FROM STACK

                                 02  0062   220 	REI				;AND TRY AGAIN

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   6

HJ01            INTERFACE FROM MACHINE CHECK HANDLER TO ERROR L                                                                  (2)



                                     0063   222 	.SBTTL	INTERFACE FROM MACHINE CHECK HANDLER TO ERROR LOGGER

                                     0063   223 ;	R3 = ERROR LOG TYPE

                                     0063   224 ;	0(SP)  = RETURN ADDRESS

                                     0063   225 ;	4(SP)-24(SP) REGISTERS 0-5

                                     0063   226 ;	28(SP) = LENGTH (IN BYTES) OF HARDWARE LOG INFORMATION WITHOUT PC,PSL

                                     0063   227 ;	32(SP)-X(SP) HARDWARE LOG INFORMATION

                                     0063   228 ;	X+4(SP) = PC, X+8(SP) = PSL

                                     0063   229 

                                     0063   230 LOGIT:

            50            30     DB  0063   231 	MFPR	#PR$_SBIFS,R0		;GET SBI FAULT/STATUS REGISTER

            50            19     E5  0066   232 	BBCC	#SBIFS$V_NEF,R0,10$	;CLEAR NESTED ERROR FLAG

                          00         0069       

            30            50     DA  006A   233 10$:	MTPR	R0,#PR$_SBIFS		;WRITE IT BACK TO CLEAR SILO LOCK

                                     006D   234 					;AND FAULT LATCH

            50            34     DB  006D   235 	MFPR	#PR$_SBIER,R0		;GET SBI ERROR REGISTER

            50       70C0 8F     A8  0070   236 	BISW	#SBIER$M_IBTO!SBIER$M_IBRDS!SBIER$M_CPTO!SBIER$M_RDS!-

                                     0075   237 		SBIER$M_CRD,R0		;SET BITS FOR ERRORS WE'RE HANDLING

            34            50     DA  0075   238 	MTPR	R0,#PR$_SBIER		;WRITE IT BACK TO CLEAR LATCHES

            08         1C AE     C1  0078   239 	ADDL3	<7*4>(SP),#8,R4		;GET # BYTES TO LOG

                          54         007C       

                                     007D   240 					;ADD SPACE FOR PC AND PSL

            54            10     C1  007D   241 	ADDL3	#EMB$B_MC_SUMCOD,R4,R1	;ADD SPACE FOR HEADER FOR BUFFER SIZE

                          51         0080       

                          FF7C'  30  0081   242 	BSBW	ERL$ALLOCEMB		;GET AN ERROR LOGGING BUFFER

            12            50     E9  0084   243 	BLBC	R0,20$			;BRANCH IF DIDN'T GET IT

                          52     DD  0087   244 	PUSHL	R2			;SAVE ADDRESS OF ERROR LOG BUFFER

         04 A2            53     B0  0089   245 	MOVW	R3,EMB$W_MC_ENTRY(R2)	;SET ENTRY TYPE TO FAULT TYPE

         24 AE            54     28  008D   246 	MOVC3	R4,<9*4>(SP),EMB$B_MC_SUMCOD(R2) ;IN ONE SWELL FOOP.....

                       10 A2         0091       

            52            8E     D0  0093   247 	MOVL	(SP)+,R2		;GET POINTER TO BUFFER START IN R2

                          FF67'  30  0096   248 	BSBW	ERL$RELEASEMB		;INDICATE BUFFER READY TO LOG

                                 05  0099   249 20$:	RSB				;EXIT WITH HARDWARE LOG STILL ON STACK

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   7

HJ01            ERRORS DETECTED IN INSTRUCTION DECODE ROMS                                                                       (2)



                                     009A   251 	.SBTTL	ERRORS DETECTED IN INSTRUCTION DECODE ROMS

                                     009A   252 	.SBTTL	CONTROL STORE PARITY ERRORS

                                     009A   253 

                                     009A   254 IBROMCHECK:

                                     009A   255 CSPARITY:

            33            8E     DA  009A   256 	MTPR	(SP)+,#PR$_SBIMT	;CACHE PROBABLY OK - ENABLE IT

         06 AE         2C BE     90  009D   257 	MOVB	@MCL_PC(SP),MCL_SUMMARY+2(SP) ;SAVE OPCODE IN LOG

                                     00A2   258 AMPUTATE:

                          3F     BB  00A2   259 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	;SAVE REGISTERS

            53            02     B0  00A4   260 	MOVW	#EMB$K_MC,R3		;SET TYPE OF LOG ENTRY

                          BA     10  00A7   261 	BSBB	LOGIT			;LOG THE ERROR

         48 AE            19     E0  00A9   262 	BBS	#PSL$V_CURMOD+1,MCL_PSL+<6*4>(SP),REFLECTCHK ;BRANCH IF

                          04         00AD       

                                     00AE   263 					;FAILURE IN USER OR SUPERVISOR MODE

                                     00AE   264 	BUG_CHECK MACHINECHK,FATAL	;MACHINE CHECK IN KERNEL OR EXEC MODE

                               FEFF  00AE       		.WORD	^XFEFF

                               0004' 00B0       		.IIF IDN <FATAL>,<FATAL> , .WORD	BUG$_MACHINECHK!4

                                     00B2   265 

                                     00B2   266 REFLECTCHK:

            50            00     DB  00B2   267 	MFPR	#PR$_KSP,R0		;GET THE KERNEL MODE STACK POINTER

            5E         18 AE     C1  00B5   268 	ADDL3	<6*4>(SP),SP,R1		;GET DISPLACEMENT TO PC AND PSL

                          51         00B9       

            70         1C A1     7D  00BA   269 	MOVQ	<6*4>+<1*4>(R1),-(R0)	;MOVE THE INTERUPT PC AND PSL TO

                                     00BE   270 					;KERNEL STACK

                                     00BE   271 					;IT IS NOT NECCESARY TO PROBE KERNEL

                                     00BE   272 					;STACK FOR VALIDITY, THE FAILURE WILL

                                     00BE   273 					;BE A KERNEL STACK NOT VALID BUGCHECK

                                     00BE   274 					;FROM WITHIN MACHINE CHECK

            00            50     DA  00BE   275 	MTPR	R0,#PR$_KSP		;REPLACE THE NEW KERNEL STACK POINTER

                          3F     BA  00C1   276 	POPR	#^M<R0,R1,R2,R3,R4,R5>	;RESTORE REGISTERS

            5E            8E     C0  00C3   277 	ADDL	(SP)+,SP		;POP HARDWARE LOG FROM STACK

            6E       0000'CF     9E  00C6   278 	MOVAB	W^EXE$MCHECK,(SP)	;SET UP A PC AND PSL FOR EXCEPTION

            02            18     EF  00CB   279 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,4(SP),4(SP)

         04 AE         04 AE         00CE       

                                     00D2   280 					;GET MODE WE WERE EXECUTING IN

         04 AE            16     9C  00D2   281 	ROTL	#PSL$V_PRVMOD,4(SP),4(SP) ;CREATE A PSL OF CURRENT TO BE

                       04 AE         00D6       

                                     00D8   282 					;KERNEL WITH CORRECT PREVIOUS MODE

                                     00D8   283 					;AS FROM A FAULT, 0'S IN REST OF PSL

                                 02  00D8   284 	REI				;GET TO EXCEPTION HANDLER

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   8

HJ01            CONTROL STORE PARITY ERRORS                                                                                      (2)



                                     00D9   286 	.ENABL	LSB

                                     00D9   287 

                                     00D9   288 	.ALIGN	LONG			;THIS IS VECTORED TO

                                     00DC   289 EXE$LOGSBF::

                                     00DC   290 	SETIPL	#^X1F			;DISABLE ALL INTERRUPTS

            12            1F     DA  00DC       		MTPR	#^X1F,S^#PR$_IPL

                          19     10  00DF   291 	BSBB	LOGSBI			;USE SAME CODE AS ASYNC WRITE FAILURE

                                 04  00E1   292 	.BYTE	EMB$K_BE		;THIS IS AN SBI FAULT BUS ERROR

                                 02  00E2   293 	REI				;TRY TO CONTINUE

                                     00E3   294 

                                     00E3   295 	.ALIGN	LONG			;THIS IS VECTORED TO

                                     00E4   296 EXE$LOGAWE::

                                     00E4   297 	SETIPL	#^X1F			;DISABLE ALL INTERRUPTS

            12            1F     DA  00E4       		MTPR	#^X1F,S^#PR$_IPL

                          11     10  00E7   298 	BSBB	LOGSBI			;USE SAME CODE AS SBI FAULT ERROR

                                 07  00E9   299 	.BYTE	EMB$K_AW		;THIS IS AN ASYNCHRONOUS WRITE FAILURE

                          00     DD  00EA   300 	PUSHL	#0			;INDICATE DUMMY FRAME ON STACK

                          3F     BB  00EC   301 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	;SAVE REGISTERS FOR COMMON CODE

       0003'CF         A0 8F     93  00EE   302 	BITB	#^B10100000,W^EXE$GL_CSBITA+3 ;WAS WRITE IN USER OR SUPERVISOR

                                     00F4   303 					;MODE AND NOT UPDATING A PAGE TABLE

                          BC     13  00F4   304 	BEQL	REFLECTCHK		;BRANCH IF OK TO CONTINUE

                                     00F6   305 	BUG_CHECK ASYNCWRTER,FATAL	;WRITE ERROR IN KERNAL OR EXEC MODE

                               FEFF  00F6       		.WORD	^XFEFF

                               0004' 00F8       		.IIF IDN <FATAL>,<FATAL> , .WORD	BUG$_ASYNCWRTER!4

                                     00FA   306 					;OR WHILE UPDATING PAGE TABLE

                          1F     BB  00FA   307 LOGSBI:	PUSHR	#^M<R0,R1,R2,R3,R4>	;SAVE SOME WORK REGS

            53         14 BE     9B  00FC   308 	MOVZBW	@<5*4>(SP),R3		;GET FAILURE TYPE

            7E         18 AE     7D  0100   309 	MOVQ	<6*4>(SP),-(SP)		;MAKE A SECOND COPY OF PC,PSL

            50            0F     D0  0104   310 	MOVL	#15,R0			;INDEX OF LAST POSSIBLE ITEM ON SBI

            51       0000'CF40   D0  0107   311 10$:	MOVL	W^MMG$AL_SBICONF[R0],R1	;GET VA OF CONTROLLER/ADAPTOR ON BUS

                          03     13  010D   312 	BEQL	20$

            51            61     D0  010F   313 	MOVL	(R1),R1			;GET STATUS REGISTER OF ITEM

                          51     DD  0112   314 20$:	PUSHL	R1			;SAVE IT FOR ERROR LOG ENTRY

            F0            50     F4  0114   315 	SOBGEQ	R0,10$			;LOOP THRU ALL POSSIBLE 16

            50            0F     D0  0117   316 	MOVL	#15,R0			;SET UP COUNT OF NUMBER OF TIMES TO

                                     011A   317 					;READ SILO

            7E            31     DB  011A   318 30$:	MFPR	#PR$_SBIS,-(SP)		;SAVE INFORMATION FOR ERROR LOGGER

            FA            50     F4  011D   319 	SOBGEQ	R0,30$			;LOOP THRU ALL 16

            7E            35     DB  0120   320 	MFPR	#PR$_SBITA,-(SP)	;SAVE SBI TIMEOUT REGISTER

       0000'CF            6E     D2  0123   321 	MCOML	(SP),W^EXE$GL_CSBITA	;SAVE COMPLEMENT SBITA FOR LATER CHECK

            7E            34     DB  0128   322 	MFPR	#PR$_SBIER,-(SP)	;SAVE SBI ERROR REGISTER

            7E            33     DB  012B   323 	MFPR	#PR$_SBIMT,-(SP)	;SAVE SBI MAINTENANCE REGISTER

            7E            32     DB  012E   324 	MFPR	#PR$_SBISC,-(SP)	;SAVE SBI SILO COMPARATOR

            7E            30     DB  0131   325 	MFPR	#PR$_SBIFS,-(SP)	;SAVE SBI FAULT/STATUS REGISTER

            7E       0094 8F     3C  0134   326 	MOVZWL	#<16*4>+<16*4>+<5*4>,-(SP) ;SAVE NUMBER OF BYTES OF ENTRY

                                     0139   327 COMMONLOG:

                          3F     BB  0139   328 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	;SAVE REGS FOR LOGIT SUBROUTINE

                          FF25   30  013B   329 	BSBW	LOGIT			;LOG THE ERROR

                          3F     BA  013E   330 	POPR	#^M<R0,R1,R2,R3,R4,R5>	;RESTORE THE STACK AND REAL R4,R5

            5E            8E     C0  0140   331 	ADDL	(SP)+,SP		;REMOVE ERROR LOG INFORMATION

            5E            08     C0  0143   332 	ADDL	#8,SP			;POP EXTRA PC,PSL

                          1F     BA  0146   333 	POPR	#^M<R0,R1,R2,R3,R4>	;RESTORE REAL R0-R4

                          6E     D6  0148   334 	INCL	(SP)			;BUMP RETURN ADDRESS PAST CODE

                                 05  014A   335 	RSB				;RETURN

                                     014B   336 

                                     014B   337 	.DSABL	LSB

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page   9

HJ01            CONTROL STORE PARITY ERRORS                                                                                      (2)



                                     014B   339 	.ENABL	LSB

                                     014B   340 

                                     014B   341 	.ALIGN	LONG			;THIS IS VECTORED TO

                                     014C   342 EXE$LOGSBA::

                                     014C   343 	SETIPL	#^X1F			;DISABLE ALL INTERRUPTS

            12            1F     DA  014C       		MTPR	#^X1F,S^#PR$_IPL

                          02     10  014F   344 	BSBB	LOGMEM			;USE SAME CODE AS ECC ERRORS

                                     0151   345 					;THIS WILL CAUSE ALERTS TO GO THRU THE

                                     0151   346 					;CRD CODE, THIS SHOULD BE HARMLESS

                                 05  0151   347 	.BYTE	EMB$K_SA		;THIS IS AN SBI ALERT INTERRUPT

                                 02  0152   348 	REI				;TRY TO CONTINUE

                                     0153   349 

                          1F     BB  0153   350 LOGMEM:	PUSHR	#^M<R0,R1,R2,R3,R4>	;SAVE SOME WORK REGS

            53         14 BE     9B  0155   351 	MOVZBW	@<5*4>(SP),R3		;GET FAILURE TYPE

            7E         18 AE     7D  0159   352 	MOVQ	<6*4>(SP),-(SP)		;MAKE A SECOND COPY OF PC,PSL

                          54     D4  015D   353 	CLRL	R4			;SET UP FOR COUNT OF MEMORY CONTROLERS

            50            0F     D0  015F   354 	MOVL	#15,R0			;INDEX OF LAST POSSIBLE ITEM ON SBI

            51       0000'CF40   D0  0162   355 10$:	MOVL	W^MMG$AL_SBICONF[R0],R1	;GET VA OF CONTROLLER/ADAPTOR ON BUS

                          32     13  0168   356 	BEQL	30$			;BRANCH IF TR SLOT EMPTY(OR PROCESSOR)

            52            81     D0  016A   357 	MOVL	(R1)+,R2		;GET ADAPTOR REGISTER A

            52         E0 8F     93  016D   358 	BITB	#^B11100000,R2		;IS THIS A MEMORY?

                          29     12  0171   359 	BNEQ	30$			;BRANCH IF NOT, (BITS 5-7 NOT 0)

                       04 A1     DD  0173   360 	PUSHL	4(R1)			;SAVE MEMORY CONT REGISTER C

                          61     DD  0176   361 	PUSHL	(R1)			;SAVE MEMORY CONT REGISTER B

                          52     DD  0178   362 	PUSHL	R2			;SAVE MEMORY CONT REGISTER A

                          50     DD  017A   363 	PUSHL	R0			;SAVE TR NUMBER

                          54     D6  017C   364 	INCL	R4			;COUNT NUMBER OF MEMORIES

            03            1C     9C  017E   365 	ROTL	#MRC$V_ELSRF,#<MRC$M_HERIMF!MRC$M_ELSRF>@<-MRC$V_ELSRF>,R2

                          52         0181       

                                     0182   366 ;	MOVL	#MRC$M_HERIMF!MRC$M_ELSRF,R2 ;SET UP DEFAULT MEM REG C

         0C AE            1C     E1  0182   367 	BBC	#MRC$V_ELSRF,<3*4>(SP),30$ ;BRANCH IF THIS MEM CONT NO ERROR

                          15         0186       

                     000F'CF44   96  0187   368 	INCB	W^ECC$AB_MEMERR-1[R4]	;ACCOUNT ANOTHER MEMORY ERROR TO CONT

       000F'CF44          03     91  018C   369 	CMPB	#CRDINTMAX,W^ECC$AB_MEMERR-1[R4] ;IS THIS MEMORY A TROUBL SPOT

                          04     1A  0192   370 	BGTRU	20$			;BRANCH IF NOT, KEEP TAKING INTERRUPT

            52            1E     E2  0194   371 	BBSS	#MRC$V_INHBCRD,R2,20$	;DISABLE CRD INTERRUPT FROM CONT

                          00         0197       

         04 A1            52     D0  0198   372 20$:	MOVL	R2,4(R1)		;RESET MEMORY REGISTER C

            C3            50     F4  019C   373 30$:	SOBGEQ	R0,10$			;LOOP THRU ALL POSSIBLE 16

                          54     DD  019F   374 	PUSHL	R4			;SAVE NUMBER OF MEMORY CONTROLLERS

            54            10     C4  01A1   375 	MULL	#<4*4>,R4		;FORM (MEM CONT)*(BYTES OF INFO)

            54            04     C1  01A4   376 	ADDL3	#4,R4,-(SP)		;SET NUMBER OF BYTES OF INFORMATION

                          7E         01A7       

                          8F     11  01A8   377 	BRB	COMMONLOG		;USE COMMON CODE TO LOG ERROR

                                     01AA   378 					;RETURN TO CALLER FROM THERE

                                     01AA   379 

                                     01AA   380 	.ALIGN	LONG			;THIS IS VECTORED TO

                                     01AC   381 EXE$LOGCRD::

                                     01AC   382 	SETIPL	#^X1F			;DISABLE ALL INTERRUPTS

            12            1F     DA  01AC       		MTPR	#^X1F,S^#PR$_IPL

                     0018'CF     D6  01AF   383 	INCL	W^MMG$GL_CRDCNT		;KEEP COUNT OF THE ERRORS

                          9E     10  01B3   384 	BSBB	LOGMEM			;USE SAME CODE AS SBI ALERT ERRORS

                                 06  01B5   385 	.BYTE	EMB$K_SE		;THIS IS A CORRECTABLE ECC ERROR

                                 02  01B6   386 	REI				;CONTINUE

                                     01B7   387 	.DSABL	LSB

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  10

HJ01            MEMORY ERROR TIMERS                                                                                              (2)



                                     01B7   389 	.SBTTL	MEMORY ERROR TIMERS

                                     01B7   390 

                                     01B7   391 ECC$REENABLE::

                                     01B7   392 					;WE SHOULD BE ENTERED WITH IPL SYNCH

                     0016'CF     B7  01B7   393 	DECW	W^ECC$GW_WATCH		;COUNT SECONDS DOWN

                          40     14  01BB   394 	BGTR	40$			;BRANCH IF SCAN TIME NOT ELAPSED

                                     01BD   395 	SETIPL	#^X1F			;DISABLE ALL INTERRUPTS

            12            1F     DA  01BD       		MTPR	#^X1F,S^#PR$_IPL

                          17     BB  01C0   396 	PUSHR	#^M<R0,R1,R2,R4>	;SAVE USED REGS

       0016'CF            3C     B0  01C2   397 	MOVW	#SOMETIME,W^ECC$GW_WATCH ;RESET THE TIME INTERVAL

                          54     D4  01C7   398 	CLRL	R4			;SET UP FOR COUNT OF MEMORY CONTROLERS

            50            0F     D0  01C9   399 	MOVL	#15,R0			;INDEX OF LAST POSSIBLE ITEM ON SBI

            51       0000'CF40   D0  01CC   400 10$:	MOVL	W^MMG$AL_SBICONF[R0],R1	;GET VA OF CONTROLLER/ADAPTOR ON BUS

                          21     13  01D2   401 	BEQL	20$			;BRANCH IF TR SLOT EMPTY(OR PROCESSOR)

            52            81     D0  01D4   402 	MOVL	(R1)+,R2		;GET ADAPTOR REGISTER A

            52         E0 8F     93  01D7   403 	BITB	#^B11100000,R2		;IS THIS A MEMORY?

                          18     12  01DB   404 	BNEQ	20$			;BRANCH IF NOT, (BITS 5-7 NOT 0)

                          54     D6  01DD   405 	INCL	R4			;COUNT NUMBER OF MEMORIES

            51         04 A1     D0  01DF   406 	MOVL	4(R1),R1		;GET MEM CONT REGISTER C

            51            1C     E1  01E3   407 	BBC	#MRC$V_ELSRF,R1,20$	;BRANCH IF THIS MEM CONT NO ERROR

                          0E         01E6       

       000F'CF44          06     91  01E7   408 	CMPB	#CRDWATCHMAX,W^ECC$AB_MEMERR-1[R4] ;IS THIS MEMORY A HOT SPOT?

                          06     1B  01ED   409 	BLEQU	20$			;BRANCH IF YES, WE HAVE LOGGED ENOUGH

                          7E     DC  01EF   410 	MOVPSL	-(SP)			;SET UP AN INTERRUPT PC,PSL

                          B9     10  01F1   411 	BSBB	EXE$LOGCRD		;LOG THE ERROR AND RETURN TO HERE

                          03     11  01F3   412 	BRB	30$			;GET OUT

            D4            50     F4  01F5   413 20$:	SOBGEQ	R0,10$			;LOOP THRU ALL POSSIBLE 16

                          17     BA  01F8   414 30$:	POPR	#^M<R0,R1,R2,R4>	;RESTORE REGS

                                     01FA   415 	ASSUME	IPL$_SYNCH EQ IPL$_TIMER

                                     01FA   416 	SETIPL	#IPL$_SYNCH		;DROP BACK DOWN TO TIME SCHEDULER IPL

            12            07     DA  01FA       		MTPR	#IPL$_SYNCH,S^#PR$_IPL

                                     01FD   417 40$:					;WE SHOULD BE ENTERED WITH IPL SYNCH

                     0014'CF     B7  01FD   418 	DECW	W^ECC$GW_REENAB		;COUNT SECONDS DOWN

                          2B     14  0201   419 	BGTR	70$			;BRANCH IF REENABLE TIME NOT ELAPSED

                          07     BB  0203   420 	PUSHR	#^M<R0,R1,R2>		;SAVE USED REGS

       0014'CF       0384 8F     B0  0205   421 	MOVW	#REENABTIME,W^ECC$GW_REENAB ;RESET THE TIME INTERVAL

                     0010'CF     D4  020C   422 	CLRL	W^ECC$AB_MEMERR		;RESET THE ERROR COUNTS TO 0

            50            0F     D0  0210   423 	MOVL	#15,R0			;SET UP TO SEARCH THE TR SLOTS

            51       0000'CF40   D0  0213   424 50$:	MOVL	W^MMG$AL_SBICONF[R0],R1	;GET VA OF CONTROLLER/ADAPTOR ON BUS

                          0E     13  0219   425 	BEQL	60$			;BRANCH IF TR SLOT EMPTY(OR PROCESSOR)

            52            81     D0  021B   426 	MOVL	(R1)+,R2		;GET ADAPTOR REGISTER A

            52         E0 8F     93  021E   427 	BITB	#^B11100000,R2		;IS THIS A MEMORY?

                          05     12  0222   428 	BNEQ	60$			;BRANCH IF NOT, (BITS 5-7 NOT 0)

            03            1C     9C  0224   429 	ROTL	#MRC$V_ELSRF,#<MRC$M_HERIMF!MRC$M_ELSRF>@<-MRC$V_ELSRF>,4(R1)

                       04 A1         0227       

                                     0229   430 ;	MOVL	#MRC$M_HERIMF!MRC$M_ELSRF,4(R1) ;ENABLE INT AND CLEAR FLAGS

            E7            50     F4  0229   431 60$:	SOBGEQ	R0,50$			;LOOP THRU THE CONFIGURATION

                          07     BA  022C   432 	POPR	#^M<R0,R1,R2>		;RESTORE REGS

                                 05  022E   433 70$:	RSB				;RETURN TO TIMER SCHEDULER AT SYNCH

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  11

HJ01            CACHE PARITY ERROR                                                                                               (2)



                                     022F   435 	.SBTTL	CACHE PARITY ERROR

                                     022F   436 

                                     022F   437 CACHEPARITY:	;ENTER WITH CACHE DISABLED REPLACING GROUP 0

                       14 BE     95  022F   438 	TSTB	@MCL_VA+4(SP)	;FORCE DATA INTO GROUP 0 OF BAD CACHE LINE

            33   0001A000 8F     DA  0232   439 	MTPR	#CH_MISSG0!CH_MISSG1!CH_REPLG1,#PR$_SBIMT

                                     0239   440 				;NOW FORCE GROUP 1 REPLACEMENT

                       14 BE     95  0239   441 	TSTB	@MCL_VA+4(SP)	;AND FORCE GROUP 1 OF BAD LINE TO GOOD DATA

            7E            1B     DB  023C   442 	MFPR	#PR$_TODR,-(SP)		;GET TIME-OF-YEAR IN 10MS TICKS

            6E       0008'CF     C3  023F   443 	SUBL3	W^EXE$GL_CH2OLD,(SP),-(SP) ;GET TIME SPAN OF LAST 2 ERRORS-NOW

                          7E         0244       

            0A            8E     D1  0245   444 	CMPL	(SP)+,#CH_THRESHOLD	;ARE THE ERRORS WIDELY SPACED

                          2A     1A  0248   445 	BGTRU	20$			;BRANCH IF YES TO FORGIVE THE CACHE

            07            03     ED  024A   446 	CMPZV	#CH$V_G0ERRS,#CH$S_G0ERRS,MCL_PARITY+8(SP),^B1111111

   0000007F'EF         2C AE         024D       

                                     0254   447 					;IS GROUP 0 ALL GOOD?

                          0F     12  0254   448 	BNEQ	10$			;BRANCH IF GROUP 0 WAS BAD

         05 AE         C0 8F     88  0256   449 	BISB	#CH_MISSG1!CH_REPLG0@-8,5(SP) ;DISABLE GROUP 1 OF THE CACHE

         05 AE            20     8A  025B   450 	BICB	#CH_REPLG1@-8,5(SP)	;CANNOT FORCE REPLACE IN BOTH GROUPS

         0F AE            02     90  025F   451 	MOVB	#CHLOG_DISAB1,MCL_SUMMARY+3+<2*4>(SP) ;LOG THAT WE DID IT

                          0F     11  0263   452 	BRB	20$

         05 AE       0120 8F     A8  0265   453 10$:	BISW	#CH_MISSG0!CH_REPLG1@-8,5(SP) ;DISABLE GROUP 0 OF THE CACHE

         05 AE         40 8F     8A  026B   454 	BICB	#CH_REPLG0@-8,5(SP)	;DON'T FORCE REPLACE IN BOTH GROUPS!

         0F AE            01     90  0270   455 	MOVB	#CHLOG_DISAB0,MCL_SUMMARY+3+<2*4>(SP) ;LOG THAT WE DID IT

       0008'CF       0004'CF     D0  0274   456 20$:	MOVL	W^EXE$GL_CH1OLD,W^EXE$GL_CH2OLD ;MAINTAIN THE TIMING HISTORY

       0004'CF            8E     D0  027B   457 	MOVL	(SP)+,W^EXE$GL_CH1OLD	;UNTO THE THIRD GENERATION

            33            8E     DA  0280   458 	MTPR	(SP)+,#PR$_SBIMT	;RE-ENABLE THE CACHE - FINALLY!!

                          FDB8   31  0283   459 BRESUM:	BRW	TRYRESUME		;SEE IF WE CAN CONTINUE FROM THE ERROR

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  12

HJ01            CP TIMEOUT / SBI ERROR CONFIRMATION                                                                              (2)



                                     0286   461 	.SBTTL	CP TIMEOUT / SBI ERROR CONFIRMATION

                                     0286   462 

                                     0286   463 CPTIMEOUT:

            33            8E     DA  0286   464 	MTPR	(SP)+,#PR$_SBIMT	;ENABLE THE CACHE

                     000C'CF     DD  0289   465 	PUSHL	W^EXE$GL_CPTIMOUT	;WE ONLY KEEP TRACK OF ONE TIMEOUT

       000C'CF            1B     DB  028D   466 	MFPR	#PR$_TODR,W^EXE$GL_CPTIMOUT ;UPDATE THAT HISTORY

       000C'CF            8E     D1  0292   467 	CMPL	(SP)+,W^EXE$GL_CPTIMOUT	;ARE TIMEOUTS LESS THAN 10 MS APART?

                          EA     12  0297   468 	BNEQ	BRESUM			;BRANCH IF NOT TO TRY AND CONTINUE

                          FE06   31  0299   469 	BRW	AMPUTATE		;OTHERWISE SOMETHING IS VERY WRONG

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  13

HJ01            READ DATA SUBSTITUTE ERROR                                                                                       (2)



                                     029C   471 	.SBTTL	READ DATA SUBSTITUTE ERROR

                                     029C   472 

                                     029C   473 	.ENABL	LSB

                                     029C   474 READSUBST:

            33            8E     DA  029C   475 	MTPR	(SP)+,#PR$_SBIMT	;REENABLE CACHE

            7E         2C AE     7D  029F   476 	MOVQ	MCL_PC(SP),-(SP)	;MAKE COPY OF PC AND PSL

                          FEAD   30  02A3   477 	BSBW	LOGMEM			;LOG THIS AS A MEMORY ERROR

                                 08  02A6   478 	.BYTE	EMB$K_HE		;CODE OF HARD ECC ERROR

            5E            08     C0  02A7   479 	ADDL	#8,SP			;REMOVE TEMP PC, PSL AND LOG AS CHECK

            05            10     EF  02AA   480 	EXTZV	#PSL$V_IPL,#PSL$S_IPL,MCL_PSL(SP),-(SP) ;GET IPL WE WERE AT

            7E         30 AE         02AD       

            02            8E     D1  02B0   481 	CMPL	(SP)+,#IPL$_ASTDEL	;ARE WE AT A NON-PAGEABLE PRIORITY?

                          60     14  02B3   482 	BGTR	BAMPUTATE		;ABORT - RECOVERY IS USELESS

                          3F     BB  02B5   483 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	;SAVE REGISTERS THAT MME CODE DESTROYS

            52         28 AE     D0  02B7   484 	MOVL	MCL_VA+<6*4>(SP),R2	;GET VIRTUAL ADDRESS OF ERROR

            54       0000'CF     D0  02BB   485 	MOVL	W^SCH$GL_CURPCB,R4	;CURRENT USER'S PCB ADDRESS

            55         64 A4     D0  02C0   486 	MOVL	PCB$L_PHD(R4),R5	;CURRENT USERS PROCESS HEADER ADDRESS

                          FD39'  30  02C4   487 	BSBW	MMG$SVAPTECHK		;TURN VA INTO VA OF PTE

            50            63     D0  02C7   488 	MOVL	(R3),R0			;GET THE PTE WHICH MAPS THE BAD PAGE

                          7F     18  02CA   489 	BGEQ	RDSNONRES		;TEST THE MOST OBVIOUS "CANT HAPPEN"

                                     02CC   490 					;(I.E. PAGE WAS INVALID FOR THIS USER)

                                     02CC   491 	ASSUME	PTE$V_PFN EQ 0

                                     02CC   492 

            15            00     EF  02CC   493 	EXTZV	#PTE$V_PFN,#PTE$S_PFN,R0,R0 ;ISOLATE PAGE FRAME NUMBER IN PTE

            50            50         02CF       

       0000'DF40          20     88  02D1   494 	BISB	#PFN$M_BADPAG,@W^PFN$AB_TYPE[R0] ;MARK PAGE BAD

                          51     D4  02D7   495 	CLRL	R1			;CLEAR MODIFY BIT PROPAGATOR

            63            1A     E5  02D9   496 	BBCC	#PTE$V_MODIFY,(R3),10$	;TEST (& CLEAR) MODIFY BIT IN PTE

                          04         02DC       

            51         80 8F     9A  02DD   497 	MOVZBL	#PFN$M_MODIFY,R1	;SET MODIFY PROPAGATOR

       0000'DF40          51     88  02E1   498 10$:	BISB	R1,@W^PFN$AB_STATE[R0]	;PROPAGATE MODIFY BIT TO PFN DATABASE

                                     02E7   499 	ASSUME	PFN$M_MODIFY EQ 128

                          2A     19  02E7   500 	BLSS	AMPUTATEX		;PAGE MODIFIED - HE'S OUT OF LUCK

         1C AE       01F0 8F     B3  02E9   501 	BITW	#^X1F0,MCL_SUMMARY+<6*4>(SP) ;WAS ERROR FAULT OR ABORT?

                          22     12  02EF   502 	BNEQ	AMPUTATEX		;ABORT - DON'T TRY ANY REPAIRS

         1C AE            08     93  02F1   503 	BITB	#8,MCL_SUMMARY+<6*4>(SP);IS ERROR IB ERROR FAULT

                          0A     12  02F5   504 	BNEQ	20$			;BRANCH IF YES, IB ERRORS RESUME

            7E         44 BE     9A  02F7   505 	MOVZBL	@MCL_PC+<6*4>(SP),-(SP)	;GET OPCODE FOR RESTARTABILITY CHECK

       034F'CF            8E     E1  02FB   506 	BBC	(SP)+,W^RESUMABLE,AMPUTATEX ;BRANCH IF INST NOT RESUMABLE

                          12         0300       

            01       0000'DF40   B1  0301   507 20$:	CMPW	@W^PFN$AW_REFCNT[R0],#1	;CHECK FOR I/O IN PROGRESS, ETC.

                          0A     1A  0307   508 	BGTRU	AMPUTATEX		;IF SO, DON'T TRY ANYTHING FANCY

            03            00     EC  0309   509 	CMPV	#PFN$V_PAGTYP,#PFN$S_PAGTYP,@W^PFN$AB_TYPE[R0],#PFN$C_SYSTEM

            01       0000'DF40       030C       

                                     0311   510 	ASSUME	PFN$C_SYSTEM EQ 1	;CHECK TYPE OF PAGE

                                     0311   511 	ASSUME	PFN$C_PROCESS EQ 0

                          05     1B  0311   512 	BLEQU	30$			;BRANCH ON SYSTEM OR PROCESS PRIVATE

                                     0313   513 

                                     0313   514 ;	IN THE FUTURE WE MAY RECOVER FROM HARD ECC ERRORS ON GLOBAL PAGES

                                     0313   515 ;	AS WELL, BUT FOR NOW WE ABORT THE IMAGE.

                                     0313   516 

                                     0313   517 AMPUTATEX:

                          3F     BA  0313   518 	POPR	#^M<R0,R1,R2,R3,R4,R5>	;RESTORE REGISTERS

                                     0315   519 BAMPUTATE:

                          FD8A   31  0315   520 	BRW	AMPUTATE		;BRANCH TO ABORT

                                     0318   521 

                          52     D5  0318   522 30$:	TSTL	R2			;CHECK THE VIRTUAL ADDRESS

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  14

HJ01            READ DATA SUBSTITUTE ERROR                                                                                       (2)



                          09     14  031A   523 	BGTR	40$			;BRANCH IF PAGE IS PROCESS PRIVATE

            54       0000'CF     9E  031C   524 	MOVAB	W^MMG$AL_SYSPCB,R4	;SYSTEM PAGES ARE KEPT TRACK OF IN

            55         64 A4     D0  0321   525 	MOVL	PCB$L_PHD(R4),R5	;A WORKING SET LIST IN THE SYSTEM PCB

            63            1F     E5  0325   526 40$:	BBCC	#PTE$V_VALID,(R3),50$	;CLEAR VALID BIT FROM PTE

                          00         0328       

                                     0329   527 50$:	INVALID	R2			;INVALIDATE TRANSLATION BUFFER OF VA

            3A            52     DA  0329       		MTPR	R2,S^#PR$_TBIS

                                     032C   528 	DECREF				;REDUCE REFERENCE COUNT TO 0

                     0000'DF40   B7  032C       		DECW	@W^PFN$AW_REFCNT[R0]

                          03     18  0331       		BGEQ	30002$

                          FCCA'  30  0333       		BSBW	MMG$REFCNTNEG

                                     0336       30002$:

            51       0000'DF40   3C  0336   529 	MOVZWL	@W^PFN$AW_WSLX[R0],R1	;GET WORKING-SET LIST INDEX FOR PAGE

                          FCC1'  30  033C   530 	BSBW	MMG$DELWSLEX		;DELETE IT FROM THE WORKING SET ITS IN

                          FCBE'  30  033F   531 	BSBW	MMG$DELCONPFN		;DELETE PAGE FROM PAGE TABLE

            52            02     9A  0342   532 	MOVZBL	#PFN$C_BADPAGLST,R2	;SET UP LIST TO PUT PAGE ON

                          FCB8'  30  0345   533 	BSBW	MMG$INSPFNT		;PUT PAGE ONTO BAD PAGE LIST

                                     0348   534 

                                     0348   535 ; AT THIS POINT, THE PTE FOR THE BAD PAGE CONTAINS ITS MASS STORAGE

                                     0348   536 ; ADDRESS. THIS WILL CAUSE A FRESH COPY OF THE PAGE TO BE FETCHED WHEN

                                     0348   537 ; THE PROCESS IS RESUMED.

                                     0348   538 

                          FD0D   31  0348   539 	BRW	RESUME			;LOG MACHINE CHECK AND RESUME PROCESS

                                     034B   540 

                                     034B   541 RDSNONRES:				;

                                     034B   542 	BUG_CHECK RDSNONRES,FATAL	;READ DATA SUBSTITUTE PAGE NONRESIDENT

                               FEFF  034B       		.WORD	^XFEFF

                               0004' 034D       		.IIF IDN <FATAL>,<FATAL> , .WORD	BUG$_RDSNONRES!4

                                     034F   543 

                                     034F   544 	.DSABL	LSB

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  15

HJ01            TABLE OF RESUMABLE INSTRUCTIONS.                                                                                 (2)



                                     034F   546 	.SBTTL	TABLE OF RESUMABLE INSTRUCTIONS.

                                     034F   547 ;	EACH BIT IN THE TABLE IS A 1 IF THE INSTRUCTION IS RESUMABLE,

                                     034F   548 ;	AND A 0 IF IT IS NOT.

                                     034F   549 

                                     034F   550 RESUMABLE:

                               3F3B  034F   551 	.WORD	^B0011111100111011	;REI, LDPCTX, SVPCTX, INSQUE, REMQUE

                               FFFF  0351   552 	.WORD	^B1111111111111111

                               FF00  0353   553 	.WORD	^B1111111100000000	;PACKED DECIMAL INSTRUCTIONS

                               FEFF  0355   554 	.WORD	^B1111111011111111	;EDITPC

                               FFFF  0357   555 	.WORD	^B1111111111111111

                               FEAF  0359   556 	.WORD	^B1111111010101111	;EMODF, CVTFD, ADAWI

                               0F00  035B   557 	.WORD	^B0000111100000000	;DOUBLE PRECISION FLOATING POINT

                               C1CA  035D   558 	.WORD	^B1100000111001010	;MORE DOUBLE PREC/QUAD, EMUL, EDIV

                               FFFF  035F   559 	.WORD	^B1111111111111111

                               FFFF  0361   560 	.WORD	^B1111111111111111

                               FFFF  0363   561 	.WORD	^B1111111111111111

                               F3FF  0365   562 	.WORD	^B1111001111111111	;PUSHR, POPR

                               FFFF  0367   563 	.WORD	^B1111111111111111

                               F4FF  0369   564 	.WORD	^B1111010011111111	;ADWC, SBWC, MFPR

                               FF3F  036B   565 	.WORD	^B1111111100111111	;BBSSI, BBCCI

                               00FF  036D   566 	.WORD	^B0000000011111111	;ASHP, CVTLP, CALLG, CALLS, XFC, EXPANSION

                                     036F   567 

                                     036F   568 	.END

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (2)



AMPUTATE         000000A2 R     04   EMB$C_UBC      = 00000070            EMB$Q_HD_TIME    00000006            

AMPUTATEX        00000313 R     04   EMB$C_UI       = 00000061            EMB$Q_MC_TIME    00000006            

BADTYPE          00000034 R     04   EMB$C_VD       = 00000041            EMB$Q_SB_TIME    00000006            

BAMPUTATE        00000315 R     04   EMB$C_VM       = 00000040            EMB$Q_SE_TIME    00000006            

BIT...         = 00000000            EMB$C_WS       = 00000024            EMB$W_HD_ENTRY   00000004            

BRESUM           00000283 R     04   EMB$K_AW       = 00000007            EMB$W_HD_ERRSEQ  0000000E            

BUG$_ASYNCWRTER  ********   X   04   EMB$K_BE       = 00000004            EMB$W_MC_ENTRY   00000004            

BUG$_BADMCKCOD   ********   X   04   EMB$K_CR       = 00000025            EMB$W_MC_ERRSEQ  0000000E            

BUG$_MACHINECHK  ********   X   04   EMB$K_CS       = 00000020            EMB$W_SB_ENTRY   00000004            

BUG$_RDSNONRES   ********   X   04   EMB$K_DE       = 00000001            EMB$W_SB_ERRSEQ  0000000E            

CACHEPARITY      0000022F R     04   EMB$K_DT       = 00000060            EMB$W_SE_ENTRY   00000004            

CH$S_G0ERRS    = 00000007            EMB$K_HE       = 00000008            EMB$W_SE_ERRSEQ  0000000E            

CH$V_G0ERRS    = 00000003            EMB$K_LENGTH     00000004            EMB$W_SIZE       00000000            

CHLOG_DISAB0   = 00000001            EMB$K_MC       = 00000002            ERL$ALLOCEMB     ********   X   04   

CHLOG_DISAB1   = 00000002            EMB$K_MC_LENGTH  00000040            ERL$RELEASEMB    ********   X   04   

CH_MISSG0      = 00010000            EMB$K_NF       = 00000023            EXE$GL_CH1OLD    00000004 RG    03   

CH_MISSG1      = 00008000            EMB$K_NM       = 0000002A            EXE$GL_CH2OLD    00000008 RG    03   

CH_REPLG0      = 00004000            EMB$K_OM       = 00000029            EXE$GL_CPTIMOUT  0000000C RG    03   

CH_REPLG1      = 00002000            EMB$K_SA       = 00000005            EXE$GL_CSBITA    00000000 RG    03   

CH_THRESHOLD   = 0000000A            EMB$K_SBC      = 00000028            EXE$LOGAWE       000000E4 RG    04   

COMMONLOG        00000139 R     04   EMB$K_SB_LENGTH  000000AC            EXE$LOGCRD       000001AC RG    04   

CPTIMEOUT        00000286 R     04   EMB$K_SE       = 00000006            EXE$LOGSBA       0000014C RG    04   

CRDINTMAX      = 00000003            EMB$K_SE_LENGTH  00000014            EXE$LOGSBF       000000DC RG    04   

CRDWATCHMAX    = 00000006            EMB$K_SS       = 00000027            EXE$MCHECK       ********   X   04   

CSPARITY         0000009A R     04   EMB$K_TS       = 00000026            EXE$MCHK         00000000 RG    04   

ECC$AB_MEMERR    00000010 RG    03   EMB$K_UBC      = 00000070            GBL...         = 00000000            

ECC$GW_REENAB    00000014 RG    03   EMB$K_UI       = 00000061            IBROMCHECK       0000009A R     04   

ECC$GW_WATCH     00000016 RG    03   EMB$K_VD       = 00000041            IPL$_ASTDEL    = 00000002            

ECC$REENABLE     000001B7 RG    04   EMB$K_VM       = 00000040            IPL$_HWCLK     = 00000018            

EMB$B_BUFIND     00000002            EMB$K_WS       = 00000024            IPL$_IOPOST    = 00000004            

EMB$B_DEVCLS     00000005            EMB$L_MC_CES     00000014            IPL$_MAILBOX   = 0000000B            

EMB$B_DEVTYP     00000004            EMB$L_MC_D       00000020            IPL$_POWER     = 0000001F            

EMB$B_MC_CACHEF  00000013            EMB$L_MC_PARITY  00000030            IPL$_QUEUEAST  = 00000006            

EMB$B_MC_OPCODE  00000012            EMB$L_MC_PC      00000038            IPL$_SCHED     = 00000003            

EMB$B_MC_SUMCOD  00000010            EMB$L_MC_PSL     0000003C            IPL$_SYNCH     = 00000007            

EMB$B_MC_TOPF    00000011            EMB$L_MC_SBIERR  00000034            IPL$_TIMER     = 00000007            

EMB$B_VALID      00000003            EMB$L_MC_TBER0   00000024            LOGIT            00000063 R     04   

EMB$C_AW       = 00000007            EMB$L_MC_TBER1   00000028            LOGMEM           00000153 R     04   

EMB$C_BE       = 00000004            EMB$L_MC_TIMOAD  0000002C            LOGSBI           000000FA R     04   

EMB$C_CR       = 00000025            EMB$L_MC_UPC     00000018            MCL_CES        = 00000008            

EMB$C_CS       = 00000020            EMB$L_MC_VA      0000001C            MCL_COUNT      = 00000000            

EMB$C_DE       = 00000001            EMB$L_SB_ERROR   0000001C            MCL_D          = 00000014            

EMB$C_DT       = 00000060            EMB$L_SB_FAULT   00000010            MCL_PARITY     = 00000024            

EMB$C_HE       = 00000008            EMB$L_SB_MAINT   00000018            MCL_PC         = 0000002C            

EMB$C_LENGTH     00000004            EMB$L_SB_PC      000000A4            MCL_PSL        = 00000030            

EMB$C_MC       = 00000002            EMB$L_SB_PSL     000000A8            MCL_SBIERR     = 00000028            

EMB$C_MC_LENGTH  00000040            EMB$L_SB_SBIRGS  00000064            MCL_SUMMARY    = 00000004            

EMB$C_NF       = 00000023            EMB$L_SB_SILCMP  00000014            MCL_TBER0      = 00000018            

EMB$C_NM       = 0000002A            EMB$L_SB_SILO    00000024            MCL_TBER1      = 0000001C            

EMB$C_OM       = 00000029            EMB$L_SB_TIMOUT  00000020            MCL_TIMOADDR   = 00000020            

EMB$C_SA       = 00000005            EMB$L_SE_A       00000018            MCL_UPC        = 0000000C            

EMB$C_SBC      = 00000028            EMB$L_SE_B       0000001C            MCL_VA         = 00000010            

EMB$C_SB_LENGTH  000000AC            EMB$L_SE_C       00000020            MMG$AL_SBICONF   ********   X   04   

EMB$C_SE       = 00000006            EMB$L_SE_NUMCON  00000010            MMG$AL_SYSPCB    ********   X   04   

EMB$C_SE_LENGTH  00000014            EMB$L_SE_PC      00000024            MMG$DELCONPFN    ********   X   04   

EMB$C_SS       = 00000027            EMB$L_SE_PSL     00000028            MMG$DELWSLEX     ********   X   04   

EMB$C_TS       = 00000026            EMB$L_SE_TR      00000014            MMG$GL_CRDCNT    00000018 RG    03   

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (2)



MMG$INSPFNT      ********   X   04   PCB$V_SWPVBN   = 00000010            PFN$V_COLLISION= 00000004            

MMG$REFCNTNEG    ********   X   04   PCB$V_WAKEPEN  = 0000000C            PFN$V_DELCON   = 00000004            

MMG$SVAPTECHK    ********   X   04   PCB$V_WALL     = 0000000D            PFN$V_GBLBAK   = 00000017            

MRC$M_ELSRF    = 10000000            PCB$W_APTCNT     00000034            PFN$V_LOC      = 00000000            

MRC$M_HERIMF   = 20000000            PCB$W_ASTCNT     0000003C            PFN$V_MODIFY   = 00000007            

MRC$M_INHBCRD  = 40000000            PCB$W_BIOCNT     0000003E            PFN$V_PAGTYP   = 00000000            

MRC$V_ELSRF    = 0000001C            PCB$W_BIOLM      00000040            PFN$V_PGFLX    = 00000018            

MRC$V_HERIMF   = 0000001D            PCB$W_BYTCNT     00000042            PFN$V_RPTEVT   = 00000006            

MRC$V_INHBCRD  = 0000001E            PCB$W_BYTLM      00000068            PR$_ACCR       = 00000029            

PCB$B_ASTACT     0000000C            PCB$W_DIOCNT     00000044            PR$_ACCS       = 00000028            

PCB$B_ASTEN      0000000D            PCB$W_DIOLM      00000046            PR$_ASTLVL     = 00000013            

PCB$B_PRI        0000000B            PCB$W_FILCNT     00000048            PR$_ESP        = 00000001            

PCB$B_PRIB       00000033            PCB$W_GPGCNT     00000038            PR$_ICCS       = 00000018            

PCB$B_TYPE       0000000A            PCB$W_GRP        00000022            PR$_ICR        = 0000001A            

PCB$B_WEFC       00000032            PCB$W_MEM        00000020            PR$_IPL        = 00000012            

PCB$C_LENGTH     0000007C            PCB$W_MTXCNT     0000000E            PR$_ISP        = 00000004            

PCB$K_LENGTH     0000007C            PCB$W_PPGCNT     0000003A            PR$_KSP        = 00000000            

PCB$L_ASTQBL     00000014            PCB$W_PRCCNT     0000006A            PR$_MAPEN      = 00000038            

PCB$L_ASTQFL     00000010            PCB$W_SIZE       00000008            PR$_NICR       = 00000019            

PCB$L_EFC2P      00000058            PCB$W_STATE      00000030            PR$_P0BR       = 00000008            

PCB$L_EFC3P      0000005C            PCB$W_TMBU       00000036            PR$_P0LR       = 00000009            

PCB$L_EFCS       00000050            PCB$W_TQCNT      0000004A            PR$_P1BR       = 0000000A            

PCB$L_EFCU       00000054            PFN$AB_STATE     ********   X   04   PR$_P1LR       = 0000000B            

PCB$L_EFWM       0000004C            PFN$AB_TYPE      ********   X   04   PR$_PCBB       = 00000010            

PCB$L_OWNER      0000001C            PFN$AW_REFCNT    ********   X   04   PR$_PME        = 0000003D            

PCB$L_PHD        00000064            PFN$AW_WSLX      ********   X   04   PR$_RXCS       = 00000020            

PCB$L_PHYPCB     00000018            PFN$C_ACTIVE   = 00000007            PR$_RXDB       = 00000021            

PCB$L_PID        00000060            PFN$C_BADPAGLST= 00000002            PR$_SBIER      = 00000034            

PCB$L_PQB        0000004C            PFN$C_FREPAGLST= 00000000            PR$_SBIFS      = 00000030            

PCB$L_SQBL       00000004            PFN$C_GBLWRT   = 00000003            PR$_SBIMT      = 00000033            

PCB$L_SQFL       00000000            PFN$C_GLOBAL   = 00000002            PR$_SBIQC      = 00000036            

PCB$L_STS        00000028            PFN$C_GPGTBL   = 00000005            PR$_SBIS       = 00000031            

PCB$L_UIC        00000020            PFN$C_MFYPAGLST= 00000001            PR$_SBISC      = 00000032            

PCB$L_WSSWP      00000024            PFN$C_PPGTBL   = 00000004            PR$_SBITA      = 00000035            

PCB$L_WTIME      0000002C            PFN$C_PROCESS  = 00000000            PR$_SBR        = 0000000C            

PCB$T_LNAME      0000006C            PFN$C_RDERR    = 00000004            PR$_SCBB       = 00000011            

PCB$V_ASTPEN   = 00000011            PFN$C_RDINPROG = 00000006            PR$_SID        = 0000003E            

PCB$V_BATCH    = 0000000E            PFN$C_RELPEND  = 00000003            PR$_SIRR       = 00000014            

PCB$V_DELPEN   = 00000001            PFN$C_SYSTEM   = 00000001            PR$_SISR       = 00000015            

PCB$V_FORCPEN  = 00000002            PFN$C_WRTINPROG= 00000005            PR$_SLR        = 0000000D            

PCB$V_HIBER    = 00000013            PFN$M_BADPAG   = 00000020            PR$_SSP        = 00000002            

PCB$V_INQUAN   = 00000003            PFN$M_BAK      = 007FFFFF            PR$_TBIA       = 00000039            

PCB$V_LOGIN    = 00000014            PFN$M_COLLISION= 00000010            PR$_TBIS       = 0000003A            

PCB$V_NETWRK   = 00000015            PFN$M_DELCON   = 00000010            PR$_TODR       = 0000001B            

PCB$V_NOACNT   = 0000000F            PFN$M_GBLBAK   = 00800000            PR$_TXCS       = 00000022            

PCB$V_NODELET  = 00000017            PFN$M_LOC      = 00000007            PR$_TXDB       = 00000023            

PCB$V_PHDRES   = 00000012            PFN$M_MODIFY   = 00000080            PR$_USP        = 00000003            

PCB$V_PSWAPM   = 00000004            PFN$M_PAGTYP   = 00000007            PR$_WCSA       = 0000002C            

PCB$V_PWRAST   = 00000016            PFN$M_PGFLX    = FF000000            PR$_WCSD       = 0000002D            

PCB$V_RES      = 00000000            PFN$M_RPTEVT   = 00000040            PSL$C_EXEC     = 00000001            

PCB$V_RESPEN   = 00000005            PFN$S_BAK      = 00000017            PSL$C_KERNEL   = 00000000            

PCB$V_SSFEXC   = 00000006            PFN$S_GBLBAK   = 00000001            PSL$C_SUPER    = 00000002            

PCB$V_SSFEXCE  = 00000007            PFN$S_LOC      = 00000003            PSL$C_USER     = 00000003            

PCB$V_SSFEXCS  = 00000008            PFN$S_PAGTYP   = 00000003            PSL$M_CM       = 80000000            

PCB$V_SSFEXCU  = 00000009            PFN$S_PGFLX    = 00000008            PSL$M_CURMOD   = 03000000            

PCB$V_SSRWAIT  = 0000000A            PFN$V_BADPAG   = 00000005            PSL$M_DV       = 00000080            

PCB$V_SUSPEN   = 0000000B            PFN$V_BAK      = 00000000            PSL$M_FPD      = 08000000            

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (2)



PSL$M_FU       = 00000040            PTE$S_PROT     = 00000004            SS$_CONTINUE   = 00000001            

PSL$M_IPL      = 001F0000            PTE$S_STX      = 00000010            SS$_CONTROLC   = 00000651            

PSL$M_IS       = 04000000            PTE$V_CRF      = 00000010            SS$_CONTROLO   = 00000609            

PSL$M_IV       = 00000020            PTE$V_DZRO     = 00000011            SS$_CONTROLY   = 00000611            

PSL$M_PRVMOD   = 00C00000            PTE$V_GPTX     = 00000000            SS$_CREATED    = 00000619            

PSL$M_SAFBITS  = 000037FF            PTE$V_MODIFY   = 0000001A            SS$_CTRLERR    = 00000054            

PSL$M_TBIT     = 00000010            PTE$V_OWN      = 00000017            SS$_DATACHECK  = 0000005C            

PSL$M_TP       = 40000000            PTE$V_PFN      = 00000000            SS$_DATAOVERUN = 00000838            

PSL$S_CURMOD   = 00000002            PTE$V_PGFLVB   = 00000000            SS$_DEBUG      = 0000046C            

PSL$S_IPL      = 00000005            PTE$V_PROT     = 0000001B            SS$_DECOVF     = 000004A4            

PSL$S_PRVMOD   = 00000002            PTE$V_STX      = 00000000            SS$_DEVACTIVE  = 000002C4            

PSL$V_CM       = 0000001F            PTE$V_TYP0     = 00000016            SS$_DEVALLOC   = 00000840            

PSL$V_CURMOD   = 00000018            PTE$V_TYP1     = 0000001A            SS$_DEVALRALLOC= 00000641            

PSL$V_DV       = 00000007            PTE$V_VALID    = 0000001F            SS$_DEVASSIGN  = 00000848            

PSL$V_FPD      = 0000001B            PTE$V_WRT      = 00000012            SS$_DEVFOREIGN = 00000064            

PSL$V_FU       = 00000006            RDSNONRES        0000034B R     04   SS$_DEVICEFULL = 00000850            

PSL$V_IPL      = 00000010            READSUBST        0000029C R     04   SS$_DEVMOUNT   = 0000006C            

PSL$V_IS       = 0000001A            REENABTIME     = 00000384            SS$_DEVNOTALLOC= 00000858            

PSL$V_IV       = 00000005            REFLECTCHK       000000B2 R     04   SS$_DEVNOTMBX  = 00000074            

PSL$V_PRVMOD   = 00000016            RESUMABLE        0000034F R     04   SS$_DEVNOTMOUNT= 0000007C            

PSL$V_TBIT     = 00000004            RESUME           00000058 R     04   SS$_DEVOFFLINE = 00000084            

PSL$V_TP       = 0000001E            SBIER$M_CPTO   = 00001000            SS$_DIRFULL    = 00000860            

PTE$C_EOWN     = 00800000            SBIER$M_CRD    = 00004000            SS$_DRVERR     = 0000008C            

PTE$C_ER       = 38000000            SBIER$M_IBRDS  = 00000080            SS$_DUPFILENAME= 00000868            

PTE$C_ERKW     = 30000000            SBIER$M_IBTO   = 00000040            SS$_DUPLNAM    = 00000094            

PTE$C_EW       = 28000000            SBIER$M_RDS    = 00002000            SS$_ENDOFFILE  = 00000870            

PTE$C_KOWN     = 00000000            SBIFS$V_NEF    = 00000019            SS$_ENDOFTAPE  = 00000878            

PTE$C_KR       = 18000000            SCH$GL_CURPCB    ********   X   04   SS$_ENDOFUSRLBL= 00000970            

PTE$C_KW       = 10000000            SOMETIME       = 0000003C            SS$_EXQUOTA    = 0000001C            

PTE$C_NA       = 00000000            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

PTE$C_SOWN     = 01000000            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

PTE$C_SR       = 58000000            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

PTE$C_SREW     = 48000000            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

PTE$C_SRKW     = 50000000            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

PTE$C_SW       = 40000000            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

PTE$C_UOWN     = 01800000            SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            

PTE$C_UR       = 78000000            SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            

PTE$C_UREW     = 68000000            SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            

PTE$C_URKW     = 70000000            SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            

PTE$C_URSW     = 60000000            SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            

PTE$C_UW       = 20000000            SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            

PTE$M_CRF      = 00010000            SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            

PTE$M_DZRO     = 00020000            SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            

PTE$M_GPTX     = 003FFFFF            SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            

PTE$M_MODIFY   = 04000000            SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            

PTE$M_OWN      = 01800000            SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            

PTE$M_PFN      = 001FFFFF            SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            

PTE$M_PGFLVB   = 003FFFFF            SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            

PTE$M_PROT     = 78000000            SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            

PTE$M_TYP0     = 00400000            SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            

PTE$M_TYP1     = 04000000            SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            

PTE$M_VALID    = 80000000            SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            

PTE$M_WRT      = 00040000            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

PTE$S_GPTX     = 00000016            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

PTE$S_OWN      = 00000002            SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

PTE$S_PFN      = 00000015            SS$_CMODUSER   = 00000424            SS$_ILLEFC     = 000000EC            

PTE$S_PGFLVB   = 00000016            SS$_COMPAT     = 0000042C            SS$_ILLIOFUNC  = 000000F4            

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (2)



SS$_ILLLBLAST  = 00000968            SS$_NOTAPEOP   = 00000264            

SS$_ILLPAGCNT  = 000000FC            SS$_NOTFILEDEV = 000001CC            

SS$_ILLSEQOP   = 000002DC            SS$_NOTINTBLSZ = 000001D4            

SS$_ILLSER     = 00000104            SS$_NOTLABELMT = 000001DC            

SS$_ILLUSRLBLRD= 00000958            SS$_NOTMODIFIED= 00000659            

SS$_ILLUSRLBLWT= 00000960            SS$_NOTNETDEV  = 000002EC            

SS$_INCVOLLABEL= 0000010C            SS$_NOTRAN     = 00000629            

SS$_INSFARG    = 00000114            SS$_NOTSQDEV   = 000001E4            

SS$_INSFMEM    = 00000124            SS$_OPCCUS     = 00000434            

SS$_INSFRAME   = 0000012C            SS$_OPCDEC     = 0000043C            

SS$_INSFWSL    = 0000011C            SS$_OPINCOMPL  = 000002D4            

SS$_INTDIV     = 00000484            SS$_PAGOWNVIO  = 000001EC            

SS$_INTOVF     = 0000047C            SS$_PAGRDERR   = 00000444            

SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            

SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            

SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            

SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            

SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            

SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            

SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            

SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            

SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            

SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            

SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            

SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            

SS$_NONEXDRV   = 000001C4            TBUFPARITY       00000038 R     04   

SS$_NONEXPR    = 000008E8            TMP...         = 00000000            

SS$_NONLOCAL   = 000008F0            TRYRESUME        0000003E R     04   

SS$_NOPRIV     = 00000024            WISHES         = 00000000            

SS$_NORMAL     = 00000001            

SS$_NOSIGNAL   = 00000900            

SS$_NOSOLICIT  = 00000284            

SS$_NOSUCHDEV  = 00000908            

SS$_NOSUCHFILE = 00000910            

SS$_NOSUCHNODE = 0000028C            

SS$_NOSUCHSEC  = 00000978            

MCHECK          - MACHINE CHECK EXCEPTION HANDLER                21-AUG-1978 19:58:32   VAX-11 MACRO X0.3-11               Page  20

PROGRAM SECTION SYNOPSIS                                                                                                         (2)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            000000AC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$$$260           0000001C      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT QUAD  

WIONONPAGED      0000036F      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT QUAD  





THERE WERE NO ERRORS OR WARNINGS.

9074. BYTES LEFT IN FREE MEMORY POOL.

2452. BYTES OF RECLAIMED MEMORY.

OBJ$:MCHECK,LIS$:MCHECK/-SP=EXECML$/ML,SRC$:MCHECK

11 MLB DIR RDS - 884 GETS TO DEFINE 28 MACROS. 69 INTER. FILE WRITES. 

