      CALL INITI0
      CALL GETOP0
      CALL TRANS0
      CALL SWT
      END
      SUBROUTINE INSTR0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAA0
      INTEGER AAAAB0
      INTEGER AAAAC0
      INTEGER AAAAD0
      INTEGER AAAAE0
      INTEGER AAAAF0
      CALL LABEL0(STATE)
      AAAAA0=STATE
      GOTO 10000
10001   GPST=2
        RETURN
10000 IF(AAAAA0.EQ.2)GOTO 10001
      AAAAB0=STATE
      GOTO 10002
10003   STATE=3
      GOTO 10004
10002 IF(AAAAB0.EQ.1)GOTO 10003
10004 IF((STATE.NE.3))GOTO 10005
        STATE=1
        IF((SYMBO0.NE.71))GOTO 10006
          STATE=3
          CALL GETSYM
10006   IF((STATE.NE.1))GOTO 10007
          CALL LITER0(STATE)
          AAAAC0=STATE
          GOTO 10008
10009       GPST=2
            RETURN
10010       MICRO0=MICRO0+(1)
          GOTO 10011
10008     AAAAD0=AAAAC0-1
          GOTO(10009,10010),AAAAD0
10011     IF((STATE.NE.1))GOTO 10012
            CALL NANOI0(STATE)
            AAAAE0=STATE
            GOTO 10013
10014         GPST=2
              RETURN
10015         MICRO0=MICRO0+(1)
              NANOL0=NANOL0+(1)
            GOTO 10016
10013       AAAAF0=AAAAE0-1
            GOTO(10014,10015),AAAAF0
10016     CONTINUE
10012   CONTINUE
10007   IF((STATE.EQ.3))GOTO 10017
          GPST=2
          RETURN
10017 CONTINUE
10005 GPST=STATE
      RETURN
      END
      SUBROUTINE LABEL0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAG0
      CALL LABEM0(STATE)
      AAAAG0=STATE
      GOTO 10018
10019   GPST=2
        RETURN
10018 IF(AAAAG0.EQ.2)GOTO 10019
      IF((STATE.NE.3))GOTO 10020
        STATE=1
        IF((SYMBO0.NE.32))GOTO 10021
          STATE=3
          CALL GETSYM
10021   IF((STATE.EQ.3))GOTO 10022
          GPST=2
          RETURN
10022   STATE=1
        IF((SYMBO0.NE.33))GOTO 10023
          STATE=3
          CALL GETSYM
10023   IF((STATE.EQ.3))GOTO 10024
          GPST=2
          RETURN
10024 CONTINUE
10020 GPST=STATE
      RETURN
      END
      SUBROUTINE LITER0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAH0
      INTEGER AAAAI0
      INTEGER AAAAJ0
      INTEGER AAAAK0
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      MICRP0(MICRO0+1)=0
      CALL LITES0(STATE)
      AAAAH0=STATE
      GOTO 10025
10026   GPST=2
        RETURN
10025 IF(AAAAH0.EQ.2)GOTO 10026
      IF((STATE.NE.3))GOTO 10027
        STATE=1
        IF((SYMBO0.NE.5))GOTO 10028
          STATE=3
          CALL SETF(1,4,MICRP0(MICRO0+1),12)
          CALL SETF(5,12,MICRP0(MICRO0+1),LITVA0)
          CALL GETSYM
10028   IF((STATE.NE.1))GOTO 10029
          IF((SYMBO0.NE.65))GOTO 10030
            STATE=3
            CALL SETF(3,6,MICRP0(MICRO0+1),SHIFT0)
            CALL SETF(1,2,MICRP0(MICRO0+1),0)
            CALL GETSYM
10030     IF((STATE.NE.3))GOTO 10031
            CALL LITES0(STATE)
            AAAAI0=STATE
            GOTO 10032
10033         GPST=2
              RETURN
10034         CALL SETF(1,2,MICRP0(MICRO0+1),2)
            GOTO 10035
10032       AAAAJ0=AAAAI0-1
            GOTO(10033,10034),AAAAJ0
10035       IF((STATE.NE.3))GOTO 10036
              STATE=1
              IF((SYMBO0.NE.38))GOTO 10037
                STATE=3
                CALL SETF(9,8,MICRP0(MICRO0+1),LITVA0)
                CALL GETSYM
10037         IF((STATE.NE.1))GOTO 10038
                IF((SYMBO0.NE.69))GOTO 10039
                  STATE=3
                  CALL SETF(9,8,MICRP0(MICRO0+1),SHIFT0)
                  CALL GETSYM
10039         CONTINUE
10038         IF((STATE.EQ.3))GOTO 10040
                GPST=2
                RETURN
10040       CONTINUE
10036       AAAAK0=STATE
            GOTO 10041
10042         STATE=3
            GOTO 10043
10041       IF(AAAAK0.EQ.1)GOTO 10042
10043       IF((STATE.EQ.3))GOTO 10044
              GPST=2
              RETURN
10044     CONTINUE
10031     IF((STATE.NE.1))GOTO 10045
            IF((SYMBO0.NE.38))GOTO 10046
              STATE=3
              CALL SETF(9,8,MICRP0(MICRO0+1),LITVA0)
              CALL SETF(1,4,MICRP0(MICRO0+1),14)
              CALL GETSYM
10046       IF((STATE.NE.1))GOTO 10047
              IF((SYMBO0.NE.69))GOTO 10048
                STATE=3
                CALL SETF(9,8,MICRP0(MICRO0+1),SHIFT0)
                CALL SETF(1,4,MICRP0(MICRO0+1),14)
                CALL GETSYM
10048       CONTINUE
10047       IF((STATE.NE.3))GOTO 10049
              CALL LITES0(STATE)
              AAAAL0=STATE
              GOTO 10050
10051           GPST=2
                RETURN
10052           CALL SETF(1,2,MICRP0(MICRO0+1),2)
              GOTO 10053
10050         AAAAM0=AAAAL0-1
              GOTO(10051,10052),AAAAM0
10053         IF((STATE.NE.3))GOTO 10054
                STATE=1
                IF((SYMBO0.NE.65))GOTO 10055
                  STATE=3
                  CALL SETF(3,6,MICRP0(MICRO0+1),SHIFT0)
                  CALL GETSYM
10055           IF((STATE.EQ.3))GOTO 10056
                  GPST=2
                  RETURN
10056         CONTINUE
10054         AAAAN0=STATE
              GOTO 10057
10058           STATE=3
              GOTO 10059
10057         IF(AAAAN0.EQ.1)GOTO 10058
10059         IF((STATE.EQ.3))GOTO 10060
                GPST=2
                RETURN
10060       CONTINUE
10049     CONTINUE
10045   CONTINUE
10029   IF((STATE.EQ.3))GOTO 10061
          GPST=2
          RETURN
10061 CONTINUE
10027 GPST=STATE
      RETURN
      END
      SUBROUTINE LITES0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAO0
      INTEGER AAAAP0
      CALL LITET0(STATE)
      AAAAO0=STATE
      GOTO 10062
10063   GPST=2
        RETURN
10062 IF(AAAAO0.EQ.2)GOTO 10063
      IF((STATE.NE.3))GOTO 10064
        CALL LITEU0(STATE)
        AAAAP0=STATE
        GOTO 10065
10066     GPST=2
          RETURN
10065   IF(AAAAP0.EQ.2)GOTO 10066
        IF((STATE.EQ.3))GOTO 10067
          GPST=2
          RETURN
10067   STATE=1
        IF((SYMBO0.NE.8))GOTO 10068
          STATE=3
          CALL GETSYM
10068   IF((STATE.EQ.3))GOTO 10069
          GPST=2
          RETURN
10069 CONTINUE
10064 GPST=STATE
      RETURN
      END
      SUBROUTINE LITEU0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER INSER0,LOOKUP
      INTEGER AAAAQ0
      STATE=1
      IF((SYMBO0.NE.30))GOTO 10070
        STATE=3
        LITVA0=SYMVA0
        SHIFT0=INSER0(SYMVA0)
        CALL GETSYM
10070 IF((STATE.NE.1))GOTO 10071
        IF((SYMBO0.NE.19))GOTO 10072
          STATE=3
          CALL GETSYM
10072   IF((STATE.NE.3))GOTO 10073
          STATE=1
          IF((SYMBO0.NE.30))GOTO 10074
            STATE=3
            LITVA0=NOT(SYMVA0)
            SHIFT0=INSER0(-SYMVA0)
            CALL GETSYM
            GOTO 10075
10074       CALL ERRMSG('missing constant after COMP.')
10075     IF((STATE.EQ.3))GOTO 10076
            GPST=2
            RETURN
10076   CONTINUE
10073   IF((STATE.NE.1))GOTO 10077
          IF((SYMBO0.NE.32))GOTO 10078
            STATE=3
            IF((LOOKUP(SYMTE0,LITVA0,LTABA0).NE.0))GOTO 10079
              CALL ERRMSG('undefined label.')
10079       SHIFT0=INSER0(LITVA0)
            CALL GETSYM
10078     IF((STATE.NE.3))GOTO 10080
            STATE=1
            IF((SYMBO0.NE.45))GOTO 10081
              STATE=3
              CALL GETSYM
10081       IF((STATE.NE.3))GOTO 10082
              STATE=1
              IF((SYMBO0.NE.30))GOTO 10083
                STATE=3
                LITVA0=LITVA0-(SYMVA0)
                SHIFT0=INSER0(LITVA0)
                CALL GETSYM
                GOTO 10084
10083           CALL ERRMSG('missing constant after ''-''.')
10084         IF((STATE.EQ.3))GOTO 10085
                GPST=2
                RETURN
10085       CONTINUE
10082       AAAAQ0=STATE
            GOTO 10086
10087         STATE=3
            GOTO 10088
10086       IF(AAAAQ0.EQ.1)GOTO 10087
10088       IF((STATE.EQ.3))GOTO 10089
              GPST=2
              RETURN
10089     CONTINUE
10080   CONTINUE
10077 CONTINUE
10071 GPST=STATE
      RETURN
      END
      SUBROUTINE NANOI0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAR0
      INTEGER AAAAS0
      INTEGER AAAAT0
      INTEGER AAAAU0
      NANOM0(1,NANOL0+1)=0
      NANOM0(2,NANOL0+1)=0
      NANOM0(3,NANOL0+1)=0
      NANOM0(4,NANOL0+1)=0
      CALL SETF(1,4,MICRP0(MICRO0+1),15)
      CALL SETF(5,12,MICRP0(MICRO0+1),NANOL0)
      CALL UNCON0(STATE)
      AAAAR0=STATE
      GOTO 10090
10091   GPST=2
        RETURN
10090 IF(AAAAR0.EQ.2)GOTO 10091
      AAAAS0=STATE
      GOTO 10092
10093   STATE=3
      GOTO 10094
10092 IF(AAAAS0.EQ.1)GOTO 10093
10094 IF((STATE.NE.3))GOTO 10095
        CALL CONDI0(STATE)
        AAAAT0=STATE
        GOTO 10096
10097     GPST=2
          RETURN
10096   IF(AAAAT0.EQ.2)GOTO 10097
        AAAAU0=STATE
        GOTO 10098
10099     STATE=3
        GOTO 10100
10098   IF(AAAAU0.EQ.1)GOTO 10099
10100   IF((STATE.EQ.3))GOTO 10101
          GPST=2
          RETURN
10101 CONTINUE
10095 GPST=STATE
      RETURN
      END
      SUBROUTINE UNCON0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAV0
      INTEGER AAAAW0
      INTEGER AAAAX0
      SUCCE0=1
      MDOPU0=.FALSE.
      CAJUS0=.FALSE.
      LUNIT0=.FALSE.
      CALL SETF(11,3,NANOM0(1,NANOL0+1),1)
      CALL SETF(14,3,NANOM0(1,NANOL0+1),1)
      CALL COMPO0(STATE)
      AAAAV0=STATE
      GOTO 10102
10103   GPST=2
        RETURN
10102 IF(AAAAV0.EQ.2)GOTO 10103
      IF((STATE.NE.3))GOTO 10104
10105     CALL COMPO0(STATE)
          AAAAW0=STATE
          GOTO 10106
10107       GPST=2
            RETURN
10106     IF(AAAAW0.EQ.2)GOTO 10107
        IF((STATE.EQ.3))GOTO 10105
        AAAAX0=STATE
        GOTO 10108
10109     STATE=3
        GOTO 10110
10108   IF(AAAAX0.EQ.1)GOTO 10109
10110   IF((STATE.EQ.3))GOTO 10111
          GPST=2
          RETURN
10111 CONTINUE
10104 GPST=STATE
      RETURN
      END
      SUBROUTINE COMPO0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAAY0
      INTEGER AAAAZ0
      INTEGER AAABA0
      INTEGER AAABB0
      INTEGER AAABC0
      CALL EXTER0(STATE)
      AAAAY0=STATE
      GOTO 10112
10113   GPST=2
        RETURN
10112 IF(AAAAY0.EQ.2)GOTO 10113
      IF((STATE.NE.1))GOTO 10114
        CALL SUCCF0(STATE)
        AAAAZ0=STATE
        GOTO 10115
10116     GPST=2
          RETURN
10117     CALL SETF(11,3,NANOM0(1,NANOL0+1),LITVA0)
          IF((SUCCE0.NE.1))GOTO 10118
            CALL SETF(14,3,NANOM0(1,NANOL0+1),LITVA0)
10118   GOTO 10119
10115   AAABA0=AAAAZ0-1
        GOTO(10116,10117),AAABA0
10119   IF((STATE.NE.1))GOTO 10120
          CALL LOGIC0(STATE)
          AAABB0=STATE
          GOTO 10121
10122       GPST=2
            RETURN
10123       IF((SUCCE0.EQ.1))GOTO 10124
              IF((.NOT.LUNIT0))GOTO 10125
                CALL ERRMSG('adder may not be used twice.')
10125         CALL SETF(6,1,NANOM0(1,NANOL0+1),1)
              GOTO 10126
10124         LUNIT0=.TRUE.
10126     GOTO 10127
10121     AAABC0=AAABB0-1
          GOTO(10122,10123),AAABC0
10127   CONTINUE
10120 CONTINUE
10114 GPST=STATE
      RETURN
      END
      SUBROUTINE EXTER0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAABD0
      INTEGER AAABE0
      INTEGER AAABF0
      INTEGER AAABG0
      INTEGER AAABH0
      INTEGER AAABI0
      INTEGER AAABJ0
      INTEGER AAABK0
      INTEGER AAABL0
      INTEGER AAABM0
      CALL MEMOR0(STATE)
      AAABD0=STATE
      GOTO 10128
10129   GPST=2
        RETURN
10130   CALL SETF(51,4,NANOM0(1,NANOL0+1),LITVA0)
        IF((.NOT.MDOPU0))GOTO 10131
          CALL ERRMSG('mem dev op may not be used twice.')
10131   IF((SUCCE0.EQ.1))GOTO 10132
          CALL SETF(7,1,NANOM0(1,NANOL0+1),1)
10132   MDOPU0=.TRUE.
      GOTO 10133
10128 AAABE0=AAABD0-1
      GOTO(10129,10130),AAABE0
10133 IF((STATE.NE.3))GOTO 10134
        CALL SETOP(STATE)
        AAABF0=STATE
        GOTO 10135
10136     GPST=2
          RETURN
10137     CALL SETF(8,3,NANOM0(1,NANOL0+1),LITVA0)
          IF((.NOT.CAJUS0))GOTO 10138
            CALL ERRMSG('cond@. adj@. may not be used twice.')
10138     IF((SUCCE0.EQ.1))GOTO 10139
            CALL SETF(7,1,NANOM0(1,NANOL0+1),1)
10139     CAJUS0=.TRUE.
        GOTO 10140
10135   AAABG0=AAABF0-1
        GOTO(10136,10137),AAABG0
10140   AAABH0=STATE
        GOTO 10141
10142     STATE=3
        GOTO 10143
10141   IF(AAABH0.EQ.1)GOTO 10142
10143   IF((STATE.EQ.3))GOTO 10144
          GPST=2
          RETURN
10144 CONTINUE
10134 IF((STATE.NE.1))GOTO 10145
        CALL SETOP(STATE)
        AAABI0=STATE
        GOTO 10146
10147     GPST=2
          RETURN
10148     CALL SETF(8,3,NANOM0(1,NANOL0+1),LITVA0)
          IF((.NOT.CAJUS0))GOTO 10149
            CALL ERRMSG('cond@. adj@. may not be used twice.')
10149     IF((SUCCE0.EQ.1))GOTO 10150
            CALL SETF(7,1,NANOM0(1,NANOL0+1),1)
10150     CAJUS0=.TRUE.
        GOTO 10151
10146   AAABJ0=AAABI0-1
        GOTO(10147,10148),AAABJ0
10151   IF((STATE.NE.3))GOTO 10152
          CALL MEMOR0(STATE)
          AAABK0=STATE
          GOTO 10153
10154       GPST=2
            RETURN
10155       CALL SETF(51,4,NANOM0(1,NANOL0+1),LITVA0)
            IF((.NOT.MDOPU0))GOTO 10156
              CALL ERRMSG('mem dev op may not be used twice.')
10156       IF((SUCCE0.EQ.1))GOTO 10157
              CALL SETF(7,1,NANOM0(1,NANOL0+1),1)
10157       MDOPU0=.TRUE.
          GOTO 10158
10153     AAABL0=AAABK0-1
          GOTO(10154,10155),AAABL0
10158     AAABM0=STATE
          GOTO 10159
10160       STATE=3
          GOTO 10161
10159     IF(AAABM0.EQ.1)GOTO 10160
10161     IF((STATE.EQ.3))GOTO 10162
            GPST=2
            RETURN
10162   CONTINUE
10152 CONTINUE
10145 GPST=STATE
      RETURN
      END
      SUBROUTINE MEMOR0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      LITVA0=0
      STATE=1
      IF((SYMBO0.NE.47))GOTO 10163
        STATE=3
        LITVA0=2
        CALL GETSYM
10163 IF((STATE.NE.1))GOTO 10164
        IF((SYMBO0.NE.48))GOTO 10165
          STATE=3
          LITVA0=3
          CALL GETSYM
10165   IF((STATE.NE.1))GOTO 10166
          IF((SYMBO0.NE.50))GOTO 10167
            STATE=3
            LITVA0=6
            CALL GETSYM
10167     IF((STATE.NE.1))GOTO 10168
            IF((SYMBO0.NE.51))GOTO 10169
              STATE=3
              LITVA0=7
              CALL GETSYM
10169     CONTINUE
10168   CONTINUE
10166 CONTINUE
10164 GPST=STATE
      RETURN
      END
      SUBROUTINE SETOP(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER SETVAL(3)
      INTEGER AAABN0
      DATA SETVAL/7,1,5/
      LITVA0=0
      STATE=1
      IF((SYMBO0.NE.67))GOTO 10170
        STATE=3
        CALL GETSYM
10170 IF((STATE.NE.3))GOTO 10171
        CALL CONDJ0(STATE)
        AAABN0=STATE
        GOTO 10172
10173     GPST=2
          RETURN
10174     CALL ERRMSG('missing condition bit after SET.')
        GOTO 10175
10176     LITVA0=SETVAL(LITVA0)
        GOTO 10175
10172   GOTO(10174,10173,10176),AAABN0
10175   IF((STATE.EQ.3))GOTO 10177
          GPST=2
          RETURN
10177 CONTINUE
10171 GPST=STATE
      RETURN
      END
      SUBROUTINE CONDJ0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.34))GOTO 10178
        STATE=3
        LITVA0=1
        CALL GETSYM
10178 IF((STATE.NE.1))GOTO 10179
        IF((SYMBO0.NE.35))GOTO 10180
          STATE=3
          LITVA0=2
          CALL GETSYM
10180   IF((STATE.NE.1))GOTO 10181
          IF((SYMBO0.NE.36))GOTO 10182
            STATE=3
            LITVA0=3
            CALL GETSYM
10182   CONTINUE
10181 CONTINUE
10179 GPST=STATE
      RETURN
      END
      SUBROUTINE LOGIC0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAABO0
      INTEGER AAABP0
      INTEGER AAABQ0
      INTEGER AAABR0
      INTEGER AAABS0
      INTEGER AAABT0
      INTEGER AAABU0
      INTEGER AAABV0
      INTEGER AAABW0
      INTEGER AAABX0
      INTEGER AAABY0
      CALL ADDER0(STATE)
      AAABO0=STATE
      GOTO 10183
10184   GPST=2
        RETURN
10183 IF(AAABO0.EQ.2)GOTO 10184
      IF((STATE.NE.3))GOTO 10185
        CALL SHIFU0(STATE)
        AAABP0=STATE
        GOTO 10186
10187     GPST=2
          RETURN
10188     CALL SETF(32,2,NANOM0(1,NANOL0+1),LITVA0)
        GOTO 10189
10186   AAABQ0=AAABP0-1
        GOTO(10187,10188),AAABQ0
10189   AAABR0=STATE
        GOTO 10190
10191     STATE=3
        GOTO 10192
10190   IF(AAABR0.EQ.1)GOTO 10191
10192   IF((STATE.EQ.3))GOTO 10193
          GPST=2
          RETURN
10193   CALL DESTI0(STATE)
        AAABS0=STATE
        GOTO 10194
10195     GPST=2
          RETURN
10194   IF(AAABS0.EQ.2)GOTO 10195
        AAABT0=STATE
        GOTO 10196
10197     STATE=3
        GOTO 10198
10196   IF(AAABT0.EQ.1)GOTO 10197
10198   IF((STATE.EQ.3))GOTO 10199
          GPST=2
          RETURN
10199 CONTINUE
10185 IF((STATE.NE.1))GOTO 10200
        CALL SHIFU0(STATE)
        AAABU0=STATE
        GOTO 10201
10202     GPST=2
          RETURN
10203     CALL SETF(32,2,NANOM0(1,NANOL0+1),LITVA0)
        GOTO 10204
10201   AAABV0=AAABU0-1
        GOTO(10202,10203),AAABV0
10204   IF((STATE.NE.3))GOTO 10205
          CALL DESTI0(STATE)
          AAABW0=STATE
          GOTO 10206
10207       GPST=2
            RETURN
10206     IF(AAABW0.EQ.2)GOTO 10207
          AAABX0=STATE
          GOTO 10208
10209       STATE=3
          GOTO 10210
10208     IF(AAABX0.EQ.1)GOTO 10209
10210     IF((STATE.EQ.3))GOTO 10211
            GPST=2
            RETURN
10211   CONTINUE
10205   IF((STATE.NE.1))GOTO 10212
          CALL DESTI0(STATE)
          AAABY0=STATE
          GOTO 10213
10214       GPST=2
            RETURN
10213     IF(AAABY0.EQ.2)GOTO 10214
10212 CONTINUE
10200 GPST=STATE
      RETURN
      END
      SUBROUTINE ADDER0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAABZ0
      INTEGER AAACA0
      INTEGER AAACB0
      CALL BINAS0(STATE)
      AAABZ0=STATE
      GOTO 10215
10216   GPST=2
        RETURN
10215 IF(AAABZ0.EQ.2)GOTO 10216
      IF((STATE.NE.3))GOTO 10217
        CALL BINAT0(STATE)
        AAACA0=STATE
        GOTO 10218
10219     GPST=2
          RETURN
10218   IF(AAACA0.EQ.2)GOTO 10219
        IF((STATE.EQ.3))GOTO 10220
          GPST=2
          RETURN
10220 CONTINUE
10217 IF((STATE.NE.1))GOTO 10221
        CALL UNARY0(STATE)
        AAACB0=STATE
        GOTO 10222
10223     GPST=2
          RETURN
10222   IF(AAACB0.EQ.2)GOTO 10223
        IF((STATE.NE.1))GOTO 10224
          IF((SYMBO0.NE.30))GOTO 10225
            STATE=3
            CALL SETF(17,3,NANOM0(1,NANOL0+1),0)
            CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
            IF((SYMVA0.NE.0))GOTO 10226
              CALL SETF(20,7,NANOM0(1,NANOL0+1),0)
              GOTO 10227
10226         IF((SYMVA0.NE.1))GOTO 10228
                CALL SETF(20,7,NANOM0(1,NANOL0+1),3)
                GOTO 10229
10228           CALL ERRMSG('constant must be 0 or 1.')
10229       CONTINUE
10227       CALL GETSYM
10225   CONTINUE
10224 CONTINUE
10221 GPST=STATE
      RETURN
      END
      SUBROUTINE UNARY0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACC0
      INTEGER AAACD0
      INTEGER AAACE0
      INTEGER AAACF0
      INTEGER AAACG0
      INTEGER AAACH0
      INTEGER AAACI0
      INTEGER AAACJ0
      STATE=1
      IF((SYMBO0.NE.55))GOTO 10230
        STATE=3
        CALL GETSYM
10230 IF((STATE.NE.3))GOTO 10231
        CALL YSELE0(STATE)
        AAACC0=STATE
        GOTO 10232
10233     GPST=2
          RETURN
10234     CALL SETF(17,3,NANOM0(1,NANOL0+1),0)
          CALL SETF(20,7,NANOM0(1,NANOL0+1),LITVA0)
          IF((.NOT.COMPY0))GOTO 10235
            CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
            GOTO 10236
10235       CALL SETF(28,4,NANOM0(1,NANOL0+1),12)
10236   GOTO 10237
10232   AAACD0=AAACC0-1
        GOTO(10233,10234),AAACD0
10237   IF((STATE.NE.1))GOTO 10238
          CALL XSELE0(STATE)
          AAACE0=STATE
          GOTO 10239
10240       GPST=2
            RETURN
10241       CALL SETF(17,3,NANOM0(1,NANOL0+1),LITVA0)
            CALL SETF(20,7,NANOM0(1,NANOL0+1),0)
            CALL SETF(28,4,NANOM0(1,NANOL0+1),1)
          GOTO 10242
10239     AAACF0=AAACE0-1
          GOTO(10240,10241),AAACF0
10242   CONTINUE
10238   IF((STATE.EQ.3))GOTO 10243
          GPST=2
          RETURN
10243 CONTINUE
10231 IF((STATE.NE.1))GOTO 10244
        CALL YSELE0(STATE)
        AAACG0=STATE
        GOTO 10245
10246     GPST=2
          RETURN
10247     CALL SETF(17,3,NANOM0(1,NANOL0+1),0)
          CALL SETF(20,7,NANOM0(1,NANOL0+1),LITVA0)
          IF((.NOT.COMPY0))GOTO 10248
            CALL SETF(28,4,NANOM0(1,NANOL0+1),12)
            GOTO 10249
10248       CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
10249   GOTO 10250
10245   AAACH0=AAACG0-1
        GOTO(10246,10247),AAACH0
10250   IF((STATE.NE.1))GOTO 10251
          CALL XSELE0(STATE)
          AAACI0=STATE
          GOTO 10252
10253       GPST=2
            RETURN
10254       CALL SETF(17,3,NANOM0(1,NANOL0+1),LITVA0)
            CALL SETF(20,8,NANOM0(1,NANOL0+1),0)
            CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
          GOTO 10255
10252     AAACJ0=AAACI0-1
          GOTO(10253,10254),AAACJ0
10255   CONTINUE
10251 CONTINUE
10244 GPST=STATE
      RETURN
      END
      SUBROUTINE XSELE0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.30))GOTO 10256
        STATE=3
        IF((SYMVA0.EQ.0))GOTO 10257
          CALL ERRMSG('X input must be 0.')
10257   LITVA0=0
        CALL GETSYM
10256 IF((STATE.NE.1))GOTO 10258
        IF((SYMBO0.NE.0))GOTO 10259
          STATE=3
          LITVA0=5
          CALL GETSYM
10259   IF((STATE.NE.1))GOTO 10260
          IF((SYMBO0.NE.1))GOTO 10261
            STATE=3
            LITVA0=6
            CALL GETSYM
10261     IF((STATE.NE.1))GOTO 10262
            IF((SYMBO0.NE.2))GOTO 10263
              STATE=3
              LITVA0=7
              CALL GETSYM
10263       IF((STATE.NE.1))GOTO 10264
              IF((SYMBO0.NE.22))GOTO 10265
                STATE=3
                LITVA0=3
                CALL GETSYM
10265         IF((STATE.NE.1))GOTO 10266
                IF((SYMBO0.NE.38))GOTO 10267
                  STATE=3
                  LITVA0=1
                  CALL GETSYM
10267         CONTINUE
10266       CONTINUE
10264     CONTINUE
10262   CONTINUE
10260 CONTINUE
10258 GPST=STATE
      RETURN
      END
      SUBROUTINE YSELE0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACK0
      COMPY0=.FALSE.
      STATE=1
      IF((SYMBO0.NE.30))GOTO 10268
        STATE=3
        IF((SYMVA0.NE.0))GOTO 10269
          LITVA0=0
          GOTO 10270
10269     IF((SYMVA0.NE.1))GOTO 10271
            LITVA0=3
            GOTO 10272
10271       CALL ERRMSG('Y-select must be 0 or 1.')
10272   CONTINUE
10270   CALL GETSYM
10268 IF((STATE.NE.1))GOTO 10273
        IF((SYMBO0.NE.17))GOTO 10274
          STATE=3
          LITVA0=49
          CALL GETSYM
10274   IF((STATE.NE.1))GOTO 10275
          CALL BMCL(STATE)
          AAACK0=STATE
          GOTO 10276
10277       GPST=2
            RETURN
10276     IF(AAACK0.EQ.2)GOTO 10277
          IF((STATE.NE.1))GOTO 10278
            IF((SYMBO0.NE.22))GOTO 10279
              STATE=3
              LITVA0=44
              CALL GETSYM
10279       IF((STATE.NE.1))GOTO 10280
              IF((SYMBO0.NE.38))GOTO 10281
                STATE=3
                LITVA0=5
                CALL GETSYM
10281         IF((STATE.NE.1))GOTO 10282
                IF((SYMBO0.NE.5))GOTO 10283
                  STATE=3
                  LITVA0=25
                  CALL GETSYM
10283         CONTINUE
10282       CONTINUE
10280     CONTINUE
10278   CONTINUE
10275 CONTINUE
10273 GPST=STATE
      RETURN
      END
      SUBROUTINE BINAT0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      LOGICAL NEGAT0
      INTEGER OP
      INTEGER OPREPL(16)
      INTEGER AAACL0
      INTEGER AAACM0
      INTEGER AAACN0
      INTEGER AAACO0
      INTEGER AAACP0
      INTEGER AAACQ0
      INTEGER AAACR0
      INTEGER AAACS0
      INTEGER AAACT0
      INTEGER AAACU0
      INTEGER AAACV0
      INTEGER AAACW0
      INTEGER AAACX0
      INTEGER AAACY0
      INTEGER AAACZ0
      DATA OPREPL/12,2,1,15,8,10,9,11,4,6,5,7,0,14,13,3/
      CALL XSELE0(STATE)
      AAACL0=STATE
      GOTO 10284
10285   GPST=2
        RETURN
10286   CALL SETF(17,3,NANOM0(1,NANOL0+1),LITVA0)
      GOTO 10287
10284 AAACM0=AAACL0-1
      GOTO(10285,10286),AAACM0
10287 IF((STATE.NE.3))GOTO 10288
        STATE=1
        IF((SYMBO0.NE.59))GOTO 10289
          STATE=3
          CALL GETSYM
10289   IF((STATE.NE.3))GOTO 10290
          STATE=1
          IF((SYMBO0.NE.55))GOTO 10291
            STATE=3
            NEGAT0=.TRUE.
            CALL GETSYM
            GOTO 10292
10291       NEGAT0=.FALSE.
10292     AAACN0=STATE
          GOTO 10293
10294       STATE=3
          GOTO 10295
10293     IF(AAACN0.EQ.1)GOTO 10294
10295     IF((STATE.EQ.3))GOTO 10296
            GPST=2
            RETURN
10296     CALL YSELE0(STATE)
          AAACO0=STATE
          GOTO 10297
10298       GPST=2
            RETURN
10299       CALL SETF(20,7,NANOM0(1,NANOL0+1),LITVA0)
            IF((.NOT.COMPY0))GOTO 10300
              NEGAT0=.NOT.NEGAT0
10300     GOTO 10301
10297     AAACP0=AAACO0-1
          GOTO(10298,10299),AAACP0
10301     IF((STATE.EQ.3))GOTO 10302
            GPST=2
            RETURN
10302     STATE=1
          IF((SYMBO0.NE.59))GOTO 10303
            STATE=3
            IF((.NOT.NEGAT0))GOTO 10304
              CALL SETF(28,4,NANOM0(1,NANOL0+1),15)
              GOTO 10305
10304         CALL SETF(28,4,NANOM0(1,NANOL0+1),3)
10305       CALL GETSYM
            GOTO 10306
10303       IF((.NOT.NEGAT0))GOTO 10307
              CALL SETF(28,4,NANOM0(1,NANOL0+1),12)
              GOTO 10308
10307         CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
10308     CONTINUE
10306     IF((STATE.NE.3))GOTO 10309
            STATE=1
            IF((SYMBO0.NE.30))GOTO 10310
              STATE=3
              IF((SYMVA0.EQ.1))GOTO 10311
                CALL ERRMSG('adder op must be ''x+y+1''.')
10311         CALL GETSYM
              GOTO 10312
10310         CALL ERRMSG('adder op must be ''x+y+1''.')
10312       IF((STATE.EQ.3))GOTO 10313
              GPST=2
              RETURN
10313     CONTINUE
10309     AAACQ0=STATE
          GOTO 10314
10315       STATE=3
          GOTO 10316
10314     IF(AAACQ0.EQ.1)GOTO 10315
10316     IF((STATE.EQ.3))GOTO 10317
            GPST=2
            RETURN
10317   CONTINUE
10290   IF((STATE.NE.1))GOTO 10318
          IF((SYMBO0.NE.45))GOTO 10319
            STATE=3
            CALL GETSYM
10319     IF((STATE.NE.3))GOTO 10320
            STATE=1
            IF((SYMBO0.NE.55))GOTO 10321
              STATE=3
              NEGAT0=.TRUE.
              CALL GETSYM
              GOTO 10322
10321         NEGAT0=.FALSE.
10322       AAACR0=STATE
            GOTO 10323
10324         STATE=3
            GOTO 10325
10323       IF(AAACR0.EQ.1)GOTO 10324
10325       IF((STATE.EQ.3))GOTO 10326
              GPST=2
              RETURN
10326       CALL YSELE0(STATE)
            AAACS0=STATE
            GOTO 10327
10328         GPST=2
              RETURN
10329         CALL SETF(20,7,NANOM0(1,NANOL0+1),LITVA0)
              IF((.NOT.COMPY0))GOTO 10330
                NEGAT0=.NOT.NEGAT0
10330       GOTO 10331
10327       AAACT0=AAACS0-1
            GOTO(10328,10329),AAACT0
10331       IF((STATE.EQ.3))GOTO 10332
              GPST=2
              RETURN
10332       STATE=1
            IF((SYMBO0.NE.45))GOTO 10333
              STATE=3
              IF((.NOT.NEGAT0))GOTO 10334
                CALL SETF(28,4,NANOM0(1,NANOL0+1),0)
                GOTO 10335
10334           CALL SETF(28,4,NANOM0(1,NANOL0+1),12)
10335         CALL GETSYM
              GOTO 10336
10333         IF((.NOT.NEGAT0))GOTO 10337
                CALL SETF(28,4,NANOM0(1,NANOL0+1),3)
                GOTO 10338
10337           CALL SETF(28,4,NANOM0(1,NANOL0+1),15)
10338       CONTINUE
10336       IF((STATE.NE.3))GOTO 10339
              STATE=1
              IF((SYMBO0.NE.30))GOTO 10340
                STATE=3
                IF((SYMVA0.EQ.1))GOTO 10341
                  CALL ERRMSG('adder op must be ''x-y-1''.')
10341           CALL GETSYM
                GOTO 10342
10340           CALL ERRMSG('adder op must be ''x-y-1''.')
10342         IF((STATE.EQ.3))GOTO 10343
                GPST=2
                RETURN
10343       CONTINUE
10339       AAACU0=STATE
            GOTO 10344
10345         STATE=3
            GOTO 10346
10344       IF(AAACU0.EQ.1)GOTO 10345
10346       IF((STATE.EQ.3))GOTO 10347
              GPST=2
              RETURN
10347     CONTINUE
10320     IF((STATE.NE.1))GOTO 10348
            CALL OPERA0(STATE)
            AAACV0=STATE
            GOTO 10349
10350         GPST=2
              RETURN
10351         OP=LITVA0
            GOTO 10352
10349       AAACW0=AAACV0-1
            GOTO(10350,10351),AAACW0
10352       IF((STATE.NE.3))GOTO 10353
              STATE=1
              IF((SYMBO0.NE.55))GOTO 10354
                STATE=3
                NEGAT0=.TRUE.
                CALL GETSYM
                GOTO 10355
10354           NEGAT0=.FALSE.
10355         AAACX0=STATE
              GOTO 10356
10357           STATE=3
              GOTO 10358
10356         IF(AAACX0.EQ.1)GOTO 10357
10358         IF((STATE.EQ.3))GOTO 10359
                GPST=2
                RETURN
10359         CALL YSELE0(STATE)
              AAACY0=STATE
              GOTO 10360
10361           GPST=2
                RETURN
10362           CALL SETF(20,7,NANOM0(1,NANOL0+1),LITVA0)
                IF((.NOT.COMPY0))GOTO 10363
                  NEGAT0=.NOT.NEGAT0
10363           IF((.NOT.NEGAT0))GOTO 10364
                  OP=OPREPL(OP+1)
10364           CALL SETF(28,4,NANOM0(1,NANOL0+1),OP)
              GOTO 10365
10360         AAACZ0=AAACY0-1
              GOTO(10361,10362),AAACZ0
10365         IF((STATE.EQ.3))GOTO 10366
                GPST=2
                RETURN
10366       CONTINUE
10353     CONTINUE
10348   CONTINUE
10318   IF((STATE.EQ.3))GOTO 10367
          GPST=2
          RETURN
10367 CONTINUE
10288 GPST=STATE
      RETURN
      END
      SUBROUTINE OPERA0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.6))GOTO 10368
        STATE=3
        LITVA0=11
        CALL GETSYM
10368 IF((STATE.NE.1))GOTO 10369
        IF((SYMBO0.NE.58))GOTO 10370
          STATE=3
          LITVA0=14
          CALL GETSYM
10370   IF((STATE.NE.1))GOTO 10371
          IF((SYMBO0.NE.52))GOTO 10372
            STATE=3
            LITVA0=4
            CALL GETSYM
10372     IF((STATE.NE.1))GOTO 10373
            IF((SYMBO0.NE.54))GOTO 10374
              STATE=3
              LITVA0=1
              CALL GETSYM
10374       IF((STATE.NE.1))GOTO 10375
              IF((SYMBO0.NE.28))GOTO 10376
                STATE=3
                LITVA0=8
                CALL GETSYM
10376         IF((STATE.NE.1))GOTO 10377
                IF((SYMBO0.NE.53))GOTO 10378
                  STATE=3
                  LITVA0=7
                  CALL GETSYM
10378           IF((STATE.NE.1))GOTO 10379
                  IF((SYMBO0.NE.62))GOTO 10380
                    STATE=3
                    LITVA0=13
                    CALL GETSYM
10380             IF((STATE.NE.1))GOTO 10381
                    IF((SYMBO0.NE.56))GOTO 10382
                      STATE=3
                      LITVA0=2
                      CALL GETSYM
10382               IF((STATE.NE.1))GOTO 10383
                      IF((SYMBO0.NE.75))GOTO 10384
                        STATE=3
                        LITVA0=6
                        CALL GETSYM
10384                 IF((STATE.NE.1))GOTO 10385
                        IF((SYMBO0.NE.25))GOTO 10386
                          STATE=3
                          LITVA0=9
                          CALL GETSYM
10386                   IF((STATE.NE.1))GOTO 10387
                          IF((SYMBO0.NE.57))GOTO 10388
                            STATE=3
                            LITVA0=5
                            CALL GETSYM
10388                     IF((STATE.NE.1))GOTO 10389
                            IF((SYMBO0.NE.3))GOTO 10390
                              STATE=3
                              LITVA0=10
                              CALL GETSYM
10390                     CONTINUE
10389                   CONTINUE
10387                 CONTINUE
10385               CONTINUE
10383             CONTINUE
10381           CONTINUE
10379         CONTINUE
10377       CONTINUE
10375     CONTINUE
10373   CONTINUE
10371 CONTINUE
10369 GPST=STATE
      RETURN
      END
      SUBROUTINE SHIFU0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      LITVA0=0
      STATE=1
      IF((SYMBO0.NE.63))GOTO 10391
        STATE=3
        LITVA0=1
        CALL GETSYM
10391 IF((STATE.NE.1))GOTO 10392
        IF((SYMBO0.NE.41))GOTO 10393
          STATE=3
          LITVA0=2
          CALL GETSYM
10393   IF((STATE.NE.1))GOTO 10394
          IF((SYMBO0.NE.23))GOTO 10395
            STATE=3
            LITVA0=3
            CALL GETSYM
10395   CONTINUE
10394 CONTINUE
10392 GPST=STATE
      RETURN
      END
      SUBROUTINE DESTI0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADA0
      INTEGER AAADB0
      INTEGER AAADC0
      INTEGER AAADD0
      INTEGER AAADE0
      MARUS0=.FALSE.
      CTRUS0=.FALSE.
      BRUSE0=.FALSE.
      STATE=1
      IF((SYMBO0.NE.8))GOTO 10396
        STATE=3
        CALL GETSYM
10396 IF((STATE.NE.3))GOTO 10397
10398     CALL DESTJ0(STATE)
          AAADA0=STATE
          GOTO 10399
10400       GPST=2
            RETURN
10399     IF(AAADA0.EQ.2)GOTO 10400
        IF((STATE.EQ.3))GOTO 10398
        AAADB0=STATE
        GOTO 10401
10402     STATE=3
        GOTO 10403
10401   IF(AAADB0.EQ.1)GOTO 10402
10403   IF((STATE.EQ.3))GOTO 10404
          GPST=2
          RETURN
10404 CONTINUE
10397 IF((STATE.NE.1))GOTO 10405
        CALL DESTJ0(STATE)
        AAADC0=STATE
        GOTO 10406
10407     GPST=2
          RETURN
10406   IF(AAADC0.EQ.2)GOTO 10407
        IF((STATE.NE.3))GOTO 10408
10409       CALL DESTJ0(STATE)
            AAADD0=STATE
            GOTO 10410
10411         GPST=2
              RETURN
10410       IF(AAADD0.EQ.2)GOTO 10411
          IF((STATE.EQ.3))GOTO 10409
          AAADE0=STATE
          GOTO 10412
10413       STATE=3
          GOTO 10414
10412     IF(AAADE0.EQ.1)GOTO 10413
10414     IF((STATE.EQ.3))GOTO 10415
            GPST=2
            RETURN
10415   CONTINUE
10408 CONTINUE
10405 GPST=STATE
      RETURN
      END
      SUBROUTINE DESTJ0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADF0
      INTEGER AAADG0
      INTEGER AAADH0
      INTEGER AAADI0
      INTEGER AAADJ0
      INTEGER AAADK0
      STATE=1
      IF((SYMBO0.NE.0))GOTO 10416
        STATE=3
        CALL SETF(34,1,NANOM0(1,NANOL0+1),1)
        CALL GETSYM
10416 IF((STATE.NE.1))GOTO 10417
        IF((SYMBO0.NE.1))GOTO 10418
          STATE=3
          CALL SETF(35,1,NANOM0(1,NANOL0+1),1)
          CALL GETSYM
10418   IF((STATE.NE.1))GOTO 10419
          IF((SYMBO0.NE.2))GOTO 10420
            STATE=3
            CALL SETF(36,1,NANOM0(1,NANOL0+1),1)
            CALL GETSYM
10420     IF((STATE.NE.1))GOTO 10421
            IF((SYMBO0.NE.46))GOTO 10422
              STATE=3
              CALL SETF(41,1,NANOM0(1,NANOL0+1),1)
              CALL GETSYM
10422       IF((STATE.NE.1))GOTO 10423
              IF((SYMBO0.NE.15))GOTO 10424
                STATE=3
                IF((.NOT.MARUS0))GOTO 10425
                  CALL ERRMSG('BR may not be used with MAR.')
10425           CALL SETF(43,1,NANOM0(1,NANOL0+1),1)
                CALL SETF(45,1,NANOM0(1,NANOL0+1),0)
                BRUSE0=.TRUE.
                CALL GETSYM
10424         IF((STATE.NE.1))GOTO 10426
                IF((SYMBO0.NE.16))GOTO 10427
                  STATE=3
                  IF((.NOT.MARUS0))GOTO 10428
                    CALL ERRMSG('BR may not be used with MAR.')
10428             CALL SETF(44,1,NANOM0(1,NANOL0+1),1)
                  CALL SETF(45,1,NANOM0(1,NANOL0+1),0)
                  BRUSE0=.TRUE.
                  CALL GETSYM
10427           IF((STATE.NE.1))GOTO 10429
                  IF((SYMBO0.NE.5))GOTO 10430
                    STATE=3
                    CALL SETF(42,1,NANOM0(1,NANOL0+1),1)
                    CALL GETSYM
10430             IF((STATE.NE.1))GOTO 10431
                    CALL INPUTB(STATE)
                    AAADF0=STATE
                    GOTO 10432
10433                 GPST=2
                      RETURN
10434                 CALL SETF(37,4,NANOM0(1,NANOL0+1),LITVA0)
                    GOTO 10435
10432               AAADG0=AAADF0-1
                    GOTO(10433,10434),AAADG0
10435               IF((STATE.NE.1))GOTO 10436
                      CALL INPUT0(STATE)
                      AAADH0=STATE
                      GOTO 10437
10438                   GPST=2
                        RETURN
10437                 IF(AAADH0.EQ.2)GOTO 10438
                      IF((STATE.NE.1))GOTO 10439
                        CALL INPUU0(STATE)
                        AAADI0=STATE
                        GOTO 10440
10441                     GPST=2
                          RETURN
10440                   IF(AAADI0.EQ.2)GOTO 10441
                        IF((STATE.NE.1))GOTO 10442
                          CALL INPUV0(STATE)
                          AAADJ0=STATE
                          GOTO 10443
10444                       GPST=2
                            RETURN
10445                       CALL SETF(49,2,NANOM0(1,NANOL0+1),LITVA0)
                          GOTO 10446
10443                     AAADK0=AAADJ0-1
                          GOTO(10444,10445),AAADK0
10446                   CONTINUE
10442                 CONTINUE
10439               CONTINUE
10436             CONTINUE
10431           CONTINUE
10429         CONTINUE
10426       CONTINUE
10423     CONTINUE
10421   CONTINUE
10419 CONTINUE
10417 GPST=STATE
      RETURN
      END
      SUBROUTINE INPUTB(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.17))GOTO 10447
        STATE=3
        LITVA0=11
        CALL GETSYM
10447 IF((STATE.NE.1))GOTO 10448
        IF((SYMBO0.NE.13))GOTO 10449
          STATE=3
          LITVA0=12
          CALL GETSYM
10449   IF((STATE.NE.1))GOTO 10450
          IF((SYMBO0.NE.9))GOTO 10451
            STATE=3
            LITVA0=8
            CALL GETSYM
10451     IF((STATE.NE.1))GOTO 10452
            IF((SYMBO0.NE.14))GOTO 10453
              STATE=3
              LITVA0=13
              CALL GETSYM
10453       IF((STATE.NE.1))GOTO 10454
              IF((SYMBO0.NE.11))GOTO 10455
                STATE=3
                LITVA0=14
                CALL GETSYM
10455         IF((STATE.NE.1))GOTO 10456
                IF((SYMBO0.NE.10))GOTO 10457
                  STATE=3
                  LITVA0=10
                  CALL GETSYM
10457           IF((STATE.NE.1))GOTO 10458
                  IF((SYMBO0.NE.12))GOTO 10459
                    STATE=3
                    LITVA0=15
                    CALL GETSYM
10459           CONTINUE
10458         CONTINUE
10456       CONTINUE
10454     CONTINUE
10452   CONTINUE
10450 CONTINUE
10448 GPST=STATE
      RETURN
      END
      SUBROUTINE INPUT0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.22))GOTO 10460
        STATE=3
        IF((.NOT.MARUS0))GOTO 10461
          CALL ERRMSG('CTR may not be used with a MAR.')
10461   CALL SETF(46,3,NANOM0(1,NANOL0+1),5)
        CTRUS0=.TRUE.
        CALL GETSYM
10460 IF((STATE.NE.1))GOTO 10462
        IF((SYMBO0.NE.37))GOTO 10463
          STATE=3
          IF((.NOT.MARUS0))GOTO 10464
            CALL ERRMSG('LCTR may not be used with a MAR.')
10464     CALL SETF(46,3,NANOM0(1,NANOL0+1),1)
          CTRUS0=.TRUE.
          CALL GETSYM
10463   IF((STATE.NE.1))GOTO 10465
          IF((SYMBO0.NE.29))GOTO 10466
            STATE=3
            IF((.NOT.CTRUS0))GOTO 10467
              CALL ERRMSG('INC may not be used with CTR or LCTR.')
10467       CALL SETF(47,2,NANOM0(1,NANOL0+1),2)
            CALL GETSYM
10466   CONTINUE
10465 CONTINUE
10462 GPST=STATE
      RETURN
      END
      SUBROUTINE INPUU0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.44))GOTO 10468
        STATE=3
        IF((.NOT.CTRUS0))GOTO 10469
          CALL ERRMSG('MAR may not be used with CTR.')
10469   IF((.NOT.BRUSE0))GOTO 10470
          CALL ERRMSG('MAR may not be used with BR.')
10470   MARUS0=.TRUE.
        CALL SETF(45,2,NANOM0(1,NANOL0+1),3)
        CALL GETSYM
10468 IF((STATE.NE.1))GOTO 10471
        IF((SYMBO0.NE.42))GOTO 10472
          STATE=3
          IF((.NOT.CTRUS0))GOTO 10473
            CALL ERRMSG('MAR may not be used with CTR.')
10473     IF((.NOT.BRUSE0))GOTO 10474
            CALL ERRMSG('MAR may not be used with BR.')
10474     MARUS0=.TRUE.
          CALL SETF(43,1,NANOM0(1,NANOL0+1),1)
          CALL SETF(45,2,NANOM0(1,NANOL0+1),3)
          CALL GETSYM
10472   IF((STATE.NE.1))GOTO 10475
          IF((SYMBO0.NE.43))GOTO 10476
            STATE=3
            IF((.NOT.CTRUS0))GOTO 10477
              CALL ERRMSG('MAR may not be used with CTR.')
10477       IF((.NOT.BRUSE0))GOTO 10478
              CALL ERRMSG('MAR may not be used with BR.')
10478       MARUS0=.TRUE.
            CALL SETF(44,3,NANOM0(1,NANOL0+1),7)
            CALL GETSYM
10476     IF((STATE.NE.1))GOTO 10479
            IF((SYMBO0.NE.39))GOTO 10480
              STATE=3
              IF((.NOT.CTRUS0))GOTO 10481
                CALL ERRMSG('MAR may not be used with CTR.')
10481         IF((.NOT.BRUSE0))GOTO 10482
                CALL ERRMSG('MAR may not be used with BR.')
10482         MARUS0=.TRUE.
              CALL SETF(45,2,NANOM0(1,NANOL0+1),2)
              CALL GETSYM
10480     CONTINUE
10479   CONTINUE
10475 CONTINUE
10471 GPST=STATE
      RETURN
      END
      SUBROUTINE INPUV0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      STATE=1
      IF((SYMBO0.NE.65))GOTO 10483
        STATE=3
        LITVA0=2
        CALL GETSYM
10483 IF((STATE.NE.1))GOTO 10484
        IF((SYMBO0.NE.21))GOTO 10485
          STATE=3
          LITVA0=1
          CALL GETSYM
10485 CONTINUE
10484 GPST=STATE
      RETURN
      END
      SUBROUTINE SUCCF0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      LITVA0=1
      STATE=1
      IF((SYMBO0.NE.73))GOTO 10486
        STATE=3
        LITVA0=0
        CALL GETSYM
10486 IF((STATE.NE.1))GOTO 10487
        IF((SYMBO0.NE.70))GOTO 10488
          STATE=3
          LITVA0=1
          CALL GETSYM
10488   IF((STATE.NE.1))GOTO 10489
          IF((SYMBO0.NE.66))GOTO 10490
            STATE=3
            LITVA0=2
            CALL GETSYM
10490     IF((STATE.NE.1))GOTO 10491
            IF((SYMBO0.NE.68))GOTO 10492
              STATE=3
              LITVA0=3
              CALL GETSYM
10492       IF((STATE.NE.1))GOTO 10493
              IF((SYMBO0.NE.31))GOTO 10494
                STATE=3
                LITVA0=4
                CALL GETSYM
10494         IF((STATE.NE.1))GOTO 10495
                IF((SYMBO0.NE.26))GOTO 10496
                  STATE=3
                  LITVA0=5
                  CALL GETSYM
10496           IF((STATE.NE.1))GOTO 10497
                  IF((SYMBO0.NE.18))GOTO 10498
                    STATE=3
                    LITVA0=6
                    CALL GETSYM
10498             IF((STATE.NE.1))GOTO 10499
                    IF((SYMBO0.NE.61))GOTO 10500
                      STATE=3
                      LITVA0=7
                      CALL GETSYM
10500             CONTINUE
10499           CONTINUE
10497         CONTINUE
10495       CONTINUE
10493     CONTINUE
10491   CONTINUE
10489 CONTINUE
10487 GPST=STATE
      RETURN
      END
      SUBROUTINE CONDI0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADL0
      INTEGER AAADM0
      INTEGER AAADN0
      INTEGER AAADO0
      INTEGER AAADP0
      INTEGER AAADQ0
      INTEGER AAADR0
      CALL IFCLA0(STATE)
      AAADL0=STATE
      GOTO 10501
10502   GPST=2
        RETURN
10501 IF(AAADL0.EQ.2)GOTO 10502
      IF((STATE.NE.3))GOTO 10503
        CALL THENC0(STATE)
        AAADM0=STATE
        GOTO 10504
10505     GPST=2
          RETURN
10504   IF(AAADM0.EQ.2)GOTO 10505
        AAADN0=STATE
        GOTO 10506
10507     STATE=3
        GOTO 10508
10506   IF(AAADN0.EQ.1)GOTO 10507
10508   IF((STATE.EQ.3))GOTO 10509
          GPST=2
          RETURN
10509   CALL ELSEC0(STATE)
        AAADO0=STATE
        GOTO 10510
10511     GPST=2
          RETURN
10510   IF(AAADO0.EQ.2)GOTO 10511
        AAADP0=STATE
        GOTO 10512
10513     STATE=3
        GOTO 10514
10512   IF(AAADP0.EQ.1)GOTO 10513
10514   IF((STATE.EQ.3))GOTO 10515
          GPST=2
          RETURN
10515 CONTINUE
10503 IF((STATE.NE.1))GOTO 10516
        CALL WHENC0(STATE)
        AAADQ0=STATE
        GOTO 10517
10518     GPST=2
          RETURN
10517   IF(AAADQ0.EQ.2)GOTO 10518
        IF((STATE.NE.3))GOTO 10519
          CALL THENC0(STATE)
          AAADR0=STATE
          GOTO 10520
10521       GPST=2
            RETURN
10520     IF(AAADR0.EQ.2)GOTO 10521
          IF((STATE.EQ.3))GOTO 10522
            GPST=2
            RETURN
10522   CONTINUE
10519 CONTINUE
10516 GPST=STATE
      RETURN
      END
      SUBROUTINE IFCLA0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADS0
      STATE=1
      IF((SYMBO0.NE.27))GOTO 10523
        STATE=3
        CALL GETSYM
10523 IF((STATE.NE.3))GOTO 10524
        CALL CONDK0(STATE)
        AAADS0=STATE
        GOTO 10525
10526     GPST=2
          RETURN
10525   IF(AAADS0.EQ.2)GOTO 10526
        IF((STATE.EQ.3))GOTO 10527
          GPST=2
          RETURN
10527 CONTINUE
10524 GPST=STATE
      RETURN
      END
      SUBROUTINE CONDK0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADT0
      INTEGER AAADU0
      STATE=1
      IF((SYMBO0.NE.55))GOTO 10528
        STATE=3
        CALL SETF(5,1,NANOM0(1,NANOL0+1),0)
        CALL GETSYM
        GOTO 10529
10528   CALL SETF(5,1,NANOM0(1,NANOL0+1),1)
10529 AAADT0=STATE
      GOTO 10530
10531   STATE=3
      GOTO 10532
10530 IF(AAADT0.EQ.1)GOTO 10531
10532 IF((STATE.NE.3))GOTO 10533
        CALL BASIC0(STATE)
        AAADU0=STATE
        GOTO 10534
10535     GPST=2
          RETURN
10536     CALL ERRMSG('missing condition.')
        GOTO 10537
10538     CALL SETF(1,4,NANOM0(1,NANOL0+1),LITVA0)
        GOTO 10537
10534   GOTO(10536,10535,10538),AAADU0
10537   IF((STATE.EQ.3))GOTO 10539
          GPST=2
          RETURN
10539 CONTINUE
10533 GPST=STATE
      RETURN
      END
      SUBROUTINE BASIC0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER CAJRE0(3)
      INTEGER AAADV0
      INTEGER AAADW0
      DATA CAJRE0/2,3,11/
      STATE=1
      IF((SYMBO0.NE.40))GOTO 10540
        STATE=3
        LITVA0=5
        CALL GETSYM
10540 IF((STATE.NE.1))GOTO 10541
        IF((SYMBO0.NE.49))GOTO 10542
          STATE=3
          LITVA0=4
          CALL GETSYM
10542   IF((STATE.NE.1))GOTO 10543
          IF((SYMBO0.NE.7))GOTO 10544
            STATE=3
            LITVA0=7
            CALL GETSYM
10544     IF((STATE.NE.1))GOTO 10545
            IF((SYMBO0.NE.4))GOTO 10546
              STATE=3
              LITVA0=6
              CALL GETSYM
10546       IF((STATE.NE.1))GOTO 10547
              IF((SYMBO0.NE.20))GOTO 10548
                STATE=3
                LITVA0=8
                CALL GETSYM
10548         IF((STATE.NE.1))GOTO 10549
                IF((SYMBO0.NE.64))GOTO 10550
                  STATE=3
                  LITVA0=9
                  CALL GETSYM
10550           IF((STATE.NE.1))GOTO 10551
                  IF((SYMBO0.NE.60))GOTO 10552
                    STATE=3
                    LITVA0=10
                    CALL GETSYM
10552             IF((STATE.NE.1))GOTO 10553
                    CALL CONDJ0(STATE)
                    AAADV0=STATE
                    GOTO 10554
10555                 GPST=2
                      RETURN
10556                 LITVA0=CAJRE0(LITVA0)
                    GOTO 10557
10554               AAADW0=AAADV0-1
                    GOTO(10555,10556),AAADW0
10557             CONTINUE
10553           CONTINUE
10551         CONTINUE
10549       CONTINUE
10547     CONTINUE
10545   CONTINUE
10543 CONTINUE
10541 GPST=STATE
      RETURN
      END
      SUBROUTINE THENC0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADX0
      INTEGER AAADY0
      SUCCE0=2
      STATE=1
      IF((SYMBO0.NE.72))GOTO 10558
        STATE=3
        CALL GETSYM
10558 IF((STATE.NE.3))GOTO 10559
10560     CALL COMPO0(STATE)
          AAADX0=STATE
          GOTO 10561
10562       GPST=2
            RETURN
10561     IF(AAADX0.EQ.2)GOTO 10562
        IF((STATE.EQ.3))GOTO 10560
        AAADY0=STATE
        GOTO 10563
10564     STATE=3
        GOTO 10565
10563   IF(AAADY0.EQ.1)GOTO 10564
10565   IF((STATE.EQ.3))GOTO 10566
          GPST=2
          RETURN
10566 CONTINUE
10559 GPST=STATE
      RETURN
      END
      SUBROUTINE ELSEC0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADZ0
      INTEGER AAAEA0
      STATE=1
      IF((SYMBO0.NE.24))GOTO 10567
        STATE=3
        CALL GETSYM
10567 IF((STATE.NE.3))GOTO 10568
        CALL SUCCF0(STATE)
        AAADZ0=STATE
        GOTO 10569
10570     GPST=2
          RETURN
10571     CALL SETF(14,3,NANOM0(1,NANOL0+1),LITVA0)
        GOTO 10572
10569   AAAEA0=AAADZ0-1
        GOTO(10570,10571),AAAEA0
10572   IF((STATE.EQ.3))GOTO 10573
          GPST=2
          RETURN
10573 CONTINUE
10568 GPST=STATE
      RETURN
      END
      SUBROUTINE WHENC0(GPST)
      INTEGER GPST
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAAEB0
      STATE=1
      IF((SYMBO0.NE.74))GOTO 10574
        STATE=3
        CALL SETF(14,3,NANOM0(1,NANOL0+1),0)
        CALL GETSYM
10574 IF((STATE.NE.3))GOTO 10575
        CALL CONDK0(STATE)
        AAAEB0=STATE
        GOTO 10576
10577     GPST=2
          RETURN
10576   IF(AAAEB0.EQ.2)GOTO 10577
        IF((STATE.EQ.3))GOTO 10578
          GPST=2
          RETURN
10578 CONTINUE
10575 GPST=STATE
      RETURN
      END
      SUBROUTINE BINAS0(STATE)
      INTEGER STATE
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER SVSYM0,SVSYN0,SVIBP
      INTEGER SVSYO0(102)
      STATE=1
      IF((SYMBO0.NE.30))GOTO 10579
      IF((SYMVA0.EQ.0))GOTO 10579
        RETURN
10579 IF((SYMBO0.EQ.30))GOTO 10580
      IF((SYMBO0.EQ.0))GOTO 10580
      IF((SYMBO0.EQ.1))GOTO 10580
      IF((SYMBO0.EQ.2))GOTO 10580
      IF((SYMBO0.EQ.22))GOTO 10580
      IF((SYMBO0.EQ.38))GOTO 10580
        RETURN
10580 CALL SCOPY(SYMTE0,1,SVSYO0,1)
      SVSYM0=SYMBO0
      SVSYN0=SYMVA0
      SVIBP=IBPAA0
      CALL GETSYM
      CALL OPERA0(STATE)
      IF((STATE.NE.1))GOTO 10581
        IF((SYMBO0.EQ.59))GOTO 10583
        IF((SYMBO0.EQ.45))GOTO 10583
        GOTO 10582
10583     STATE=3
10582 CONTINUE
10581 CALL SCOPY(SVSYO0,1,SYMTE0,1)
      SYMBO0=SVSYM0
      SYMVA0=SVSYN0
      IBPAA0=SVIBP
      RETURN
      END
      INTEGER FUNCTION BITFI0(START,LEN,STRUCT)
      INTEGER START,LEN,STRUCT(1)
      INTEGER W1,W2,BLEFT,RES
      W1=(START-1)/16+1
      W2=STRUCT(W1+1)
      W1=STRUCT(W1)
      BLEFT=16-MOD(START-1,16)
      RES=RT(W1,BLEFT)
      IF((BLEFT.LT.LEN))GOTO 10584
        BITFI0=RS(RES,BLEFT-LEN)
        RETURN
10584 RES=LS(RES,LEN-BLEFT)
      W2=RS(W2,16-(LEN-BLEFT))
      BITFI0=OR(RES,W2)
      RETURN
      END
      SUBROUTINE BMCL(STATE)
      INTEGER STATE
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER GATE(5)
      INTEGER MST,MID,LST
      INTEGER INDEX
      DATA GATE/176,244,230,177,0/
      STATE=1
      IF((SYMBO0.NE.32))GOTO 10586
      IF((SYMTE0(1).NE.226))GOTO 10586
      GOTO 10585
10586   RETURN
10585 MST=INDEX(GATE,SYMTE0(2))
      MID=INDEX(GATE,SYMTE0(3))
      LST=INDEX(GATE,SYMTE0(4))
      IF((MST.EQ.0))GOTO 10588
      IF((MID.EQ.0))GOTO 10588
      IF((LST.EQ.0))GOTO 10588
      IF((SYMTE0(5).NE.0))GOTO 10588
      GOTO 10587
10588   RETURN
10587 MST=MST-(1)
      MID=MID-(1)
      LST=LST-(1)
      STATE=3
      LITVA0=OR(LS(MST,5),LST)
      IF((SYMTE0(3).NE.244))GOTO 10589
        LITVA0=OR(LITVA0,16)
        GOTO 10590
10589   IF((SYMTE0(3).NE.177))GOTO 10591
          LITVA0=AND(NOT(LITVA0),99)
          COMPY0=.TRUE.
          GOTO 10592
10591     IF((SYMTE0(3).NE.230))GOTO 10593
            LITVA0=OR(AND(NOT(LITVA0),99),16)
            COMPY0=.TRUE.
10593   CONTINUE
10592 CONTINUE
10590 CALL GETSYM
      RETURN
      END
      SUBROUTINE ERRMSG(MESSA0)
      INTEGER MESSA0(1)
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER I
      INTEGER AAAEC0(9)
      INTEGER AAAED0(6)
      INTEGER AAAEE0(2)
      INTEGER AAAEF0(8)
      DATA AAAEC0/170,170,170,170,170,170,160,160,0/
      DATA AAAED0/170,233,186,160,160,0/
      DATA AAAEE0/162,0/
      DATA AAAEF0/162,160,160,170,240,170,238,0/
      IF(LISTI0)GOTO 10595
      IF(BINAR0)GOTO 10595
      GOTO 10594
10595   CALL PUTLIN(AAAEC0,-11)
        GOTO 10596
10594   CALL PRINT(-11,AAAED0,LINEN0)
10596 CALL PRINT(-11,AAAEE0)
      I=MAX0(1,IBPAA0-5)
      GOTO 10599
10597 I=I+(1)
10599 IF((INBUF0(I).EQ.138))GOTO 10598
      IF((I.GT.IBPAA0+5))GOTO 10598
        CALL PUTCH(INBUF0(IBPAA0),-11)
      GOTO 10597
10598 CALL PRINT(-11,AAAEF0,MESSA0)
      RETURN
      END
      SUBROUTINE FINDL0
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER GETLIN
      MICRO0=0
10600 IF((GETLIN(INBUF0,INFIL0).EQ.-1))GOTO 10601
        CALL MAPSTR(INBUF0,1)
        IBPAA0=1
        CALL GETSYM
        CALL LABEM0(STATE)
        IF((STATE.NE.3))GOTO 10602
          CALL ENTER(SYMTE0,MICRO0,LTABA0)
          CALL GETSYM
          CALL GETSYM
10602   IF((SYMBO0.EQ.71))GOTO 10603
          MICRO0=MICRO0+(1)
10603 GOTO 10600
10601 RETURN
      END
      SUBROUTINE GETOP0
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER A$BUF(200)
      INTEGER FILE(180)
      INTEGER OPEN,CREATE
      INTEGER I
      INTEGER GETARG,LENGTH
      INTEGER UMESG(55)
      INTEGER PARSCL
      INTEGER AAAEG0(27)
      INTEGER AAAEH0(3)
      INTEGER AAAEI0(3)
      DATA UMESG/213,243,225,231,229,186,160,244,242,225,238,243,236,225
     *,238,231,160,219,173,251,236,252,226,253,221,160,188,233,238,240,2
     *45,244,223,230,233,236,229,190,160,219,173,232,160,188,232,229,248
     *,223,230,233,236,229,190,221,0/
      DATA AAAEG0/236,188,230,236,225,231,190,160,226,188,230,236,225,23
     *1,190,160,232,188,242,229,241,160,243,244,242,190,0/
      DATA AAAEH0/174,232,0/
      DATA AAAEI0/174,232,0/
      IF((PARSCL(AAAEG0,A$BUF).NE.-3))GOTO 10604
        CALL ERROR(UMESG)
10604 IF((GETARG(1,FILE,180).NE.-1))GOTO 10605
        CALL ERROR(UMESG)
10605 INFIL0=OPEN(FILE,1)
      IF((INFIL0.NE.-3))GOTO 10606
        CALL CANT(FILE)
10606 IF((GETARG(2,I,1).EQ.-1))GOTO 10607
        CALL ERROR(UMESG)
10607 IF((A$BUF(232-225+1).EQ.0))GOTO 10608
        CALL SCOPY(A$BUF(A$BUF(232-225+27)),1,FILE,1)
        GOTO 10609
10608   I=LENGTH(FILE)
        GOTO 10612
10610   I=I-(1)
10612   IF((I.LT.1))GOTO 10611
        IF((FILE(I).EQ.174))GOTO 10611
        GOTO 10610
10611   IF((I.GE.1))GOTO 10613
          CALL SCOPY(AAAEH0,1,FILE,LENGTH(FILE)+1)
          GOTO 10614
10613     CALL SCOPY(AAAEI0,1,FILE,I)
10614 CONTINUE
10609 OUTFI0=CREATE(FILE,2)
      IF((OUTFI0.NE.-3))GOTO 10615
        CALL CANT(FILE)
10615 IF((A$BUF(236-225+1).EQ.0))GOTO 10616
        LISTI0=.TRUE.
        GOTO 10617
10616   LISTI0=.FALSE.
10617 IF((A$BUF(226-225+1).EQ.0))GOTO 10618
        BINAR0=.TRUE.
        GOTO 10619
10618   BINAR0=.FALSE.
10619 RETURN
      END
      SUBROUTINE GETSYM
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER RWPOS(73)
      INTEGER RWTEXT(374)
      INTEGER I
      INTEGER CTOI,STRBSR
      INTEGER AAAEJ0
      INTEGER AAAEK0
      DATA RWTEXT/0,225,177,0,1,225,178,0,2,225,179,0,3,225,225,228,0,4,
     *225,226,244,0,5,225,237,240,227,242,0,6,225,238,228,0,7,225,239,24
     *6,0,17,226,0,9,226,225,228,0,10,226,226,225,0,11,226,226,229,0,12,
     *226,226,233,0,13,226,229,248,0,14,226,237,233,0,15,226,242,177,0,1
     *6,226,242,178,0,23,227,0,18,227,225,236,236,0,71,227,239,237,237,2
     *29,238,244,0,71,227,239,237,237,238,244,0,19,227,239,237,240,0,20,
     *227,239,246,0,21,227,243,225,242,0,22,227,244,242,0,24,229,236,243
     *,229,0,71,229,238,228,0,25,229,241,246,0,26,229,248,229,227,0,27,2
     *33,230,0,28,233,237,240,0,29,233,238,227,0,31,234,245,237,240,0,41
     *,236,0,34,236,227,177,0,35,236,227,178,0,36,236,227,179,0,37,236,2
     *27,244,242,0,38,236,233,244,0,39,236,237,225,242,0,40,236,243,244,
     *0,44,237,225,242,0,42,237,225,242,177,0,43,237,225,242,178,0,46,23
     *7,233,242,0,47,237,242,177,0,48,237,242,178,0,49,237,243,244,0,50,
     *237,247,177,0,51,237,247,178,0,52,238,225,238,0,53,238,233,237,0,5
     *4,238,239,242,0,55,238,239,244,0,56,238,242,233,0,57,239,225,228,0
     *,58,239,242,0,63,242,0,60,242,228,227,0,61,242,229,244,238,0,62,24
     *2,233,237,0,64,243,225,233,0,65,243,225,242,0,66,243,225,246,229,0
     *,67,243,229,244,0,68,243,235,233,240,0,69,243,236,233,244,0,70,243
     *,244,229,240,0,72,244,232,229,238,0,73,247,225,233,244,0,74,247,23
     *2,229,238,0,75,248,239,242,0/
      DATA RWPOS/72,1,5,9,13,18,23,30,35,40,43,48,53,58,63,68,73,78,83,8
     *6,92,101,109,115,120,126,131,137,142,147,153,157,162,167,173,176,1
     *81,186,191,197,202,208,213,218,224,230,235,240,245,250,255,260,265
     *,270,275,280,285,290,294,297,302,308,313,318,323,329,334,340,346,3
     *52,358,364,370/
10620   CONTINUE
10621   IF((INBUF0(IBPAA0).NE.160))GOTO 10622
          IBPAA0=IBPAA0+(1)
        GOTO 10621
10622   AAAEJ0=INBUF0(IBPAA0)
        GOTO 10623
10624     I=1
10625     IF((225.GT.INBUF0(IBPAA0)))GOTO 10628
          IF((INBUF0(IBPAA0).GT.250))GOTO 10628
          GOTO 10627
10628     IF((176.GT.INBUF0(IBPAA0)))GOTO 10629
          IF((INBUF0(IBPAA0).GT.185))GOTO 10629
          GOTO 10627
10629     GOTO 10626
10627       SYMTE0(I)=INBUF0(IBPAA0)
            I=I+(1)
            IBPAA0=IBPAA0+(1)
          GOTO 10625
10626     SYMTE0(I)=0
          I=STRBSR(RWPOS,RWTEXT,1,SYMTE0)
          IF((I.NE.-1))GOTO 10630
            SYMBO0=32
            GOTO 10631
10630       SYMBO0=RWTEXT(RWPOS(I))
10631   GOTO 10632
10633     SYMBO0=30
          SYMVA0=CTOI(INBUF0,IBPAA0)
        GOTO 10632
10634     SYMBO0=71
        GOTO 10632
10635     SYMBO0=59
          IBPAA0=IBPAA0+(1)
        GOTO 10632
10636     SYMBO0=45
          IBPAA0=IBPAA0+(1)
          IF((INBUF0(IBPAA0).NE.190))GOTO 10637
            SYMBO0=8
            IBPAA0=IBPAA0+(1)
10637   GOTO 10632
10638     SYMBO0=33
          IBPAA0=IBPAA0+(1)
        GOTO 10632
10639     SYMBO0=8
          IBPAA0=IBPAA0+(1)
        GOTO 10632
10640     IBPAA0=IBPAA0+(1)
          GOTO 10641
10632     GOTO 10642
10623   IF(AAAEJ0.EQ.138)GOTO 10634
        AAAEK0=AAAEJ0-163
        GOTO(10634,10634,10643,10643,10643,10643,10643,10635,10640,10636
     *,10638,10643,10633,10633,10633,10633,10633,10633,10633,10633,10633
     *,10633,10638,10643,10643,10639,10643,10643,10643,10643,10643,10643
     *,10643,10643,10643,10643,10643,10643,10643,10643,10643,10643,10643
     *,10643,10643,10643,10643,10643,10643,10643,10643,10643,10643,10643
     *,10643,10643,10643,10643,10643,10643,10643,10624,10624,10624,10624
     *,10624,10624,10624,10624,10624,10624,10624,10624,10624,10624,10624
     *,10624,10624,10624,10624,10624,10624,10624,10624,10624,10624,10624
     *),AAAEK0
10643     CALL ERRMSG('illegal character encountered.')
          GOTO 10641
10641 GOTO 10620
10642 RETURN
      END
      SUBROUTINE INITI0
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER MKTABL
      CALL DSINIT(8192)
      LTABA0=MKTABL(1)
      RETURN
      END
      INTEGER FUNCTION INSER0(DAT)
      INTEGER DAT
      INSER0=OR(LS(LT(DAT,14),1),RT(DAT,2))
      RETURN
      END
      SUBROUTINE LABEM0(STATE)
      INTEGER STATE
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER SVSYM0,SVSYN0,SVIBP
      INTEGER SVSYO0(102)
      IF((SYMBO0.EQ.32))GOTO 10644
        STATE=1
        RETURN
10644 CALL SCOPY(SYMTE0,1,SVSYO0,1)
      SVSYM0=SYMBO0
      SVSYN0=SYMVA0
      SVIBP=IBPAA0
      CALL GETSYM
      IF((SYMBO0.NE.33))GOTO 10645
        STATE=3
        GOTO 10646
10645   STATE=1
10646 CALL SCOPY(SVSYO0,1,SYMTE0,1)
      SYMBO0=SVSYM0
      SYMVA0=SVSYN0
      IBPAA0=SVIBP
      RETURN
      END
      SUBROUTINE LITET0(STATE)
      INTEGER STATE
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER SVSYM0,SVSYN0,SVIBP,ST
      INTEGER SVSYO0(102)
      CALL SCOPY(SYMTE0,1,SVSYO0,1)
      SVSYM0=SYMBO0
      SVSYN0=SYMVA0
      SVIBP=IBPAA0
      CALL LITEU0(ST)
      IF((ST.NE.3))GOTO 10647
        IF((SYMBO0.EQ.8))GOTO 10648
          STATE=1
          GOTO 10649
10648     CALL GETSYM
          IF((SYMBO0.EQ.5))GOTO 10651
          IF((SYMBO0.EQ.65))GOTO 10651
          IF((SYMBO0.EQ.38))GOTO 10651
          IF((SYMBO0.EQ.69))GOTO 10651
          GOTO 10650
10651       STATE=3
            GOTO 10652
10650       STATE=1
10652   CONTINUE
10649   GOTO 10653
10647   STATE=1
10653 CALL SCOPY(SVSYO0,1,SYMTE0,1)
      SYMBO0=SVSYM0
      SYMVA0=SVSYN0
      IBPAA0=SVIBP
      RETURN
      END
      SUBROUTINE MICRQ0
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE,MLC,NLC
      INTEGER GETLIN,BITFI0
      INTEGER AAAEM0
      INTEGER AAAEN0(22)
      INTEGER AAAEO0(16)
      INTEGER AAAEP0(34)
      INTEGER AAAEQ0(39)
      INTEGER AAAER0(3)
      INTEGER AAAES0(25)
      INTEGER AAAET0,AAAEU0,AAAEL0
      INTEGER AAAEV0(17)
      INTEGER AAAEW0(24)
      INTEGER AAAEX0(3)
      DATA AAAEN0/170,180,233,252,160,160,170,180,172,173,177,182,172,17
     *6,233,160,160,170,243,170,238,0/
      DATA AAAEO0/170,177,179,248,170,177,182,172,173,178,172,176,233,17
     *0,238,0/
      DATA AAAEP0/170,177,179,248,170,179,172,178,172,176,245,170,180,23
     *3,160,170,233,160,170,233,160,170,233,160,170,233,160,170,233,160,
     *170,184,233,0/
      DATA AAAEQ0/170,248,170,180,172,178,172,176,245,170,233,160,170,17
     *8,233,160,170,179,233,160,170,233,160,170,178,233,160,170,233,160,
     *170,233,160,170,233,170,177,238,0/
      DATA AAAER0/170,238,0/
      DATA AAAES0/170,238,170,238,200,229,248,160,212,242,225,238,243,23
     *6,225,244,233,239,238,186,170,238,170,238,0/
      DATA AAAEV0/170,180,172,173,177,182,172,176,245,170,233,160,160,16
     *0,170,233,0/
      DATA AAAEW0/170,180,172,173,177,182,172,176,245,160,160,160,170,23
     *3,160,170,233,160,170,233,160,170,233,0/
      DATA AAAEX0/170,238,0/
      LINEN0=0
      MICRO0=0
      NANOL0=0
10655 IF((GETLIN(INBUF0,INFIL0).EQ.-1))GOTO 10656
        CALL MAPSTR(INBUF0,1)
        LINEN0=LINEN0+(1)
        IF(LISTI0)GOTO 10658
        IF(BINAR0)GOTO 10658
        GOTO 10657
10658     CALL PRINT(-11,AAAEN0,LINEN0,MICRO0,INBUF0)
10657   MLC=MICRO0
        NLC=NANOL0
        IBPAA0=1
        CALL GETSYM
        CALL INSTR0(STATE)
        IF((SYMBO0.EQ.71))GOTO 10659
          CALL ERRMSG('unrecognizable or incomplete statement.')
10659   IF((.NOT.BINAR0))GOTO 10660
        IF((MLC.EQ.MICRO0))GOTO 10660
          CALL PRINT(-11,AAAEO0,MICRP0(MLC+1))
10660   IF((.NOT.BINAR0))GOTO 10661
        IF((NLC.EQ.NANOL0))GOTO 10661
          CALL PRINT(-11,AAAEP0,BITFI0(1,4,NANOM0(1,NLC+1)),BITFI0(5,3,N
     *ANOM0(1,NLC+1)),BITFI0(8,3,NANOM0(1,NLC+1)),BITFI0(11,3,NANOM0(1,N
     *LC+1)),BITFI0(14,3,NANOM0(1,NLC+1)),BITFI0(17,3,NANOM0(1,NLC+1)),B
     *ITFI0(20,8,NANOM0(1,NLC+1)))
          CALL PRINT(-11,AAAEQ0,BITFI0(28,4,NANOM0(1,NLC+1)),BITFI0(32,2
     *,NANOM0(1,NLC+1)),BITFI0(34,3,NANOM0(1,NLC+1)),BITFI0(37,4,NANOM0(
     *1,NLC+1)),BITFI0(41,2,NANOM0(1,NLC+1)),BITFI0(43,4,NANOM0(1,NLC+1)
     *),BITFI0(47,4,NANOM0(1,NLC+1)),BITFI0(51,4,NANOM0(1,NLC+1)))
10661   IF((.NOT.BINAR0))GOTO 10662
        IF((NLC.NE.NANOL0))GOTO 10663
        IF((MLC.NE.MICRO0))GOTO 10663
        GOTO 10662
10663     CALL PRINT(-11,AAAER0)
10662 GOTO 10655
10656 IF((.NOT.LISTI0))GOTO 10664
        CALL PRINT(-11,AAAES0)
        AAAEL0=-11
        AAAEM0=1
        GOTO 10654
10665 CONTINUE
10664 AAAEL0=OUTFI0
      AAAEM0=2
      GOTO 10654
10666 RETURN
10654 AAAET0=0
      GOTO 10669
10667 AAAET0=AAAET0+(1)
10669 IF((AAAET0.GE.MICRO0))GOTO 10668
        CALL PRINT(AAAEL0,AAAEV0,AAAET0,MICRP0(AAAET0+1))
        IF((BITFI0(1,4,MICRP0(AAAET0+1)).NE.15))GOTO 10670
          AAAEU0=BITFI0(5,12,MICRP0(AAAET0+1))
          CALL PRINT(AAAEL0,AAAEW0,BITFI0(1,16,NANOM0(1,AAAEU0+1)),BITFI
     *0(17,16,NANOM0(1,AAAEU0+1)),BITFI0(33,16,NANOM0(1,AAAEU0+1)),BITFI
     *0(49,16,NANOM0(1,AAAEU0+1)))
10670   CALL PRINT(AAAEL0,AAAEX0)
      GOTO 10667
10668 GOTO 10671
10671 GOTO(10665,10666),AAAEM0
      GOTO 10671
      END
      SUBROUTINE SETF(START,LEN,DST,VAL)
      INTEGER VAL,LEN,START,DST(1)
      INTEGER I,MASK,BLEFT,LVAL
      DATA MASK/:177777/
      I=(START-1)/16+1
      LVAL=RT(VAL,LEN)
      BLEFT=16-MOD(START-1,16)
      IF((BLEFT.LT.LEN))GOTO 10672
        DST(I)=OR(AND(DST(I),NOT(LS(RT(MASK,LEN),BLEFT-LEN))),LS(LVAL,BL
     *EFT-LEN))
        GOTO 10673
10672   DST(I)=OR(AND(DST(I),NOT(RT(MASK,BLEFT))),RS(LVAL,LEN-BLEFT))
        DST(I+1)=OR(AND(DST(I+1),NOT(LT(MASK,LEN-BLEFT))),LS(LVAL,16-(LE
     *N-BLEFT)))
10673 RETURN
      END
      SUBROUTINE TRANS0
      INTEGER INFIL0,OUTFI0
      LOGICAL LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CTRUS0,MDOPU0,CAJUS0,LU
     *NIT0
      INTEGER MICRO0,NANOL0,MICRP0(2048),NANOM0(4,2048),LITVA0,SHIFT0,SY
     *MBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0
      INTEGER LTABA0
      INTEGER SYMTE0(102),INBUF0(102)
      COMMON /TLANG0/INFIL0,OUTFI0,LISTI0,BINAR0,COMPY0,MARUS0,BRUSE0,CT
     *RUS0,MDOPU0,CAJUS0,LUNIT0,MICRO0,NANOL0,MICRP0,NANOM0,LITVA0,SHIFT
     *0,SYMBO0,SYMVA0,SUCCE0,LINEN0,IBPAA0,LTABA0,SYMTE0,INBUF0
      INTEGER MEMAA0(8192)
      COMMON /DS$MEM/MEMAA0
      CALL FINDL0
      CALL REWIND(INFIL0)
      CALL MICRQ0
      RETURN
      END
C ---- Long Name Map ----
C Micromem                       micrp0
C insertx                        inser0
C binaryop                       binat0
C unaryop                        unary0
C Lunitused                      lunit0
C findlabels                     findl0
C instruction                    instr0
C message                        messa0
C Binary                         binar0
C Brused                         bruse0
C conditionalpart                condi0
C externalop                     exter0
C basiccondition                 basic0
C literalassignment              liter0
C Mdopused                       mdopu0
C Cajused                        cajus0
C Shiftval                       shift0
C operator                       opera0
C bitfield                       bitfi0
C literal                        liteu0
C logicop                        logic0
C Litval                         litva0
C inputmar                       inpuu0
C condition                      condk0
C writehex                       write0
C labeloracle                    labem0
C literallhsoracle               litet0
C destination                    destj0
C getoptions                     getop0
C unconditionalpart              uncon0
C Microlc                        micro0
C inputsar                       inpuv0
C translate                      trans0
C ifclause                       ifcla0
C Nanomem                        nanom0
C elseclause                     elsec0
C inputctr                       input0
C Symbol                         symbo0
C Ibp                            ibpaa0
C Inbuf                          inbuf0
C binaryoporacle                 binas0
C xselect                        xsele0
C yselect                        ysele0
C component                      compo0
C destinationlist                desti0
C Marused                        marus0
C Mem                            memaa0
C thenclause                     thenc0
C conditionadjustbit             condj0
C shiftop                        shifu0
C svsymbol                       svsym0
C Symval                         symva0
C Symtext                        symte0
C tlangcom                       tlang0
C whenclause                     whenc0
C successor                      succf0
C initialize                     initi0
C Outfile                        outfi0
C negated                        negat0
C svsymval                       svsyn0
C svsymtext                      svsyo0
C Infile                         infil0
C Successorcontext               succe0
C literallhs                     lites0
C Listing                        listi0
C Ctrused                        ctrus0
C memorydeviceop                 memor0
C Nanolc                         nanol0
C Ltab                           ltaba0
C labelpart                      label0
C microprogram                   micrq0
C nanoinstruction                nanoi0
C adderop                        adder0
C Compy                          compy0
C Linenumber                     linen0
C cajrepl                        cajre0
