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