      CALL INITI0
      CALL MEMO
      CALL SWT
      END
      SUBROUTINE INITI0
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER VAL,MONTH,DAY,YEAR
      INTEGER CTOI,GETDOW
      INTEGER MKTABL
      INTEGER DATTIM(9)
      INTEGER AAAAA0(7)
      INTEGER AAAAB0(4)
      INTEGER AAAAC0(7)
      INTEGER AAAAD0(4)
      INTEGER AAAAE0(8)
      INTEGER AAAAF0(4)
      INTEGER AAAAG0(10)
      INTEGER AAAAH0(4)
      INTEGER AAAAI0(9)
      INTEGER AAAAJ0(4)
      INTEGER AAAAK0(7)
      INTEGER AAAAL0(4)
      INTEGER AAAAM0(9)
      INTEGER AAAAN0(4)
      INTEGER AAAAO0(8)
      INTEGER AAAAP0(4)
      INTEGER AAAAQ0(9)
      INTEGER AAAAR0(4)
      INTEGER AAAAS0(6)
      INTEGER AAAAT0(4)
      INTEGER AAAAU0(6)
      INTEGER AAAAV0(4)
      INTEGER AAAAW0(4)
      INTEGER AAAAX0(5)
      INTEGER AAAAY0(4)
      INTEGER AAAAZ0(5)
      INTEGER AAABA0(4)
      INTEGER AAABB0(7)
      INTEGER AAABC0(4)
      INTEGER AAABD0(10)
      INTEGER AAABE0(4)
      INTEGER AAABF0(8)
      INTEGER AAABG0(4)
      INTEGER AAABH0(9)
      INTEGER AAABI0(4)
      INTEGER AAABJ0(9)
      INTEGER AAABK0(4)
      INTEGER AAABL0(6)
      INTEGER AAABM0(4)
      INTEGER AAABN0(5)
      INTEGER AAABO0(4)
      INTEGER AAABP0(5)
      INTEGER AAABQ0(7)
      INTEGER AAABR0(7)
      INTEGER AAABS0(7)
      DATA AAAAA0/243,245,238,228,225,249,0/
      DATA AAAAB0/243,245,238,0/
      DATA AAAAC0/237,239,238,228,225,249,0/
      DATA AAAAD0/237,239,238,0/
      DATA AAAAE0/244,245,229,243,228,225,249,0/
      DATA AAAAF0/244,245,229,0/
      DATA AAAAG0/247,229,228,238,229,243,228,225,249,0/
      DATA AAAAH0/247,229,228,0/
      DATA AAAAI0/244,232,245,242,243,228,225,249,0/
      DATA AAAAJ0/244,232,245,0/
      DATA AAAAK0/230,242,233,228,225,249,0/
      DATA AAAAL0/230,242,233,0/
      DATA AAAAM0/243,225,244,245,242,228,225,249,0/
      DATA AAAAN0/243,225,244,0/
      DATA AAAAO0/234,225,238,245,225,242,249,0/
      DATA AAAAP0/234,225,238,0/
      DATA AAAAQ0/230,229,226,242,245,225,242,249,0/
      DATA AAAAR0/230,229,226,0/
      DATA AAAAS0/237,225,242,227,232,0/
      DATA AAAAT0/237,225,242,0/
      DATA AAAAU0/225,240,242,233,236,0/
      DATA AAAAV0/225,240,242,0/
      DATA AAAAW0/237,225,249,0/
      DATA AAAAX0/234,245,238,229,0/
      DATA AAAAY0/234,245,238,0/
      DATA AAAAZ0/234,245,236,249,0/
      DATA AAABA0/234,245,236,0/
      DATA AAABB0/225,245,231,245,243,244,0/
      DATA AAABC0/225,245,231,0/
      DATA AAABD0/243,229,240,244,229,237,226,229,242,0/
      DATA AAABE0/243,229,240,0/
      DATA AAABF0/239,227,244,239,226,229,242,0/
      DATA AAABG0/239,227,244,0/
      DATA AAABH0/238,239,246,229,237,226,229,242,0/
      DATA AAABI0/238,239,246,0/
      DATA AAABJ0/228,229,227,229,237,226,229,242,0/
      DATA AAABK0/228,229,227,0/
      DATA AAABL0/237,239,238,244,232,0/
      DATA AAABM0/228,225,249,0/
      DATA AAABN0/249,229,225,242,0/
      DATA AAABO0/228,239,247,0/
      DATA AAABP0/232,239,245,242,0/
      DATA AAABQ0/237,233,238,245,244,229,0/
      DATA AAABR0/225,236,247,225,249,243,0/
      DATA AAABS0/225,236,247,225,249,243,0/
      CALL DSINIT(1000)
      SYMTA0=MKTABL(1)
      CALL ENTER(AAAAA0,1,SYMTA0)
      CALL ENTER(AAAAB0,1,SYMTA0)
      CALL ENTER(AAAAC0,2,SYMTA0)
      CALL ENTER(AAAAD0,2,SYMTA0)
      CALL ENTER(AAAAE0,3,SYMTA0)
      CALL ENTER(AAAAF0,3,SYMTA0)
      CALL ENTER(AAAAG0,4,SYMTA0)
      CALL ENTER(AAAAH0,4,SYMTA0)
      CALL ENTER(AAAAI0,5,SYMTA0)
      CALL ENTER(AAAAJ0,5,SYMTA0)
      CALL ENTER(AAAAK0,6,SYMTA0)
      CALL ENTER(AAAAL0,6,SYMTA0)
      CALL ENTER(AAAAM0,7,SYMTA0)
      CALL ENTER(AAAAN0,7,SYMTA0)
      CALL ENTER(AAAAO0,1,SYMTA0)
      CALL ENTER(AAAAP0,1,SYMTA0)
      CALL ENTER(AAAAQ0,2,SYMTA0)
      CALL ENTER(AAAAR0,2,SYMTA0)
      CALL ENTER(AAAAS0,3,SYMTA0)
      CALL ENTER(AAAAT0,3,SYMTA0)
      CALL ENTER(AAAAU0,4,SYMTA0)
      CALL ENTER(AAAAV0,4,SYMTA0)
      CALL ENTER(AAAAW0,5,SYMTA0)
      CALL ENTER(AAAAX0,6,SYMTA0)
      CALL ENTER(AAAAY0,6,SYMTA0)
      CALL ENTER(AAAAZ0,7,SYMTA0)
      CALL ENTER(AAABA0,7,SYMTA0)
      CALL ENTER(AAABB0,8,SYMTA0)
      CALL ENTER(AAABC0,8,SYMTA0)
      CALL ENTER(AAABD0,9,SYMTA0)
      CALL ENTER(AAABE0,9,SYMTA0)
      CALL ENTER(AAABF0,10,SYMTA0)
      CALL ENTER(AAABG0,10,SYMTA0)
      CALL ENTER(AAABH0,11,SYMTA0)
      CALL ENTER(AAABI0,11,SYMTA0)
      CALL ENTER(AAABJ0,12,SYMTA0)
      CALL ENTER(AAABK0,12,SYMTA0)
      CALL DATE(1,DATTIM)
      VAL=1
      MONTH=CTOI(DATTIM,VAL)
      VAL=4
      DAY=CTOI(DATTIM,VAL)
      VAL=7
      YEAR=CTOI(DATTIM,VAL)
      CALL ENTER(AAABL0,MONTH,SYMTA0)
      CALL ENTER(AAABM0,DAY,SYMTA0)
      CALL ENTER(AAABN0,YEAR,SYMTA0)
      CALL ENTER(AAABO0,GETDOW(MONTH,DAY,YEAR),SYMTA0)
      CALL DATE(2,DATTIM)
      VAL=1
      CALL ENTER(AAABP0,CTOI(DATTIM,VAL),SYMTA0)
      VAL=4
      CALL ENTER(AAABQ0,CTOI(DATTIM,VAL),SYMTA0)
      CALL DATE(3,TOUSE0)
      CALL MAPSTR(TOUSE0,1)
      CALL SCOPY(AAABR0,1,DISPL0,1)
      CALL SCOPY(AAABS0,1,ERASE0,1)
      RETURN
      END
      SUBROUTINE ERRMSG(MSG)
      INTEGER MSG(1)
      CALL PRINT(-15,'*s*n.',MSG)
      RETURN
      END
      INTEGER FUNCTION EVAL(EXPR)
      INTEGER EXPR(1)
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAABT0(30)
      DATA AAABT0/226,239,231,245,243,160,227,232,225,242,225,227,244,22
     *9,242,160,233,238,160,229,248,240,242,229,243,243,233,239,238,0/
      CALL SCOPY(EXPR,1,EXPRE0,1)
      EPAAA0=1
      SPAAA0=0
      CALL GETSYM
      CALL BEXPR(STATE)
      IF((STATE.NE.2))GOTO 10000
        EVAL=-3
        RETURN
10000 IF((SYMBO0.EQ.138))GOTO 10001
      IF((SYMBO0.EQ.0))GOTO 10001
        CALL ERRMSG(AAABT0)
        EVAL=-3
        RETURN
10001 IF((STATE.NE.1))GOTO 10002
        EVAL=-3
        RETURN
10002 IF((STACK0(1).EQ.0))GOTO 10003
        EVAL=1
        RETURN
10003 EVAL=0
      RETURN
      END
      INTEGER FUNCTION GETDOW(MONTH,DAY,YEAR)
      INTEGER MONTH,DAY,YEAR
      INTEGER LMONTH,LDAY,LYEAR
      LMONTH=MONTH-2
      LDAY=DAY
      LYEAR=YEAR
      IF((LMONTH.GT.0))GOTO 10004
        LMONTH=LMONTH+12
        LYEAR=LYEAR-1
10004 GETDOW=MOD(LDAY+(26*LMONTH-2)/10+LYEAR+LYEAR/4-34,7)+1
      RETURN
      END
      SUBROUTINE GETSYM
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER I
      INTEGER LOOKUP,EQUAL
      INTEGER TOKEN(102)
      INTEGER AAABU0(7)
      INTEGER AAABV0(6)
      INTEGER AAABW0(19)
      DATA AAABU0/225,236,247,225,249,243,0/
      DATA AAABV0/238,229,246,229,242,0/
      DATA AAABW0/245,238,228,229,230,233,238,229,228,160,246,225,242,23
     *3,225,226,236,229,0/
10005 IF((EXPRE0(EPAAA0).EQ.160))GOTO 10007
      IF((EXPRE0(EPAAA0).EQ.137))GOTO 10007
      GOTO 10006
10007   EPAAA0=EPAAA0+(1)
      GOTO 10005
10006 IF((225.GT.EXPRE0(EPAAA0)))GOTO 10008
      IF((EXPRE0(EPAAA0).GT.250))GOTO 10008
        I=1
        GOTO 10011
10009   I=I+(1)
10011   IF((225.GT.EXPRE0(EPAAA0)))GOTO 10010
        IF((EXPRE0(EPAAA0).GT.250))GOTO 10010
          TOKEN(I)=EXPRE0(EPAAA0)
          EPAAA0=EPAAA0+(1)
        GOTO 10009
10010   TOKEN(I)=0
        IF((EQUAL(TOKEN,AAABU0).NE.1))GOTO 10012
          SYMBO0=1
          GOTO 10013
10012     IF((EQUAL(TOKEN,AAABV0).NE.1))GOTO 10014
            SYMBO0=2
            GOTO 10015
10014       IF((LOOKUP(TOKEN,SYMVA0,SYMTA0).NE.1))GOTO 10016
              SYMBO0=0
              GOTO 10017
10016         CALL ERRMSG(AAABW0)
10017     CONTINUE
10015   CONTINUE
10013   GOTO 10018
10008   IF((176.GT.EXPRE0(EPAAA0)))GOTO 10019
        IF((EXPRE0(EPAAA0).GT.185))GOTO 10019
          SYMVA0=0
          GOTO 10022
10020     EPAAA0=EPAAA0+(1)
10022     IF((176.GT.EXPRE0(EPAAA0)))GOTO 10021
          IF((EXPRE0(EPAAA0).GT.185))GOTO 10021
            SYMVA0=10*SYMVA0+EXPRE0(EPAAA0)-176
          GOTO 10020
10021     SYMBO0=0
          GOTO 10023
10019     SYMBO0=EXPRE0(EPAAA0)
          IF((SYMBO0.EQ.138))GOTO 10024
          IF((SYMBO0.EQ.0))GOTO 10024
            EPAAA0=EPAAA0+(1)
10024   CONTINUE
10023 CONTINUE
10018 RETURN
      END
      SUBROUTINE MEMO
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER ARG(102)
      INTEGER AP
      INTEGER GETARG,EQUAL,VFYUSR
      INTEGER AAABX0(3)
      INTEGER AAABY0(3)
      INTEGER AAABZ0(3)
      DATA AAABX0/173,244,0/
      DATA AAABY0/173,228,0/
      DATA AAABZ0/173,229,0/
      AP=1
      GOTO 10027
10025 AP=AP+(1)
10027 IF((GETARG(AP,ARG,102).EQ.-1))GOTO 10026
        CALL MAPSTR(ARG,1)
        IF((EQUAL(ARG,AAABX0).NE.1))GOTO 10028
          AP=AP+(1)
          IF((GETARG(AP,TOUSE0,102).NE.-1))GOTO 10029
            CALL USAGE
10029     CALL MAPSTR(TOUSE0,1)
          IF((VFYUSR(TOUSE0).NE.-3))GOTO 10030
            CALL ERROR('illegal user name.')
10030     GOTO 10031
10028     IF((EQUAL(ARG,AAABY0).NE.1))GOTO 10032
            AP=AP+(1)
            IF((GETARG(AP,DISPL0,102).NE.-1))GOTO 10033
              CALL USAGE
10033       CALL MAPSTR(DISPL0,1)
            GOTO 10034
10032       IF((EQUAL(ARG,AAABZ0).NE.1))GOTO 10035
              AP=AP+(1)
              IF((GETARG(AP,ERASE0,102).NE.-1))GOTO 10036
                CALL USAGE
10036         CALL MAPSTR(ERASE0,1)
              GOTO 10037
10035         IF((VFYUSR(ARG).NE.-2))GOTO 10038
                CALL SCOPY(ARG,1,TOUSE0,1)
                GOTO 10039
10038           CALL REMARK('illegal user name or improper argument synt
     *ax.')
                CALL USAGE
10039       CONTINUE
10037     CONTINUE
10034   CONTINUE
10031 GOTO 10025
10026 IF((AP.LE.1))GOTO 10040
        CALL SENDM0
        GOTO 10041
10040   CALL SCANM0
10041 RETURN
      END
      SUBROUTINE SCANM0
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER MEMOF,TEMPF,DISPM0,ERASE,JUNK
      INTEGER OPEN,GETLIN,EVAL
      INTEGER ID(102)
      INTEGER AAACA0(20)
      DATA AAACA0/189,229,248,244,242,225,189,175,237,229,237,239,175,18
     *9,245,243,229,242,189,0/
      MEMOF=OPEN(AAACA0,3)
      IF((MEMOF.NE.-3))GOTO 10042
        CALL ERROR('can''t open memo file.')
10042 TEMPF=MKTEMP(3)
10043 IF((GETLIN(ID,MEMOF).EQ.-1))GOTO 10044
        IF((GETLIN(DISPL0,MEMOF).EQ.-1))GOTO 10046
        IF((GETLIN(ERASE0,MEMOF).EQ.-1))GOTO 10046
        GOTO 10045
10046     CALL CLOSE(MEMOF)
          CALL RMTEMP(TEMPF)
          CALL ERROR('badly-formed memo file.')
10045   DISPM0=EVAL(DISPL0)
        ERASE=EVAL(ERASE0)
        IF((ERASE.NE.0))GOTO 10047
        IF((DISPM0.NE.0))GOTO 10047
          CALL PUTLIN(ID,TEMPF)
          CALL PUTLIN(DISPL0,TEMPF)
          CALL PUTLIN(ERASE0,TEMPF)
10048       JUNK=GETLIN(ID,MEMOF)
            CALL PUTLIN(ID,TEMPF)
          IF((ID(1).NE.174))GOTO 10048
          GOTO 10049
10047     IF((ERASE.NE.1))GOTO 10050
          IF((DISPM0.NE.0))GOTO 10050
10051         JUNK=GETLIN(ID,MEMOF)
            IF((ID(1).NE.174))GOTO 10051
            GOTO 10052
10050       IF((ERASE.NE.0))GOTO 10053
            IF((DISPM0.NE.1))GOTO 10053
              CALL PRINT(-11,'*n*n*s*n.',ID)
              CALL PUTLIN(ID,TEMPF)
              CALL PUTLIN(DISPL0,TEMPF)
              CALL PUTLIN(ERASE0,TEMPF)
10054           JUNK=GETLIN(ID,MEMOF)
                CALL PUTLIN(ID,TEMPF)
                CALL PUTLIN(ID(2),-11)
              IF((ID(1).NE.174))GOTO 10054
              GOTO 10055
10053         IF((ERASE.NE.1))GOTO 10056
              IF((DISPM0.NE.1))GOTO 10056
                CALL PRINT(-11,'*n*n*s*n.',ID)
10057             JUNK=GETLIN(ID,MEMOF)
                  CALL PUTLIN(ID(2),-11)
                IF((ID(1).NE.174))GOTO 10057
10056       CONTINUE
10055     CONTINUE
10052   CONTINUE
10049 GOTO 10043
10044 CALL REWIND(MEMOF)
      CALL REWIND(TEMPF)
      CALL FCOPY(TEMPF,MEMOF)
      CALL TRUNC(MEMOF)
      CALL CLOSE(MEMOF)
      CALL RMTEMP(TEMPF)
      RETURN
      END
      SUBROUTINE SENDM0
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER MEMOF,I,TEMPF
      INTEGER OPEN,SCOPY,MKTEMP,GETLIN,EVAL
      INTEGER MFNAME(102),USER(33),TIM(9),DAT(9)
      INTEGER BUF(102)
      INTEGER AAACB0(14)
      DATA AAACB0/189,229,248,244,242,225,189,175,237,229,237,239,175,0/
      I=EVAL(DISPL0)
      IF((I.NE.-3))GOTO 10058
        RETURN
10058 I=EVAL(ERASE0)
      IF((I.NE.-3))GOTO 10059
        RETURN
10059 TEMPF=MKTEMP(3)
      CALL FCOPY(-10,TEMPF)
      CALL REWIND(TEMPF)
      I=SCOPY(AAACB0,1,MFNAME,1)
      I=SCOPY(TOUSE0,1,MFNAME,I+1)
      MEMOF=OPEN(MFNAME,3)
      IF((MEMOF.NE.-3))GOTO 10060
        CALL ERROR('memo file not available.')
10060 CALL WIND(MEMOF)
      CALL DATE(3,USER)
      CALL MAPSTR(USER,1)
      CALL DATE(1,DAT)
      CALL DATE(2,TIM)
      CALL PRINT(MEMOF,'Memo from *s at *s *s*n.',USER,TIM,DAT)
      CALL PRINT(MEMOF,'*s*n.',DISPL0)
      CALL PRINT(MEMOF,'*s*n.',ERASE0)
10061 IF((GETLIN(BUF,TEMPF).EQ.-1))GOTO 10062
        CALL PUTCH(160,MEMOF)
        CALL PUTLIN(BUF,MEMOF)
      GOTO 10061
10062 CALL PRINT(MEMOF,'@.*n.')
      CALL CLOSE(MEMOF)
      CALL RMTEMP(TEMPF)
      RETURN
      END
      SUBROUTINE USAGE
      CALL ERROR('Usage: memo {[-t] user|-d display_cond|-e erase_cond}.
     *')
      RETURN
      END
      SUBROUTINE APRIM(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACC0(15)
      DATA AAACC0/211,244,225,227,235,160,239,246,229,242,230,236,239,24
     *7,0/
      STATE=1
      IF((SYMBO0.NE.0))GOTO 10063
        STATE=3
        SPAAA0=SPAAA0+(1)
        IF((SPAAA0.LE.32))GOTO 10064
          CALL ERRMSG(AAACC0)
          GPST=2
          RETURN
10064   STACK0(SPAAA0)=SYMVA0
        CALL GETSYM
10063 GPST=STATE
      RETURN
      END
      SUBROUTINE RELAT0(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      LOGICAL TRUTH
      INTEGER BEAUTY
      INTEGER AAACD0
      INTEGER AAACE0
      INTEGER AAACF0(23)
      INTEGER AAACG0
      INTEGER AAACH0(28)
      INTEGER AAACI0
      INTEGER AAACJ0
      INTEGER AAACK0(22)
      DATA AAACF0/237,233,243,243,233,238,231,160,242,229,236,225,244,23
     *3,239,238,225,236,160,239,240,242,0/
      DATA AAACH0/242,229,236,239,240,160,237,233,243,243,233,238,231,16
     *0,242,233,231,232,244,160,239,240,229,242,225,238,228,0/
      DATA AAACK0/242,229,236,225,244,233,239,238,160,227,225,238,167,24
     *4,160,232,225,240,240,229,238,0/
      CALL APRIM(STATE)
      AAACD0=STATE
      GOTO 10065
10066   GPST=2
        RETURN
10065 IF(AAACD0.EQ.2)GOTO 10066
      IF((STATE.NE.3))GOTO 10067
        CALL RELOP(STATE)
        AAACE0=STATE
        GOTO 10068
10069     GPST=2
          RETURN
10070     CALL ERRMSG(AAACF0)
        GOTO 10071
10068   GOTO(10070,10069),AAACE0
10071   IF((STATE.EQ.3))GOTO 10072
          GPST=2
          RETURN
10072   CALL APRIM(STATE)
        AAACG0=STATE
        GOTO 10073
10074     GPST=2
          RETURN
10075     CALL ERRMSG(AAACH0)
        GOTO 10076
10077     AAACI0=OPERA0
          GOTO 10078
10079       TRUTH=STACK0(SPAAA0-1).EQ.STACK0(SPAAA0)
          GOTO 10080
10081       TRUTH=STACK0(SPAAA0-1).NE.STACK0(SPAAA0)
          GOTO 10080
10082       TRUTH=STACK0(SPAAA0-1).LT.STACK0(SPAAA0)
          GOTO 10080
10083       TRUTH=STACK0(SPAAA0-1).LE.STACK0(SPAAA0)
          GOTO 10080
10084       TRUTH=STACK0(SPAAA0-1).GT.STACK0(SPAAA0)
          GOTO 10080
10085       TRUTH=STACK0(SPAAA0-1).GE.STACK0(SPAAA0)
          GOTO 10080
10078     AAACJ0=AAACI0-2
          GOTO(10079,10081,10082,10083,10084,10085),AAACJ0
            CALL ERRMSG(AAACK0)
10080     SPAAA0=SPAAA0-(1)
          IF((.NOT.TRUTH))GOTO 10086
            BEAUTY=1
            GOTO 10087
10086       BEAUTY=0
10087     STACK0(SPAAA0)=BEAUTY
        GOTO 10076
10073   GOTO(10075,10074,10077),AAACG0
10076   IF((STATE.EQ.3))GOTO 10088
          GPST=2
          RETURN
10088 CONTINUE
10067 GPST=STATE
      RETURN
      END
      SUBROUTINE RELOP(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACL0
      INTEGER AAACM0(20)
      INTEGER AAACN0
      INTEGER AAACO0
      DATA AAACM0/167,254,167,160,237,245,243,244,160,226,229,160,237,23
     *9,238,225,228,233,227,0/
      STATE=1
      IF((SYMBO0.NE.189))GOTO 10089
        STATE=3
        OPERA0=3
        CALL GETSYM
10089 IF((STATE.NE.3))GOTO 10090
        STATE=1
        IF((SYMBO0.NE.189))GOTO 10091
          STATE=3
          CALL GETSYM
10091   AAACL0=STATE
        GOTO 10092
10093     STATE=3
        GOTO 10094
10092   IF(AAACL0.EQ.1)GOTO 10093
10094   IF((STATE.EQ.3))GOTO 10095
          GPST=2
          RETURN
10095 CONTINUE
10090 IF((STATE.NE.1))GOTO 10096
        IF((SYMBO0.NE.254))GOTO 10097
          STATE=3
          CALL GETSYM
10097   IF((STATE.NE.3))GOTO 10098
          STATE=1
          IF((SYMBO0.NE.189))GOTO 10099
            STATE=3
            OPERA0=4
            CALL GETSYM
            GOTO 10100
10099       CALL ERRMSG(AAACM0)
10100     IF((STATE.EQ.3))GOTO 10101
            GPST=2
            RETURN
10101   CONTINUE
10098   IF((STATE.NE.1))GOTO 10102
          IF((SYMBO0.NE.188))GOTO 10103
            STATE=3
            OPERA0=5
            CALL GETSYM
10103     IF((STATE.NE.3))GOTO 10104
            STATE=1
            IF((SYMBO0.NE.190))GOTO 10105
              STATE=3
              OPERA0=4
              CALL GETSYM
10105       IF((STATE.NE.1))GOTO 10106
              IF((SYMBO0.NE.189))GOTO 10107
                STATE=3
                OPERA0=6
                CALL GETSYM
10107       CONTINUE
10106       AAACN0=STATE
            GOTO 10108
10109         STATE=3
            GOTO 10110
10108       IF(AAACN0.EQ.1)GOTO 10109
10110       IF((STATE.EQ.3))GOTO 10111
              GPST=2
              RETURN
10111     CONTINUE
10104     IF((STATE.NE.1))GOTO 10112
            IF((SYMBO0.NE.190))GOTO 10113
              STATE=3
              OPERA0=7
              CALL GETSYM
10113       IF((STATE.NE.3))GOTO 10114
              STATE=1
              IF((SYMBO0.NE.189))GOTO 10115
                STATE=3
                OPERA0=8
                CALL GETSYM
10115         AAACO0=STATE
              GOTO 10116
10117           STATE=3
              GOTO 10118
10116         IF(AAACO0.EQ.1)GOTO 10117
10118         IF((STATE.EQ.3))GOTO 10119
                GPST=2
                RETURN
10119       CONTINUE
10114     CONTINUE
10112   CONTINUE
10102 CONTINUE
10096 GPST=STATE
      RETURN
      END
      SUBROUTINE BPRIM(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACP0(27)
      INTEGER AAACQ0
      INTEGER AAACR0(29)
      INTEGER AAACS0(20)
      INTEGER AAACT0
      INTEGER AAACU0(29)
      INTEGER AAACV0(20)
      INTEGER AAACW0
      INTEGER AAACX0(15)
      INTEGER AAACY0(15)
      DATA AAACP0/237,233,243,243,233,238,231,160,240,225,242,229,238,24
     *4,232,229,243,233,250,229,228,160,229,248,240,242,0/
      DATA AAACR0/237,233,243,243,233,238,231,160,229,248,240,242,229,24
     *3,243,233,239,238,160,233,238,160,240,225,242,229,238,243,0/
      DATA AAACS0/237,233,243,243,233,238,231,160,242,233,231,232,244,16
     *0,240,225,242,229,238,0/
      DATA AAACU0/237,233,243,243,233,238,231,160,229,248,240,242,229,24
     *3,243,233,239,238,160,233,238,160,240,225,242,229,238,243,0/
      DATA AAACV0/237,233,243,243,233,238,231,160,242,233,231,232,244,16
     *0,240,225,242,229,238,0/
      DATA AAACX0/211,244,225,227,235,160,239,246,229,242,230,236,239,24
     *7,0/
      DATA AAACY0/211,244,225,227,235,160,239,246,229,242,230,236,239,24
     *7,0/
      STATE=1
      IF((SYMBO0.NE.254))GOTO 10120
        STATE=3
        CALL GETSYM
10120 IF((STATE.NE.3))GOTO 10121
        STATE=1
        IF((SYMBO0.NE.168))GOTO 10122
          STATE=3
          CALL GETSYM
          GOTO 10123
10122     CALL ERRMSG(AAACP0)
10123   IF((STATE.EQ.3))GOTO 10124
          GPST=2
          RETURN
10124   CALL BEXPR(STATE)
        AAACQ0=STATE
        GOTO 10125
10126     GPST=2
          RETURN
10127     CALL ERRMSG(AAACR0)
        GOTO 10128
10125   GOTO(10127,10126),AAACQ0
10128   IF((STATE.EQ.3))GOTO 10129
          GPST=2
          RETURN
10129   STATE=1
        IF((SYMBO0.NE.169))GOTO 10130
          STATE=3
          IF((STACK0(SPAAA0).EQ.0))GOTO 10131
            STACK0(SPAAA0)=0
            GOTO 10132
10131       STACK0(SPAAA0)=1
10132     CALL GETSYM
          GOTO 10133
10130     CALL ERRMSG(AAACS0)
10133   IF((STATE.EQ.3))GOTO 10134
          GPST=2
          RETURN
10134 CONTINUE
10121 IF((STATE.NE.1))GOTO 10135
        IF((SYMBO0.NE.168))GOTO 10136
          STATE=3
          CALL GETSYM
10136   IF((STATE.NE.3))GOTO 10137
          CALL BEXPR(STATE)
          AAACT0=STATE
          GOTO 10138
10139       GPST=2
            RETURN
10140       CALL ERRMSG(AAACU0)
          GOTO 10141
10138     GOTO(10140,10139),AAACT0
10141     IF((STATE.EQ.3))GOTO 10142
            GPST=2
            RETURN
10142     STATE=1
          IF((SYMBO0.NE.169))GOTO 10143
            STATE=3
            CALL GETSYM
            GOTO 10144
10143       CALL ERRMSG(AAACV0)
10144     IF((STATE.EQ.3))GOTO 10145
            GPST=2
            RETURN
10145   CONTINUE
10137   IF((STATE.NE.1))GOTO 10146
          CALL RELAT0(STATE)
          AAACW0=STATE
          GOTO 10147
10148       GPST=2
            RETURN
10147     IF(AAACW0.EQ.2)GOTO 10148
          IF((STATE.NE.1))GOTO 10149
            IF((SYMBO0.NE.1))GOTO 10150
              STATE=3
              SPAAA0=SPAAA0+(1)
              IF((SPAAA0.LE.32))GOTO 10151
                CALL ERRMSG(AAACX0)
                GPST=2
                RETURN
10151         STACK0(SPAAA0)=1
              CALL GETSYM
10150       IF((STATE.NE.1))GOTO 10152
              IF((SYMBO0.NE.2))GOTO 10153
                STATE=3
                SPAAA0=SPAAA0+(1)
                IF((SPAAA0.LE.32))GOTO 10154
                  CALL ERRMSG(AAACY0)
                  GPST=2
                  RETURN
10154           STACK0(SPAAA0)=0
                CALL GETSYM
10153       CONTINUE
10152     CONTINUE
10149   CONTINUE
10146 CONTINUE
10135 GPST=STATE
      RETURN
      END
      SUBROUTINE BSEC(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAACZ0
      INTEGER AAADA0
      INTEGER AAADB0(26)
      INTEGER AAADC0
      DATA AAADB0/167,252,167,160,237,233,243,243,233,238,231,160,242,23
     *3,231,232,244,160,239,240,229,242,225,238,228,0/
      CALL BPRIM(STATE)
      AAACZ0=STATE
      GOTO 10155
10156   GPST=2
        RETURN
10155 IF(AAACZ0.EQ.2)GOTO 10156
      IF((STATE.NE.3))GOTO 10157
10158     STATE=1
          IF((SYMBO0.NE.252))GOTO 10159
            STATE=3
            CALL GETSYM
10159     IF((STATE.NE.3))GOTO 10160
            CALL BPRIM(STATE)
            AAADA0=STATE
            GOTO 10161
10162         GPST=2
              RETURN
10163         CALL ERRMSG(AAADB0)
            GOTO 10164
10165         IF((STACK0(SPAAA0-1).NE.0))GOTO 10167
              IF((STACK0(SPAAA0).NE.0))GOTO 10167
              GOTO 10166
10167           STACK0(SPAAA0-1)=1
                GOTO 10168
10166           STACK0(SPAAA0-1)=0
10168         SPAAA0=SPAAA0-(1)
            GOTO 10164
10161       GOTO(10163,10162,10165),AAADA0
10164       IF((STATE.EQ.3))GOTO 10169
              GPST=2
              RETURN
10169     CONTINUE
10160   CONTINUE
        IF((STATE.EQ.3))GOTO 10158
        AAADC0=STATE
        GOTO 10170
10171     STATE=3
        GOTO 10172
10170   IF(AAADC0.EQ.1)GOTO 10171
10172   IF((STATE.EQ.3))GOTO 10173
          GPST=2
          RETURN
10173 CONTINUE
10157 GPST=STATE
      RETURN
      END
      SUBROUTINE BEXPR(GPST)
      INTEGER GPST
      INTEGER DISPL0(102),ERASE0(102),EXPRE0(102),TOUSE0(102)
      INTEGER STACK0(32),SPAAA0,EPAAA0,SYMBO0,SYMVA0,OPERA0
      INTEGER SYMTA0
      COMMON /MEMOC0/DISPL0,ERASE0,EXPRE0,TOUSE0,STACK0,SPAAA0,EPAAA0,SY
     *MBO0,SYMVA0,OPERA0,SYMTA0
      INTEGER MEMAA0(1000)
      COMMON /DS$MEM/MEMAA0
      INTEGER STATE
      INTEGER AAADD0
      INTEGER AAADE0
      INTEGER AAADF0(26)
      INTEGER AAADG0
      DATA AAADF0/167,166,167,160,237,233,243,243,233,238,231,160,242,23
     *3,231,232,244,160,239,240,229,242,225,238,228,0/
      CALL BSEC(STATE)
      AAADD0=STATE
      GOTO 10174
10175   GPST=2
        RETURN
10174 IF(AAADD0.EQ.2)GOTO 10175
      IF((STATE.NE.3))GOTO 10176
10177     STATE=1
          IF((SYMBO0.NE.166))GOTO 10178
            STATE=3
            CALL GETSYM
10178     IF((STATE.NE.3))GOTO 10179
            CALL BSEC(STATE)
            AAADE0=STATE
            GOTO 10180
10181         GPST=2
              RETURN
10182         CALL ERRMSG(AAADF0)
            GOTO 10183
10184         IF((STACK0(SPAAA0-1).EQ.0))GOTO 10185
              IF((STACK0(SPAAA0).EQ.0))GOTO 10185
                STACK0(SPAAA0-1)=1
                GOTO 10186
10185           STACK0(SPAAA0-1)=0
10186         SPAAA0=SPAAA0-(1)
            GOTO 10183
10180       GOTO(10182,10181,10184),AAADE0
10183       IF((STATE.EQ.3))GOTO 10187
              GPST=2
              RETURN
10187     CONTINUE
10179   CONTINUE
        IF((STATE.EQ.3))GOTO 10177
        AAADG0=STATE
        GOTO 10188
10189     STATE=3
        GOTO 10190
10188   IF(AAADG0.EQ.1)GOTO 10189
10190   IF((STATE.EQ.3))GOTO 10191
          GPST=2
          RETURN
10191 CONTINUE
10176 GPST=STATE
      RETURN
      END
C ---- Long Name Map ----
C Erasecond                      erase0
C Ep                             epaaa0
C memocom                        memoc0
C scanmemos                      scanm0
C Symtab                         symta0
C Displaycond                    displ0
C Operator                       opera0
C display                        dispm0
C Sp                             spaaa0
C Symbol                         symbo0
C Stack                          stack0
C Mem                            memaa0
C Symval                         symva0
C Expression                     expre0
C sendmemo                       sendm0
C initialize                     initi0
C Touser                         touse0
C relation                       relat0
