SUBROUTINE FDBERR(FDB,PNAME) C C This subroutine reports directive or file system errors. C All errors are fatal. C This is a preliminary version. C INTEGER FDB(64),FCSERR,ERRCOD BYTE FERR(2),PNAME(3) EQUIVALENCE(FERR(1),ERRCOD) ERRCOD=FDB(22) FCSERR=FERR(1) IF(FERR(2) .LT. 0)GO TO 250 !.LT. 0 means dir error. C FCS errors 10 IF(FCSERR .NE. -1)GO TO 30 TYPE 20,PNAME CALL EXIT 20 FORMAT(1X,3A1,' -- Bad parameters') 30 IF(FCSERR .NE. -3)GO TO 50 TYPE 40,PNAME CALL EXIT 40 FORMAT(1X,3A1,' -- Device not ready') 50 IF(FCSERR .NE. -11)GO TO 70 TYPE 60,PNAME CALL EXIT 60 FORMAT(1X,3A1,' -- End of volume detected') 70 IF(FCSERR .NE. -12)GO TO 90 TYPE 80,PNAME CALL EXIT 80 FORMAT(1X,3A1,' -- Write attempted to locked unit') 90 IF(FCSERR .NE. -24)GO TO 110 TYPE 100,PNAME CALL EXIT 100 FORMAT(1X,3A1,' -- Device full') 110 IF(FCSERR .NE. -25)GO TO 130 TYPE 120,PNAME CALL EXIT 120 FORMAT(1X,3A1,' -- Index file full') 130 IF(FCSERR .NE. -26)GO TO 150 TYPE 140,PNAME CALL EXIT 140 FORMAT(1X,3A1,' -- No such file') 150 IF(FCSERR .NE. -38)GO TO 170 TYPE 160,PNAME CALL EXIT 160 FORMAT(1X,3A1,' -- File was not properly closed') 170 IF(FCSERR .NE. -59)GO TO 190 TYPE 180,PNAME CALL EXIT 180 FORMAT(1X,3A1,' -- Fatal hardware error on device') 190 IF(FCSERR .NE. -65)GO TO 210 TYPE 200,PNAME CALL EXIT 200 FORMAT(1X,3A1,' -- Device off line') 210 IF(FCSERR .NE. -66)GO TO 230 TYPE 220,PNAME CALL EXIT 220 FORMAT(1X,3A1,' -- Block check, CRC, or framing error') 230 TYPE 240,PNAME,FCSERR 240 FORMAT(1X,3A1,' -- FCS ERROR - CODE ',I4) CALL EXIT C If we get to here, it's a directive error 250 IF(FCSERR .NE. -5)GO TO 270 TYPE 260,PNAME CALL EXIT 260 FORMAT(1X,3A1,' -- Un-assigned LUN') 270 IF(FCSERR .NE. -6)GO TO 290 TYPE 280,PNAME CALL EXIT 280 FORMAT(1X,3A1,' -- Device driver not resident') 290 IF(FCSERR .NE. -16)GO TO 310 TYPE 300,PNAME CALL EXIT 300 FORMAT(1X,3A1,' -- Privilege violation') 310 IF(FCSERR .NE. -91) GO TO 330 TYPE 320,PNAME CALL EXIT 320 FORMAT(1X,3A1,' -- Invalid UIC') 330 IF(FCSERR .NE. -92)GO TO 350 TYPE 340,PNAME CALL EXIT 340 FORMAT(1X,3A1,' -- Invalid device or unit') 350 IF(FCSERR .NE. -96)GO TO 370 TYPE 360,PNAME CALL EXIT 360 FORMAT(1X,3A1,' -- Invalid logical unit number') 370 TYPE 380,PNAME,FCSERR 380 FORMAT(1X,3A1,' -- DIRECTIVE ERROR - CODE ',I6) CALL EXIT END