SUBROUTINE OTSERR C C PURPOSE: DETERMINES LAST (IF ANY) ERROR DETECTED BY FORTRAN OTS C SYSTEM; CLEARS ERROR OUT OF SYSTEM; AND SETS "ERROR" BYTE FLAG C TO VALUE CORRESPONDING TO HP67 INTERNAL ERROR TABLE. HP67 C WILL PRINT MESSAGES ACCORDING TO THE FOLLOWING TABLE: C C ERROR MESSAGE C -1 INSUFFICIENT PROGRAM SPACE C -2 ILLEGAL OR UNRECOGNIZED COMMAND C -3 INVALID NUMERIC SPECIFIER C -4 ILLEGAL REGISTER REFERENCE C -5 ILLEGAL INDIRECT REGISTER REFERENCE C -6 ILLEGAL FLAG REFERENCE C -7 INVALID LABEL REFERENCE C -8 UNASSIGNED C -9 INTEGER OVERFLOW C -10 INTEGER ZERO DIVIDE C -11 FLOATING OVERFLOW C -12 FLOATING ZERO DIVIDE C -13 FLOATING UNDERFLOW C -14 FPP FLOATING TO INTEGER CONVERSION (NOT UNDER RT-11) C -21 UNDEFINED EXPONENTIATION C -22 LOG -VE NUMBER C -23 SQUARE ROOT OF NEGATIVE NUMBER C -24 INVALID ARGUMENT TO LIBRARY FUNCTION (NOT UNDER RT-11) C C NOTE: THIS PARTICULAR FILE FOR USE UNDER RT-11 C C SORENSON 2/81 C COMMON/FLAGS/STATE,ERROR,STKLFT,NEST,ANGLES,DIGITS,RADIX,FLAG(4) BYTE STATE,ERROR,STKLFT,NEST,ANGLES,DIGITS,RADIX,FLAG C C DETERMINE LAST ERROR DETECTED BY OTS C CALL ERRSNS(I,J) IF(I.EQ.0)RETURN GOTO(10,20,5,5,50,5,5,5,5,100,110,120,130,140,150),I C C FOR ERROR CODES NOT ALTERED BY INIT ROUTINE, SET ERROR = -30, C WHICH FORCES COMPUTED GOTO IN ERRSUB OUT OF RANGE AND WILL C DISPLAY "UNEXPECTED ERROR" MESSAGE. C 5 ERROR=-30 GO TO 999 C *** INTEGER OVERFLOW 10 ERROR=-9 GO TO 999 C *** INTEGER ZERO DIVIDE 20 ERROR=-10 GO TO 999 C *** INPUT CONVERSION ERROR 50 ERROR=-3 GO TO 999 C *** FLOATING OVERFLOW 100 ERROR=-11 GO TO 999 C C *** FLOATING UNDERFLOW 110 ERROR=-13 GO TO 999 C *** FLOATING ZERO DIVIDE 120 ERROR=-12 GO TO 999 C *** SQUARE ROOT OF -VE NUMBER 130 ERROR=-23 GO TO 999 C *** UNDEFINED EXPONENTIATION 140 ERROR=-21 GO TO 999 C *** LOG OF -VE NUMBER 150 ERROR=-22 GO TO 999 C C NOW CLEAR ERROR OUT, CALL ERRSNS WITHOUT ARGUMENTS C 999 CALL ERRSNS RETURN END