SUBROUTINE PARSUB 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 AREG, XREG, YREG, NRREGS INTEGER STATUS (10), STAREG, STXREG, STYREG INTEGER REGS (10) INTEGER ACTREG (2), ACTLO, ACTHI INTEGER NZREG INTEGER ICLP10 COMMON / REGS / AREG, XREG, YREG, NRREGS COMMON / REGS / STATUS, REGS, ACTREG, NZREG COMMON / REGS / ICLP10 EQUIVALENCE (ACTLO, ACTREG (1)) EQUIVALENCE (ACTHI, ACTREG (2)) EQUIVALENCE (STAREG, STATUS (1)) EQUIVALENCE (STXREG, STATUS (2)) EQUIVALENCE (STYREG, STATUS (3)) 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 OPCODE (20) EQUIVALENCE (STK (1, 9), OPCODE (1)) INTEGER SUBXB (20), WFOP (20), WFOPND (20) INTEGER SUBOP (20), WFSOP (20) EQUIVALENCE (STK (1, 6), SUBXB (1)) EQUIVALENCE (STK (1, 10), WFOP (1)) EQUIVALENCE (STK (1, 11), WFOPND (1)) EQUIVALENCE (STK (1, 12), SUBOP (1)) EQUIVALENCE (STK (1, 13), WFSOP (1)) 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 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 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) 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 EQUIVALENCE (WHSTRT, LOOPT) EQUIVALENCE (WHLOW, LOOPE, WHSTRT (11)) EQUIVALENCE (WHHIGH, LOOPF, WHSTRT (21)) 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 INTEGER LDAZP, LDAABS, LDAIMM INTEGER LDAABY, LDAINY INTEGER LDYZP, LDYABS, LDYIMM INTEGER SETNLX INTEGER TS1, TS2 INTEGER SOPC, SWF, SWFOPN INTEGER SETSTX, SSUBX, STBIAS INTEGER STMODE, SSUBXB, SSUBXM INTEGER SSUBOP, SWFSUB INTEGER SLEFT, SRIGHT, SCTN INTEGER ICLP12 LOGICAL ZPFLAG, STLOC COMMON /SCOM/ LDAZP, LDAABS, LDAIMM COMMON /SCOM/ LDAABY, LDAINY COMMON /SCOM/ LDYZP, LDYABS, LDYIMM COMMON /SCOM/ SETNLX COMMON /SCOM/ TS1, TS2 COMMON /SCOM/ SOPC, SWF, SWFOPN COMMON /SCOM/ SETSTX, SSUBX, STBIAS COMMON /SCOM/ STMODE, SSUBXB, SSUBXM COMMON /SCOM/ SSUBOP, SWFSUB COMMON /SCOM/ SLEFT, SRIGHT, SCTN COMMON /SCOM/ ICLP12 COMMON /SCOM/ ZPFLAG, STLOC INTEGER LNAMEX, LMODE, LOPC, LWFOP, LWFOPN INTEGER RNAMEX, RMODE, ROPC, RWFOP, RWFOPN EQUIVALENCE (LNAMEX, NAMEX (19)) EQUIVALENCE (LMODE, MODE (19)) EQUIVALENCE (LOPC, OPCODE (19)) EQUIVALENCE (LWFOP, WFOP (19)) EQUIVALENCE (LWFOPN, WFOPND (19)) EQUIVALENCE (RNAMEX, NAMEX (20)) EQUIVALENCE (RMODE, MODE (20)) EQUIVALENCE (ROPC, OPCODE (20)) EQUIVALENCE (RWFOP, WFOP (20)) EQUIVALENCE (RWFOPN, WFOPND (20)) INTEGER TS LOGICAL ZPTST, NLTEST INTEGER NLOPS EXTERNAL OLPLO IF (.NOT. (NLTEST (SSUBX, PBIT)))GO TO 13042 CONTINUE CALL PLOAD (SSUBX, SSUBXM, 3, TS1) SSUBX = REGS (AREG) 13042 CONTINUE IF (.NOT. (SSUBXM .EQ. SPMODE))GO TO 13044 IF (.NOT. (NLTEST (SSUBX, REGBIT)))GO TO 13046 TS = NLOPS (REGNUM, SSUBX) STATUS (TS) = SETSTX + STKSIZ ACTLO = TS IF (TS .EQ. XREG) CALL REGMAN (SAVREG, XREG, TS) GO TO 13047 13046 CONTINUE IF (.NOT. (.NOT.ZPTST (SSUBX, 0)))GO TO 13048 SSUBOP = LDYABS SWFSUB = WF8 13048 CONTINUE 13047 CONTINUE IF (.NOT. (STBIAS .NE. 0))GO TO 13050 CALL STSET (SLEFT, SETNLX, DPMODE, 0, LDAABS, WF8, WF7) CONTINUE CALL PLOAD (SETNLX, STMODE, 0, TS1) IF (.NOT. (FLSAVE (TS1) .NE. 0))GO TO 13052 LNAMEX = FLS (TS1) LOPC = LDAZP LWFOP = WF5 13052 CONTINUE CALL STSET (SRIGHT, NULLX, DPMODE, STBIAS, LDAIMM, WF5, WF12) CALL GEN (PLUS, SLEFT, SRIGHT) STBIAS = 0 STAREG = SLEFT CALL REGMAN (SAVREG, AREG, TS) SETNLX = REGS (TS) STATUS (TS) = SETSTX GO TO 13051 13050 CONTINUE CONTINUE CALL PLOAD (SETNLX, STMODE, 1, TS) SETNLX = FLS (TS) 13051 CONTINUE RETURN 13044 CONTINUE CALL STSET (SLEFT, SSUBX, DPMODE, 0, LDAZP, WF5, WF7) IF (SSUBX .EQ. REGS (AREG)) STAREG = SLEFT IF (.NOT. (NLTEST (SSUBX, REGBIT) .AND. .NOT. ZPTST (SSUBX, 0)))GO 1 TO 13054 LOPC = LDAABS LWFOP = WF8 13054 CONTINUE CALL STSET (SRIGHT, SETNLX, DPMODE, 0, LDAABS, WF8, WF7) CONTINUE CALL PLOAD (SETNLX, STMODE, 0, TS1) IF (.NOT. (FLSAVE (TS1) .NE. 0))GO TO 13056 LNAMEX = FLS (TS1) LOPC = LDAZP LWFOP = WF5 13056 CONTINUE CALL GEN (PLUS, SLEFT, SRIGHT) STAREG = SLEFT IF (.NOT. (STBIAS .LT. 255 .AND. STBIAS .GE. 0))GO TO 13058 SSUBXB = STBIAS GO TO 13059 13058 CONTINUE CALL STSET (SLEFT, REGS (AREG), DPMODE, 0, LDAZP, WF5, WF7) CALL STSET (SRIGHT, NULLX, DPMODE, STBIAS, LDAIMM, WF5, WF12) CALL GEN (PLUS, SLEFT, SRIGHT) 13059 CONTINUE CALL REGMAN (SAVREG, AREG, TS) SETNLX = REGS (TS) STATUS (TS) = SETSTX SSUBX = NULLX SSUBOP = LDYIMM RETURN END