      INTEGER C
      INTEGER OBA(1454)
      INTEGER OBF(1454)
      INTEGER OUL(1454)
      INTEGER OUBF(1454)
      INTEGER IBUF(1454)
      INTEGER I,IBP,OBP,NEWLI0,TOPCH0,EMPTY
      INTEGER PAGES0,LINEC0,OVERS0
      INTEGER GETLIN
      INTEGER A$BUF(200)
      INTEGER AAAAA0
      INTEGER PARSCL
      INTEGER AAAAB0(8)
      INTEGER AAAAC0(34)
      INTEGER AAAAD0(22)
      INTEGER AAAAE0(23)
      INTEGER AAAAF0(21)
      INTEGER AAAAG0(21)
      INTEGER AAAAH0(6)
      INTEGER AAAAI0(18)
      INTEGER AAAAJ0(23)
      INTEGER AAAAK0(33)
      INTEGER AAAAL0(15)
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER AAAAO0
      INTEGER AAAAP0(5)
      INTEGER AAAAQ0(6)
      DATA AAAAB0/233,160,236,188,242,233,190,0/
      DATA AAAAC0/213,243,225,231,229,186,160,236,250,160,219,173,233,22
     *1,160,219,173,236,160,188,240,225,231,229,160,236,229,238,231,244,
     *232,190,221,0/
      DATA AAAAD0/160,160,160,196,202,196,197,160,196,213,208,204,197,21
     *6,189,217,197,211,172,170,238,0/
      DATA AAAAE0/160,160,160,196,202,196,197,160,198,207,206,212,201,20
     *6,196,197,216,189,176,172,170,238,0/
      DATA AAAAF0/160,160,160,196,202,196,197,160,198,207,210,205,189,20
     *6,207,206,197,172,170,238,0/
      DATA AAAAG0/160,160,160,196,202,196,197,160,198,207,210,205,193,21
     *2,189,170,243,172,170,238,0/
      DATA AAAAH0/199,212,208,198,182,0/
      DATA AAAAI0/160,160,160,196,202,196,197,160,194,207,198,189,170,23
     *3,172,170,238,0/
      DATA AAAAJ0/160,160,160,196,202,196,197,160,196,193,212,193,189,16
     *8,177,172,170,233,169,172,170,238,0/
      DATA AAAAK0/160,160,160,196,202,196,197,160,211,201,196,197,189,16
     *8,206,213,194,193,195,203,172,206,207,198,198,211,197,212,169,172,
     *170,238,0/
      DATA AAAAL0/160,160,160,196,202,196,197,160,197,206,196,187,170,23
     *8,0/
      DATA AAAAP0/177,177,170,238,0/
      DATA AAAAQ0/160,170,227,170,238,0/
      IF((PARSCL(AAAAB0,A$BUF).NE.-3))GOTO 10001
        CALL ERROR(AAAAC0)
10001 IF((A$BUF(236-225+1).EQ.2))GOTO 10002
        A$BUF(236-225+27)=87
10002 PAGES0=A$BUF(236-225+27)
      LINEC0=PAGES0
      OVERS0=0
      NEWLI0=1
      TOPCH0=0
      IBP=0
      IBUF(1)=0
      DO 10003 I=1,1454
        OBA(I)=160
        OBF(I)=160
        OUL(I)=160
        OUBF(I)=160
10003 CONTINUE
10004 CALL PRINT(-11,AAAAD0)
      CALL PRINT(-11,AAAAE0)
      CALL PRINT(-11,AAAAF0)
      CALL PRINT(-11,AAAAG0,AAAAH0)
      CALL PRINT(-11,AAAAI0,PAGES0)
      CALL PRINT(-11,AAAAJ0,100)
      CALL PRINT(-11,AAAAK0)
      CALL PRINT(-11,AAAAL0)
10005   OBP=0
        EMPTY=1
10006     IBP=IBP+(1)
          C=IBUF(IBP)
10007     IF((C.NE.0))GOTO 10008
            IF((GETLIN(IBUF,-10,1454).NE.-1))GOTO 10009
              GOTO 10010
10009       IBP=1
            C=IBUF(IBP)
          GOTO 10007
10008     AAAAM0=C
          GOTO 10011
10012       GOTO 10013
10014       AAAAA0=1
            GOTO 10000
10015       LINEC0=PAGES0
          GOTO 10016
10017       OBP=OBP-(1)
          GOTO 10016
10018       OBP=OBP+(1)
          GOTO 10016
10011     AAAAN0=AAAAM0-7
          GOTO(10017,10019,10019,10019,10014),AAAAN0
          IF(AAAAM0.EQ.32)GOTO 10018
          AAAAN0=AAAAM0-135
          GOTO(10017,10019,10012,10019,10014),AAAAN0
          IF(AAAAM0.EQ.160)GOTO 10018
10019       IF((OR(C,128).LT.160))GOTO 10020
              OBP=OBP+(1)
              EMPTY=0
              IF((0.GE.OBP))GOTO 10021
              IF((OBP.GE.1454))GOTO 10021
                IF((C.NE.223))GOTO 10022
                  IF((OUL(OBP).NE.C))GOTO 10023
                    OUBF(OBP)=C
                    GOTO 10024
10023               OUL(OBP)=C
10024             GOTO 10025
10022             IF((OBA(OBP).NE.C))GOTO 10026
                    OBF(OBP)=C
                    GOTO 10027
10026               OBA(OBP)=C
10027           CONTINUE
10025           IF((TOPCH0.GE.OBP))GOTO 10028
                  TOPCH0=OBP
10028         CONTINUE
10021       CONTINUE
10020     CONTINUE
10016   CONTINUE
        GOTO 10006
10013   AAAAA0=2
        GOTO 10000
10029 CONTINUE
      GOTO 10005
10010 CALL SWT
10000 LINEC0=LINEC0+(1)
      IF((LINEC0.LE.PAGES0))GOTO 10030
        IF((NEWLI0.LE.0))GOTO 10031
          CALL PRINT(-11,AAAAP0)
          OVERS0=1
          NEWLI0=0
10031   LINEC0=1
10030 IF((EMPTY.NE.0))GOTO 10032
        GOTO 10035
10033   NEWLI0=NEWLI0-(1)
10035   IF((NEWLI0.LE.0))GOTO 10034
          CALL PRINT(-11,AAAAQ0,177)
        GOTO 10033
10034   AAAAO0=1
        GOTO 10038
10036   AAAAO0=AAAAO0+(1)
10038   IF((AAAAO0.GT.TOPCH0))GOTO 10037
          IF((OBF(AAAAO0).EQ.160))GOTO 10039
            OBA(AAAAO0)=160
10039     IF((OUBF(AAAAO0).EQ.160))GOTO 10040
            OUL(AAAAO0)=160
10040     IF((A$BUF(233-225+1).EQ.0))GOTO 10041
            IF((OUL(AAAAO0).EQ.160))GOTO 10042
              OUL(AAAAO0)=OBA(AAAAO0)
              OBA(AAAAO0)=160
10042     CONTINUE
10041   GOTO 10036
10037   CALL TRIM(OBA,TOPCH0)
        IF((OVERS0.NE.1))GOTO 10043
          CALL PUTCH(171,-11)
          GOTO 10044
10043     CALL PUTCH(160,-11)
10044   CALL PUTCH(177,-11)
        CALL PUTLIN(OBA,-11)
        CALL CLEAR(OBA,TOPCH0)
        OVERS0=0
        CALL TRIM(OBF,TOPCH0)
        IF((OBF(1).EQ.138))GOTO 10045
          CALL PUTCH(171,-11)
          CALL PUTCH(178,-11)
          CALL PUTLIN(OBF,-11)
10045   CALL CLEAR(OBF,TOPCH0)
        CALL TRIM(OUL,TOPCH0)
        IF((OUL(1).EQ.138))GOTO 10046
          CALL PUTCH(171,-11)
          IF((A$BUF(233-225+1).NE.0))GOTO 10047
            CALL PUTCH(177,-11)
            GOTO 10048
10047       CALL PUTCH(179,-11)
10048     CALL PUTLIN(OUL,-11)
10046   CALL CLEAR(OUL,TOPCH0)
        CALL TRIM(OUBF,TOPCH0)
        IF((OUBF(1).EQ.138))GOTO 10049
          CALL PUTCH(171,-11)
          CALL PUTCH(178,-11)
          CALL PUTLIN(OUBF,-11)
10049   CALL CLEAR(OUBF,TOPCH0)
        GOTO 10050
10032   NEWLI0=NEWLI0+(1)
10050 TOPCH0=0
      GOTO 10051
10051 GOTO(10015,10029),AAAAA0
      GOTO 10051
      END
      SUBROUTINE TRIM(BUF,TOP)
      INTEGER BUF(1454)
      INTEGER TOP
      INTEGER I
      I=MIN0(TOP,1454-2)
      GOTO 10054
10052 I=I-(1)
10054 IF((I.LE.0))GOTO 10053
        IF((BUF(I).EQ.160))GOTO 10055
          GOTO 10053
10055 GOTO 10052
10053 BUF(I+1)=138
      BUF(I+2)=0
      RETURN
      END
      SUBROUTINE CLEAR(BUF,TOP)
      INTEGER BUF(1454)
      INTEGER TOP
      INTEGER I
      I=1
      GOTO 10058
10056 I=I+(1)
10058 IF((I.GT.TOP+2))GOTO 10057
        BUF(I)=160
      GOTO 10056
10057 RETURN
      END
C ---- Long Name Map ----
C newlines                       newli0
C topchar                        topch0
C linectr                        linec0
C overstrike                     overs0
C dumpbuffer                     dumpb0
C pagesize                       pages0
