      INTEGER FUNCTION BOFACE(BUF,TBUF,SIZE)
      INTEGER SIZE
      INTEGER BUF(1),TBUF(SIZE)
      INTEGER I,J,K,SIZEM0
      J=1
      SIZEM0=SIZE-1
      I=1
      GOTO 10002
10000 I=I+(1)
10002 IF((BUF(I).EQ.0))GOTO 10001
        IF((BUF(I).LE.160))GOTO 10003
          DO 10004 K=1,2
            IF((J.GE.SIZEM0))GOTO 10005
              TBUF(J)=BUF(I)
              J=J+(1)
              TBUF(J)=136
              J=J+(1)
              GOTO 10007
10007       CONTINUE
10004     CONTINUE
10005   CONTINUE
10003   IF((J.GE.SIZE))GOTO 10001
          TBUF(J)=BUF(I)
          J=J+(1)
          GOTO 10000
10001 TBUF(J)=0
      BOFACE=J-1
      RETURN
      END
      SUBROUTINE BRK
      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
      IF((NOBRE0.NE.1))GOTO 10010
        RETURN
10010 IF((OUTPA0.LE.1))GOTO 10011
10012     OUTPA0=OUTPA0-(1)
          OUTWA0=OUTWA0-(1)
        IF((OUTBU0(OUTPA0).EQ.160))GOTO 10014
        IF((OUTBU0(OUTPA0).EQ.32))GOTO 10014
        GOTO 10013
10014   IF((OUTPA0.LT.1))GOTO 10013
        GOTO 10012
10013   CONTINUE
        OUTPA0=OUTPA0+(1)
        OUTWA0=OUTWA0+(1)
        IF((ADJUS0.NE.242))GOTO 10015
          TIVAL0=RMVAL0-LMVAL0-OUTWA0+1
          GOTO 10016
10015     IF((ADJUS0.NE.227))GOTO 10017
            TIVAL0=(RMVAL0-LMVAL0-OUTWA0+1)/2
10017   CONTINUE
10016   OUTBU0(OUTPA0)=138
        OUTBU0(OUTPA0+1)=0
        CALL PUT(OUTBU0)
10011 OUTPA0=1
      OUTWA0=0
      OUTWD0=0
      WORDL0=0
      RETURN
      END
      SUBROUTINE CENTER(BUF)
      INTEGER BUF(1)
      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 WIDTH
      CALL TAILBL(BUF)
      TIVAL0=MAX0((RMVAL0-LMVAL0-WIDTH(BUF)+1)/2,0)
      RETURN
      END
      INTEGER FUNCTION DIVOK(WORD,I)
      INTEGER WORD(1)
      INTEGER I
      INTEGER K1,K2,K3,J,COUNT1,COUNT2
      INTEGER SUFFIX,INDEX
      INTEGER LC,RC,C
      INTEGER MAPDN
      INTEGER LCK(26,2)
      INTEGER AAAAA0(13)
      INTEGER AAAAB0(13)
      DATA LCK(1,1)/:000000/,LCK(1,2)/:000000/,LCK(2,1)/:073555/,LCK(2,2
     *)/:133500/,LCK(3,1)/:073155/,LCK(3,2)/:133500/,LCK(4,1)/:072575/,L
     *CK(4,2)/:133500/,LCK(5,1)/:000000/,LCK(5,2)/:000000/,LCK(6,1)/:071
     *555/,LCK(6,2)/:123500/,LCK(7,1)/:073171/,LCK(7,2)/:133500/,LCK(8,1
     *)/:073575/,LCK(8,2)/:173500/,LCK(9,1)/:000000/,LCK(9,2)/:000000/,L
     *CK(10,1)/:073575/,LCK(10,2)/:173500/,LCK(11,1)/:073575/,LCK(11,2)/
     *:173500/,LCK(12,1)/:073575/,LCK(12,2)/:171500/,LCK(13,1)/:073575/,
     *LCK(13,2)/:173500/,LCK(14,1)/:052565/,LCK(14,2)/:143500/,LCK(15,1)
     */:000000/,LCK(15,2)/:000000/,LCK(16,1)/:073155/,LCK(16,2)/:133500/
     *,LCK(17,1)/:073575/,LCK(17,2)/:173500/,LCK(18,1)/:073524/,LCK(18,2
     *)/:123500/,LCK(19,1)/:053114/,LCK(19,2)/:161500/,LCK(20,1)/:053175
     */,LCK(20,2)/:112500/,LCK(21,1)/:000000/,LCK(21,2)/:000000/,LCK(22,
     *1)/:073575/,LCK(22,2)/:173500/,LCK(23,1)/:073155/,LCK(23,2)/:13350
     *0/,LCK(24,1)/:073575/,LCK(24,2)/:173500/,LCK(25,1)/:000000/,LCK(25
     *,2)/:000000/,LCK(26,1)/:073575/,LCK(26,2)/:173500/
      DATA AAAAA0/229,225,239,233,245,249,197,193,207,201,213,217,0/
      DATA AAAAB0/229,225,239,233,245,249,197,193,207,201,213,217,0/
      DIVOK=-3
      COUNT1=0
      J=1
      GOTO 10020
10018 J=J+(1)
10020 IF((J.GT.I-1))GOTO 10019
        C=WORD(J)
        IF((C.EQ.173))GOTO 10022
        IF((C.EQ.175))GOTO 10022
        IF((C.EQ.223))GOTO 10022
        IF((C.EQ.188))GOTO 10022
        IF((C.EQ.190))GOTO 10022
        IF((C.EQ.10))GOTO 10022
        IF((C.EQ.11))GOTO 10022
        GOTO 10021
10022     RETURN
10021   IF((193.GT.C))GOTO 10025
        IF((C.GT.218))GOTO 10025
        GOTO 10024
10025   IF((225.GT.C))GOTO 10018
        IF((C.GT.250))GOTO 10018
        GOTO 10024
10024     COUNT1=COUNT1+(1)
10023 GOTO 10018
10019 COUNT2=0
      J=I
      GOTO 10029
10027 J=J+(1)
10029 IF((WORD(J).EQ.0))GOTO 10028
        C=WORD(J)
        IF((C.EQ.173))GOTO 10031
        IF((C.EQ.175))GOTO 10031
        IF((C.EQ.223))GOTO 10031
        IF((C.EQ.188))GOTO 10031
        IF((C.EQ.190))GOTO 10031
        IF((C.EQ.10))GOTO 10031
        IF((C.EQ.11))GOTO 10031
        GOTO 10030
10031     RETURN
10030   IF((193.GT.C))GOTO 10034
        IF((C.GT.218))GOTO 10034
        GOTO 10033
10034   IF((225.GT.C))GOTO 10027
        IF((C.GT.250))GOTO 10027
        GOTO 10033
10033     COUNT2=COUNT2+(1)
10032 GOTO 10027
10028 IF((COUNT1.LT.3))GOTO 10037
      IF((COUNT2.LT.3))GOTO 10037
      GOTO 10036
10037   RETURN
10036 J=1
      GOTO 10040
10038 J=J+(1)
10040   IF((INDEX(AAAAA0,WORD(J)).EQ.0))GOTO 10041
          GOTO 10039
10041     IF((J.LT.I-1))GOTO 10042
            RETURN
10042   CONTINUE
      GOTO 10038
10039 J=I
      GOTO 10045
10043 J=J+(1)
10045   IF((INDEX(AAAAB0,WORD(J)).EQ.0))GOTO 10046
          GOTO 10044
10046     IF((WORD(J).NE.0))GOTO 10047
            RETURN
10047   CONTINUE
      GOTO 10043
10044 IF((SUFFIX(WORD(I)).NE.1))GOTO 10048
      IF((WORD(I-2).EQ.WORD(I-1)))GOTO 10048
        DIVOK=-2
        RETURN
10048 LC=MAPDN(WORD(I-1))
      RC=MAPDN(WORD(I))
      IF((193.GT.LC))GOTO 10052
      IF((LC.GT.218))GOTO 10052
      GOTO 10051
10052 IF((225.GT.LC))GOTO 10050
      IF((LC.GT.250))GOTO 10050
      GOTO 10051
10051 IF((193.GT.RC))GOTO 10055
      IF((RC.GT.218))GOTO 10055
      GOTO 10049
10055 IF((225.GT.RC))GOTO 10050
      IF((RC.GT.250))GOTO 10050
      GOTO 10049
10050   RETURN
10049 K1=LC-225+1
      K2=(RC-225)/16+1
      K3=MOD(RC-225,16)+1
      IF((AND(RS(LCK(K1,K2),16-K3),1).EQ.1))GOTO 10057
        RETURN
10057 DIVOK=-2
      RETURN
      END
      INTEGER FUNCTION GETWRD(IN,I,OUT)
      INTEGER IN(1),OUT(1)
      INTEGER I
      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 J
      INTEGER C
10058 IF((IN(I).EQ.160))GOTO 10060
      IF((IN(I).EQ.137))GOTO 10060
      GOTO 10059
10060 IF((IN(I).EQ.TABCH0))GOTO 10059
        I=I+(1)
      GOTO 10058
10059 J=1
      IF((IN(I).NE.TABCH0))GOTO 10061
        OUT(J)=TABCH0
        I=I+(1)
        J=J+(1)
        GOTO 10062
10061   CONTINUE
10063     C=IN(I)
          IF((C.EQ.160))GOTO 10066
          IF((C.EQ.137))GOTO 10066
          IF((C.EQ.TABCH0))GOTO 10066
          IF((C.EQ.138))GOTO 10066
          IF((C.EQ.0))GOTO 10066
          GOTO 10064
10064     OUT(J)=C
          I=I+(1)
          J=J+(1)
        GOTO 10063
10066 CONTINUE
10062 OUT(J)=0
      GETWRD=J-1
      RETURN
      END
      INTEGER FUNCTION HYNATE(WORD,ROOM,LEFT,RIGHT)
      INTEGER WORD(1),LEFT(1),RIGHT(1)
      INTEGER ROOM
      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,J,L
      INTEGER DIVOK,LENGTH,WIDTH
      HYNATE=HYPHE0
      IF((HYNATE.NE.0))GOTO 10067
        RETURN
10067 L=LENGTH(WORD)
      I=L-1
      GOTO 10070
10068 I=I-(1)
10070 IF((I.LE.2))GOTO 10069
        IF((DIVOK(WORD,I).NE.-2))GOTO 10071
          J=1
          GOTO 10074
10072     J=J+(1)
10074     IF((J.GE.I))GOTO 10073
            LEFT(J)=WORD(J)
          GOTO 10072
10073     LEFT(J)=173
          LEFT(J+1)=0
          IF((WIDTH(LEFT).GT.ROOM))GOTO 10068
            CALL SCOPY(WORD,I,RIGHT,1)
            RETURN
10071     IF((WORD(I).NE.173))GOTO 10077
            IF((L-I.LT.2))GOTO 10078
              J=1
              GOTO 10081
10079         J=J+(1)
10081         IF((J.GT.I))GOTO 10080
                LEFT(J)=WORD(J)
              GOTO 10079
10080         LEFT(J)=0
              IF((WIDTH(LEFT).GT.ROOM))GOTO 10082
                CALL SCOPY(WORD,I+1,RIGHT,1)
                RETURN
10082       CONTINUE
10078     CONTINUE
10077   CONTINUE
10076 GOTO 10068
10069 HYNATE=0
      RETURN
      END
      SUBROUTINE LEADBL(BUF)
      INTEGER BUF(134)
      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,J
      CALL BRK
      I=1
      GOTO 10085
10083 I=I+(1)
10085 IF((BUF(I).NE.160))GOTO 10084
      GOTO 10083
10084 IF((BUF(I).EQ.138))GOTO 10086
        TIVAL0=I-1+INVAL0
10086 J=1
      GOTO 10089
10087 J=J+(1)
10089 IF((BUF(I).EQ.0))GOTO 10088
        BUF(J)=BUF(I)
        I=I+(1)
      GOTO 10087
10088 BUF(J)=0
      RETURN
      END
      INTEGER FUNCTION NXBLNK(BUF,I)
      INTEGER BUF(1)
      INTEGER I
      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
      NXBLNK=EXTRB0
      IF((NXBLNK.NE.0))GOTO 10090
        RETURN
10090 IF((BUF(I).EQ.174))GOTO 10092
      IF((BUF(I).EQ.161))GOTO 10092
      IF((BUF(I).EQ.191))GOTO 10092
      IF((BUF(I).EQ.186))GOTO 10092
      GOTO 10091
10092   NXBLNK=1
        GOTO 10093
10091   IF((BUF(I).EQ.162))GOTO 10095
        IF((BUF(I).EQ.167))GOTO 10095
        IF((BUF(I).EQ.169))GOTO 10095
        IF((BUF(I).EQ.221))GOTO 10095
        IF((BUF(I).EQ.253))GOTO 10095
        IF((BUF(I).EQ.190))GOTO 10095
        GOTO 10094
10095   IF((BUF(I-1).EQ.174))GOTO 10096
        IF((BUF(I-1).EQ.161))GOTO 10096
        IF((BUF(I-1).EQ.191))GOTO 10096
        IF((BUF(I-1).EQ.186))GOTO 10096
        GOTO 10094
10096     NXBLNK=1
          GOTO 10097
10094     NXBLNK=0
10097 CONTINUE
10093 RETURN
      END
      SUBROUTINE PFOOT
      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 TITLE(1454)
      CALL SKIP(M3VAL0)
      IF((M4VAL0.LE.0))GOTO 10098
        IF((AND(CURPA0,1).NE.0))GOTO 10099
          CALL MASSIN(EVENF0,TITLE,1454)
          GOTO 10100
10099     CALL MASSIN(ODDFO0,TITLE,1454)
10100   CALL PUTTL(TITLE,CURPA0)
        CALL SKIP(M4VAL0-1)
10098 LINEN0=0
      NOSPA0=1
      RETURN
      END
      SUBROUTINE PHEAD
      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 C,TITLE(1454)
      CURPA0=NEWPA0
      NEWPA0=NEWPA0+(1)
      LINEN0=M1VAL0+M2VAL0+1
      IF((CURPA0.LT.START0))GOTO 10102
      IF((CURPA0.GT.ENDPA0))GOTO 10102
      GOTO 10101
10102   RETURN
10101 IF((STOPM0.NE.1))GOTO 10103
        CALL PUTCH(135,-15)
        CALL GETCH(C,-14)
10103 IF((M1VAL0.LE.0))GOTO 10104
        CALL SKIP(M1VAL0-1)
        IF((AND(CURPA0,1).NE.0))GOTO 10105
          CALL MASSIN(EVENH0,TITLE,1454)
          GOTO 10106
10105     CALL MASSIN(ODDHE0,TITLE,1454)
10106   CALL PUTTL(TITLE,CURPA0)
10104 CALL SKIP(M2VAL0)
      RETURN
      END
      SUBROUTINE PUT(BUF)
      INTEGER BUF(1)
      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,J,W,NUMBL,OFFSET
      INTEGER BUFFER(1454)
      NOSPA0=0
      IF((LINEN0.EQ.0))GOTO 10108
      IF((LINEN0.GT.BOTTO0))GOTO 10108
      GOTO 10107
10108   CALL PHEAD
10107 IF((CURPA0.LT.START0))GOTO 10109
      IF((CURPA0.GT.ENDPA0))GOTO 10109
        OFFSET=POVAL0
        IF((AND(CURPA0,1).EQ.0))GOTO 10110
          OFFSET=OFFSET+(OOVAL0)
          GOTO 10111
10110     OFFSET=OFFSET+(EOVAL0)
10111   NUMBL=OFFSET+LMVAL0+TIVAL0+MOVAL0-1
        I=1
        GOTO 10114
10112   I=I+(1)
10114   IF((I.GT.NUMBL))GOTO 10113
          BUFFER(I)=160
        GOTO 10112
10113   BUFFER(I)=0
        IF((MOVAL0.LE.0))GOTO 10115
          BUFFER(OFFSET+1)=TMCCH0
10115   IF((NUMBL.LE.0))GOTO 10116
          CALL PUTLIN(BUFFER,-11)
10116 CONTINUE
10109 TIVAL0=INVAL0
      TMCCH0=MCCHA0
      MCOUT0=1
      W=1
      J=1
      IF((CURPA0.LT.START0))GOTO 10117
      IF((CURPA0.GT.ENDPA0))GOTO 10117
        I=1
        GOTO 10120
10118   I=I+(1)
10120   IF((BUF(I).EQ.0))GOTO 10119
          IF((BUF(I).NE.TABCH0))GOTO 10121
10122         BUFFER(J)=REPLC0
              J=J+(1)
              W=W+(1)
            IF((TABSA0(W).EQ.1))GOTO 10123
            IF((W.GT.134))GOTO 10123
            GOTO 10122
10123       CONTINUE
            GOTO 10118
10121       IF((BUF(I).NE.136))GOTO 10125
              W=W-(1)
              GOTO 10126
10125         W=W+(1)
10126       BUFFER(J)=BUF(I)
            J=J+(1)
10124   GOTO 10118
10119   BUFFER(J)=0
        CALL PUTLIN(BUFFER,-11)
10117 CALL SKIP(MIN0(LSVAL0-1,BOTTO0-LINEN0))
      LINEN0=LINEN0+(LSVAL0)
      IF((LINEN0.LE.BOTTO0))GOTO 10127
        CALL PFOOT
10127 RETURN
      END
      SUBROUTINE PUTTAB
      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,LLVAL
      LLVAL=RMVAL0-TIVAL0-LMVAL0+1
      I=1
      GOTO 10130
10128 I=I+(1)
10130 IF((I.GE.OUTPA0))GOTO 10129
        IF((OUTBU0(I).NE.160))GOTO 10128
          OUTBU0(I)=32
10131 GOTO 10128
10129 CONTINUE
10132   IF((OUTWA0.LT.LLVAL))GOTO 10133
          GOTO 10134
10133   OUTBU0(OUTPA0)=REPLC0
        OUTPA0=OUTPA0+(1)
        OUTWA0=OUTWA0+(1)
      IF((TABSA0(OUTWA0+1).NE.1))GOTO 10132
10134 OUTWD0=1
      WORDL0=0
      RETURN
      END
      SUBROUTINE PUTTL(BUF,PAGENO)
      INTEGER BUF(1)
      INTEGER PAGENO
      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 TITLE(1454)
      INTEGER I
      INTEGER AAAAC0(4)
      DATA AAAAC0/170,163,248,0/
      IF((CURPA0.LT.START0))GOTO 10136
      IF((CURPA0.GT.ENDPA0))GOTO 10136
      GOTO 10135
10136   RETURN
10135 I=POVAL0+MOVAL0+LMVAL0-1
      IF((AND(CURPA0,1).EQ.0))GOTO 10137
        I=I+(OOVAL0)
        GOTO 10138
10137   I=I+(EOVAL0)
10138 CALL PRINT(-11,AAAAC0,I)
      CALL MKTL(BUF,PAGENO,TITLE,1454)
      CALL PUTLIN(TITLE,-11)
      RETURN
      END
      SUBROUTINE PUTW(WORD,WW,WL)
      INTEGER WORD(1)
      INTEGER WW,WL
      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 NXBLNK
      IF((WORDL0.EQ.1))GOTO 10140
      IF((OUTPA0.EQ.1))GOTO 10140
      GOTO 10139
10140   OUTWD0=OUTWD0+(1)
10139 CALL SCOPY(WORD,1,OUTBU0,OUTPA0)
      OUTPA0=OUTPA0+(WL)
      OUTWA0=OUTWA0+(WW)
      IF((NXBLNK(OUTBU0,OUTPA0-1).NE.1))GOTO 10141
        OUTBU0(OUTPA0)=32
        OUTPA0=OUTPA0+(1)
        OUTWA0=OUTWA0+(1)
10141 RETURN
      END
      SUBROUTINE PUTWRD(WRDBUF)
      INTEGER WRDBUF(1)
      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 LEFT(500),RIGHT(500)
      INTEGER WW,LLVAL,ROOM
      INTEGER WIDTH,LENGTH,HYNATE
      IF((WRDBUF(1).NE.TABCH0))GOTO 10142
        CALL PUTTAB
        GOTO 10143
10142   LLVAL=RMVAL0-TIVAL0-LMVAL0+1
        WW=WIDTH(WRDBUF)
        IF((WORDL0.NE.1))GOTO 10144
          OUTBU0(OUTPA0)=160
          OUTPA0=OUTPA0+(1)
          OUTWA0=OUTWA0+(1)
10144   ROOM=LLVAL-OUTWA0
        IF((WW.GT.ROOM))GOTO 10145
          CALL PUTW(WRDBUF,WW,LENGTH(WRDBUF))
          GOTO 10146
10145     IF((HYNATE(WRDBUF,ROOM,LEFT,RIGHT).NE.1))GOTO 10147
            CALL PUTW(LEFT,WIDTH(LEFT),LENGTH(LEFT))
            IF((ADJUS0.NE.226))GOTO 10148
              CALL SPREAD(OUTBU0,OUTPA0,LLVAL-OUTWA0,OUTWD0)
10148       CALL BRK
            CALL PUTW(RIGHT,WIDTH(RIGHT),LENGTH(RIGHT))
            GOTO 10149
10147       CONTINUE
10150         OUTPA0=OUTPA0-(1)
              OUTWA0=OUTWA0-(1)
            IF((OUTPA0.LT.1))GOTO 10151
            IF((OUTBU0(OUTPA0).EQ.160))GOTO 10150
            IF((OUTBU0(OUTPA0).EQ.32))GOTO 10150
            GOTO 10151
10151       CONTINUE
            OUTPA0=OUTPA0+(1)
            OUTWA0=OUTWA0+(1)
            IF((ADJUS0.NE.226))GOTO 10153
              CALL SPREAD(OUTBU0,OUTPA0,LLVAL-OUTWA0,OUTWD0)
10153       CALL BRK
            CALL PUTW(WRDBUF,WW,LENGTH(WRDBUF))
10149   CONTINUE
10146   WORDL0=1
10143 RETURN
      END
      SUBROUTINE SET(PARAM,VAL,ARGTYP,DEFVAL,MINVAL,MAXVAL)
      INTEGER PARAM,VAL,ARGTYP,DEFVAL,MINVAL,MAXVAL
      IF((ARGTYP.NE.138))GOTO 10154
        PARAM=DEFVAL
        GOTO 10155
10154   IF((ARGTYP.NE.171))GOTO 10156
          PARAM=PARAM+(VAL)
          GOTO 10157
10156     IF((ARGTYP.NE.173))GOTO 10158
            PARAM=PARAM-(VAL)
            GOTO 10159
10158       PARAM=VAL
10159   CONTINUE
10157 CONTINUE
10155 IF((PARAM.LE.MAXVAL))GOTO 10160
        PARAM=MAXVAL
        GOTO 10161
10160   IF((PARAM.GE.MINVAL))GOTO 10162
          PARAM=MINVAL
10162 CONTINUE
10161 RETURN
      END
      SUBROUTINE SETTAB(BUF)
      INTEGER BUF(1)
      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,N,L
      INTEGER CTOI
      L=1
      I=1
      GOTO 10165
10163 I=I+(1)
10165 IF((I.GT.134))GOTO 10164
        TABSA0(I)=0
      GOTO 10163
10164 I=1
      GOTO 10168
10166 I=I+(1)
10168 IF((BUF(I).EQ.160))GOTO 10167
      IF((BUF(I).EQ.137))GOTO 10167
      IF((BUF(I).EQ.138))GOTO 10167
      GOTO 10166
10167 CONTINUE
10169   N=CTOI(BUF,I)
        IF((N.NE.0))GOTO 10170
          IF((BUF(I).NE.138))GOTO 10171
            GOTO 10178
10171       I=I+(1)
            GOTO 10169
10170   IF((N.LT.1))GOTO 10174
        IF((N.GT.134))GOTO 10174
          TABSA0(N)=1
          IF((L.GE.N))GOTO 10175
            L=N
10175   CONTINUE
10174 CONTINUE
10173 GOTO 10169
10176 L=L+(1)
10178 IF((L.GT.134))GOTO 10177
        TABSA0(L)=1
      GOTO 10176
10177 RETURN
      END
      SUBROUTINE SPACE(N)
      INTEGER N
      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
      IF((LINEN0.LE.BOTTO0))GOTO 10179
        RETURN
10179 IF((LINEN0.NE.0))GOTO 10180
        CALL PHEAD
10180 CALL SKIP(MIN0(N,BOTTO0+1-LINEN0))
      LINEN0=LINEN0+(N)
      IF((LINEN0.LE.BOTTO0))GOTO 10181
        CALL PFOOT
10181 RETURN
      END
      SUBROUTINE SPREAD(BUF,OUTP,NEXTRA,OUTWDS)
      INTEGER BUF(1)
      INTEGER OUTP,NEXTRA,OUTWDS
      INTEGER DIR,I,J,NB,NUME,NHOLES
      DATA DIR/0/
      IF((NEXTRA.LE.0))GOTO 10183
      IF((OUTWDS.LE.1))GOTO 10183
      GOTO 10182
10183   RETURN
10182 DIR=1-DIR
      NUME=NEXTRA
      NHOLES=OUTWDS-1
      I=OUTP-1
      J=MIN0(1454-2,I+NUME)
10184 IF((I.GE.J))GOTO 10185
        BUF(J)=BUF(I)
        IF((BUF(I).NE.160))GOTO 10186
          IF((DIR.NE.0))GOTO 10187
            NB=(NUME-1)/NHOLES+1
            GOTO 10188
10187       NB=NUME/NHOLES
10188     NUME=NUME-(NB)
          NHOLES=NHOLES-(1)
          GOTO 10191
10189     NB=NB-(1)
10191     IF((NB.LE.0))GOTO 10190
            J=J-(1)
            BUF(J)=160
          GOTO 10189
10190   CONTINUE
10186   I=I-(1)
        J=J-(1)
      GOTO 10184
10185 OUTP=OUTP+(NEXTRA)
      RETURN
      END
      INTEGER FUNCTION SUFFIX(STR)
      INTEGER STR(1)
      INTEGER I
      INTEGER STRBSR
      INTEGER LCSTR(134)
      INTEGER MAPDN
      INTEGER SUFPTR(3)
      INTEGER SUFFI0(9)
      DATA SUFFI0/233,238,231,0,244,233,239,238,0/
      DATA SUFPTR/2,1,5/
      I=1
      GOTO 10194
10192 I=I+(1)
10194 IF((STR(I).EQ.0))GOTO 10193
        LCSTR(I)=MAPDN(STR(I))
      GOTO 10192
10193 LCSTR(I)=0
      IF((STRBSR(SUFPTR,SUFFI0,0,LCSTR).EQ.-1))GOTO 10195
        SUFFIX=1
        GOTO 10196
10195   SUFFIX=0
10196 RETURN
      END
      INTEGER FUNCTION ITALIC(BUF,TBUF,SIZE)
      INTEGER SIZE
      INTEGER BUF(1),TBUF(SIZE)
      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,J,SIZEM0
      INTEGER AAAAD0(16)
      DATA AAAAD0/188,188,170,243,190,190,160,188,188,170,233,190,190,17
     *0,238,0/
      CALL PRINT(-15,AAAAD0,BUF,SIZE)
      J=1
      SIZEM0=SIZE-1
      I=1
      GOTO 10199
10197 I=I+(1)
10199 IF((BUF(I).EQ.0))GOTO 10198
        IF((BUF(I).EQ.TABCH0))GOTO 10200
        IF((BUF(I).LT.160))GOTO 10200
        IF((BUF(I).EQ.160))GOTO 10200
          IF((J.GE.SIZEM0))GOTO 10198
            TBUF(J)=BUF(I)
            J=J+(1)
            TBUF(J)=136
            J=J+(1)
            GOTO 10202
10202   CONTINUE
10200   IF((J.GE.SIZE))GOTO 10198
          IF((BUF(I).NE.160))GOTO 10204
            TBUF(J)=BUF(I)
            J=J+(1)
            GOTO 10197
10204       IF((BUF(I).LT.160))GOTO 10206
              TBUF(J)=223
              J=J+(1)
10206     CONTINUE
10205     GOTO 10197
10198 TBUF(J)=0
      ITALIC=J-1
      RETURN
      END
      INTEGER FUNCTION UNDERL(BUF,TBUF,SIZE,CFLAG)
      INTEGER SIZE,CFLAG
      INTEGER BUF(1),TBUF(SIZE)
      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,J,SIZEM0
      INTEGER INDEX
      INTEGER SCHARS(13)
      DATA SCHARS/163,164,165,166,167,189,173,254,222,192,171,170,0/
      J=1
      SIZEM0=SIZE-1
      I=1
      GOTO 10210
10208 I=I+(1)
10210 IF((BUF(I).EQ.0))GOTO 10209
        IF((BUF(I).EQ.TABCH0))GOTO 10211
        IF((BUF(I).LT.160))GOTO 10211
        IF((CFLAG.NE.0))GOTO 10212
        IF((193.GT.BUF(I)))GOTO 10213
        IF((BUF(I).GT.218))GOTO 10213
        GOTO 10212
10213   IF((225.GT.BUF(I)))GOTO 10214
        IF((BUF(I).GT.250))GOTO 10214
        GOTO 10212
10214   IF((176.GT.BUF(I)))GOTO 10215
        IF((BUF(I).GT.185))GOTO 10215
        GOTO 10212
10215   IF((INDEX(SCHARS,BUF(I)).NE.0))GOTO 10212
        GOTO 10211
10212     IF((J.GE.SIZEM0))GOTO 10209
            TBUF(J)=223
            J=J+(1)
            TBUF(J)=136
            J=J+(1)
            GOTO 10217
10217   CONTINUE
10211   IF((J.GE.SIZE))GOTO 10209
          TBUF(J)=BUF(I)
          J=J+(1)
          GOTO 10208
10209 TBUF(J)=0
      UNDERL=J-1
      RETURN
      END
C ---- Long Name Map ----
C Fill                           filla0
C Nbcch                          nbcch0
C Spchartable                    spcha0
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 sizeminus1                     sizem0
C Firstmacro                     first0
C Argv                           argva0
C suffixes                       suffi0
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 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
