SUBROUTINE SETLL INTEGER ADDR, ADRFLG, CUROP, NEXTOP, CFLAG INTEGER PI, XBBL, XA, XF, XZERO, DPVFLG INTEGER LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV INTEGER NEXT, NUMBER, I, IOTYPE INTEGER J, K, L, LABNLX, M, N INTEGER PSYMB, SYMBOL, TOP, VALFLG, QVALUE INTEGER OPTOPX, OPNXTX, TOPX, NEXTX INTEGER DUMMY, OVCHN, PEEKS INTEGER LO, CI, CO, LOGICF, LOCSUP INTEGER VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT INTEGER ICLP05 LOGICAL ENDOK,CONEND COMMON /LOGOS/ ADDR, ADRFLG, CUROP, NEXTOP, CFLAG COMMON /LOGOS/ PI, XBBL, XA, XF, XZERO, DPVFLG COMMON /LOGOS/ LC, LCI, LODLCI, LODLCV, LDLCVO, MAXLCV COMMON /LOGOS/ NEXT, NUMBER, I, IOTYPE COMMON /LOGOS/ J, K, L, LABNLX, M, N COMMON /LOGOS/ PSYMB, SYMBOL, TOP, VALFLG, QVALUE COMMON /LOGOS/ OPTOPX, OPNXTX, TOPX, NEXTX COMMON /LOGOS/ DUMMY, OVCHN, PEEKS COMMON /LOGOS/ LO, CI, CO, LOGICF, LOCSUP COMMON /LOGOS/ VAREF, INPUTJ, LCTS, CRUCNT, FLTCNT COMMON /LOGOS/ ICLP05 COMMON /LOGOS/ ENDOK,CONEND INTEGER BRACEX, SELX, LSX, SELXB INTEGER FUNCNT, FSCNT, FRCNT, FUNVAL INTEGER NRFLS, ARGSIZ, PARCNT INTEGER BSTACK (10), SUBENT (40) INTEGER FLS (6), PARSAV, FLSAVE (6) INTEGER WHSTRT (30), WHLOW (10), WHHIGH (10) INTEGER LOOPT (10), LOOPE (10), LOOPF (10) EQUIVALENCE (WHSTRT, LOOPT) EQUIVALENCE (WHLOW, LOOPE, WHSTRT (11)) EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) COMMON /BRACE/ BRACEX, SELX, LSX, SELXB COMMON /BRACE/ FUNCNT, FSCNT, FRCNT, FUNVAL COMMON /BRACE/ NRFLS, ARGSIZ, PARCNT COMMON /BRACE/ WHSTRT, BSTACK, SUBENT COMMON /BRACE/ FLS, PARSAV, FLSAVE INTEGER WOPTR, WO (64), TLI, TL (128) INTEGER BO, SS, SS2, NRFCH COMMON /SCR1/ WOPTR, WO, TLI, TL COMMON /SCR1/ BO, SS, SS2, NRFCH INTEGER STK (20, 13) INTEGER NAMEX (40) INTEGER OPX, STKSIZ, OCBIT, FUNBIT, SBIAS INTEGER ICLP14 COMMON /SDEFS/ STK, OPX, STKSIZ, OCBIT, FUNBIT, SBIAS COMMON /SDEFS/ ICLP14 EQUIVALENCE (STK (1,1), NAMEX (1)) INTEGER MODE (40), SUBX (20), SUBXM (20), BIAS (40) EQUIVALENCE (STK (1, 3), MODE (1)) EQUIVALENCE (STK (1, 2), SUBX (1)) EQUIVALENCE (STK (1, 4), SUBXM (1)) EQUIVALENCE (STK (1, 5), BIAS (1)) INTEGER GENRET INTEGER MODEX INTEGER RAWMDX INTEGER SPTR INTEGER TSTSTK INTEGER SWAP INTEGER TOPDP INTEGER NEXTDP INTEGER TOPSP INTEGER NEXTSP INTEGER SAVCAL INTEGER OUT INTEGER GETSP INTEGER SMODEX INTEGER SETX INTEGER ICLP02 COMMON /GENC/ GENRET COMMON /GENC/ MODEX COMMON /GENC/ RAWMDX COMMON /GENC/ SPTR COMMON /GENC/ TSTSTK COMMON /GENC/ SWAP COMMON /GENC/ TOPDP COMMON /GENC/ NEXTDP COMMON /GENC/ TOPSP COMMON /GENC/ NEXTSP COMMON /GENC/ SAVCAL COMMON /GENC/ OUT COMMON /GENC/ GETSP COMMON /GENC/ SMODEX COMMON /GENC/ SETX COMMON /GENC/ ICLP02 INTEGER WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12,WF13,W 1F14,WF15,WF16,WF17 INTEGER ICLP16 COMMON / WF / WF1,WF2,WF3,WF4,WF5,WF6,WF7,WF8,WF9,WF10,WF11,WF12 1,WF13,WF14,WF15,WF16,WF17 COMMON / WF / ICLP16 INTEGER NI, NJ, NK INTEGER NSIZE INTEGER NLX, FNLX, REMNLX, OVNLX, TNAME INTEGER NLSTRT, NLSTOP, NLSIZE, SRCHST INTEGER NTSTRT INTEGER NTSTOP INTEGER NTSIZE INTEGER PARFLG INTEGER SPARFL INTEGER NLWRDS INTEGER TX INTEGER NLENO INTEGER STDMD INTEGER MSHIFT INTEGER REGCNT INTEGER NULLX INTEGER STPTRX INTEGER SPMODE INTEGER DPMODE INTEGER SPECMD INTEGER ENFLAG INTEGER DFINED INTEGER CVALUE INTEGER NLXLCI INTEGER ENEXTD INTEGER NAMAT0 INTEGER NAMCON INTEGER NLMODE INTEGER PARBIT INTEGER OPBIT INTEGER LOCALB INTEGER REGBIT INTEGER EXTBIT INTEGER STRBIT INTEGER DPBIT INTEGER CBIT INTEGER PBIT INTEGER EPBIT INTEGER IOBIT INTEGER ARBIT INTEGER EXDBIT INTEGER TPLBIT INTEGER USEBIT INTEGER LCMASK INTEGER MDMASK INTEGER NAMLOC, REGNUM COMMON /NLIST/ NI COMMON /NLIST/ NJ COMMON /NLIST/ NK COMMON /NLIST/ NSIZE COMMON /NLIST/ NLX COMMON /NLIST/ FNLX COMMON /NLIST/ REMNLX COMMON /NLIST/ OVNLX COMMON /NLIST/ TNAME COMMON /NLIST/ NLSTRT COMMON /NLIST/ NLSTOP COMMON /NLIST/ NLSIZE COMMON /NLIST/ SRCHST COMMON /NLIST/ NTSTRT COMMON /NLIST/ NTSTOP COMMON /NLIST/ NTSIZE COMMON /NLIST/ PARFLG COMMON /NLIST/ SPARFL COMMON /NLIST/ NLWRDS COMMON /NLIST/ TX COMMON /NLIST/ NLENO COMMON /NLIST/ STDMD COMMON /NLIST/ MSHIFT COMMON /NLIST/ REGCNT COMMON /NLIST/ NULLX COMMON /NLIST/ STPTRX COMMON /NLIST/ SPMODE COMMON /NLIST/ DPMODE COMMON /NLIST/ SPECMD COMMON /NLIST/ ENFLAG COMMON /NLIST/ DFINED COMMON /NLIST/ CVALUE COMMON /NLIST/ NLXLCI COMMON /NLIST/ ENEXTD COMMON /NLIST/ NAMAT0 COMMON /NLIST/ NAMCON COMMON /NLIST/ NLMODE COMMON /NLIST/ PARBIT COMMON /NLIST/ OPBIT COMMON /NLIST/ LOCALB COMMON /NLIST/ REGBIT COMMON /NLIST/ EXTBIT COMMON /NLIST/ STRBIT COMMON /NLIST/ DPBIT COMMON /NLIST/ CBIT COMMON /NLIST/ PBIT COMMON /NLIST/ EPBIT COMMON /NLIST/ IOBIT COMMON /NLIST/ ARBIT COMMON /NLIST/ EXDBIT COMMON /NLIST/ TPLBIT COMMON /NLIST/ USEBIT COMMON /NLIST/ LCMASK COMMON /NLIST/ MDMASK COMMON /NLIST/ NAMLOC, REGNUM INTEGER NINE INTEGER COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE INTEGER RBRACE, LBRACE, RETOP, CRUTCH INTEGER LPAREN, RPAREN, LBK, RBK INTEGER EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW INTEGER PLUS, MINUS, MULT, DIVIDE, MODOP INTEGER OROP, ANDOP, AOROP, XOROP, AANDOP INTEGER LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT INTEGER NEG, UPARO, DNARO, COM INTEGER LOC, GIZZY, QUOTE, ZRL, TEMPL INTEGER SP, DP, ST, HEX INTEGER ATSIGN INTEGER ICLP06 COMMON /OPERS/ NINE COMMON /OPERS/ COMMA, SEMIC, PERIOD, COLON, FOR, DOOP, WHILE COMMON /OPERS/ RBRACE, LBRACE, RETOP, CRUTCH COMMON /OPERS/ LPAREN, RPAREN, LBK, RBK COMMON /OPERS/ EQUAL, NEQUAL, GTR, GEQ, LESS, LESSEQ, ARROW COMMON /OPERS/ PLUS, MINUS, MULT, DIVIDE, MODOP COMMON /OPERS/ OROP, ANDOP, AOROP, XOROP, AANDOP COMMON /OPERS/ LSHIFT, RSHIFT, LCYCLE, RCYCLE, ALSHFT, ARSHFT COMMON /OPERS/ NEG, UPARO, DNARO, COM COMMON /OPERS/ LOC, GIZZY, QUOTE, ZRL, TEMPL COMMON /OPERS/ SP, DP, ST, HEX COMMON /OPERS/ ATSIGN COMMON /OPERS/ ICLP06 INTEGER CLRACV INTEGER CLRACX INTEGER CLRSTA INTEGER TRAREG INTEGER SAVREG INTEGER CTFREE INTEGER SETREG INTEGER ICLP11 COMMON /RMCODE/ CLRACV, CLRACX, CLRSTA, TRAREG, SAVREG COMMON /RMCODE/ CTFREE, SETREG COMMON /RMCODE/ ICLP11 LOGICAL MSEEN, SMSEEN, ZFLAG INTEGER SMODE, TPFLAG, DEFMOD, LEVEL INTEGER STOAC, OP COMMON /BPO/ MSEEN, SMSEEN, ZFLAG COMMON /BPO/ SMODE, TPFLAG, DEFMOD, LEVEL COMMON /BPO/ STOAC, OP INTEGER ADCINX INTEGER ANDINX INTEGER ASLINX INTEGER BITINX INTEGER CMPINX INTEGER CPXINX INTEGER CPYINX INTEGER DECINX INTEGER EORINX INTEGER INCINX INTEGER JMPINX INTEGER JSRINX INTEGER LDAINX INTEGER LDXINX INTEGER LDYINX INTEGER LSRINX INTEGER ORAINX INTEGER ROLINX INTEGER RORINX INTEGER SBCINX INTEGER STAINX INTEGER STXINX INTEGER STYINX INTEGER ICLP07 COMMON /OPINX/ ADCINX, ANDINX, ASLINX, BITINX, CMPINX COMMON /OPINX/ CPXINX, CPYINX, DECINX, EORINX, INCINX COMMON /OPINX/ JMPINX, JSRINX, LDAINX, LDXINX, LDYINX COMMON /OPINX/ LSRINX, ORAINX, ROLINX, RORINX, SBCINX COMMON /OPINX/ STAINX, STXINX, STYINX COMMON /OPINX/ ICLP07 INTEGER PLEVEL, STOPS (20) INTEGER CNLSID (9), CNLTLI (9), CNLEND (9) INTEGER CLX, CPLOC (30) INTEGER NESTX, PNESTX INTEGER RELLEV, RELCNT, TRUEF LOGICAL RELPAS INTEGER CMPFLG INTEGER ILB INTEGER BRCT, BROK, TNESTX COMMON /COMP/ PLEVEL, STOPS COMMON /COMP/ CNLSID, CNLTLI, CNLEND COMMON /COMP/ CLX, CPLOC COMMON /COMP/ NESTX, PNESTX COMMON /COMP/ RELLEV, RELCNT, TRUEF COMMON /COMP/ RELPAS COMMON /COMP/ CMPFLG COMMON /COMP/ ILB COMMON /COMP/ BRCT, BROK, TNESTX INTEGER INCTL, IOP, CLXTS, LIOPX, TESTTL INTEGER CTS, TLTS, BRANCH, LOOPOP INTEGER NLOPS CALL REGLEV (1) LOOPT (LSX) = TLI INCTL = TLI TESTTL = TLI + 1 TLI = TLI + 2 CALL BLDOP (76, WF8, 0, TESTTL, WF9) CALL DEFTL (INCTL) CALL REGMAN (CLRSTA, 0, 0) CALL REGMAN (CLRACV, 0, 0) CALL SET (0, FLSAVE, 6) LIOPX = OPX - 1 NAMEX (LIOPX) = NAMEX (OPX + 3) MODE (LIOPX) = MODE (OPX + 3) CALL DUMST ('SLL ') CALL PEEK IF (.NOT. (PEEKS .EQ. MINUS))GO TO 13000 CALL FNZS IOP = MINUS BRANCH = 144 LOOPOP = GEQ GO TO 13001 13000 CONTINUE IOP = PLUS BRANCH = 176 LOOPOP = LESSEQ 13001 CONTINUE CALL BLDPO CALL CLRSTK (OPX) NAMEX (OPX) = NAMEX (LIOPX) MODE (OPX) = MODE (LIOPX) TOPX = OPX - 1 NEXTX = OPX CALL GENER (SETX) CALL DUMST ('SLLI') IF (.NOT. (CFLAG .NE. 0))GO TO 13002 IF (.NOT. (NLOPS (CVALUE, OPTOPX) .EQ. 1))GO TO 13004 IF (.NOT. (IOP .EQ. PLUS))GO TO 13006 IOP = UPARO BRANCH = 240 GO TO 13007 13006 CONTINUE IOP = DNARO IF (.NOT. (MODE (LIOPX) .EQ. SPMODE))GO TO 13008 CALL SETUP (LDAINX, NEXTX) CALL GEN (COM + 1, NEXTX, LIOPX) TLTS = TLI TLI = TLI + 2 OPX = OPX + 1 CALL ADVAN IF (.NOT. (NEXTOP .EQ. LBRACE .AND. CFLAG .NE. 0))GO TO 13010 IF (NLOPS (CVALUE, NAMEX (OPX)) .NE. 0)GO TO 50 CALL BLDOP (208, WF5, 0, TLTS, WF9) CALL BLDOP (76, WF8, 0, TLTS + 1, WF9) LOOPE (LSX) = TLTS + 1 CALL DEFTL (TLTS) CALL GEN (DNARO, LIOPX, NEXTX) CALL DEFTL (TESTTL) GO TO 100 13010 CONTINUE 50 CALL STUFF OPX = OPX - 1 CALL BLDOP (240, WF5, 0, TLTS, WF9) CALL GEN (-2, TLTS, 0) BRANCH = 0 13008 CONTINUE 13007 CONTINUE 13004 CONTINUE 13002 CONTINUE CALL SETUP (LDAINX, NEXTX) IF (.NOT. (IOP .LE. MINUS))GO TO 13012 CALL SETUP (LDAINX, TOPX) CALL GEN (IOP, NEXTX, TOPX) CALL GENER (OUT) CALL CLRSTK (OPX) NAMEX (OPX) = NAMEX (LIOPX) MODE (OPX) = MODE (LIOPX) CALL SETUP (STAINX, NEXTX) CALL GEN (-1, -2, LIOPX-2) CALL GEN (ARROW, TOPX, NEXTX) CALL GEN (-1, -2, -2) GO TO 13013 13012 CONTINUE CALL GEN (IOP, LIOPX, NEXTX) 13013 CONTINUE OPX = OPX - 1 IF (.NOT. (MODE (LIOPX) .EQ. SPMODE))GO TO 13014 TLTS = TLI TLI = TLI + 1 CALL ADVAN IF (.NOT. (NEXTOP .EQ. LBRACE .AND. CFLAG .NE. 0))GO TO 13016 CTS = NLOPS (CVALUE, NAMEX (OPX)) IF (.NOT. (CTS .EQ. 0 .AND. IOP .EQ. MINUS))GO TO 13018 BRANCH = 176 GO TO 900 13018 CONTINUE IF (.NOT. (CTS .EQ. 255 .AND. IOP .NE. MINUS))GO TO 13020 IF (.NOT. (IOP .EQ. UPARO))GO TO 13022 BRANCH = 208 GO TO 13023 13022 CONTINUE BRANCH = 144 13023 CONTINUE GO TO 900 13020 CONTINUE 13016 CONTINUE CALL STUFF IF (.NOT. (BRANCH .NE. 0))GO TO 13024 CALL BLDOP (BRANCH, WF5, 0, TLTS, WF9) CALL GEN (-2, TLTS, 0) 13024 CONTINUE 13014 CONTINUE CALL REGLEV (3) CALL REGMAN (CLRSTA, 0, 0) CALL DEFTL (TESTTL) CALL SET (0, FLSAVE, 6) CALL BLDPO TOPX = OPX - 1 NEXTX = LIOPX CALL DUMST ('SLLX') CALL SETUP (LDAINX, NEXTX) CALL SETUP (LDAINX, TOPX) CLXTS = CLX ILB = 0 TRUEF = -1 CALL GEN (LOOPOP, NEXTX, TOPX) I = CLXTS 13028 IF (.NOT.(I .LT. CLX))GO TO 13027 L = CPLOC (I) IF (L .LT. 0) LOOPE (LSX) = -L IF (L .GT. 0) CALL DEFTL (L) CPLOC (I) = 0 I = I + 1 GO TO 13028 13027 CONTINUE CLX = CLXTS 100 STOAC = 0 LOOPF (LSX) = 0 LSX = LSX + 1 OPX = 2 BSTACK (BRACEX) = 0 IF (NEXTOP .NE. LBRACE)CALL FAULTP (58) IF (.NOT. (BRACEX .LT. 9))GO TO 13029 BRACEX = BRACEX + 1 GO TO 13030 13029 CONTINUE CALL FAULTP (59) 13030 CONTINUE RETURN 900 CALL BLDOP (BRANCH, WF5, 0, TESTTL, WF9) CALL BLDOP (76, WF8, 0, TLTS, WF9) CALL DEFTL (TESTTL) LOOPE (LSX) = TLTS GO TO 100 END