      COMMON /COUT/OUTPA0,OUTWA0,OUTWD0,OUTBU0(1454)
      INTEGER OUTPA0,OUTWA0,OUTWD0
      INTEGER OUTBU0
      COMMON /CPAGE/START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2V
     *AL0,M3VAL0,M4VAL0,BOTTO0,EVENH0(1454),ODDHE0(1454),EVENF0(1454),OD
     *DFO0(1454)
      INTEGER START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2VAL0,M3
     *VAL0,M4VAL0,BOTTO0
      INTEGER EVENH0,ODDHE0,EVENF0,ODDFO0
      COMMON /CPARAM/FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,IN
     *VAL0,TIVAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL
     *0,ITVAL0
      INTEGER FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,INVAL0,TI
     *VAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL0,ITVAL
     *0
      COMMON /CMISC/HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0(100),FTYPE
     *0(100),OLIST0(100),OUTFI0,NEXTA0,TABSA0(134),NUMRE0(200),MCOUT0,MC
     *CHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0(180)
      INTEGER HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0,FTYPE0,OLIST0,OU
     *TFI0,NEXTA0,TABSA0,NUMRE0,MCOUT0
      INTEGER MCCHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0
      COMMON /CMACRO/MACLV0,ARGVA0(100),ARGTO0,FIRST0,MACTO0,MACBU0(5000
     *0),ARGBU0(1000)
      INTEGER MACLV0,ARGVA0,ARGTO0,FIRST0,MACTO0
      INTEGER MACBU0,ARGBU0
      COMMON /COPTS/STOPM0
      INTEGER STOPM0
      COMMON /TABCOM/COMTA0,FNTAB0,SPCHA0
      INTEGER COMTA0,FNTAB0,SPCHA0
      COMMON /DS$MEM/MEMAA0(4090)
      INTEGER MEMAA0
      INTEGER READLN
      INTEGER INBUF(1454)
      CALL INITI0
10000 IF((READLN(INBUF,1454).EQ.-1))GOTO 10001
        CALL PROCE0(INBUF)
      GOTO 10000
10001 CALL RESET0
      CALL SWT
      END
      SUBROUTINE OPTIO0
      COMMON /COUT/OUTPA0,OUTWA0,OUTWD0,OUTBU0(1454)
      INTEGER OUTPA0,OUTWA0,OUTWD0
      INTEGER OUTBU0
      COMMON /CPAGE/START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2V
     *AL0,M3VAL0,M4VAL0,BOTTO0,EVENH0(1454),ODDHE0(1454),EVENF0(1454),OD
     *DFO0(1454)
      INTEGER START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2VAL0,M3
     *VAL0,M4VAL0,BOTTO0
      INTEGER EVENH0,ODDHE0,EVENF0,ODDFO0
      COMMON /CPARAM/FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,IN
     *VAL0,TIVAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL
     *0,ITVAL0
      INTEGER FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,INVAL0,TI
     *VAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL0,ITVAL
     *0
      COMMON /CMISC/HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0(100),FTYPE
     *0(100),OLIST0(100),OUTFI0,NEXTA0,TABSA0(134),NUMRE0(200),MCOUT0,MC
     *CHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0(180)
      INTEGER HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0,FTYPE0,OLIST0,OU
     *TFI0,NEXTA0,TABSA0,NUMRE0,MCOUT0
      INTEGER MCCHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0
      COMMON /CMACRO/MACLV0,ARGVA0(100),ARGTO0,FIRST0,MACTO0,MACBU0(5000
     *0),ARGBU0(1000)
      INTEGER MACLV0,ARGVA0,ARGTO0,FIRST0,MACTO0
      INTEGER MACBU0,ARGBU0
      COMMON /COPTS/STOPM0
      INTEGER STOPM0
      COMMON /TABCOM/COMTA0,FNTAB0,SPCHA0
      INTEGER COMTA0,FNTAB0,SPCHA0
      COMMON /DS$MEM/MEMAA0(4090)
      INTEGER MEMAA0
      INTEGER A$BUF(200)
      INTEGER I
      INTEGER CTOI
      INTEGER ARG(30)
      INTEGER USAGE(45)
      INTEGER PARSCL
      INTEGER AAAAA0(7)
      DATA USAGE/213,243,225,231,229,186,160,230,237,244,160,219,173,243
     *,221,160,219,173,240,160,230,233,242,243,244,219,173,236,225,243,2
     *44,221,221,160,251,240,225,244,232,238,225,237,229,253,0/
      DATA AAAAA0/243,240,188,242,243,190,0/
      IF((PARSCL(AAAAA0,A$BUF).NE.-3))GOTO 10002
        CALL ERROR(USAGE)
10002 IF((A$BUF(243-225+1).EQ.0))GOTO 10003
        STOPM0=1
10003 IF((A$BUF(240-225+1).EQ.0))GOTO 10004
        CALL CTOC(A$BUF(A$BUF(240-225+27)),ARG,30)
        I=1
        START0=CTOI(ARG,I)
        IF((ARG(I).NE.173))GOTO 10005
          I=I+(1)
          ENDPA0=CTOI(ARG,I)
10005   IF((ARG(I).EQ.0))GOTO 10006
          CALL ERROR(USAGE)
10006 CONTINUE
10004 RETURN
      END
      SUBROUTINE INITI0
      COMMON /COUT/OUTPA0,OUTWA0,OUTWD0,OUTBU0(1454)
      INTEGER OUTPA0,OUTWA0,OUTWD0
      INTEGER OUTBU0
      COMMON /CPAGE/START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2V
     *AL0,M3VAL0,M4VAL0,BOTTO0,EVENH0(1454),ODDHE0(1454),EVENF0(1454),OD
     *DFO0(1454)
      INTEGER START0,ENDPA0,CURPA0,NEWPA0,LINEN0,PLVAL0,M1VAL0,M2VAL0,M3
     *VAL0,M4VAL0,BOTTO0
      INTEGER EVENH0,ODDHE0,EVENF0,ODDFO0
      COMMON /CPARAM/FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,IN
     *VAL0,TIVAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL
     *0,ITVAL0
      INTEGER FILLA0,NOSPA0,ADJUS0,DVFLA0,TIWID0,POVAL0,MOVAL0,INVAL0,TI
     *VAL0,LMVAL0,RMVAL0,BFVAL0,CEVAL0,ULVAL0,LSVAL0,OOVAL0,EOVAL0,ITVAL
     *0
      COMMON /CMISC/HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0(100),FTYPE
     *0(100),OLIST0(100),OUTFI0,NEXTA0,TABSA0(134),NUMRE0(200),MCOUT0,MC
     *CHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0(180)
      INTEGER HYPHE0,EXTRB0,NOBRE0,WORDL0,FPTRA0,FLIST0,FTYPE0,OLIST0,OU
     *TFI0,NEXTA0,TABSA0,NUMRE0,MCOUT0
      INTEGER MCCHA0,TMCCH0,CMDCH0,NBCCH0,REPLC0,TABCH0,FILEN0
      COMMON /CMACRO/MACLV0,ARGVA0(100),ARGTO0,FIRST0,MACTO0,MACBU0(5000
     *0),ARGBU0(1000)
      INTEGER MACLV0,ARGVA0,ARGTO0,FIRST0,MACTO0
      INTEGER MACBU0,ARGBU0
      COMMON /COPTS/STOPM0
      INTEGER STOPM0
      COMMON /TABCOM/COMTA0,FNTAB0,SPCHA0
      INTEGER COMTA0,FNTAB0,SPCHA0
      COMMON /DS$MEM/MEMAA0(4090)
      INTEGER MEMAA0
      INTEGER I
      INTEGER GETARG
      INTEGER MKTABL
      INTEGER REQPOS(58)
      INTEGER REQTE0(228)
      INTEGER FNPOS(55)
      INTEGER FNTEXT(304)
      INTEGER SPCHB0(97)
      INTEGER SPCHC0(652)
      DATA REQTE0/15,230,233,0,31,238,230,0,4,226,242,0,21,236,243,0,3,2
     *26,240,0,45,243,240,0,19,233,238,0,41,242,237,0,48,244,233,0,7,227
     *,229,0,50,245,236,0,17,232,229,0,16,230,239,0,37,240,236,0,2,226,2
     *30,0,44,243,239,0,8,228,229,0,12,229,238,0,46,244,225,0,47,244,227
     *,0,6,227,227,0,5,227,178,0,18,232,249,0,32,238,232,0,30,238,229,0,
     *39,240,239,0,20,236,237,0,13,229,242,0,22,236,244,0,49,244,236,0,4
     *0,242,227,0,1,225,228,0,29,238,225,0,33,238,243,0,42,242,243,0,38,
     *240,238,0,14,229,248,0,34,238,248,0,51,248,226,0,43,243,226,0,23,2
     *37,177,0,24,237,178,0,25,237,179,0,26,237,180,0,9,228,246,0,27,237
     *,227,0,28,237,239,0,11,229,232,0,10,229,230,0,36,239,232,0,35,239,
     *230,0,52,240,243,0,53,239,239,0,54,229,239,0,55,233,230,0,56,225,2
     *37,0,57,233,244,0/
      DATA REQPOS/57,1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,
     *73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,1
     *45,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209
     *,213,217,221,225/
      DATA FNTEXT/54,238,243,0,13,240,236,0,14,240,238,0,9,236,238,0,15,
     *240,239,0,10,236,243,0,6,233,238,0,16,242,237,0,20,244,233,0,8,236
     *,237,0,3,227,227,0,2,227,178,0,18,244,227,0,11,237,236,0,33,237,17
     *7,0,34,237,178,0,35,237,179,0,36,237,180,0,52,236,244,0,5,228,225,
     *249,0,4,228,225,244,229,0,21,244,233,237,229,0,19,244,227,240,238,
     *0,12,238,245,237,0,17,243,229,244,0,1,225,228,228,0,7,236,228,225,
     *244,229,0,22,242,238,0,23,210,206,0,29,236,229,244,244,229,242,0,3
     *0,204,197,212,212,197,210,0,31,246,229,242,244,243,240,225,227,229
     *,0,37,229,246,229,238,0,38,239,228,228,0,39,227,225,240,0,40,243,2
     *37,225,236,236,0,41,240,236,245,243,0,42,237,233,238,245,243,0,43,
     *232,229,225,228,229,242,0,44,229,246,229,238,232,229,225,228,229,2
     *42,0,45,239,228,228,232,229,225,228,229,242,0,46,230,239,239,244,2
     *29,242,0,47,229,246,229,238,230,239,239,244,229,242,0,48,239,228,2
     *28,230,239,239,244,229,242,0,49,227,237,240,0,53,233,227,237,240,0
     *,50,226,239,244,244,239,237,0,51,244,239,240,0,24,226,230,0,25,245
     *,236,0,26,227,245,0,27,243,245,226,0,28,243,245,240,0,55,233,244,0
     */
      DATA FNPOS/54,1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,7
     *3,77,82,88,94,100,105,110,115,122,126,130,138,146,157,163,168,173,
     *180,186,193,201,213,224,232,244,255,260,266,274,279,283,287,291,29
     *6,301/
      DATA SPCHC0/97,225,236,240,232,225,0,65,193,204,208,200,193,0,98,2
     *26,229,244,225,0,66,194,197,212,193,0,103,231,225,237,237,225,0,71
     *,199,193,205,205,193,0,100,228,229,236,244,225,0,68,196,197,204,21
     *2,193,0,101,229,240,243,233,236,239,238,0,69,197,208,211,201,204,2
     *07,206,0,122,250,229,244,225,0,90,218,197,212,193,0,110,229,244,22
     *5,0,78,197,212,193,0,104,244,232,229,244,225,0,72,212,200,197,212,
     *193,0,105,233,239,244,225,0,73,201,207,212,193,0,107,235,225,240,2
     *40,225,0,74,203,193,208,208,193,0,108,236,225,237,226,228,225,0,76
     *,204,193,205,194,196,193,0,117,237,245,0,85,205,213,0,118,238,245,
     *0,86,206,213,0,120,248,233,0,88,216,201,0,111,239,237,233,227,242,
     *239,238,0,79,207,205,201,195,210,207,206,0,51,240,233,0,52,208,201
     *,0,114,242,232,239,0,82,210,200,207,0,115,243,233,231,237,225,0,83
     *,211,201,199,205,193,0,116,244,225,245,0,84,212,193,213,0,113,245,
     *240,243,233,236,239,238,0,81,213,208,211,201,204,207,206,0,112,240
     *,232,233,0,80,208,200,201,0,99,227,232,233,0,67,195,200,201,0,121,
     *240,243,233,0,89,208,211,201,0,119,239,237,229,231,225,0,87,207,20
     *5,197,199,193,0,56,233,238,230,233,238,233,244,249,0,59,233,238,24
     *4,229,231,242,225,236,0,57,201,206,212,197,199,210,193,204,0,48,23
     *6,225,242,231,229,242,226,242,225,227,229,0,49,236,225,242,231,229
     *,236,226,242,225,227,229,0,50,244,233,236,228,229,0,53,226,225,227
     *,235,243,236,225,243,232,0,54,245,240,225,242,242,239,247,0,55,228
     *,239,247,238,225,242,242,239,247,0,94,238,225,226,236,225,0,126,23
     *8,239,244,0,58,240,225,242,244,233,225,236,0,61,240,242,239,240,23
     *9,242,244,233,239,238,225,236,0,136,226,243,0,136,194,211,0,32,226
     *,236,0,10,232,236,230,0,11,232,236,242,0,60,240,243,243,229,244,0,
     *62,243,243,229,244,0,63,236,229,0,93,231,229,0,64,233,237,240,0,91
     *,229,248,233,243,244,0,125,238,229,248,233,243,244,0,96,245,238,23
     *3,246,0,123,239,242,0,95,225,238,228,0,92,238,229,0,124,233,243,23
     *9,0,77,225,240,229,241,0,102,236,230,236,239,239,242,0,106,242,230
     *,236,239,239,242,0,109,236,227,229,233,236,0,70,242,227,229,233,23
     *6,0,33,243,237,225,236,236,176,0,34,243,237,225,236,236,177,0,35,2
     *43,237,225,236,236,178,0,36,243,237,225,236,236,179,0,37,243,237,2
     *25,236,236,180,0,38,243,237,225,236,236,181,0,39,243,237,225,236,2
     *36,182,0,40,243,237,225,236,236,183,0,41,243,237,225,236,236,184,0
     *,42,243,237,225,236,236,185,0,43,243,227,239,236,239,238,0,44,228,
     *241,245,239,244,229,0,46,228,239,236,236,225,242,0/
      DATA SPCHB0/96,1,8,15,21,27,34,41,48,55,64,73,79,85,90,95,102,109,
     *115,121,128,135,143,151,155,159,163,167,171,175,184,193,197,201,20
     *6,211,218,225,230,235,244,253,258,263,268,273,278,283,290,297,307,
     *317,327,340,353,360,371,380,391,398,403,412,426,430,434,438,443,44
     *8,455,461,465,469,474,481,489,495,499,504,508,513,519,527,535,542,
     *549,557,565,573,581,589,597,605,613,621,629,637,645/
      CALL DSINIT(4090)
      COMTA0=MKTABL(1)
      FNTAB0=MKTABL(1)
      SPCHA0=MKTABL(1)
      I=1
      GOTO 10009
10007 I=I+(1)
10009 IF((I.GT.REQPOS(1)))GOTO 10008
        CALL ENTER(REQTE0(REQPOS(I+1)+1),REQTE0(REQPOS(I+1)),COMTA0)
      GOTO 10007
10008 I=1
      GOTO 10012
10010 I=I+(1)
10012 IF((I.GT.FNPOS(1)))GOTO 10011
        CALL ENTER(FNTEXT(FNPOS(I+1)+1),FNTEXT(FNPOS(I+1)),FNTAB0)
      GOTO 10010
10011 I=1
      GOTO 10015
10013 I=I+(1)
10015 IF((I.GT.SPCHB0(1)))GOTO 10014
        CALL ENTER(SPCHC0(SPCHB0(I+1)+1),SPCHC0(SPCHB0(I+1)),SPCHA0)
      GOTO 10013
10014 NOSPA0=1
      ADJUS0=226
      CMDCH0=174
      NBCCH0=224
      HYPHE0=1
      EXTRB0=1
      DVFLA0=0
      INVAL0=0
      LMVAL0=1
      RMVAL0=60
      TIWID0=60
      TIVAL0=0
      POVAL0=0
      OOVAL0=0
      EOVAL0=0
      LSVAL0=1
      FILLA0=1
      CEVAL0=0
      ITVAL0=0
      ULVAL0=0
      BFVAL0=0
      LINEN0=0
      CURPA0=0
      NEWPA0=1
      START0=0
      ENDPA0=10000
      PLVAL0=66
      M1VAL0=3
      M2VAL0=2
      M3VAL0=2
      M4VAL0=3
      BOTTO0=PLVAL0-M3VAL0-M4VAL0
      EVENH0(1)=0
      ODDHE0(1)=0
      EVENF0(1)=0
      ODDFO0(1)=0
      OUTPA0=1
      OUTWA0=0
      OUTWD0=0
      DO 10016 I=1,200
        NUMRE0(I)=0
10016 CONTINUE
10017 DO 10018 I=1,134
        IF((MOD(I,8).NE.1))GOTO 10020
          TABSA0(I)=1
          GOTO 10021
10020     TABSA0(I)=0
10021   CONTINUE
10018 CONTINUE
10019 TABCH0=137
      REPLC0=32
      WORDL0=0
      MCCHA0=160
      TMCCH0=160
      MOVAL0=0
      MCOUT0=1
      STOPM0=0
      MACTO0=1
      FIRST0=-3
      ARGTO0=1
      MACLV0=1
      ARGVA0(1)=1
      OUTFI0=-11
      DO 10022 I=1,100
        OLIST0(I)=-3
10022 CONTINUE
10023 FPTRA0=0
      NEXTA0=1
      CALL OPTIO0
      IF((GETARG(NEXTA0,FILEN0,180).NE.-1))GOTO 10024
        FPTRA0=FPTRA0+(1)
        FLIST0(FPTRA0)=-10
        FTYPE0(FPTRA0)=1
        GOTO 10025
10024   NEXTA0=NEXTA0+(1)
        CALL NEWINP(FILEN0)
10025 RETURN
      END
C ---- Long Name Map ----
C Fill                           filla0
C Nbcch                          nbcch0
C Spchartable                    spcha0
C reqtext                        reqte0
C Cmdch                          cmdch0
C Curpag                         curpa0
C Newpag                         newpa0
C Olist                          olist0
C Tabs                           tabsa0
C Tabch                          tabch0
C Mactop                         macto0
C Lineno                         linen0
C Fntable                        fntab0
C Firstmacro                     first0
C Argv                           argva0
C spchartext                     spchc0
C chktrap                        chktr0
C Evenfooter                     evenf0
C Adjust                         adjus0
C Nobreak                        nobre0
C Bfval                          bfval0
C Ceval                          ceval0
C Argtop                         argto0
C M1val                          m1val0
C Numreg                         numre0
C M2val                          m2val0
C M3val                          m3val0
C Evenheader                     evenh0
C M4val                          m4val0
C Tmcch                          tmcch0
C Nospace                        nospa0
C Stopmode                       stopm0
C processline                    proce0
C Filename                       filen0
C Outbuf                         outbu0
C Bottom                         botto0
C Fptr                           fptra0
C Oddfooter                      oddfo0
C Wordlast                       wordl0
C Extrablankmode                 extrb0
C spcharpos                      spchb0
C Eoval                          eoval0
C Macbuf                         macbu0
C Comtable                       comta0
C Mem                            memaa0
C findmac                        findm0
C Startpage                      start0
C Oddheader                      oddhe0
C Inval                          inval0
C apndmac                        apndm0
C Lmval                          lmval0
C Hyphenation                    hyphe0
C Dvflag                         dvfla0
C Mcch                           mccha0
C extractfcn                     extra0
C initialize                     initi0
C Outp                           outpa0
C Plval                          plval0
C Moval                          moval0
C Outfile                        outfi0
C Tival                          tival0
C Itval                          itval0
C Nextarg                        nexta0
C Argbuf                         argbu0
C Ooval                          ooval0
C resetfiles                     reset0
C Poval                          poval0
C Rmval                          rmval0
C Lsval                          lsval0
C Flist                          flist0
C Outwds                         outwd0
C Tiwidth                        tiwid0
C Ulval                          ulval0
C evalfcn                        evalf0
C Outw                           outwa0
C Endpage                        endpa0
C Replch                         replc0
C options                        optio0
C Ftype                          ftype0
C Mcout                          mcout0
C Maclvl                         maclv0
