SUBROUTINE RDNUM INTEGER TS INTEGER ADDR, ADRFLG, CUROP, NEXTOP, CFLAG INTEGER PI, XBBL, XA, XF, XZERO, DPVFLG INTEGER LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV INTEGER NEXT, NUMBER, I, IOTYPE INTEGER J, K, L, LABNLX, M, N INTEGER PSYMB, SYMBOL, TOP, VALFLG, QVALUE INTEGER OPTOPX, OPNXTX, TOPX, NEXTX INTEGER DUMMY, OVCHN, PEEKS INTEGER LO, CI, CO, LOGICF, LOCSUP INTEGER VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT INTEGER ICLP05 LOGICAL ENDOK,CONEND COMMON /LOGOS/ ADDR, ADRFLG, CUROP, NEXTOP, CFLAG COMMON /LOGOS/ PI, XBBL, XA, XF, XZERO, DPVFLG COMMON /LOGOS/ LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV COMMON /LOGOS/ NEXT, NUMBER, I, IOTYPE COMMON /LOGOS/ J, K, L, LABNLX, M, N COMMON /LOGOS/ PSYMB, SYMBOL, TOP, VALFLG, QVALUE COMMON /LOGOS/ OPTOPX, OPNXTX, TOPX, NEXTX COMMON /LOGOS/ DUMMY, OVCHN, PEEKS COMMON /LOGOS/ LO, CI, CO, LOGICF, LOCSUP COMMON /LOGOS/ VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT COMMON /LOGOS/ ICLP05 COMMON /LOGOS/ ENDOK,CONEND INTEGER NINE INTEGER COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE INTEGER RBRACE, LBRACE, RETOP, CRUTCH INTEGER LPAREN, RPAREN, LBK, RBK INTEGER EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW INTEGER PLUS, MINUS, MULT, DIVIDE, MODOP INTEGER OROP, ANDOP, AOROP, XOROP, AANDOP INTEGER LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT INTEGER NEG, UPARO, DNARO, COM INTEGER LOC, GIZZY, QUOTE, ZRL, TEMPL INTEGER SP, DP, ST, HEX INTEGER ATSIGN INTEGER ICLP06 COMMON /OPERS/ NINE COMMON /OPERS/ COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE COMMON /OPERS/ RBRACE, LBRACE, RETOP, CRUTCH COMMON /OPERS/ LPAREN, RPAREN, LBK, RBK COMMON /OPERS/ EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW COMMON /OPERS/ PLUS, MINUS, MULT, DIVIDE, MODOP COMMON /OPERS/ OROP, ANDOP, AOROP, XOROP, AANDOP COMMON /OPERS/ LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT COMMON /OPERS/ NEG, UPARO, DNARO, COM COMMON /OPERS/ LOC, GIZZY, QUOTE, ZRL, TEMPL COMMON /OPERS/ SP, DP, ST, HEX COMMON /OPERS/ ATSIGN COMMON /OPERS/ ICLP06 NUMBER = 0 IF (.NOT. (SYMBOL .NE. XZERO))GO TO 13028 CONTINUE 13030 CONTINUE IF (.NOT.(PSYMB .EQ. NINE))GO TO 13031 TS = SYMBOL - XZERO IF (.NOT. ((NUMBER .EQ. 3276 .AND. TS .GE. 8) .OR. NUMBER .GT. 327 16))GO TO 13032 CALL FAULTP (86) GO TO 13033 13032 CONTINUE NUMBER = NUMBER*10 + TS 13033 CONTINUE CALL FNZS GO TO 13030 13031 CONTINUE GO TO 13029 13028 CONTINUE CONTINUE 13034 CONTINUE IF (.NOT. (PSYMB .NE. NINE))GO TO 13036 IF (.NOT. (SYMBOL .LT. XA .OR. SYMBOL .GT. XF))GO TO 13038 GO TO 13035 13038 CONTINUE TS = SYMBOL - XA + 10 GO TO 13037 13036 CONTINUE TS = SYMBOL - XZERO 13037 CONTINUE IF (IAND (NUMBER, -4096) .NE. 0) CALL FAULTP (86) NUMBER = IOR (ISHFT (NUMBER, 4), TS) CALL FNZS GO TO 13034 13035 CONTINUE 13029 CONTINUE IF (.NOT. (PSYMB .EQ. 0 .OR. PSYMB .GE. QUOTE))GO TO 13040 CALL FAULTP (26) CALL SCAN (COMMA, NINE, QUOTE) 13040 CONTINUE RETURN END