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