IDENT IHFU,FWA ABS ENTRY IHFU BASE D SYSCOM B1 TITLE IHFU - INJECT HARDWARE FAULT UTILITY. *COMMENT IHFU - INJECT HARDWARE FAULT UTILITY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. IHFU SPACE 4,10 *** IHFU - INJECT HARDWARE FAULT UTILITY. * D. A. HENSELER. 79/04/25. * P. C. SMITH. 88/06/16. IHFU SPACE 4,30 *** IHFU - INJECT HARDWARE FAULT UTILITY. * * THIS UTILITY IS PROVIDED TO FORCE HARDWARE ERRORS FOR * *DFT* CHECKOUT. * * IHFU,FAULT,MODE,TRAPS,RMA. * * FAULT - FAULT KIND. ALLOWABLE VALUES ARE *RETRY*, * *EXCHANG*, *TRAP*, *HALT*, *PDMHALT* * OR *SOFTERR*. * MODE - ALLOWABLE VALUES ARE *JOB* OR *MONITOR*. * TRAPS - TRAPS ENABLED. ALLOWABLE VALUES ARE *TRUE* * OR *FALSE*. * RMA - REAL MEMORY ADDRESS PARITY ERROR. MUST BE * AN OCTAL NUMBER DIVIDED BY 1000(8). * * EXAMPLE - * * IHFU(RETRY,JOB,FALSE,60000) * * NOTE - THIS UTILITY REQUIRES SPECIAL PRIVILEGES IN ORDER TO * ISSUE THE 017 INSTRUCTIONS THAT REQUEST *EI* TO INJECT * THE HARDWARE FAULT. * * THESE PRIVILEGES MAY BE OBTAINED EITHER BY RUNNING * THIS UTILITY AS THE *NVE* SUBSYSTEM, OR BY USING THE * *IPRDECK* ENTRY *ENABLE, HARDWARE FAULT INJECTION*. * * THERE IS A FAULT INJECTION UTILITY THAT IS ACTIVATED * FROM THE SYSTEM CORE DEBUGGER FOR INJECTING FAULTS ON * THE 180 SIDE. ANY CHANGES MADE TO INJECT ERRORS HERE * SHOULD ALSO BE ADDED THERE IF IT IS APPLICABLE. THE * 180 FAULT INJECTION IS IN DECK * *SYM$INJECT_HARDWARE_FAULTS*. * * SPECIAL MICROCODE IS ALSO REQUIRED TO INJECT HARDWARE * FAULTS. * TITLE MACRO DEFINITIONS. * MACRO DEFINITIONS. RT SPACE 4,10 ** RT - DEFINE THE RT INSTRUCTION. * RTX,X,Q OPDEF P1,P2,K + VFD 9/017B,3/P1,3/P2,15/K,30/0 ENDM TITLE COMMON DECKS. *CALL COMCMAC LIST X *CALL COMSCVS LIST * TITLE MAIN PROGRAM. ORG 110B FWA BSS 0 IHFU SPACE 4,10 ** IHFU - MAIN PROGRAM. IHFU BSS 0 ENTRY SB1 1 SA1 B1+B1 FAULT KIND PARAMETER SB2 HFK VERIFY HARDWARE FAULT KIND PARAMETER SB3 HFKL RJ VIP NG X6,IHFU3 IF ERROR IN HARDWARE FAULT KIND BX7 X6 FAULT KIND SA1 A1+B1 MODE PARAMETER SB2 MODE VERIFY MODE PARAMETER SB3 MODEL RJ VIP NG X6,IHFU3 IF ERROR IN MODE FLAG LX6 8+8 SA1 A1+B1 TRAPS ENABLED PARAMETER BX7 X7+X6 COMBINE FAULT KIND AND MODE SB2 TE VERIFY TRAPS ENABLED PARAMETER SB3 TEL RJ VIP NG X6,IHFU3 IF ERROR IN TRAPS ENABLED FLAG LX6 8 SA1 A1+B1 RMA/1000(8) OF PARITY ERROR PARAMETER BX7 X7+X6 COMBINE TRAPS ENABLED, MODE AND FAULT KIND RJ CDB CONVERT DISPLAY CODE TO BINARY ZR X6,IHFU3 IF ERROR IN RMA OF PARITY ERROR BX2 X6 (RMA OF PARITY ERROR)/1000(8) BX1 X7 LX2 9 * ISSUE *017* INSTRUCTION TO INJECT SPECIFIED FAULT. * (X1) = 36/0 * 8/MODE * 8/TRAPS ENABLED * 8/FAULT KIND * (X2) = RMA OF PARITY ERROR. RT X1,X2,CVSIHF INJECT ERROR MX6 30 BX1 -X6*X1 ERROR CODE BX2 X6*X0 NOS/VE DOWN FLAG ZR X1,IHFU1 IF NO ERROR MESSAGE IHFUB,5,R *EI DID NOT RECOGNIZE FAULT KIND.* EQ IHFU4 ABORT THE JOB IHFU1 NZ X2,IHFU2 IF NOS/VE DOWN MESSAGE IHFUC,5,R *NOS/VE UP, NEED EI.* EQ IHFU4 ABORT THE JOB IHFU2 ENDRUN IHFU3 MESSAGE IHFUA,5,R *ERROR IN PARAMETER.* IHFU4 ABORT IHFUA DATA C*ERROR IN PARAMETER.* IHFUB DATA C*EI DID NOT RECOGNIZE FAULT KIND.* IHFUC DATA C*NOS/VE UP, NEED EI.* TITLE PARAMETER TABLES. HFK SPACE 4,10 * HFK - TABLE OF HARDWARE FAULT KIND VALUES. THE VALUES * MUST MATCH VALUES DEFINED FOR THE 180 SIDE AND THE EI CODE. HFK BSS 0 VFD 42/5LRETRY,18/0 VFD 42/7LEXCHANG,18/1 VFD 42/4LTRAP,18/2 VFD 42/4LHALT,18/3 VFD 42/7LPDMHALT,18/4 VFD 42/7LSOFTERR,18/5 HFKL EQU *-HFK LENGTH OF TABLE MODE SPACE 4,10 * MODE - TABLE OF MODE VALUES. MODE BSS 0 VFD 42/3LJOB,18/0 VFD 42/7LMONITOR,18/1 MODEL EQU *-MODE LENGTH OF TABLE TE SPACE 4,10 * TE - TABLE OF TRAP ENABLED VALUES. TE BSS 0 VFD 42/5LFALSE,18/0 VFD 42/4LTRUE,18/1 TEL EQU *-TE LENGTH OF TABLE TITLE SUBROUTINES. CDB SPACE 4,10 ** CDB - CONVERT DISPLAY CODE TO BINARY. * * *CDB* CONVERTS AN OCTAL DISPLAY CODE NUMBER TO ITS * BINARY VALUE. * * ENTRY (X1) = OCTAL NUMBER TO CONVERT, LEFT JUSTIFIED WITH * ZERO FILL. LOW ORDER 18 BITS ARE NOT CHECKED. * * EXIT (X6) = BINARY VALUE. * (X6) = 0 IF (X1) WAS NOT OCTAL DISPLAY CODE VALUE. * * USES X - 0, 1, 3, 4, 6. * B - 2. CDB2 SX6 B0 RETURN WITH ERROR CDB SUBR ENTRY/EXIT MX0 60-6 LX1 6 SX6 B0 INITIALIZE RESULT BINARY VALUE SB2 7 CDB1 BX2 -X0*X1 DISPLAY CODE CHARACTER SB2 B2-B1 DECREMENT CHARACTER COUNT ZR X2,CDBX IF ALL CHARACTERS CONVERTED, RETURN SX3 X2-1R0 SUBTRACT DISPLAY CODE BIAS SX4 X2-1R8 LX6 3 NG X3,CDB2 IF NOT AN OCTAL NUMBER PL X4,CDB2 IF NOT AN OCTAL NUMBER LX1 6 POSITION NEXT CHARACTER BX6 X6+X3 ADD NEXT BINARY DIGIT TO BINARY NUMBER GE B2,B0,CDB1 IF MORE CHARACTERS TO CONVERT EQ CDBX RETURN VIP SPACE 4,20 ** VIP - VERIFY INPUT PARAMETER. * * *VIP* CHECKS SPECIFIED PARAMETER TABLE FOR A MATCH * AND RETURNS A PARAMETER VALUE. * * ENTRY (B2) = ADDRESS OF PARAMETER TABLE. * (B3) = LENGTH OF PARAMETER TABLE. * (X1) = PARAMETER CHECKING FOR, LEFT JUSTIFIED WITH * ZERO FILL. LOW ORDER 18 BITS ARE NOT CHECKED. * * EXIT (X6) = PARAMETER VALUE. * (X6) .LT. 0 IF PARAMETER NOT FOUND. * * USES X - 0, 2, 5, 6. * A - 2. * B - 3. VIP SUBR ENTRY/EXIT SA2 B2 INITIAL ENTRY IN PARAMETER TABLE MX0 60-18 VIP1 BX5 X1-X2 BX6 -X0*X2 PARAMETER VALUE SA2 A2+B1 NEXT ENTRY IN PARAMETER TABLE BX5 X0*X5 SB3 B3-B1 DECREMENT TABLE LENGTH ZR X5,VIPX IF MATCHING PARAMETER GT B3,B0,VIP1 IF MORE ENTRIES IN PARAMETER TABLE SX6 -B1 SET NO MATCHING PARAMETER FOUND EQ VIPX RETURN SPACE 4,10 * COMMON DECKS. *CALL COMCSYS END