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