      INTEGER PREVN0,GFLG,LFLG,LAFLG,MFLG,MAFLG
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      ERROR0=0
      GENER0=0
      REPOR0=0
      READI0=1
      CALL LEXIN0
      CALL INTER0(GFLG,LFLG,LAFLG,MFLG,MAFLG)
      GENES0=LAFLG
      CALL REMARK('-.')
      CALL PARSE
      PREVN0=NUNDEF+1
      READI0=0
10000 IF((((ERROR0.NE.0).OR.(NUNDEF.GE.PREVN0)).OR.(NUNDEF.LE.0)))GOTO 1
     *0001
        PREVN0=NUNDEF
        CALL REMARK('-.')
        CALL PARSE
      GOTO 10000
10001 IF((NUNDEF.NE.0))GOTO 10002
        GENER0=GFLG
        GOTO 10003
10002   REPOR0=1
10003 IF((ERROR0.NE.0))GOTO 10006
      IF((GENER0.NE.1))GOTO 10006
      GOTO 10005
10006 IF((REPOR0.EQ.1))GOTO 10005
      IF((LFLG.NE.1))GOTO 10007
      IF((LAFLG.NE.0))GOTO 10007
      GOTO 10005
10007 GOTO 10004
10005   GENES0=LFLG
        CALL REMARK('-.')
        IF((GENER0.NE.1))GOTO 10008
          CALL GTOPEN
          BUFPTR=1
10008   CALL PARSE
        IF((GENER0.NE.1))GOTO 10009
          CALL FLUSH0
          CALL GTCLO0(MEMAA0(SADDR))
10009 CONTINUE
10004 CALL SWT
      END
      SUBROUTINE INTER0(GFLG,LFLG,LAFLG,MFLG,MAFLG)
      INTEGER GETARG
      INTEGER GFLG,LFLG,LAFLG,MFLG,MAFLG
      INTEGER STATUS,I
      INTEGER ARG(128)
      GFLG=0
      LFLG=0
      MFLG=0
      MAFLG=0
      LAFLG=0
      STATUS=-2
      IF((GETARG(1,ARG,128).EQ.-1))GOTO 10010
        IF((ARG(1).NE.225))GOTO 10011
          STATUS=-3
          GOTO 10012
10011     I=1
          GOTO 10015
10013     I=I+1
10015     IF((ARG(I).EQ.0))GOTO 10014
            IF((ARG(I).NE.231))GOTO 10016
              GFLG=1
              GOTO 10017
10016         IF((ARG(I).NE.236))GOTO 10018
                LFLG=1
                GOTO 10019
10018           IF((ARG(I).NE.237))GOTO 10020
                  MFLG=1
                  GOTO 10021
10020             IF((ARG(I).NE.225))GOTO 10022
                    IF((ARG(I-1).NE.236))GOTO 10023
                      LAFLG=1
                      GOTO 10024
10023                 IF((ARG(I-1).NE.237))GOTO 10025
                        MAFLG=1
                        GOTO 10026
10025                   STATUS=-3
10026               CONTINUE
10024               GOTO 10027
10022               STATUS=-3
10027           CONTINUE
10021         CONTINUE
10019       CONTINUE
10017     GOTO 10013
10014   CONTINUE
10012 CONTINUE
10010 IF((STATUS.NE.-3))GOTO 10028
        CALL ERROR('Usage: as11 [g][l[a]][m[a]].')
10028 RETURN
      END
      SUBROUTINE SYNERR(LITME0)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CALL PRINT(-15,'*i.',LINENO)
      CALL PUTCH(186,-15)
      CALL PUTCH(160,-15)
      CALL REMARK(LITME0)
      ERROR0=1
      RETURN
      END
      INTEGER FUNCTION MEMBE0(CANDI0,SET)
      INTEGER CANDI0,SET(1)
      INTEGER INDEX
      IF((INDEX(SET,CANDI0).NE.0))GOTO 10029
        MEMBE0=0
        GOTO 10030
10029   MEMBE0=1
10030 RETURN
      END
      SUBROUTINE LEXIN0
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER JUNK
      INTEGER NL(2),EOFS(2)
      INTEGER MKTABL
      INTEGER AAAAA0(2)
      INTEGER AAAAB0(7)
      INTEGER AAAAC0(6)
      INTEGER AAAAD0(5)
      INTEGER AAAAE0(2)
      INTEGER AAAAF0(6)
      INTEGER AAAAG0(6)
      INTEGER AAAAH0(3)
      INTEGER AAAAI0(8)
      INTEGER AAAAJ0(9)
      INTEGER AAAAK0(5)
      INTEGER AAAAL0(7)
      INTEGER AAAAM0(6)
      INTEGER AAAAN0(6)
      INTEGER AAAAO0(7)
      INTEGER AAAAP0(7)
      INTEGER AAAAQ0(7)
      INTEGER AAAAR0(5)
      INTEGER AAAAS0(5)
      INTEGER AAAAT0(5)
      INTEGER AAAAU0(5)
      INTEGER AAAAV0(5)
      INTEGER AAAAW0(5)
      INTEGER AAAAX0(5)
      INTEGER AAAAY0(5)
      INTEGER AAAAZ0(6)
      INTEGER AAABA0(5)
      INTEGER AAABB0(7)
      INTEGER AAABC0(6)
      INTEGER AAABD0(6)
      INTEGER AAABE0(6)
      INTEGER AAABF0(6)
      INTEGER AAABG0(6)
      INTEGER AAABH0(5)
      INTEGER AAABI0(5)
      INTEGER AAABJ0(7)
      INTEGER AAABK0(6)
      INTEGER AAABL0(6)
      INTEGER AAABM0(6)
      INTEGER AAABN0(7)
      INTEGER AAABO0(7)
      INTEGER AAABP0(6)
      INTEGER AAABQ0(6)
      INTEGER AAABR0(5)
      INTEGER AAABS0(7)
      INTEGER AAABT0(5)
      INTEGER AAABU0(5)
      INTEGER AAABV0(7)
      INTEGER AAABW0(7)
      INTEGER AAABX0(6)
      INTEGER AAABY0(6)
      INTEGER AAABZ0(4)
      INTEGER AAACA0(4)
      INTEGER AAACB0(5)
      INTEGER AAACC0(4)
      INTEGER AAACD0(4)
      INTEGER AAACE0(5)
      INTEGER AAACF0(5)
      INTEGER AAACG0(5)
      INTEGER AAACH0(5)
      INTEGER AAACI0(5)
      INTEGER AAACJ0(5)
      INTEGER AAACK0(6)
      INTEGER AAACL0(5)
      INTEGER AAACM0(8)
      INTEGER AAACN0(4)
      INTEGER AAACO0(4)
      INTEGER AAACP0(4)
      INTEGER AAACQ0(4)
      INTEGER AAACR0(4)
      INTEGER AAACS0(4)
      INTEGER AAACT0(4)
      INTEGER AAACU0(4)
      INTEGER AAACV0(3)
      INTEGER AAACW0(3)
      INTEGER AAACX0(3)
      INTEGER AAACY0(3)
      INTEGER AAACZ0(3)
      INTEGER AAADA0(3)
      INTEGER AAADB0(3)
      INTEGER AAADC0(3)
      INTEGER AAADD0(4)
      INTEGER AAADE0(4)
      INTEGER AAADF0(4)
      INTEGER AAADG0(4)
      INTEGER AAADH0(4)
      INTEGER AAADI0(4)
      INTEGER AAADJ0(4)
      INTEGER AAADK0(4)
      INTEGER AAADL0(4)
      INTEGER AAADM0(3)
      INTEGER AAADN0(4)
      INTEGER AAADO0(4)
      INTEGER AAADP0(3)
      INTEGER AAADQ0(3)
      INTEGER AAADR0(3)
      INTEGER AAADS0(3)
      INTEGER AAADT0(3)
      INTEGER AAADU0(4)
      INTEGER AAADV0(4)
      INTEGER AAADW0(4)
      INTEGER AAADX0(3)
      INTEGER AAADY0(4)
      INTEGER AAADZ0(4)
      INTEGER AAAEA0(4)
      INTEGER AAAEB0(4)
      INTEGER AAAEC0(4)
      INTEGER AAAED0(4)
      INTEGER AAAEE0(4)
      INTEGER AAAEF0(4)
      INTEGER AAAEG0(4)
      INTEGER AAAEH0(4)
      INTEGER AAAEI0(4)
      INTEGER AAAEJ0(4)
      INTEGER AAAEK0(4)
      INTEGER AAAEL0(5)
      INTEGER AAAEM0(4)
      INTEGER AAAEN0(5)
      INTEGER AAAEO0(4)
      INTEGER AAAEP0(5)
      INTEGER AAAEQ0(4)
      INTEGER AAAER0(5)
      INTEGER AAAES0(4)
      INTEGER AAAET0(5)
      INTEGER AAAEU0(4)
      INTEGER AAAEV0(5)
      INTEGER AAAEW0(4)
      INTEGER AAAEX0(5)
      INTEGER AAAEY0(4)
      INTEGER AAAEZ0(5)
      INTEGER AAAFA0(4)
      INTEGER AAAFB0(5)
      INTEGER AAAFC0(4)
      INTEGER AAAFD0(5)
      INTEGER AAAFE0(4)
      INTEGER AAAFF0(5)
      INTEGER AAAFG0(4)
      INTEGER AAAFH0(5)
      INTEGER AAAFI0(4)
      INTEGER AAAFJ0(5)
      INTEGER AAAFK0(4)
      INTEGER AAAFL0(5)
      INTEGER AAAFM0(5)
      INTEGER AAAFN0(4)
      INTEGER AAAFO0(4)
      INTEGER AAAFP0(5)
      INTEGER AAAFQ0(4)
      INTEGER AAAFR0(4)
      INTEGER AAAFS0(4)
      INTEGER AAAFT0(5)
      INTEGER AAAFU0(4)
      INTEGER AAAFV0(5)
      INTEGER AAAFW0(4)
      INTEGER AAAFX0(5)
      INTEGER AAAFY0(4)
      INTEGER AAAFZ0(5)
      INTEGER AAAGA0(4)
      INTEGER AAAGB0(4)
      INTEGER AAAGC0(4)
      INTEGER AAAGD0(4)
      INTEGER AAAGE0(4)
      INTEGER AAAGF0(4)
      INTEGER AAAGG0(4)
      INTEGER AAAGH0(4)
      INTEGER AAAGI0(4)
      INTEGER AAAGJ0(4)
      INTEGER AAAGK0(4)
      INTEGER AAAGL0(5)
      INTEGER AAAGM0(4)
      INTEGER AAAGN0(4)
      INTEGER AAAGO0(5)
      INTEGER AAAGP0(5)
      INTEGER AAAGQ0(6)
      INTEGER AAAGR0(4)
      INTEGER AAAGS0(3)
      INTEGER AAAGT0(3)
      INTEGER AAAGU0(3)
      INTEGER AAAGV0(3)
      INTEGER AAAGW0(3)
      INTEGER AAAGX0(3)
      INTEGER AAAGY0(3)
      INTEGER AAAGZ0(3)
      INTEGER AAAHA0(3)
      INTEGER AAAHB0(3)
      DATA NL(1)/138/,NL(2)/0/,EOFS(1)/-1/,EOFS(2)/0/
      DATA AAAAA0/174,0/
      DATA AAAAB0/243,244,225,242,244,167,0/
      DATA AAAAC0/226,225,243,229,167,0/
      DATA AAAAD0/174,197,207,198,0/
      DATA AAAAE0/187,0/
      DATA AAAAF0/174,229,246,229,238,0/
      DATA AAAAG0/174,226,249,244,229,0/
      DATA AAAAH0/226,167,0/
      DATA AAAAI0/174,243,244,242,245,227,244,0/
      DATA AAAAJ0/174,242,229,243,229,242,246,229,0/
      DATA AAAAK0/227,232,225,242,0/
      DATA AAAAL0/243,232,239,242,244,246,0/
      DATA AAAAM0/236,239,238,231,246,0/
      DATA AAAAN0/240,239,233,238,244,0/
      DATA AAAAO0/231,242,225,240,232,248,0/
      DATA AAAAP0/231,242,225,240,232,249,0/
      DATA AAAAQ0/242,229,236,225,244,246,0/
      DATA AAAAR0/233,238,244,176,0/
      DATA AAAAS0/233,238,244,177,0/
      DATA AAAAT0/233,238,244,178,0/
      DATA AAAAU0/233,238,244,179,0/
      DATA AAAAV0/233,238,244,180,0/
      DATA AAAAW0/233,238,244,181,0/
      DATA AAAAX0/233,238,244,182,0/
      DATA AAAAY0/233,238,244,183,0/
      DATA AAAAZ0/236,240,239,230,230,0/
      DATA AAABA0/236,240,239,238,0/
      DATA AAABB0/226,236,235,239,230,230,0/
      DATA AAABC0/226,236,235,239,238,0/
      DATA AAABD0/236,233,238,229,176,0/
      DATA AAABE0/236,233,238,229,177,0/
      DATA AAABF0/236,233,238,229,178,0/
      DATA AAABG0/236,233,238,229,179,0/
      DATA AAABH0/228,234,237,240,0/
      DATA AAABI0/228,238,239,240,0/
      DATA AAABJ0/243,244,225,244,243,225,0/
      DATA AAABK0/228,243,244,239,240,0/
      DATA AAABL0/243,233,238,239,238,0/
      DATA AAABM0/243,233,238,239,230,0/
      DATA AAABN0/236,240,236,233,244,229,0/
      DATA AAABO0/236,240,228,225,242,235,0/
      DATA AAABP0/233,244,225,236,176,0/
      DATA AAABQ0/233,244,225,236,177,0/
      DATA AAABR0/243,249,238,227,0/
      DATA AAABS0/243,244,225,244,243,226,0/
      DATA AAABT0/233,238,227,242,0/
      DATA AAABU0/233,238,244,248,0/
      DATA AAABV0/237,233,238,245,243,248,0/
      DATA AAABW0/237,233,238,245,243,249,0/
      DATA AAABX0/237,233,243,246,248,0/
      DATA AAABY0/237,233,243,246,249,0/
      DATA AAABZ0/228,240,227,0/
      DATA AAACA0/228,243,242,0/
      DATA AAACB0/226,229,229,240,0/
      DATA AAACC0/248,243,242,0/
      DATA AAACD0/249,243,242,0/
      DATA AAACE0/242,227,243,242,0/
      DATA AAACF0/242,226,245,230,0/
      DATA AAACG0/248,227,243,242,0/
      DATA AAACH0/248,226,245,230,0/
      DATA AAACI0/235,226,245,230,0/
      DATA AAACJ0/235,227,243,242,0/
      DATA AAACK0/227,236,227,243,242,0/
      DATA AAACL0/226,239,239,244,0/
      DATA AAACM0/232,233,231,232,229,243,244,0/
      DATA AAACN0/206,213,204,0/
      DATA AAACO0/211,207,200,0/
      DATA AAACP0/211,212,216,0/
      DATA AAACQ0/197,212,216,0/
      DATA AAACR0/197,207,212,0/
      DATA AAACS0/197,206,209,0/
      DATA AAACT0/193,195,203,0/
      DATA AAACU0/194,197,204,0/
      DATA AAACV0/194,211,0/
      DATA AAACW0/200,212,0/
      DATA AAACX0/204,198,0/
      DATA AAACY0/214,212,0/
      DATA AAACZ0/198,198,0/
      DATA AAADA0/195,210,0/
      DATA AAADB0/211,207,0/
      DATA AAADC0/211,201,0/
      DATA AAADD0/196,204,197,0/
      DATA AAADE0/196,195,177,0/
      DATA AAADF0/196,195,178,0/
      DATA AAADG0/196,195,179,0/
      DATA AAADH0/196,195,180,0/
      DATA AAADI0/206,193,203,0/
      DATA AAADJ0/211,217,206,0/
      DATA AAADK0/197,212,194,0/
      DATA AAADL0/195,193,206,0/
      DATA AAADM0/197,205,0/
      DATA AAADN0/211,213,194,0/
      DATA AAADO0/197,211,195,0/
      DATA AAADP0/198,211,0/
      DATA AAADQ0/199,211,0/
      DATA AAADR0/210,211,0/
      DATA AAADS0/213,211,0/
      DATA AAADT0/211,208,0/
      DATA AAADU0/196,197,204,0/
      DATA AAADV0/240,243,247,0/
      DATA AAADW0/243,247,242,0/
      DATA AAADX0/226,242,0/
      DATA AAADY0/226,229,241,0/
      DATA AAADZ0/226,238,229,0/
      DATA AAAEA0/226,237,233,0/
      DATA AAAEB0/226,240,236,0/
      DATA AAAEC0/226,227,243,0/
      DATA AAAED0/226,227,227,0/
      DATA AAAEE0/226,246,243,0/
      DATA AAAEF0/226,246,227,0/
      DATA AAAEG0/226,236,244,0/
      DATA AAAEH0/226,231,229,0/
      DATA AAAEI0/226,236,229,0/
      DATA AAAEJ0/226,231,244,0/
      DATA AAAEK0/226,232,233,0/
      DATA AAAEL0/226,236,239,243,0/
      DATA AAAEM0/226,236,239,0/
      DATA AAAEN0/226,232,233,243,0/
      DATA AAAEO0/227,236,242,0/
      DATA AAAEP0/227,236,242,226,0/
      DATA AAAEQ0/228,229,227,0/
      DATA AAAER0/228,229,227,226,0/
      DATA AAAES0/233,238,227,0/
      DATA AAAET0/233,238,227,226,0/
      DATA AAAEU0/238,229,231,0/
      DATA AAAEV0/238,229,231,226,0/
      DATA AAAEW0/244,243,244,0/
      DATA AAAEX0/244,243,244,226,0/
      DATA AAAEY0/227,239,237,0/
      DATA AAAEZ0/227,239,237,226,0/
      DATA AAAFA0/225,243,242,0/
      DATA AAAFB0/225,243,242,226,0/
      DATA AAAFC0/225,243,236,0/
      DATA AAAFD0/225,243,236,226,0/
      DATA AAAFE0/225,228,227,0/
      DATA AAAFF0/225,228,227,226,0/
      DATA AAAFG0/243,226,227,0/
      DATA AAAFH0/243,226,227,226,0/
      DATA AAAFI0/242,239,236,0/
      DATA AAAFJ0/242,239,236,226,0/
      DATA AAAFK0/242,239,242,0/
      DATA AAAFL0/242,239,242,226,0/
      DATA AAAFM0/243,247,225,226,0/
      DATA AAAFN0/234,237,240,0/
      DATA AAAFO0/237,239,246,0/
      DATA AAAFP0/237,239,246,226,0/
      DATA AAAFQ0/225,228,228,0/
      DATA AAAFR0/243,245,226,0/
      DATA AAAFS0/227,237,240,0/
      DATA AAAFT0/227,237,240,226,0/
      DATA AAAFU0/226,233,243,0/
      DATA AAAFV0/226,233,243,226,0/
      DATA AAAFW0/226,233,244,0/
      DATA AAAFX0/226,233,244,226,0/
      DATA AAAFY0/226,233,227,0/
      DATA AAAFZ0/226,233,227,226,0/
      DATA AAAGA0/242,244,243,0/
      DATA AAAGB0/234,243,242,0/
      DATA AAAGC0/227,236,227,0/
      DATA AAAGD0/227,236,246,0/
      DATA AAAGE0/227,236,250,0/
      DATA AAAGF0/227,236,238,0/
      DATA AAAGG0/243,229,227,0/
      DATA AAAGH0/243,229,246,0/
      DATA AAAGI0/243,229,250,0/
      DATA AAAGJ0/243,229,238,0/
      DATA AAAGK0/229,237,244,0/
      DATA AAAGL0/244,242,225,240,0/
      DATA AAAGM0/226,240,244,0/
      DATA AAAGN0/233,239,244,0/
      DATA AAAGO0/232,225,236,244,0/
      DATA AAAGP0/247,225,233,244,0/
      DATA AAAGQ0/242,229,243,229,244,0/
      DATA AAAGR0/242,244,233,0/
      DATA AAAGS0/242,176,0/
      DATA AAAGT0/242,177,0/
      DATA AAAGU0/242,178,0/
      DATA AAAGV0/242,179,0/
      DATA AAAGW0/242,180,0/
      DATA AAAGX0/242,181,0/
      DATA AAAGY0/243,240,0/
      DATA AAAGZ0/242,182,0/
      DATA AAAHA0/240,227,0/
      DATA AAAHB0/242,183,0/
      CALL DSINIT(20000)
      SYMTA0=MKTABL(3)
      SRPTF0=0
      IBPAA0=1
      INBUF0(IBPAA0)=0
      LCTR=INSTA0(AAAAA0,193,0)
      SADDR=INSTA0(AAAAB0,193,0)
      DBASE=INSTA0(AAAAC0,193,10)
      NEWLI0=INSTA0(NL,187,1)
      JUNK=INSTA0(EOFS,-1,1)
      JUNK=INSTA0(AAAAD0,-1,1)
      JUNK=INSTA0(AAAAE0,187,1)
      JUNK=INSTA0(AAAAF0,197,1)
      JUNK=INSTA0(AAAAG0,226,1)
      JUNK=INSTA0(AAAAH0,226,1)
      JUNK=INSTA0(AAAAI0,211,1)
      JUNK=INSTA0(AAAAJ0,242,1)
      JUNK=INSTA0(AAAAK0,193,:100000)
      JUNK=INSTA0(AAAAL0,193,:104000)
      JUNK=INSTA0(AAAAM0,193,:110000)
      JUNK=INSTA0(AAAAN0,193,:114000)
      JUNK=INSTA0(AAAAO0,193,:120000)
      JUNK=INSTA0(AAAAP0,193,:124000)
      JUNK=INSTA0(AAAAQ0,193,:130000)
      JUNK=INSTA0(AAAAR0,193,:2000)
      JUNK=INSTA0(AAAAS0,193,:2200)
      JUNK=INSTA0(AAAAT0,193,:2400)
      JUNK=INSTA0(AAAAU0,193,:2600)
      JUNK=INSTA0(AAAAV0,193,:3000)
      JUNK=INSTA0(AAAAW0,193,:3200)
      JUNK=INSTA0(AAAAX0,193,:3400)
      JUNK=INSTA0(AAAAY0,193,:3600)
      JUNK=INSTA0(AAAAZ0,193,:100)
      JUNK=INSTA0(AAABA0,193,:140)
      JUNK=INSTA0(AAABB0,193,:20)
      JUNK=INSTA0(AAABC0,193,:30)
      JUNK=INSTA0(AAABD0,193,:4)
      JUNK=INSTA0(AAABE0,193,:5)
      JUNK=INSTA0(AAABF0,193,:6)
      JUNK=INSTA0(AAABG0,193,:7)
      JUNK=INSTA0(AAABH0,193,:160000)
      JUNK=INSTA0(AAABI0,193,:164000)
      JUNK=INSTA0(AAABJ0,193,:170000)
      JUNK=INSTA0(AAABK0,193,:173400)
      JUNK=INSTA0(AAABL0,193,:1400)
      JUNK=INSTA0(AAABM0,193,:1000)
      JUNK=INSTA0(AAABN0,193,:200)
      JUNK=INSTA0(AAABO0,193,:300)
      JUNK=INSTA0(AAABP0,193,:40)
      JUNK=INSTA0(AAABQ0,193,:60)
      JUNK=INSTA0(AAABR0,193,:4)
      JUNK=INSTA0(AAABS0,193,:174000)
      JUNK=INSTA0(AAABT0,193,:100)
      JUNK=INSTA0(AAABU0,193,:40000)
      JUNK=INSTA0(AAABV0,193,:20000)
      JUNK=INSTA0(AAABW0,193,:20000)
      JUNK=INSTA0(AAABX0,193,:20000)
      JUNK=INSTA0(AAABY0,193,:100)
      JUNK=INSTA0(AAABZ0,193,:172000)
      JUNK=INSTA0(AAACA0,193,:172002)
      JUNK=INSTA0(AAACB0,193,:172002)
      JUNK=INSTA0(AAACC0,193,:172004)
      JUNK=INSTA0(AAACD0,193,:172006)
      JUNK=INSTA0(AAACE0,193,:175610)
      JUNK=INSTA0(AAACF0,193,:175612)
      JUNK=INSTA0(AAACG0,193,:175614)
      JUNK=INSTA0(AAACH0,193,:175616)
      JUNK=INSTA0(AAACI0,193,:177562)
      JUNK=INSTA0(AAACJ0,193,:177560)
      JUNK=INSTA0(AAACK0,193,:177546)
      JUNK=INSTA0(AAACL0,193,:166000)
      JUNK=INSTA0(AAACM0,193,:40000)
      JUNK=INSTA0(AAACN0,193,:000)
      JUNK=INSTA0(AAACO0,193,:001)
      JUNK=INSTA0(AAACP0,193,:002)
      JUNK=INSTA0(AAACQ0,193,:003)
      JUNK=INSTA0(AAACR0,193,:004)
      JUNK=INSTA0(AAACS0,193,:005)
      JUNK=INSTA0(AAACT0,193,:006)
      JUNK=INSTA0(AAACU0,193,:007)
      JUNK=INSTA0(AAACV0,193,:010)
      JUNK=INSTA0(AAACW0,193,:011)
      JUNK=INSTA0(AAACX0,193,:012)
      JUNK=INSTA0(AAACY0,193,:013)
      JUNK=INSTA0(AAACZ0,193,:014)
      JUNK=INSTA0(AAADA0,193,:015)
      JUNK=INSTA0(AAADB0,193,:016)
      JUNK=INSTA0(AAADC0,193,:017)
      JUNK=INSTA0(AAADD0,193,:020)
      JUNK=INSTA0(AAADE0,193,:021)
      JUNK=INSTA0(AAADF0,193,:022)
      JUNK=INSTA0(AAADG0,193,:023)
      JUNK=INSTA0(AAADH0,193,:024)
      JUNK=INSTA0(AAADI0,193,:025)
      JUNK=INSTA0(AAADJ0,193,:026)
      JUNK=INSTA0(AAADK0,193,:027)
      JUNK=INSTA0(AAADL0,193,:030)
      JUNK=INSTA0(AAADM0,193,:031)
      JUNK=INSTA0(AAADN0,193,:032)
      JUNK=INSTA0(AAADO0,193,:033)
      JUNK=INSTA0(AAADP0,193,:034)
      JUNK=INSTA0(AAADQ0,193,:035)
      JUNK=INSTA0(AAADR0,193,:036)
      JUNK=INSTA0(AAADS0,193,:037)
      JUNK=INSTA0(AAADT0,193,:040)
      JUNK=INSTA0(AAADU0,193,:177)
      JUNK=INSTA0(AAADV0,193,:177776)
      JUNK=INSTA0(AAADW0,193,:177570)
      JUNK=INSTA0(AAADX0,194,:000400)
      JUNK=INSTA0(AAADY0,194,:001400)
      JUNK=INSTA0(AAADZ0,194,:001000)
      JUNK=INSTA0(AAAEA0,194,:100400)
      JUNK=INSTA0(AAAEB0,194,:100000)
      JUNK=INSTA0(AAAEC0,194,:103400)
      JUNK=INSTA0(AAAED0,194,:103000)
      JUNK=INSTA0(AAAEE0,194,:102400)
      JUNK=INSTA0(AAAEF0,194,:102000)
      JUNK=INSTA0(AAAEG0,194,:002400)
      JUNK=INSTA0(AAAEH0,194,:002000)
      JUNK=INSTA0(AAAEI0,194,:003400)
      JUNK=INSTA0(AAAEJ0,194,:003000)
      JUNK=INSTA0(AAAEK0,194,:101000)
      JUNK=INSTA0(AAAEL0,194,:101400)
      JUNK=INSTA0(AAAEM0,194,:103400)
      JUNK=INSTA0(AAAEN0,194,:103000)
      JUNK=INSTA0(AAAEO0,207,:005000)
      JUNK=INSTA0(AAAEP0,207,:105000)
      JUNK=INSTA0(AAAEQ0,207,:005300)
      JUNK=INSTA0(AAAER0,207,:105300)
      JUNK=INSTA0(AAAES0,207,:005200)
      JUNK=INSTA0(AAAET0,207,:105200)
      JUNK=INSTA0(AAAEU0,207,:005400)
      JUNK=INSTA0(AAAEV0,207,:105400)
      JUNK=INSTA0(AAAEW0,207,:005700)
      JUNK=INSTA0(AAAEX0,207,:105700)
      JUNK=INSTA0(AAAEY0,207,:005100)
      JUNK=INSTA0(AAAEZ0,207,:105100)
      JUNK=INSTA0(AAAFA0,207,:006200)
      JUNK=INSTA0(AAAFB0,207,:106200)
      JUNK=INSTA0(AAAFC0,207,:006300)
      JUNK=INSTA0(AAAFD0,207,:106300)
      JUNK=INSTA0(AAAFE0,207,:005500)
      JUNK=INSTA0(AAAFF0,207,:105500)
      JUNK=INSTA0(AAAFG0,207,:005600)
      JUNK=INSTA0(AAAFH0,207,:105600)
      JUNK=INSTA0(AAAFI0,207,:006100)
      JUNK=INSTA0(AAAFJ0,207,:106100)
      JUNK=INSTA0(AAAFK0,207,:006000)
      JUNK=INSTA0(AAAFL0,207,:106000)
      JUNK=INSTA0(AAAFM0,207,:000300)
      JUNK=INSTA0(AAAFN0,207,:000100)
      JUNK=INSTA0(AAAFO0,207,:010000)
      JUNK=INSTA0(AAAFP0,207,:110000)
      JUNK=INSTA0(AAAFQ0,207,:060000)
      JUNK=INSTA0(AAAFR0,207,:160000)
      JUNK=INSTA0(AAAFS0,207,:020000)
      JUNK=INSTA0(AAAFT0,207,:120000)
      JUNK=INSTA0(AAAFU0,207,:050000)
      JUNK=INSTA0(AAAFV0,207,:150000)
      JUNK=INSTA0(AAAFW0,207,:030000)
      JUNK=INSTA0(AAAFX0,207,:130000)
      JUNK=INSTA0(AAAFY0,207,:040000)
      JUNK=INSTA0(AAAFZ0,207,:140000)
      JUNK=INSTA0(AAAGA0,207,:0200)
      JUNK=INSTA0(AAAGB0,207,:004000)
      JUNK=INSTA0(AAAGC0,193,:241)
      JUNK=INSTA0(AAAGD0,193,:242)
      JUNK=INSTA0(AAAGE0,193,:244)
      JUNK=INSTA0(AAAGF0,193,:250)
      JUNK=INSTA0(AAAGG0,193,:261)
      JUNK=INSTA0(AAAGH0,193,:262)
      JUNK=INSTA0(AAAGI0,193,:264)
      JUNK=INSTA0(AAAGJ0,193,:270)
      JUNK=INSTA0(AAAGK0,193,:104000)
      JUNK=INSTA0(AAAGL0,193,:104400)
      JUNK=INSTA0(AAAGM0,193,:3)
      JUNK=INSTA0(AAAGN0,193,:4)
      JUNK=INSTA0(AAAGO0,193,0)
      JUNK=INSTA0(AAAGP0,193,1)
      JUNK=INSTA0(AAAGQ0,193,5)
      JUNK=INSTA0(AAAGR0,193,2)
      JUNK=INSTA0(AAAGS0,210,0)
      JUNK=INSTA0(AAAGT0,210,1)
      JUNK=INSTA0(AAAGU0,210,2)
      JUNK=INSTA0(AAAGV0,210,3)
      JUNK=INSTA0(AAAGW0,210,4)
      JUNK=INSTA0(AAAGX0,210,5)
      JUNK=INSTA0(AAAGY0,210,6)
      JUNK=INSTA0(AAAGZ0,210,6)
      JUNK=INSTA0(AAAHA0,210,7)
      JUNK=INSTA0(AAAHB0,210,7)
      PBCHAR=0
      SRPTF0=1
      RETURN
      END
      INTEGER FUNCTION INSTA0(NAME,TYPE,VALUE)
      INTEGER NAME(1)
      INTEGER TYPE,VALUE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER ATTR(3)
      INTEGER NODE,PRED
      CALL ENTER(NAME,ATTR,SYMTA0)
      CALL ST$LU(NAME,NODE,PRED,SYMTA0)
      NODE=NODE+(1)
      MEMAA0(NODE+1)=TYPE
      MEMAA0(NODE)=VALUE
      MEMAA0(NODE+2)=SRPTF0
      INSTA0=NODE
      RETURN
      END
      INTEGER FUNCTION LOOKU0(NAME,TYPE,VALUE)
      INTEGER NAME(1)
      INTEGER TYPE,VALUE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER ST$LU
      INTEGER NODE,PRED
      IF((ST$LU(NAME,NODE,PRED,SYMTA0).NE.1))GOTO 10031
        NODE=NODE+(1)
        TYPE=MEMAA0(NODE+1)
        VALUE=MEMAA0(NODE)
        LOOKU0=NODE
        GOTO 10032
10031   LOOKU0=-1
10032 RETURN
      END
      INTEGER FUNCTION GETC(C)
      INTEGER C
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER GETLIN
      IF((PBCHAR.EQ.0))GOTO 10033
        C=PBCHAR
        PBCHAR=0
        GOTO 10034
10033   IF((INBUF0(IBPAA0).NE.0))GOTO 10035
          IF((GETLIN(INBUF0,-10).NE.-1))GOTO 10036
            C=-1
            GOTO 10037
10036       C=INBUF0(1)
            IBPAA0=2
10037     GOTO 10038
10035     C=INBUF0(IBPAA0)
          IBPAA0=IBPAA0+(1)
10038 CONTINUE
10034 GETC=C
      RETURN
      END
      INTEGER FUNCTION GTOK(SX,TYPE)
      INTEGER SX
      INTEGER TYPE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER TOKEN(102),AUX(102),C,BREAK0(25)
      INTEGER VALUE,CX
      INTEGER INDEX,LOOKU0,INSTA0,GETC,NUMBER,ASCII
      DATA BREAK0/171,173,170,175,168,169,138,187,164,189,186,172,219,22
     *1,137,160,-1,163,252,166,254,188,190,170,0/
      IF((TOKEO0.LT.1))GOTO 10039
        SX=TOKEN0(TOKEO0)
        TOKEO0=TOKEO0-1
        TYPE=MEMAA0(SX+1)
        GOTO 10040
10039   IF((READI0.NE.1))GOTO 10041
          CALL SKIPBL
          IF((GETC(C).NE.163))GOTO 10042
            INBUF0(IBPAA0)=0
            C=138
10042     CX=1
          IF((C.NE.167))GOTO 10043
10044         IF((CX.LT.102-2))GOTO 10045
                CALL ERROR('In gtok: string too long.')
10045         TOKEN(CX)=C
              CX=CX+1
              IF((GETC(C).NE.167))GOTO 10046
                TOKEN(CX)=C
                CX=CX+1
                IF((GETC(C).EQ.167))GOTO 10047
                  GOTO 10048
10047           GOTO 10049
10046           IF((C.NE.138))GOTO 10050
                  CALL SYNERR('Unbalanced quotes.')
                  CALL ERROR('which I can''t handle.')
10050         CONTINUE
10049       CONTINUE
            GOTO 10044
10048       TOKEN(CX)=0
            PBCHAR=C
            GOTO 10051
10043       IF((INDEX(BREAK0,C).NE.0))GOTO 10052
10053           IF((CX.LT.102))GOTO 10054
                  CALL ERROR('In gtok: token too long.')
10054           TOKEN(CX)=C
                CX=CX+1
              IF((INDEX(BREAK0,GETC(C)).EQ.0))GOTO 10053
              TOKEN(CX)=0
              PBCHAR=C
              GOTO 10055
10052         TOKEN(1)=C
              TOKEN(2)=0
              IF((C.NE.138))GOTO 10056
                NEWLJ0=NEWLJ0+1
10056       CONTINUE
10055     CONTINUE
10051     IF((TOKEN(3).NE.0))GOTO 10057
            IF((TOKEN(2).EQ.226))GOTO 10059
            IF((TOKEN(2).EQ.230))GOTO 10059
            IF((TOKEN(2).EQ.232))GOTO 10059
            GOTO 10058
10059         IF((176.GT.TOKEN(1)))GOTO 10060
              IF((TOKEN(1).GT.185))GOTO 10060
                CALL MAPKN0(TOKEN)
10060       CONTINUE
10058     CONTINUE
10057     SX=LOOKU0(TOKEN,TYPE,VALUE)
          IF((SX.NE.-1))GOTO 10061
            VALUE=0
            IF((TOKEN(1).NE.167))GOTO 10062
              TYPE=167
              CALL DEQUO0(TOKEN,AUX)
              IF((AUX(1).EQ.0))GOTO 10063
                VALUE=ASCII(AUX(1))
                IF((AUX(2).EQ.0))GOTO 10064
                  VALUE=LS(VALUE,8)+ASCII(AUX(2))
10064         CONTINUE
10063         GOTO 10065
10062         IF((INDEX(BREAK0,TOKEN(1)).EQ.0))GOTO 10066
                TYPE=TOKEN(1)
                GOTO 10067
10066           IF((NUMBER(TOKEN,VALUE).NE.1))GOTO 10068
                  TYPE=176
                  GOTO 10069
10068             TYPE=213
10069         CONTINUE
10067       CONTINUE
10065       SX=INSTA0(TOKEN,TYPE,VALUE)
10061     TOKEP0(TRPTR)=SX
          TRPTR=TRPTR+1
          IF((TRPTR.LT.10000))GOTO 10070
            CALL ERROR('Too many tokens in source program.')
10070     GOTO 10071
10041     SX=TOKEP0(TRPTR)
          TRPTR=TRPTR+1
          TYPE=MEMAA0(SX+1)
          IF((SX.NE.NEWLI0))GOTO 10072
            NEWLJ0=NEWLJ0+1
10072   CONTINUE
10071 CONTINUE
10040 GTOK=TYPE
      RETURN
      END
      SUBROUTINE MAPKN0(TOKEN)
      INTEGER TOKEN(1)
      INTEGER ITOC,INDEX
      INTEGER CONTR0
      INTEGER USE,WHICH,JUNK
      INTEGER KLLSEQ(10)
      INTEGER DIGITS(11)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,0/
      DATA KLLSEQ/10*1/
      WHICH=INDEX(DIGITS,TOKEN(1))
      IF((WHICH.NE.0))GOTO 10073
        CALL ERROR('in map_knuth_label:  can''t happen.')
10073 CONTR0=TOKEN(2)
      IF((CONTR0.NE.230))GOTO 10074
        USE=KLLSEQ(WHICH)
        GOTO 10075
10074   IF((CONTR0.NE.232))GOTO 10076
          USE=KLLSEQ(WHICH)
          KLLSEQ(WHICH)=USE+1
          GOTO 10077
10076     USE=KLLSEQ(WHICH)-1
10077 CONTINUE
10075 TOKEN(2)=163
      JUNK=ITOC(USE,TOKEN(3),102-4)
      RETURN
      END
      INTEGER FUNCTION NUMBER(STR,VALUE)
      INTEGER VALUE
      INTEGER STR(1)
      INTEGER INDEX,LENGTH
      INTEGER I,L
      INTEGER * 4 BASE,X,V
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER DIGITS(17)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,193,194,195,19
     *6,197,198,0/
      I=1
      L=LENGTH(STR)
      IF((STR(I).NE.176))GOTO 10078
        I=I+1
        BASE=8
        GOTO 10079
10078   IF((STR(L).NE.167))GOTO 10080
          L=L-1
          BASE=16
          GOTO 10081
10080     IF((STR(L).NE.174))GOTO 10082
            L=L-1
            BASE=10
            GOTO 10083
10082       BASE=MEMAA0(DBASE)
10083   CONTINUE
10081 CONTINUE
10079 NUMBER=1
      V=INTL(0)
      GOTO 10086
10084 I=I+1
10086 IF((I.GT.L))GOTO 10085
        X=INTL(INDEX(DIGITS,STR(I))-1)
        IF(((X.GE.INTL(0)).AND.(X.LT.BASE)))GOTO 10087
          NUMBER=0
          GOTO 10085
10087   V=BASE*V+X
      GOTO 10084
10085 VALUE=INTS(V)
      RETURN
      END
      SUBROUTINE SKIPBL
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER C
      INTEGER GETC
      IF((GETC(C).EQ.160))GOTO 10088
      IF((C.EQ.137))GOTO 10088
        PBCHAR=C
        RETURN
10088 CONTINUE
10089 IF((INBUF0(IBPAA0).EQ.160))GOTO 10091
      IF((INBUF0(IBPAA0).EQ.137))GOTO 10091
      GOTO 10090
10091   IBPAA0=IBPAA0+(1)
      GOTO 10089
10090 RETURN
      END
      SUBROUTINE GETNA0(S,NAME)
      INTEGER S
      INTEGER NAME(102)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CALL SCOPY(MEMAA0,S+3,NAME,1)
      RETURN
      END
      SUBROUTINE PUTBA0(TOKEN)
      INTEGER TOKEN
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((TOKEO0.LT.10))GOTO 10092
        CALL ERROR('Too many tokens put back.')
10092 TOKEO0=TOKEO0+1
      TOKEN0(TOKEO0)=TOKEN
      RETURN
      END
      SUBROUTINE DEQUO0(WITH,WITHO0)
      INTEGER WITH(1),WITHO0(1)
      INTEGER FROM,TO
      TO=1
      FROM=2
10093 IF((WITH(FROM+1).EQ.0))GOTO 10094
        IF((WITH(FROM).NE.167))GOTO 10095
          FROM=FROM+1
10095   WITHO0(TO)=WITH(FROM)
        FROM=FROM+1
        TO=TO+1
      GOTO 10093
10094 WITHO0(TO)=0
      RETURN
      END
      SUBROUTINE PARSE
      INTEGER TOKEN
      INTEGER TYPE
      INTEGER GTOK
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      TOKEO0=0
      TRPTR=1
      MEMAA0(LCTR)=0
      MEMAA0(DBASE)=10
      NUNDEF=0
      NEWLJ0=0
      LINENO=1
10096 IF((GTOK(TOKEN,TYPE).EQ.-1))GOTO 10097
10098   IF((NEWLJ0.LE.0))GOTO 10099
          LINENO=LINENO+1
          NEWLJ0=NEWLJ0-1
        GOTO 10098
10099   CALL STMT(TOKEN,TYPE)
      GOTO 10096
10097 RETURN
      END
      SUBROUTINE STMT(TOKEN,TYPE)
      INTEGER TOKEN,TYPE
      INTEGER GTOK,EXPRS0
      INTEGER TOKEN1,TOKEN2,TYPE1,TYPE2,STATUS
      TOKEN1=TOKEN
      TYPE1=TYPE
      IF((TYPE1.NE.187))GOTO 10100
        GOTO 10101
10100   IF((GTOK(TOKEN2,TYPE2).NE.186))GOTO 10102
          CALL LABEL(TOKEN1)
          GOTO 10103
10102     IF((TYPE2.NE.189))GOTO 10104
            CALL ASSG(TOKEN1)
            GOTO 10105
10104       IF(((TYPE2.NE.187).OR.(TYPE1.NE.197)))GOTO 10106
              CALL DOEVEN
              GOTO 10107
10106         CALL PUTBA0(TOKEN2)
              IF((TYPE1.NE.207))GOTO 10108
                CALL INST(TOKEN1)
                GOTO 10109
10108           IF((TYPE1.NE.194))GOTO 10110
                  CALL BRANCH(TOKEN1)
                  GOTO 10111
10110             IF((TYPE1.NE.167))GOTO 10112
                    CALL STRIN0(TOKEN1)
                    GOTO 10113
10112               IF((TYPE1.NE.226))GOTO 10114
                      CALL DOTBY0
                      GOTO 10115
10114                 IF(((TYPE1.NE.211).AND.(TYPE1.NE.242)))GOTO 10116
                        CALL DOTST0(TYPE1)
                        GOTO 10117
10116                   CALL PUTBA0(TOKEN1)
                        IF((EXPRS0(STATUS).NE.-2))GOTO 10118
                          GOTO 10119
10118                     CALL SYNERR('Unrecognized statement.')
                          CALL SKIP
10119                 CONTINUE
10117               CONTINUE
10115             CONTINUE
10113           CONTINUE
10111         CONTINUE
10109       CONTINUE
10107     CONTINUE
10105   CONTINUE
10103 CONTINUE
10101 RETURN
      END
      INTEGER FUNCTION EXPRS0(STATUS)
      INTEGER STATUS
      INTEGER TOKEN,TYPE,JUNK,MEANI0,MEANJ0
      INTEGER GTOK,EXPR
      STATUS=-3
      IF((EXPR(MEANJ0,MEANI0,JUNK).NE.-2))GOTO 10120
      IF((GTOK(TOKEN,TYPE).NE.187))GOTO 10120
        STATUS=-2
        CALL GENWO0(MEANJ0,MEANI0)
10120 EXPRS0=STATUS
      RETURN
      END
      SUBROUTINE DOTBY0
      INTEGER TOKEN,TYPE,ETYPE,EVALUE,STATUS
      INTEGER GTOK,EXPR
10121 IF((EXPR(EVALUE,ETYPE,STATUS).NE.-2))GOTO 10122
        CALL GENBY0(AND(EVALUE,255),ETYPE)
        IF((GTOK(TOKEN,TYPE).NE.187))GOTO 10123
          GOTO 10122
10123     IF((TYPE.EQ.172))GOTO 10124
            STATUS=-3
            GOTO 10122
10124   CONTINUE
      GOTO 10121
10122 IF((STATUS.NE.-3))GOTO 10125
        CALL SYNERR('Syntax error in @.byte directive.')
        CALL SKIP
10125 RETURN
      END
      SUBROUTINE DOTST0(WHICH)
      INTEGER WHICH
      INTEGER GTOK,EXPR
      INTEGER TYPE,NODES0,FIELD0,DELIM0,STATUS,ETYPE,EVALUE,JUNK,TOTAL,T
     *TYPE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      STATUS=-3
      TYPE=GTOK(NODES0,TYPE)
      IF((WHICH.NE.211))GOTO 10126
        TOTAL=0
        TTYPE=193
        GOTO 10127
10126   TOTAL=MEMAA0(NODES0)
        TTYPE=TYPE
10127 IF(((TYPE.NE.193).AND.(TYPE.NE.213)))GOTO 10128
10129     TYPE=GTOK(FIELD0,TYPE)
          IF(((TYPE.EQ.193).OR.(TYPE.EQ.213)))GOTO 10130
            GOTO 10131
10130     IF((EXPR(EVALUE,ETYPE,JUNK).EQ.-2))GOTO 10132
            GOTO 10131
10132     CALL DOASSG(FIELD0,TOTAL,TTYPE)
          TOTAL=TOTAL+EVALUE
          IF((ETYPE.NE.213))GOTO 10133
            TTYPE=213
10133     IF((GTOK(DELIM0,TYPE).NE.187))GOTO 10134
            STATUS=-2
            GOTO 10131
10134     IF((TYPE.EQ.172))GOTO 10135
            GOTO 10131
10135   CONTINUE
        GOTO 10129
10131 CONTINUE
10128 IF((STATUS.NE.-2))GOTO 10136
        CALL DOASSG(NODES0,TOTAL,TTYPE)
        GOTO 10137
10136   CALL SYNERR('Bad syntax in @.struct directive.')
        IF((TYPE.EQ.187))GOTO 10138
          CALL SKIP
10138 CONTINUE
10137 RETURN
      END
      SUBROUTINE STRIN0(IT)
      INTEGER IT
      INTEGER TOKEN,TYPE
      INTEGER GTOK
      IF((GTOK(TOKEN,TYPE).NE.187))GOTO 10139
        CALL DOSTR0(IT)
        GOTO 10140
10139   CALL SYNERR('Bad syntax in string statement.')
        CALL SKIP
10140 RETURN
      END
      SUBROUTINE LABEL(TARGET)
      INTEGER TARGET
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CALL DOASSG(TARGET,MEMAA0(LCTR),MEMAA0(LCTR+1))
      RETURN
      END
      SUBROUTINE ASSG(TARGET)
      INTEGER TARGET
      INTEGER EXPR,GTOK
      INTEGER STATUS,TOKEN,TYPE,MEANJ0,MEANI0
      IF((EXPR(MEANJ0,MEANI0,STATUS).NE.-2))GOTO 10141
        IF((GTOK(TOKEN,TYPE).NE.187))GOTO 10142
          CALL DOASSG(TARGET,MEANJ0,MEANI0)
          GOTO 10143
10142     STATUS=-3
10143 CONTINUE
10141 IF((STATUS.NE.-3))GOTO 10144
        CALL SYNERR('Bad syntax in assignment.')
        CALL SKIP
10144 RETURN
      END
      SUBROUTINE INST(OPMNE0)
      INTEGER OPMNE0
      INTEGER GTOK,SRCDST
      INTEGER STATUS,TOKEN,TYPE,TRAIL0,TRAIM0,TRAIN0,TRAIO0,MODER0,MODES
     *0
      MODER0=0
      MODES0=0
      TRAIM0=-1
      TRAIO0=-1
      IF((SRCDST(MODES0,TRAIL0,TRAIM0,STATUS).NE.-2))GOTO 10145
        IF((GTOK(TOKEN,TYPE).NE.187))GOTO 10146
          GOTO 10147
10146     IF((TYPE.NE.172))GOTO 10148
            MODER0=MODES0
            MODES0=0
            IF((SRCDST(MODES0,TRAIN0,TRAIO0,STATUS).NE.-2))GOTO 10149
              IF((GTOK(TOKEN,TYPE).EQ.187))GOTO 10150
                STATUS=-3
10150       CONTINUE
10149       GOTO 10151
10148       STATUS=-3
10151   CONTINUE
10147   IF((STATUS.NE.-3))GOTO 10152
          CALL SYNERR('Instruction syntax.')
10152 CONTINUE
10145 IF((STATUS.NE.-3))GOTO 10153
        CALL SKIP
        GOTO 10154
10153   CALL DOINST(OPMNE0,MODER0,MODES0,TRAIL0,TRAIM0,TRAIN0,TRAIO0)
10154 RETURN
      END
      SUBROUTINE BRANCH(MNEMO0)
      INTEGER MNEMO0
      INTEGER EXPR,GTOK
      INTEGER STATUS,TOKEN,TYPE,MEANJ0,MEANI0
      IF((EXPR(MEANJ0,MEANI0,STATUS).NE.-2))GOTO 10155
        IF((GTOK(TOKEN,TYPE).EQ.187))GOTO 10156
          STATUS=-3
10156 CONTINUE
10155 IF((STATUS.NE.-3))GOTO 10157
        CALL SYNERR('Bad syntax in branch instruction.')
        CALL SKIP
        GOTO 10158
10157   CALL DOBRA0(MNEMO0,MEANJ0,MEANI0)
10158 RETURN
      END
      SUBROUTINE SKIP
      INTEGER GTOK
      INTEGER TYPE,TOKEN
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
10159 IF((GTOK(TOKEN,TYPE).EQ.187))GOTO 10160
        IF((TYPE.NE.-1))GOTO 10161
          CALL PUTBA0(TOKEN)
          GOTO 10160
10161   CALL PUTCH(160,-15)
        CALL PUTLIN(MEMAA0(TOKEN+3),-15)
      GOTO 10159
10160 CALL PUTCH(138,-15)
      RETURN
      END
      INTEGER FUNCTION EXPR(VALUE,ETYPE,STATUS)
      INTEGER STATUS,ETYPE,VALUE
      INTEGER TOKEN,TYPE,VALUE,ETYPE,BINOP,UNOP,IX,TERMV0
      INTEGER GTOK,MEMBE0,APPLY,INDEX
      INTEGER TERMS(12),OPERA0(10),DEFAU0(9)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      DATA TERMS/193,213,167,207,210,194,176,226,242,197,211,0/
      DATA OPERA0/171,173,170,175,188,190,166,252,254,0/
      DATA DEFAU0/0,0,1,1,1,-1,-1,0,-1/
      VALUE=0
      ETYPE=193
      UNOP=-1
      BINOP=171
      STATUS=-3
10162   IX=INDEX(OPERA0,GTOK(TOKEN,TYPE))
        IF((IX.EQ.0))GOTO 10163
          UNOP=TYPE
          TYPE=GTOK(TOKEN,TYPE)
10163   IF((MEMBE0(TYPE,TERMS).NE.1))GOTO 10164
          TERMV0=MEMAA0(TOKEN)
          IF((UNOP.EQ.-1))GOTO 10165
            TERMV0=APPLY(UNOP,DEFAU0(IX),TERMV0)
10165     UNOP=-1
          VALUE=APPLY(BINOP,VALUE,TERMV0)
          IF((ETYPE.EQ.213))GOTO 10166
            ETYPE=TYPE
10166     STATUS=-2
          GOTO 10167
10164     CALL PUTBA0(TOKEN)
          GOTO 10168
10167   IF((MEMBE0(GTOK(TOKEN,TYPE),OPERA0).NE.1))GOTO 10169
          BINOP=TYPE
          STATUS=-3
          GOTO 10170
10169     BINOP=171
          CALL PUTBA0(TOKEN)
10170 CONTINUE
      GOTO 10162
10168 IF(((ETYPE.NE.167).AND.(ETYPE.NE.176)))GOTO 10171
        ETYPE=193
10171 EXPR=STATUS
      RETURN
      END
      INTEGER FUNCTION APPLY(OP,A,B)
      INTEGER OP,A,B
      IF((OP.NE.171))GOTO 10172
        APPLY=A+B
        GOTO 10173
10172   IF((OP.NE.173))GOTO 10174
          APPLY=A-B
          GOTO 10175
10174     IF((OP.NE.170))GOTO 10176
            APPLY=INTS(INTL(A)*INTL(B))
            GOTO 10177
10176       IF((OP.NE.175))GOTO 10178
              IF((B.NE.0))GOTO 10179
                APPLY=0
                GOTO 10180
10179           APPLY=INTS(INTL(A)/INTL(B))
10180         GOTO 10181
10178         IF((OP.NE.188))GOTO 10182
                APPLY=LS(A,B)
                GOTO 10183
10182           IF((OP.NE.190))GOTO 10184
                  APPLY=RS(A,B)
                  GOTO 10185
10184             IF((OP.NE.166))GOTO 10186
                    APPLY=AND(A,B)
                    GOTO 10187
10186               IF((OP.NE.252))GOTO 10188
                      APPLY=OR(A,B)
                      GOTO 10189
10188                 IF((OP.NE.254))GOTO 10190
                        APPLY=AND(A,NOT(B))
                        GOTO 10191
10190                   CALL ERROR('in apply:  can''t happen.')
10191               CONTINUE
10189             CONTINUE
10187           CONTINUE
10185         CONTINUE
10183       CONTINUE
10181     CONTINUE
10177   CONTINUE
10175 CONTINUE
10173 RETURN
      END
      INTEGER FUNCTION SRCDST(MODET0,TRAIP0,TRAIQ0,STATUS)
      INTEGER STATUS,MODET0,TRAIP0,TRAIQ0
      INTEGER MATCH,EXPR
      INTEGER POSTI0(5),SIMPR0(2),DEFER0(2),INDEX0(4),IMMED0(2),PREDEC(5
     *)
      INTEGER TVEC(5)
      INTEGER MODE,REG,EVALUE,ETYPE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      DATA PREDEC/173,168,210,169,0/
      DATA POSTI0/168,210,169,171,0/
      DATA SIMPR0/210,0/
      DATA DEFER0/170,0/
      DATA INDEX0/168,210,169,0/
      DATA IMMED0/164,0/
      TRAIQ0=-1
      REG=0
      IF((MATCH(DEFER0,TVEC).NE.1))GOTO 10192
        MODE=8
        GOTO 10193
10192   MODE=0
10193 STATUS=-2
      IF((MATCH(PREDEC,TVEC).NE.1))GOTO 10194
        MODE=MODE+32
        REG=MEMAA0(TVEC(3))
        GOTO 10195
10194   IF((MATCH(POSTI0,TVEC).NE.1))GOTO 10196
          MODE=MODE+16
          REG=MEMAA0(TVEC(2))
          GOTO 10197
10196     IF((MATCH(SIMPR0,TVEC).NE.1))GOTO 10198
            REG=MEMAA0(TVEC(1))
            GOTO 10199
10198       IF((MATCH(IMMED0,TVEC).NE.1))GOTO 10200
              IF((EXPR(EVALUE,ETYPE,STATUS).NE.-2))GOTO 10201
                MODE=MODE+16
                REG=7
                TRAIQ0=ETYPE
                TRAIP0=EVALUE
10201         GOTO 10202
10200         IF((EXPR(EVALUE,ETYPE,STATUS).NE.-2))GOTO 10203
                IF((MATCH(INDEX0,TVEC).NE.1))GOTO 10204
                  MODE=MODE+48
                  REG=MEMAA0(TVEC(2))
                  TRAIP0=EVALUE
                  TRAIQ0=ETYPE
                  GOTO 10205
10204             MODE=MODE+48
                  REG=7
                  IF((ETYPE.NE.193))GOTO 10206
                    TRAIQ0=174
                    GOTO 10207
10206               TRAIQ0=ETYPE
10207             TRAIP0=EVALUE
10205           GOTO 10208
10203           STATUS=-3
10208       CONTINUE
10202     CONTINUE
10199   CONTINUE
10197 CONTINUE
10195 IF((STATUS.NE.-3))GOTO 10209
        CALL SYNERR('Bad syntax in operand.')
10209 MODET0=MODE+REG
      SRCDST=STATUS
      RETURN
      END
      INTEGER FUNCTION MATCH(TEMPL0,RESULT)
      INTEGER TEMPL0(1),RESULT(1)
      INTEGER GTOK
      INTEGER I,TYPE
      I=1
      GOTO 10212
10210 I=I+1
10212 IF((TEMPL0(I).EQ.0))GOTO 10211
        IF((GTOK(RESULT(I),TYPE).EQ.TEMPL0(I)))GOTO 10213
          GOTO 10211
10213 GOTO 10210
10211 IF((TEMPL0(I).NE.0))GOTO 10214
        MATCH=1
        GOTO 10215
10214   MATCH=0
10216     CALL PUTBA0(RESULT(I))
          I=I-1
        IF((I.GE.1))GOTO 10216
10215 RETURN
      END
      INTEGER FUNCTION ASCII(CHAR)
      INTEGER CHAR
      ASCII=AND(CHAR,127)
      RETURN
      END
      SUBROUTINE DOEVEN
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((MOD(MEMAA0(LCTR),2).EQ.0))GOTO 10217
        CALL GENBY0(0,193)
10217 RETURN
      END
      SUBROUTINE DOBRA0(BR,VALUE,TYPE)
      INTEGER BR,VALUE,TYPE
      INTEGER OFFSET,OPCODE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((TYPE.NE.213))GOTO 10218
        OPCODE=0
        GOTO 10219
10218   OFFSET=VALUE-(MEMAA0(LCTR)+2)
        IF((MOD(OFFSET,2).EQ.0))GOTO 10220
          CALL SYNERR('Odd branch destination.')
          GOTO 10221
10220     IF(((OFFSET.LT.512).AND.(OFFSET.GE.-512)))GOTO 10222
            CALL SYNERR('Branch destination out of range.')
            GOTO 10223
10222       OPCODE=MEMAA0(BR)+AND(RS(OFFSET,1),255)
10223   CONTINUE
10221 CONTINUE
10219 CALL GENWO0(OPCODE,TYPE)
      RETURN
      END
      SUBROUTINE DOSTR0(IT)
      INTEGER IT
      INTEGER I
      INTEGER NAME(102),AUX(102)
      INTEGER ASCII
      CALL GETNA0(IT,NAME)
      CALL DEQUO0(NAME,AUX)
      I=1
      GOTO 10226
10224 I=I+1
10226 IF((AUX(I).EQ.0))GOTO 10225
        CALL GENBY0(ASCII(AUX(I)),193)
      GOTO 10224
10225 RETURN
      END
      SUBROUTINE DOASSG(TARGET,VALUE,TYPE)
      INTEGER TARGET,VALUE,TYPE
      INTEGER S2(4)
      INTEGER S1(4)
      INTEGER NAME(102)
      INTEGER MEMBE0
      INTEGER ALLOW0(10)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      DATA S2/160,189,160,0/
      DATA S1/186,160,160,0/
      DATA ALLOW0/193,213,207,226,242,211,197,210,194,0/
      IF((MEMBE0(MEMAA0(TARGET+1),ALLOW0).NE.1))GOTO 10227
        MEMAA0(TARGET)=VALUE
        MEMAA0(TARGET+1)=TYPE
        MEMAA0(TARGET+2)=1
        IF((GENES0.NE.1))GOTO 10228
          CALL PRINT(-11,'*6i.',LINENO)
          CALL PUTLIN(S1,-11)
          CALL GETNA0(TARGET,NAME)
          CALL PUTLIN(NAME,-11)
          CALL PUTLIN(S2,-11)
          CALL PRINT(-11,'*,8j.',VALUE)
          IF((TYPE.EQ.193))GOTO 10229
            CALL PUTCH(TYPE,-11)
10229     CALL PUTCH(138,-11)
10228   GOTO 10230
10227   CALL SYNERR('Disallowed assignee (or label).')
10230 IF((TYPE.NE.213))GOTO 10231
        NUNDEF=NUNDEF+1
        IF((REPOR0.NE.1))GOTO 10232
          CALL SYNERR('Undefined.')
10232 CONTINUE
10231 RETURN
      END
      SUBROUTINE DOINST(OPMNE0,MODER0,MODES0,TRAIL0,TRAIM0,TRAIN0,TRAIO0
     *)
      INTEGER OPMNE0,MODER0,MODES0,TRAIL0,TRAIM0,TRAIN0,TRAIO0
      INTEGER OPCODE
      INTEGER LS
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      OPCODE=MEMAA0(OPMNE0)+MODES0+LS(MODER0,6)
      CALL GENWO0(OPCODE,193)
      CALL GENTR0(TRAIM0,TRAIL0)
      CALL GENTR0(TRAIO0,TRAIN0)
      RETURN
      END
      SUBROUTINE GENTR0(TYPE,VALUE)
      INTEGER TYPE,VALUE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((TYPE.NE.-1))GOTO 10233
        GOTO 10234
10233   IF((TYPE.NE.174))GOTO 10235
          CALL GENWO0(VALUE-(MEMAA0(LCTR)+2),193)
          GOTO 10236
10235     CALL GENWO0(VALUE,TYPE)
10236 CONTINUE
10234 RETURN
      END
      SUBROUTINE GENWO0(WORD,TYPE)
      INTEGER WORD,TYPE
      INTEGER S2(5)
      INTEGER S1(5)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      DATA S2/169,160,189,160,0/
      DATA S1/186,160,160,168,0/
      IF((TYPE.NE.213))GOTO 10237
        NUNDEF=NUNDEF+1
        IF((REPOR0.NE.1))GOTO 10238
          CALL SYNERR('Undefined.')
10238 CONTINUE
10237 IF((MEMAA0(LCTR+1).EQ.213))GOTO 10239
        IF((MOD(MEMAA0(LCTR),2).EQ.0))GOTO 10240
          CALL SYNERR('Odd address.')
          CALL GENBY0(0,193)
10240   IF((GENES0.NE.1))GOTO 10241
          CALL PRINT(-11,'*6i.',LINENO)
          CALL PUTLIN(S1,-11)
          CALL PRINT(-11,'*6,8j.',MEMAA0(LCTR))
          CALL PUTLIN(S2,-11)
          CALL PRINT(-11,'*6,8j.',WORD)
          IF((TYPE.EQ.193))GOTO 10242
            CALL PUTCH(TYPE,-11)
10242     CALL PUTCH(138,-11)
10241   CALL GBYTE(RT(WORD,8),TYPE)
        CALL GBYTE(AND(RS(WORD,8),255),TYPE)
10239 RETURN
      END
      SUBROUTINE GENBY0(BYTE,TYPE)
      INTEGER BYTE,TYPE
      INTEGER S1(5)
      INTEGER S2(5)
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      DATA S1/186,160,160,251,0/
      DATA S2/253,160,189,160,0/
      IF((TYPE.NE.213))GOTO 10243
        NUNDEF=NUNDEF+1
        IF((REPOR0.NE.1))GOTO 10244
          CALL SYNERR('Undefined byte.')
10244 CONTINUE
10243 IF((MEMAA0(LCTR+1).EQ.213))GOTO 10245
        IF((GENES0.NE.1))GOTO 10246
          CALL PRINT(-11,'*6i.',LINENO)
          CALL PUTLIN(S1,-11)
          CALL PRINT(-11,'*6,8j.',MEMAA0(LCTR))
          CALL PUTLIN(S2,-11)
          IF((MOD(MEMAA0(LCTR),2).NE.0))GOTO 10247
            CALL PRINT(-11,'*6,8j.',BYTE)
            GOTO 10248
10247       CALL PRINT(-11,'*3,8j.',BYTE)
10248     IF((TYPE.EQ.193))GOTO 10249
            CALL PUTCH(TYPE,-11)
10249     CALL PUTCH(138,-11)
10246   CALL GBYTE(BYTE,TYPE)
10245 RETURN
      END
      SUBROUTINE GBYTE(BYTE,TYPE)
      INTEGER BYTE,TYPE
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((GENER0.NE.1))GOTO 10250
        IF(((BUFPTR+BUFST0-1.EQ.MEMAA0(LCTR)).AND.(BUFPTR.LT.1024)))GOTO
     * 10251
          CALL FLUSH0
          BUFST0=MEMAA0(LCTR)
10251   MEMBUF(BUFPTR)=BYTE
        BUFPTR=BUFPTR+1
10250 MEMAA0(LCTR)=MEMAA0(LCTR)+1
      RETURN
      END
      SUBROUTINE FLUSH0
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF((BUFPTR.LE.1))GOTO 10252
        CALL GTBLO0(BUFST0,BUFST0+BUFPTR-1)
10252 BUFPTR=1
      RETURN
      END
      INTEGER FUNCTION FETCH0(ADDR)
      INTEGER ADDR
      INTEGER X
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      IF(((ADDR.GE.BUFST0).AND.(ADDR.LT.BUFPTR-1+BUFST0)))GOTO 10253
        CALL ERROR('in fetchbyte: can''t happen.')
10253 X=ADDR-BUFST0+1
      FETCH0=MEMBUF(X)
      RETURN
      END
      SUBROUTINE GTBLO0(START,FIN)
      INTEGER START,FIN
      INTEGER FETCH0
      INTEGER ADDR
      INTEGER AND
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CHECK0=0
      CALL OUTWO0(1)
      CALL OUTWO0(FIN-START+6)
      CALL OUTWO0(START)
      ADDR=START
      GOTO 10256
10254 ADDR=ADDR+1
10256 IF((ADDR.GE.FIN))GOTO 10255
        CALL OUTBY0(FETCH0(ADDR))
      GOTO 10254
10255 CALL OUTBY0(AND(CHECK0,255))
      RETURN
      END
      SUBROUTINE GTOPEN
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      INTEGER HEADER(13)
      DATA HEADER/253,210,253,204,192,192,192,192,192,192,192,192,0/
      TRIPL0=1
      CALL PUTLIN(HEADER,-13)
      CALL OUTBY0(0)
      RETURN
      END
      SUBROUTINE OUTBY0(B)
      INTEGER B
      INTEGER RS,LS,OR,AND
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CHECK0=CHECK0-B
      TRIPLE(TRIPL0)=AND(B,255)
      IF((TRIPL0.NE.1))GOTO 10257
        CALL OUTSIX(RS(TRIPLE(1),2))
        GOTO 10258
10257   IF((TRIPL0.NE.2))GOTO 10259
          CALL OUTSIX(OR(LS(AND(TRIPLE(1),3),4),RS(TRIPLE(2),4)))
          GOTO 10260
10259     IF((TRIPL0.NE.3))GOTO 10261
            CALL OUTSIX(OR(LS(AND(TRIPLE(2),15),2),RS(TRIPLE(3),6)))
            CALL OUTSIX(TRIPLE(3))
            TRIPL0=0
            GOTO 10262
10261       CALL ERROR('in outbyte: can''t happen.')
10262   CONTINUE
10260 CONTINUE
10258 TRIPL0=TRIPL0+1
      RETURN
      END
      SUBROUTINE OUTWO0(W)
      INTEGER W
      INTEGER RS,AND
      CALL OUTBY0(AND(W,255))
      CALL OUTBY0(RS(W,8))
      RETURN
      END
      SUBROUTINE OUTSIX(ARG)
      INTEGER CH,ARG
      INTEGER AND
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CH=AND(ARG,63)
      IF((CH.GE.32))GOTO 10263
        CH=CH+64
10263 CALL PUTCH(CH+128,-13)
      RETURN
      END
      SUBROUTINE GTCLO0(START0)
      INTEGER START0
      COMMON /CSYM/SYMTA0,SRPTF0
      INTEGER SYMTA0
      INTEGER SRPTF0
      COMMON /CPB/PBCHAR,INBUF0,IBPAA0
      INTEGER PBCHAR
      INTEGER INBUF0(102)
      INTEGER IBPAA0
      COMMON /CTKSTK/TOKEN0(10),TOKEO0
      INTEGER TOKEN0
      INTEGER TOKEO0
      COMMON /CMISC/LCTR,SADDR,DBASE,NEWLI0,NUNDEF,ERROR0,GENER0,GENES0,
     *REPOR0,LINENO,READI0,NEWLJ0
      INTEGER LCTR,SADDR,DBASE,NEWLI0,NEWLJ0,NUNDEF,ERROR0,GENER0,GENES0
     *,READI0,REPOR0,LINENO
      COMMON /CTKRCD/TOKEP0(10000),TRPTR
      INTEGER TOKEP0
      INTEGER TRPTR
      COMMON /CMEMBF/MEMBUF(1024),BUFST0,BUFPTR
      INTEGER MEMBUF
      INTEGER BUFST0
      INTEGER BUFPTR
      COMMON /CGTLD/TRIPLE(3),CHECK0,TRIPL0
      INTEGER TRIPLE
      INTEGER CHECK0
      INTEGER TRIPL0
      INTEGER MEMAA0(20000)
      COMMON /DS$MEM/MEMAA0
      CALL GTBLO0(START0,START0)
      IF((TRIPL0.EQ.1))GOTO 10264
        CALL OUTBY0(0)
10264 CALL PUTCH(138,-13)
      RETURN
      END
C ---- Long Name Map ----
C prevnundef                     prevn0
C trailer2value                  train0
C modereg                        modet0
C fetchbyte                      fetch0
C delimiter                      delim0
C gtblock                        gtblo0
C newlinex                       newli0
C dotstruct                      dotst0
C modereg1                       moder0
C allowed                        allow0
C bufstart                       bufst0
C without                        witho0
C modereg2                       modes0
C outword                        outwo0
C putback                        putba0
C dobranch                       dobra0
C deferred                       defer0
C breakcharacters                break0
C newlinesbehind                 newlj0
C tokenrecord                    tokep0
C genbyte                        genby0
C candidate                      candi0
C lookupsym                      looku0
C meaningtype                    meani0
C startaddr                      start0
C gtclose                        gtclo0
C Symtab                         symta0
C readinput                      readi0
C meaningvalue                   meanj0
C interpretarguments             inter0
C litmesg                        litme0
C tripleindex                    tripl0
C genword                        genwo0
C install                        insta0
C dequote                        dequo0
C simpreg                        simpr0
C Inbuf                          inbuf0
C Ibp                            ibpaa0
C dotbyte                        dotby0
C reportundef                    repor0
C checksum                       check0
C Mem                            memaa0
C membership                     membe0
C termvalue                      termv0
C lexinit                        lexin0
C gentrailer                     gentr0
C generatelist                   genes0
C dostringstmt                   dostr0
C mnemonic                       mnemo0
C postinc                        posti0
C control                        contr0
C defaults                       defau0
C immediate                      immed0
C srptflg                        srptf0
C trailertype                    traiq0
C tokensp                        tokeo0
C stringstmt                     strin0
C fieldoffset                    field0
C exprstmt                       exprs0
C opmnemonic                     opmne0
C template                       templ0
C operators                      opera0
C tokenstack                     token0
C errorsfound                    error0
C trailervalue                   traip0
C generatecode                   gener0
C flushbuf                       flush0
C mapknuthlabel                  mapkn0
C trailer1type                   traim0
C trailer2type                   traio0
C nodesize                       nodes0
C getname                        getna0
C trailer1value                  trail0
C indexed                        index0
C outbyte                        outby0
