SUBROUTINE PROTBL 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 IF(PTABLE.EQ.0) GO TO 32766 TABLCL=LISTCL ASSIGN 32764 TO I32765 GO TO 32765 32764 CALL PUT(0,STABH,LISTCL) CALL PUT(0,SB,LISTCL) P=PTABLE NDERR=.FALSE. NIERR=.FALSE. GO TO 32762 32763 IF(P.EQ.0) GO TO 32761 32762 IF(.NOT.(STACK(P+2).EQ.0)) GO TO 32760 NDERR=.TRUE. MAJCNT=MAJCNT+1 32760 IF(.NOT.(STACK(P+3).EQ.0)) GO TO 32759 NIERR=.TRUE. MINCNT=MINCNT+1 32759 ASSIGN 32757 TO I32758 GO TO 32758 32757 P=STACK(P) GO TO 32763 32761 IF(.NOT.(NDERR)) GO TO 32756 CALL PUT(0,SNDERR,ERRCL) ASSIGN 32754 TO I32755 GO TO 32755 32754 P=PTABLE TABLCL=ERRCL GO TO 32752 32753 IF(P.EQ.0) GO TO 32751 32752 IF(.NOT.(STACK(P+2).EQ.0)) GO TO 32750 ASSIGN 32749 TO I32758 GO TO 32758 32749 CONTINUE 32750 P=STACK(P) GO TO 32753 32751 CONTINUE 32756 IF(.NOT.(NIERR)) GO TO 32748 CALL PUT(0,SNIERR,ERRCL) ASSIGN 32747 TO I32755 GO TO 32755 32747 P=PTABLE TABLCL=ERRCL GO TO 32745 32746 IF(P.EQ.0) GO TO 32744 32745 IF(.NOT.(STACK(P+3).EQ.0)) GO TO 32743 ASSIGN 32742 TO I32758 GO TO 32758 32742 CONTINUE 32743 P=STACK(P) GO TO 32746 32744 CONTINUE 32748 CONTINUE 32766 RETURN 32755 CONTINUE CALL FLXLST (LBLANK) GO TO I32755 32765 CONTINUE CALL FLXLST (LDASHS) GO TO I32765 32758 CONTINUE CALL CPYSTR(SST,SB6) IF(.NOT.(STACK(P+2).EQ.0)) CALL PUTNUM(SST,STACK(P+2)) CALL CATSTR(SST,STACK(P+4)) CALL PUT(0,SST,TABLCL) QP=STACK(P+3) 32741 IF(QP.EQ.0) GO TO 32740 CALL CPYSTR(SST,SB4) I=1 32739 IF(QP.EQ.0.OR.I.GT.REFNO) GO TO 32738 CALL CATSTR(SST,SB2) CALL CATNUM(SST,STACK(QP+1)) I=I+1 QP=STACK(QP) GO TO 32739 32738 CALL PUT(0,SST,TABLCL) GO TO 32741 32740 CALL PUT(0,SB,LISTCL) GO TO I32758 END