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