FTN,L C C C CC************************************************************ C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * C RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * CC************************************************************ C C C C NAME: HARD ERROR C SOURCE: 92840 - 18059 C RELOC: 92840 - 16001 C C C CC*********************************************************** C SUBROUTINE HERR(IND,IGCB,ICODE), 92840-16001 REV. 2013 790904 SY2013 C C THIS PROCEDURE TAKES THE INTEGER VALUE IN ICODE AND INDEXES C INTO THE ERROR MASK BUFFER TO GET THE MASK WORD AND BIT OF C INTEREST. SOFT ERRORS ARE UPDATED TO FIRM ERRORS FOR REPORTING EM1901 C PURPOSES. EM1901 C DIMENSION IEBUF(4),IESOFT(4) EM1901 C DATA MAXER/64/ EM1901 DATA IERR/27/ DATA IREAD/1/ EM1901 DATA IWRIT/2/ EM1901 C C INITIALIZE THE SOFT ERROR MASK. WORD 1 HAS ERRORS 16-1, WORD 2, 32-17 EM1901 C WORD 3, 48-33, AND WORD 4, 64-49, AS IN THE GCB ERROR MASK. EM1901 C BIT IS TURNED ON IF CORRESPONDING ERROR IS SOFT BUG, OFF IF ERROR IS EM1901 C HARD, FIRM, OR NON-EXISTENT. EM1901 C C SY2013 CHANGED IESOFT(1) FROM 42200B TO 52200B. (ERROR 13 IS SOFT) C DATA IESOFT/52200B,4771B,1B,0/ EM1901 C C CCCC C THIS CALL ESTABLISHES AN ADDRESS LINK BETWEEN THE GRAPGHICS C PACKAGE AND THE CURRENT GCB AND ALSO CHECKS FOR A SUSPENDED GCB. C ISUSP= 0 CALL GCBIM(99,1,IGCB,ISUSP) IF(ISUSP.NE.0)RETURN C C RETURN ERROR 32 IF REQUEST IS FOR REPORTING OF OBVIOUSLY NON-SOFT EM1901 C ERRORS. NEGATIVE NUMBERS ARE RESERVED FOR FMP ERRORS AND WE ONLY HAVE EM1901 C 4 WORDS WITH 64 BITS IN GCB'S ERROR MASK. IF(ICODE.LE.0.OR.ICODE.GT.MAXER)GO TO 800 C C COMPUTE MASK BIT AND WORD INDEX INTO A 4 WORD ERROR MASK EM1901 IMPY = MOD(ICODE,16) INDX = ICODE/16 + 1 IF(IMPY)60,50,60 50 INDX = INDX -1 IMSK = 100000B GO TO 65 60 IMSK = 2**(IMPY -1) C C SEE IF ERROR IN QUESTION IS A LEGAL SOFT ERROR BY APPLYING THE MASK EM1901 C TO THE SOFT ERROR STRING. IF IT ISN'T, THEN REPORT AN ERROR 32. EM1901 65 ITST = IAND(IESOFT(INDX),IMSK) IF (ITST.EQ.0) GO TO 800 C C RETRIEVE THE ERROR MASK FROM THE GCB EM1901 CALL GCBIM(IERR,1,IEBUF,0,IREAD) EM1901 C C MAKE FIRM BY TURNING ON BIT IN GCB'S ERROR MASK. NOTE, IT IS NOT AN EM1901 C ERROR TO REQUEST HDERR OF THE SAME SOFT ERROR TWICE, SO DON'T CHECK EM1901 C BITS STATE TO SAVE OVERHEAD, AS DOUBLE SETTING WON'T HAPPEN OFTEN. EM1901 IEBUF(INDX) = IOR(IEBUF(INDX),IMSK) EM1901 CALL GCBIM(IERR,1,IEBUF,0,IWRIT) EM1901 RETURN 800 CALL PLTER(32) RETURN END END$ C