SUBROUTINE PROSYS IMPLICIT INTEGER (A-Z) LOGICAL*1 ASSMBL, CONT , DONE , ENDFIL, ENDLIN, ENDPGM LOGICAL*1 ERLST , FIRST , FOUND , INCLUD, INDENT, INSERT LOGICAL*1 LSTCMT, LSTFIN, LSTFLG, MINER , NDERR , NIERR LOGICAL*1 NOPGM , NOTFLG, OPENI , PARMS , PASS , QUOTE LOGICAL*1 SAVED , STREQ , STRLT , VARSET INTEGER UTYPE(3), USTART(3), ULEN(3) INTEGER ESTACK(10) INTEGER SDIGIT(2) INTEGER SFNAM(52) INTEGER SNUMBR(52) INTEGER SPINV(52) INTEGER SPUTGO(12) INTEGER SSTRNG(52) INTEGER SVARBL(52) INTEGER SWITCH(52) INTEGER KBREAK(4) DATA KBREAK/5,2HBR,2HEA,2HK / INTEGER KCOND(7) DATA KCOND/11,2HCO,2HND,2HIT,2HIO,2HNA,2HL / INTEGER KDEFN(5) DATA KDEFN/6,2HDE,2HFI,2HNE,1H / INTEGER KDO(3) DATA KDO/2,2HDO,1H / INTEGER KELSE(4) DATA KELSE/4,2HEL,2HSE,1H / INTEGER KEND(3) DATA KEND/3,2HEN,2HD / INTEGER KFALSE(4) DATA KFALSE/5,2HFA,2HLS,2HE / INTEGER KFIN(3) DATA KFIN/3,2HFI,2HN / INTEGER KIF(3) DATA KIF/2,2HIF,1H / INTEGER KINCL(5) DATA KINCL/7,2HIN,2HCL,2HUD,2HE / INTEGER KLIST(4) DATA KLIST/4,2HLI,2HST,1H / INTEGER KLOOP(4) DATA KLOOP/4,2HLO,2HOP,1H / INTEGER KNEXT(4) DATA KNEXT/4,2HNE,2HXT,1H / INTEGER KNOLST(5) DATA KNOLST/6,2HNO,2HLI,2HST,1H / INTEGER KPAGE(4) DATA KPAGE/4,2HPA,2HGE,1H / INTEGER KREPT(5) DATA KREPT/6,2HRE,2HPE,2HAT,1H / INTEGER KRETN(5) DATA KRETN/6,2HRE,2HTU,2HRN,1H / INTEGER KSELCT(5) DATA KSELCT/6,2HSE,2HLE,2HCT,1H / INTEGER KSTRNG(5) DATA KSTRNG/6,2HST,2HRI,2HNG,1H / INTEGER KTHEN(4) DATA KTHEN/4,2HTH,2HEN,1H / INTEGER KTO(3) DATA KTO/2,2HTO,1H / INTEGER KTRUE(4) DATA KTRUE/4,2HTR,2HUE,1H / INTEGER KUNLES(5) DATA KUNLES/6,2HUN,2HLE,2HSS,1H / INTEGER KUNTIL(4) DATA KUNTIL/5,2HUN,2HTI,2HL / INTEGER KWHEN(4) DATA KWHEN/4,2HWH,2HEN,1H / INTEGER KWHILE(4) DATA KWHILE/5,2HWH,2HIL,2HE / INTEGER SASSN1(8) DATA SASSN1/13,2H ,2H ,2H ,2HAS,2HSI,2HGN,2H / INTEGER SASSN2(4) DATA SASSN2/5,2H T,2HO ,2HI / INTEGER SB(2) DATA SB/1,2H / INTEGER SB2(3) DATA SB2/2,2H ,1H / INTEGER SB4(4) DATA SB4/4,2H ,2H ,1H / INTEGER SB5I1(5) DATA SB5I1/6,2H ,2H ,2H 1,1H / INTEGER SB6(5) DATA SB6/6,2H ,2H ,2H ,1H / INTEGER SB6I(5) DATA SB6I/7,2H ,2H ,2H ,2HI / INTEGER SB7(5) DATA SB7/7,2H ,2H ,2H ,2H / INTEGER SBGOTO(5) DATA SBGOTO/7,2H G,2HO ,2HTO,2H / INTEGER SBSPCR(3) DATA SBSPCR/3,2Hv-,2H- / INTEGER SCMTSW(3) DATA SCMTSW/2,2H/C,1H / INTEGER SCOMMA(2) DATA SCOMMA/1,2H, / INTEGER SCOND(10) DATA SCOND/17,2H ,2H ,2H ,2HCO,2HND,2HIT,2HIO,2HNA,2HL / INTEGER SCONT(6) DATA SCONT/8,2HCO,2HNT,2HIN,2HUE,1H / INTEGER SCP(3) DATA SCP/2,2H,(,1H / INTEGER SDASH(22) DATA SDASH/40,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H 1--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,2H--,1H / INTEGER SDATA(7) DATA SDATA/11,2H ,2H ,2H ,2HDA,2HTA,2H / INTEGER SDOST(6) DATA SDOST/9,2H ,2H ,2H ,2HDO,2H / INTEGER SDSPCR(3) DATA SDSPCR/3,2H.-,2H- / INTEGER SDUM(9) DATA SDUM/15,2HDU,2HMM,2HY-,2HPR,2HOC,2HED,2HUR,2HE / INTEGER SEND(6) DATA SEND/9,2H ,2H ,2H ,2HEN,2HD / INTEGER SEQ(2) DATA SEQ/1,2H= / INTEGER SFORCE(9) DATA SFORCE/14,2H ,2H ,2H ,2HCO,2HNT,2HIN,2HUE,1H / INTEGER SFSPCR(3) DATA SFSPCR/3,2H..,2H. / INTEGER SFUNC(6) DATA SFUNC/8,2HFU,2HNC,2HTI,2HON,1H / INTEGER SGOTO(8) DATA SGOTO/12,2H ,2H ,2H ,2HGO,2H T,2HO ,1H / INTEGER SGOTOI(8) DATA SGOTOI/13,2H ,2H ,2H ,2HGO,2H T,2HO ,2HI / INTEGER SGOTOP(8) DATA SGOTOP/13,2H ,2H ,2H ,2HGO,2H T,2HO ,2H( / INTEGER SGUP1(25) DATA SGUP1/46,2H**,2H**,2H* ,2HTr,2Han,2Hsl,2Hat,2Hor,2H h,2Has,2H 1 e,2Hxh,2Hau,2Hst,2Hed,2H a,2Hll,2H t,2Hab,2Hle,2H s,2Hpa,2Hce,1H 1/ INTEGER SGUP2(24) DATA SGUP2/44,2H**,2H**,2H* ,2HTr,2Han,2Hsl,2Hat,2Hio,2Hn ,2Hmu,2H 1st,2H t,2Her,2Hmi,2Hna,2Hte,2H i,2Hmm,2Hed,2Hia,2Hte,2Hly,1H / INTEGER SH(2) DATA SH/1,2HH / INTEGER SICATX(25) DATA SICATX/47,2H**,2H**,2H* ,2H ,2H (,2HCo,2Hnd,2Hit,2Hio,2Hna,2 1Hl ,2Has,2Hse,2Hmb,2Hly,2H t,2Hab,2Hle,2Hs ,2Hex,2Hce,2Hed,2Hed,2H 1) / INTEGER SIF(6) DATA SIF/8,2H ,2H ,2H ,2HIF,1H / INTEGER SIFP(6) DATA SIFP/9,2H ,2H ,2H ,2HIF,2H( / INTEGER SIFPN(9) DATA SIFPN/14,2H ,2H ,2H ,2HIF,2H(.,2HNO,2HT.,1H / INTEGER SIGN(24) DATA SIGN/45,2H**,2H**,2H* ,2H ,2H (,2HNo,2H c,2Hon,2Htr,2Hol,2H 1p,2Hhr,2Has,2He ,2Hfo,2Hr ,2HFI,2HN ,2Hto,2H m,2Hat,2Hch,2H) / INTEGER SINCSW(3) DATA SINCSW/2,2H/D,1H / INTEGER SINT(9) DATA SINT/14,2H ,2H ,2H ,2HIN,2HTE,2HGE,2HR ,1H / INTEGER SISCMD(24) DATA SISCMD/45,2H**,2H**,2H* ,2H ,2H (,2HIn,2Hva,2Hli,2Hd ,2H$<,2 1Hsy,2Hst,2Hem,2H c,2Hom,2Hma,2Hnd,2H>-,2H-i,2Hgn,2Hor,2Hed,2H) / INTEGER SLASH(2) DATA SLASH/1,2H/ / INTEGER SLP(2) DATA SLP/1,2H( / INTEGER SNDERR(23) DATA SNDERR/43,2H**,2H**,2H* ,2HPr,2Hoc,2Hed,2Hur,2Hes,2H i,2Hnv,2 1Hok,2Hed,2H b,2Hut,2H n,2Hev,2Her,2H d,2Hef,2Hin,2Hed,2H: / INTEGER SNE(4) DATA SNE/4,2H.N,2HE.,1H / INTEGER SNIERR(23) DATA SNIERR/43,2H**,2H**,2H* ,2HPr,2Hoc,2Hed,2Hur,2Hes,2H d,2Hef,2 1Hin,2Hed,2H b,2Hut,2H n,2Hev,2Her,2H i,2Hnv,2Hok,2Hed,2H: / INTEGER SNSPCR(3) DATA SNSPCR/3,2H^-,2H- / INTEGER SOWSE(7) DATA SOWSE/11,2H(O,2HTH,2HER,2HWI,2HSE,2H) / INTEGER SPB(3) DATA SPB/2,2H) ,1H / INTEGER SPGOTO(6) DATA SPGOTO/8,2H) ,2HGO,2H T,2HO ,1H / INTEGER SRP(2) DATA SRP/1,2H) / INTEGER SRPCI(4) DATA SRPCI/4,2H),,2H I,1H / INTEGER SSPACR(3) DATA SSPACR/3,2H. ,2H / INTEGER SSTOP(7) DATA SSTOP/10,2H ,2H ,2H ,2HST,2HOP,1H / INTEGER STABH(20) DATA STABH/37,2H ,2H ,2H ,2HPr,2Hoc,2Hed,2Hur,2He ,2HCr,2Hos,2H 1s-,2HRe,2Hfe,2Hre,2Hnc,2He ,2HTa,2Hbl,2He / INTEGER STSPCR(2) DATA STSPCR/1,2H / INTEGER SVER(14) DATA SVER/25,2H(F,2HLE,2HCS,2H ,2HVe,2Hrs,2Hio,2Hn ,2H22,2HH(,2H1 13,2H1),2H) / INTEGER SFLX(52) INTEGER SHOLD(52) DATA MAXFLX / 100/ INTEGER SST(102) INTEGER SLIST(102) DATA MAXSST / 200/ INTEGER STACK ( 2000) DATA MAXSTK / 2000/ INTEGER VSTACK ( 10) INTEGER VARNAM ( 10) LOGICAL VARFLG ( 10) DATA VARMAX / 10/ DATA PRIME / 53/ DATA SAFETY / 35/ LOGICAL LONG , SHORT , FAKE , COGOTO DATA LONG /.FALSE./ DATA SHORT /.TRUE. / DATA FAKE /.FALSE./ DATA COGOTO /.FALSE./ DATA NCHPWD / 2/ DATA OCHPWD / 2/ DATA SEEDNO /32767/ DATA LWIDTH / 132/ DATA CHSPAC / 32/ DATA CHTAB / 9/ DATA CHC / 67/ DATA CHD / 68/ DATA CHZERO / 48/ DATA CHDOLR / 36/ DATA CHEXCL / 33/ DATA CHCOMA / 44/ DATA CHDQOT / 34/ DATA CHQUOT / 39/ DATA CHSEMI / 59/ DATA CHLPRN / 40/ DATA CHRPRN / 41/ DATA FORTCL/ 1/, LISTCL/ 2/, ERRCL / 3/, FINCL/4/ DATA SETUP / 1/, RETRY / 2/, READ / 3/ DATA ACSEQ / 1/, AELSE / 2/, AFSEQ / 3/, AGCONT/ 4/, AGGOTO/ 5/ DATA AGSTNO/ 6/, AMSEQ / 7/, AGRET / 8/, ASSEQ / 9/, ATSEQ /10/ DATA TCEXP / 1/, TELSE / 2/, TEND / 3/, TEXEC / 4/, TFIN / 5/ DATA TTO / 6/, TINCL / 7/, TSTRNG/ 8/, TBREAK/ 9/, TNEXT /10/ DATA TFORT / 1/, TINVOK/ 2/, TIF / 3/, TUNLES/ 4/, TWHEN / 5/ DATA TCOND / 6/, TSELCT/ 7/, TDO / 8/, TWHILE/ 9/, TRWHIL/10/ DATA TUNTIL/11/, TRUNTL/12/, TLOOP /13/, TRLOOP/14/, TRETN /15/ DATA UEXP / 1/, UFORT / 2/, UOWSE / 3/, UPINV / 4/, UDO / 5/ DATA UBREAK/ 6/, UNEXT / 7/, URETN/ 8/ DATA ENONE / 0/, EICOND/ 1/, EIELSE/ 2/, EIEND / 3/, EIFIN / 4/ DATA EIFINM/ 5/, EILOOP/ 6/, EIPROC/ 7/, EIWFIN/ 8/, EIWHEN/ 9/ DATA EXFIN /10/, EXPROC/11/ DATA TLETTR/ 1/, TDIGIT/ 2/, THYPHN/ 3/, TLP / 4/, TRP / 5/ DATA TBLANK/ 6/, TOTHER/ 7/, TEOL / 8/ DATA TERROR/ 0/, TCONST/ 1/, TVARBL/ 2/ DATA LBLANK/ 1/, LCOMNT/ 2/, LDASHS/ 3/, LFLEX /4/, LINFLX/5/ DATA LINSRC/ 6/ COMMON /FLXSY1/ 1 ACSEQ ,ACTION ,AELSE ,AFSEQ ,AGCONT ,AGGOTO , 1 AGRET ,AGSTNO ,AMSEQ ,ASSEQ , ATSEQ , 1 BLN ,CALLNO ,CH ,CHC ,CHCOMA ,CHD , 1 CHDOLR ,CHDQOT ,CHEXCL ,CHLPRN ,CHQUOT ,CHRPRN , 1 CHSEMI ,CHSPAC ,CHTAB ,CHTYPE ,CHZERO ,CLASS , 1 COGOTO , CONTNO ,CPOS ,CSAVE ,CURSOR , 1 CWD ,DIGIT , DUMARG ,DUMMY ,EICOND , 1 EIELSE ,EIEND ,EIFIN ,EIFINM ,EILOOP ,EIPROC , 1 EIWFIN ,EIWHEN ,ELSNO , ENDNO , 1 ENONE ,ENTNO , ERRCL ,ERROR , 1 ERTYPE ,ESTACK ,ESTOP ,EXFIN ,EXPROC ,EXTYPE , 1 FAKE ,FINCL ,FINDEX , FLXNO ,FORTCL , 1 GGOTON ,GOTONO ,GSTNO ,HOLDNO ,I , 1 INCLVL , INDSRC , ITEMP , 1 J ,KBREAK ,KCOND ,KDEFN ,KDO ,KELSE , 1 KEND ,KFALSE ,KFIN ,KIF ,KINCL ,KLIST , 1 KLOOP ,KNEXT ,KNOLST ,KPAGE ,KREPT ,KRETN , 1 KSELCT ,KSTRNG ,KTHEN ,KTO ,KTRUE ,KUNLES , 1 KUNTIL ,KWHEN ,KWHILE ,L ,LBLANK ,LCOMNT , 1 LDASH ,LDASHS ,LEN ,LEVEL ,LFLEX ,LINENO , 1 LINFLX ,LINSRC ,LISTCL ,LL ,LONG , 1 LOOPNO ,LP ,LPCURS ,LR , LSTLEV , 1 LT ,LTOP ,LWIDTH ,MAJCNT ,MAKFIN , 1 MAX ,MAXFLX ,MAXSST ,MAXSTK ,MINCNT , 1 MLINE ,NCHPWD , NEXTNO ,NFIN , 1 NLOOP , NUMBER ,NUNITS ,NUSAV , 1 NXIFNO ,OCHPWD ,OFFSET ,OFFST2 ,P , 1 PCNT ,PDUMMY ,PENT ,POWER ,PRIME , 1 PTABLE ,Q ,QM ,QP , 1 READ ,REFNO ,RETNO ,RETRY ,RPCURS ,S , 1 SAFETY ,SASSN1 ,SASSN2 , SB ,SBGOTO , 1 SBSPCR ,SB2 ,SB4, 1SB5I1 ,SB6 ,SB6I ,SB7 , 1 SCMTSW , 1 SCNT ,SCOMMA ,SCOND ,SCONT ,SCP ,SDASH , 1 SDATA ,SDIGIT ,SDOST ,SDSPCR ,SDUM ,SEEDNO , 1 SEND ,SEQ ,SETUP , 1 SFLX ,SFNAM ,SFORCE ,SFSPCR ,SFUNC ,SGOTO , 1 SGOTOI ,SGOTOP ,SGUP1 ,SGUP2 ,SH ,SHOLD , 1 SHORT ,SICATX ,SIF , 1 SIFP ,SIFPN ,SIGN ,SINCSW , 1 SINT ,SISCMD ,SLASH , 1 SLIST ,SLP ,SNDERR ,SNE ,SNIERR , 1 SNSPCR ,SNUMBR ,SOURCE ,SOWSE ,SPB ,SPGOTO , 1 SPINV ,SPUTGO ,SRP ,SRPCI ,SSPACR ,SST , 1 SSTOP ,SSTRNG ,STABH ,STACK ,START ,STNO , 1 STRLEN ,STRTYP ,STSPCR ,SVARBL ,SVER , 1 SWITCH , 1 S1CPOS ,S1CURS ,S1CWD ,S2CPOS ,S2CURS ,S2CWD , 1 TABLCL ,TBLANK ,TBREAK ,TCEXP ,TCOND ,TCONST , 1 TDIGIT ,TDO ,TELSE ,TEND ,TEOL ,TERROR , 1 TESTNO ,TEXEC ,TFIN ,TFORT ,THYPHN ,TIF , 1 TINCL ,TINVOK ,TLETTR ,TLOOP ,TLP ,TMAX , 1 TNEXT ,TOP ,TOPNO ,TOPTYP ,TOTHER ,TRETN , 1 TRLOOP ,TRP ,TRUNTL ,TRWHIL ,TSELCT ,TSTRNG , 1 TTO ,TTOP ,TUNLES ,TUNTIL ,TVARBL ,TWHEN , 1 TWHILE ,TYPBN ,UBREAK ,UDO ,UEXP ,UFORT , 1 ULEN ,UNEXT ,UOWSE ,UPINV ,URETN ,USTART , 1 UTYPE ,VARFLG ,VARIBL ,VARMAX ,VARNAM ,VARNDX , 1 VARNUM , VSTACK ,VSTOP ,WWIDTH COMMON /FLXSY2/ ASSMBL, CONT , DONE , ENDFIL, ENDLIN, ENDPGM COMMON /FLXSY2/ ERLST , FIRST , FOUND , INCLUD, INDENT, INSERT COMMON /FLXSY2/ LSTCMT, LSTFIN, LSTFLG, MINER , NDERR , NIERR COMMON /FLXSY2/ NOPGM , NOTFLG, PARMS , PASS , QUOTE , SAVED COMMON /FLXSY2/ VARSET CURSOR=2 ASSIGN 32765 TO I32766 GO TO 32766 32765 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32764 ASSIGN 32762 TO I32763 GO TO 32763 32762 GO TO 32765 32764 START=CURSOR 32761 IF(.NOT.(CHTYPE.LE.TDIGIT)) GO TO 32760 ASSIGN 32759 TO I32763 GO TO 32763 32759 GO TO 32761 32760 LEN=CURSOR-START IF(.NOT.(LEN.GT.0)) GO TO 32758 CALL CPYSUB(SST,SFLX,START,LEN) IF(.NOT.(ASSMBL .AND. FLNDEX(KPAGE,SST).EQ.1)) GO TO 32756 CALL PAGE GO TO 32757 32756 IF(.NOT.(ASSMBL .AND. FLNDEX(KLIST,SST).EQ.1)) GO TO 32755 LSTFLG = .TRUE. CALL LSTON GO TO 32757 32755 IF(.NOT.(ASSMBL .AND. FLNDEX(KNOLST,SST).EQ.1)) GO TO 32754 LSTFLG = .FALSE. CALL LSTOFF GO TO 32757 32754 IF(.NOT.(FLNDEX(KDEFN,SST).EQ.1)) GO TO 32753 ASSIGN 32751 TO I32752 GO TO 32752 32751 GO TO 32757 32753 IF(.NOT.(FLNDEX(KTRUE,SST).EQ.1)) GO TO 32750 VARSET=.TRUE. ASSIGN 32748 TO I32749 GO TO 32749 32748 GO TO 32757 32750 IF(.NOT.(FLNDEX(KFALSE,SST).EQ.1)) GO TO 32747 VARSET=.FALSE. ASSIGN 32746 TO I32749 GO TO 32749 32746 GO TO 32757 32747 IF(.NOT.(STREQ(KIF,SST))) GO TO 32745 VARSET=.TRUE. ASSIGN 32743 TO I32744 GO TO 32744 32743 GO TO 32757 32745 IF(.NOT.(STREQ(KUNLES,SST))) GO TO 32742 VARSET=.FALSE. ASSIGN 32741 TO I32744 GO TO 32744 32741 GO TO 32757 32742 IF(.NOT.(STREQ(KFIN,SST))) GO TO 32740 ASSIGN 32738 TO I32739 GO TO 32739 32738 CONTINUE 32740 CONTINUE 32757 CONTINUE 32758 ASSIGN 32736 TO I32737 GO TO 32737 32736 RETURN 32744 CONTINUE ASSIGN 32734 TO I32735 GO TO 32735 32734 IF(.NOT.(FOUND)) GO TO 32733 ASSIGN 32731 TO I32732 GO TO 32732 32731 IF(.NOT.(VARNDX.GT.0)) GO TO 32729 IF(.NOT.(VSTOP.LT.VARMAX)) GO TO 32727 IF(.NOT.(VARSET)) VARNDX=-VARNDX VSTOP=VSTOP+1 VSTACK(VSTOP)=VARNDX ASSIGN 32725 TO I32726 GO TO 32726 32725 GO TO 32728 32727 ASSIGN 32723 TO I32724 GO TO 32724 32723 CONTINUE 32728 GO TO 32730 32729 ASSIGN 32721 TO I32722 GO TO 32722 32721 CONTINUE 32730 CONTINUE 32733 GO TO I32744 32726 CONTINUE ASSMBL=.TRUE. I=1 32720 IF(.NOT.(I.LE.VSTOP)) GO TO 32719 VARSET=VSTACK(I).GT.0 IF(.NOT.(VARSET.NE.VARFLG(IABS(VSTACK(I))))) GO TO 32718 ASSMBL=.FALSE. I=VSTOP 32718 I=I+1 GO TO 32720 32719 GO TO I32726 32752 CONTINUE ASSIGN 32716 TO I32717 GO TO 32717 32716 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32715 ASSIGN 32714 TO I32763 GO TO 32763 32714 GO TO 32716 32715 USTART(2)=CURSOR 32713 IF(CHTYPE.EQ.TBLANK .OR. CHTYPE.EQ.TEOL) GO TO 32712 ASSIGN 32711 TO I32763 GO TO 32763 32711 GO TO 32713 32712 ULEN(2)=CURSOR-USTART(2) IF(ULEN(1).EQ.0) GO TO 32710 ASSIGN 32708 TO I32709 GO TO 32709 32708 DO 32706 I=1,2 UTYPE(I)=1+(ULEN(I)+NCHPWD-1)/NCHPWD 32706 CONTINUE 32707 TMAX=MAX-1-UTYPE(1)-UTYPE(2) 32710 IF(.NOT.(ULEN(1).EQ.0)) GO TO 32704 ASSIGN 32703 TO I32722 GO TO 32722 32703 GO TO 32705 32704 IF(.NOT.(FOUND)) GO TO 32702 ASSIGN 32701 TO I32722 GO TO 32722 32701 GO TO 32705 32702 IF(.NOT.(TMAX.LE.TOP+SAFETY)) GO TO 32700 ASSIGN 32698 TO I32699 GO TO 32699 32698 GO TO 32705 32700 PARMS=.TRUE. MAX=TMAX PENT=MAX+1 STACK(P)=PENT STACK(PENT)=0 PENT=PENT+1 CALL CPYSTR(STACK(PENT),SSTRNG) PENT=PENT+UTYPE(1) CALL CPYSUB(STACK(PENT),SFLX,USTART(2),ULEN(2)) CALL STRUC(STACK(PENT)) CALL PUT(LINENO,SFLX,LISTCL) 32705 GO TO I32752 32749 CONTINUE ASSIGN 32697 TO I32735 GO TO 32735 32697 IF(.NOT.(FOUND)) GO TO 32696 ASSIGN 32695 TO I32732 GO TO 32732 32695 IF(.NOT.(VARNDX.EQ.0)) GO TO 32694 IF(.NOT.(VARNUM.LT.VARMAX)) GO TO 32692 VARNUM=VARNUM+1 VARNDX=VARNUM GO TO 32693 32692 ASSIGN 32691 TO I32724 GO TO 32724 32691 CONTINUE 32693 CONTINUE 32694 IF(.NOT.(VARNDX.GT.0)) GO TO 32690 VARNAM(VARNDX)=VARIBL VARFLG(VARNDX)=VARSET 32690 CONTINUE 32696 GO TO I32749 32739 CONTINUE IF(.NOT.(VSTOP.GT.0)) GO TO 32688 VSTOP=VSTOP-1 ASSIGN 32687 TO I32726 GO TO 32726 32687 GO TO 32689 32688 ASSIGN 32686 TO I32722 GO TO 32722 32686 CONTINUE 32689 GO TO I32739 32709 CONTINUE CALL CPYSUB(SSTRNG,SFLX,USTART(1),ULEN(1)) CALL STRUC(SSTRNG) P=MAXSTK-PRIME-HASH(SSTRNG,PRIME) FOUND=.FALSE. 32685 IF(STACK(P).EQ.0 .OR. FOUND) GO TO 32684 P=STACK(P) PENT=P+1 IF (STREQ(SSTRNG,STACK(PENT))) FOUND=.TRUE. GO TO 32685 32684 GO TO I32709 32732 CONTINUE VARNDX=0 I=1 32683 IF(.NOT.(I.LE.VARNUM)) GO TO 32682 IF(.NOT.(VARIBL.EQ.VARNAM(I))) GO TO 32681 VARNDX=I I=VARNUM 32681 I=I+1 GO TO 32683 32682 GO TO I32732 32763 CONTINUE CURSOR=CURSOR+1 CPOS=CPOS+1 IF(.NOT.(CPOS.GT.NCHPWD)) GO TO 32680 CWD=CWD+1 CPOS=1 32680 IF(.NOT.(CURSOR.GT.SFLX(1))) GO TO 32678 CH = -1 CHTYPE=TEOL GO TO 32679 32678 CALL GETCH(SFLX(CWD),CPOS,CH) CHTYPE=CHTYP(CH) 32679 GO TO I32763 32699 CONTINUE CALL PUT(0,SGUP1,ERRCL) CALL PUT(0,SGUP2,ERRCL) CALL CLOSEF(MINCNT,-1) CALL FLEXIT GO TO I32699 32724 CONTINUE MAJCNT=MAJCNT+1 CALL PUT(-LINENO,SFLX,ERRCL) CALL PUT(0,SICATX,ERRCL) GO TO I32724 32722 CONTINUE MAJCNT=MAJCNT+1 CALL PUT(-LINENO,SFLX,ERRCL) CALL PUT(0,SISCMD,ERRCL) GO TO I32722 32737 CONTINUE IF (LSTFIN) CALL PUT(LINENO,SFLX,FINCL) GO TO I32737 32766 CONTINUE CURSOR=CURSOR-1 CWD=(CURSOR-1)/NCHPWD+2 CPOS=CURSOR-(CWD-2)*NCHPWD ASSIGN 32677 TO I32763 GO TO 32763 32677 GO TO I32766 32717 CONTINUE 32676 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32675 ASSIGN 32674 TO I32763 GO TO 32763 32674 GO TO 32676 32675 USTART(1)=CURSOR 32673 IF(.NOT.(CHTYPE.LE.TDIGIT)) GO TO 32672 ASSIGN 32671 TO I32763 GO TO 32763 32671 GO TO 32673 32672 ULEN(1)=CURSOR-USTART(1) ENDLIN=CHTYPE.EQ.TEOL .AND. ULEN(1).EQ.0 IF(.NOT.(.NOT.ENDLIN .AND. ULEN(1).EQ.0)) GO TO 32670 ASSIGN 32669 TO I32763 GO TO 32763 32669 ULEN(1)=1 32670 GO TO I32717 32735 CONTINUE FOUND=.FALSE. 32668 IF(.NOT.(CHTYPE.EQ.TBLANK)) GO TO 32667 ASSIGN 32666 TO I32763 GO TO 32763 32666 GO TO 32668 32667 DO 32664 I=1,NCHPWD CALL PUTCH(VARIBL,I+0,CHSPAC) 32664 CONTINUE 32665 I=1 32663 IF(.NOT.(I.LE.NCHPWD .AND. CHTYPE.LE.TDIGIT)) GO TO 32662 FOUND=.TRUE. CALL PUTCH(VARIBL,I,CH) ASSIGN 32661 TO I32763 GO TO 32763 32661 I=I+1 GO TO 32663 32662 IF(FOUND) GO TO 32660 ASSIGN 32659 TO I32722 GO TO 32722 32659 CONTINUE 32660 GO TO I32735 END