SUBROUTINE OLIST (FUNC, ARG1, ARG2) INTEGER FUNC, ARG1, ARG2 INTEGER CONST (2), LISTA (2), LISTX (3), LISTY (3) INTEGER FCEND (2), RREF (2) INTEGER CLOCN, NLOPS EXTERNAL CLOCN, NLOPS 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 LRET, OFFSET, LINEX, LTIME, LN INTEGER LINE (40) INTEGER INDXFL, LX, TABNR, TABX, LMODE LOGICAL LENTER COMMON /LCOM/ LRET, OFFSET, LINEX, LTIME, LN COMMON /LCOM/ LINE COMMON /LCOM/ INDXFL, LX, TABNR, TABX, LMODE COMMON /LCOM/ LENTER INTEGER LINSTR (512) COMMON /LSTD/ LINSTR INTEGER NAME (9) COMMON /NLNAME/ NAME 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 LBUF (66) INTEGER LCOUNT INTEGER PGECNT INTEGER UHEAD (15) INTEGER CHEAD (8) INTEGER ICLP09 COMMON /PRT/ LBUF COMMON /PRT/ LCOUNT COMMON /PRT/ PGECNT COMMON /PRT/ UHEAD COMMON /PRT/ CHEAD COMMON /PRT/ ICLP09 INTEGER FCHRTS INTEGER SCFLAG INTEGER QMODE INTEGER LBIAS INTEGER SCOUNT INTEGER QINDEX LOGICAL NOTINQ COMMON /SRCEX/ FCHRTS COMMON /SRCEX/ SCFLAG COMMON /SRCEX/ QMODE COMMON /SRCEX/ LBIAS COMMON /SRCEX/ SCOUNT COMMON /SRCEX/ QINDEX COMMON /SRCEX/ NOTINQ 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 GROUP1 INTEGER IMPLID INTEGER NGROUP INTEGER NIMPLI INTEGER NOTHER INTEGER NRELTI INTEGER OTHERS INTEGER RELTIV INTEGER STAX INTEGER CSOW INTEGER CSWFA INTEGER CSOFF INTEGER CSNLX INTEGER CSWFB COMMON /CRUCH/ GROUP1 (24) COMMON /CRUCH/ IMPLID (75) COMMON /CRUCH/ NGROUP COMMON /CRUCH/ NIMPLI COMMON /CRUCH/ NOTHER COMMON /CRUCH/ NRELTI COMMON /CRUCH/ OTHERS (165) COMMON /CRUCH/ RELTIV (24) COMMON /CRUCH/ STAX COMMON /CRUCH/ CSOW, CSWFA, CSOFF, CSNLX, CSWFB LOGICAL NLTEST DATA CONST / '"X','" '/ DATA LISTA / 'AR','EG' / DATA LISTX / ', ','XR','EG' / DATA LISTY / ', ','YR','EG' / DATA FCEND / '..','..' / DATA RREF / '**','**' / LRET=1 GO TO (100, 200, 250, 300, 350, 400, 450, 500), FUNC 1 RETURN 100 IF (.NOT. (ARG2 .LE. 0))GO TO 13002 ARG2 = 1 CALL EST (RREF, LINE, 31, 34) LINEX = 35 GO TO 1490 13002 CONTINUE GO TO (1100, 1200, 1300, 1400, 1400, 1500, 1600, 1400, 1700, 1, 1 1, 1800, 1900, 1, 1, 1, 1), ARG2 1100 IF (.NOT. (NOTINQ .OR. ARG1 .EQ. 0))GO TO 13004 CALL EST ('00', LINE, 27, 27) CALL EHX (ARG1, LINE, 28, 29) GO TO 13005 13004 CONTINUE CALL PCHAR (CONST, 2, ARG1) CALL EST (CONST, LINE, 27, 29) 13005 CONTINUE GO TO 1490 1200 IF (LENTER) GO TO 350 GO TO 1 1300 CALL EST (FCEND, LINE, 19, 22) GO TO 900 1400 CALL EHX (ARG1, LINE, 19, 21) LX = ARG1 * 2 + 1 TABNR = ISHFT (LINSTR (LX), -8) TABX = IAND (LINSTR (LX), 255) LMODE = LINSTR (LX+1) LTIME = IAND (LMODE, 127) IF ( TABX .LE. 0 ) GO TO 1450 IF ( TABNR .LE. 0 .OR. TABNR .GT. 4 ) GO TO 1450 GO TO (1410, 1420, 1430, 1440), TABNR 1410 CALL EST (IMPLID (TABX), LINE, 23, 26) GO TO 1460 1420 CALL EST (RELTIV (TABX), LINE, 23, 26) GO TO 1460 1430 CALL EST (GROUP1 (TABX), LINE, 23, 26) GO TO 1450 1440 CALL EST (OTHERS (TABX), LINE, 23, 26) IF ( IAND (LMODE, 16384) .NE. 0) CALL EST (LISTA,LINE,31,34) 1450 IF (.NOT. ( IAND (LMODE, 1024) .NE. 0 ))GO TO 13006 INDXFL = 1 GO TO 13007 13006 CONTINUE IF (.NOT. ( IAND (LMODE, 512) .NE. 0 ))GO TO 13008 INDXFL = 2 GO TO 13009 13008 CONTINUE INDXFL = 0 13009 CONTINUE 13007 CONTINUE IF (.NOT. ( IAND (LMODE, 4096) .NE. 0 ))GO TO 13010 CALL EST ('ZP', LINE, 65, 66) GO TO 13011 13010 CONTINUE IF (.NOT. ( IAND (LMODE, 2048) .NE. 0 ))GO TO 13012 CALL EST ('AB', LINE, 65, 66) GO TO 13013 13012 CONTINUE IF (.NOT. ( IAND (LMODE, 8192) .NE. 0))GO TO 13014 CALL EST ('IM', LINE, 65, 66) CALL EST (' =', LINE, 29, 30) 13014 CONTINUE 13013 CONTINUE 13011 CONTINUE IF (.NOT. ( IAND (LMODE, 256) .NE. 0 ))GO TO 13016 CALL EST (' @', LINE, 29, 30) CALL EST ('IN', LINE, 69, 70) 13016 CONTINUE 1460 CALL ESP (LTIME, LINE, 58, 58) IF ( IAND (LMODE, 128) .NE. 0 ) CALL EST ('* ',LINE,59,60) IF (ARG2 .NE. WF4) GO TO 1 IF ( LINEX .LT. 31 ) LINEX = 31 1490 IF (.NOT. (OFFSET .LT. 0))GO TO 13018 CALL ESP (OFFSET, LINE, LINEX, LINEX+5) LINEX = LINEX + 6 GO TO 13019 13018 CONTINUE IF (.NOT. (OFFSET .GT. 0))GO TO 13020 CALL EST ('+ ', LINE, LINEX, LINEX) CALL ESP (OFFSET, LINE, LINEX+1, LINEX+5) LINEX = LINEX + 6 13020 CONTINUE 13019 CONTINUE IF (.NOT. ( INDXFL .EQ. 1 ))GO TO 13022 CALL EST (LISTX, LINE, LINEX, LINEX+5) GO TO 13023 13022 CONTINUE IF (.NOT. ( INDXFL .EQ. 2 ))GO TO 13024 CALL EST (LISTY, LINE, LINEX, LINEX+5) 13024 CONTINUE 13023 CONTINUE IF ( INDXFL .NE. 0 ) LINEX = LINEX + 2 INDXFL = 0 OFFSET = 0 GO TO 900 1500 OFFSET = OFFSET + ARG1 GO TO 1 1600 IF (ARG1 .LT. 0) CALL EST (' @', LINE, 29, 30) LN = IAND (ARG1, 32767) IF (NLTEST (LN, CBIT)) CALL EST (' =', LINE, 29, 30) 1620 LINEX = CLOCN (LN) + 30 CALL EST (NAME, LINE, 31, LINEX) LINEX = LINEX + 1 GO TO 1490 1700 CALL EHX (ARG1, LINE, 31, 33) CALL EST ('TL', LINE, 34, 35) LINEX = 36 GO TO 1490 1800 CALL EST (8252, LINE, 29, 30) LN = ARG1 GO TO 1620 1900 CALL EST (' >', LINE, 29, 30) LN = ARG1 GO TO 1620 200 LRET=2 IF (LENTER) GO TO 350 210 LENTER = .TRUE. CALL EHX (ARG1, LINE, 1, 3) CALL EST ('TL', LINE, 4, 5) GO TO 1 250 GO TO 1 300 LRET=3 IF (LENTER) GO TO 350 310 LENTER = .TRUE. LN = CLOCN (ARG1) CALL EST (NAME, LINE, 1, LN) GO TO 1 350 CALL EST ('.BLK', LINE, 19, 22) CALL EST ('0 ', LINE, 31, 31) GO TO 900 400 CALL EST ('.BLK', LINE, 19, 22) CALL ESP (ARG1, LINE, 31, 35) GO TO 900 450 LRET=4 IF (LENTER) GO TO 350 460 LN = CLOCN (ARG1) CALL EST (NAME, LINE, 1, LN) IF (ARG2 .NE. 0) LN = CLOCN (ARG2) CALL EST ('= ', LINE, 19, 20) LRET=1 GO TO 800 500 LRET=5 IF (LENTER) GO TO 350 510 LN = CLOCN (ARG1) CALL EST (NAME, LINE, 1, LN) CALL EST ('= ', LINE, 19, 20) LN = NLOPS (CVALUE, ARG2) CALL ESP (LN, LINE, 31, 36) CALL EHX (LN, LINE, 38, 42) LRET=1 GO TO 900 800 CALL EST (NAME, LINE, 31, 46) 900 CALL EHX (LC, LBUF, 1, 4) CALL EST (',,', LBUF, 5, 5) CALL EHX (LCI, LBUF, 6, 6) CALL EST (LINE, LBUF, 9, 88) CALL SET (XBBL, LINE, 40) LENTER = .FALSE. LINEX = 31 CALL SGLPRT GOTO (1,210,310,460,510),LRET END