      INTEGER A$BUF(200)
      INTEGER NAME(102),HEADI0(102)
      INTEGER IFD
      INTEGER STATE(4)
      INTEGER OPEN,EQUAL,GFNARG,GVLARG
      INTEGER PARSCL
      INTEGER AAAAA0(31)
      INTEGER AAAAB0
      INTEGER AAAAC0(12)
      INTEGER AAAAD0(17)
      INTEGER AAAAE0(12)
      INTEGER AAAAF0(17)
      INTEGER AAAAG0(12)
      INTEGER AAAAH0(17)
      INTEGER AAAAI0
      DATA AAAAA0/233,188,242,233,190,234,236,188,242,233,190,237,188,24
     *2,233,190,240,160,232,188,233,231,238,190,238,188,233,231,238,190,
     *0/
      DATA AAAAC0/175,228,229,246,175,243,244,228,233,238,177,0/
      DATA AAAAD0/211,244,225,238,228,225,242,228,160,201,238,240,245,24
     *4,160,177,0/
      DATA AAAAE0/175,228,229,246,175,243,244,228,233,238,178,0/
      DATA AAAAF0/211,244,225,238,228,225,242,228,160,201,238,240,245,24
     *4,160,178,0/
      DATA AAAAG0/175,228,229,246,175,243,244,228,233,238,179,0/
      DATA AAAAH0/211,244,225,238,228,225,242,228,160,201,238,240,245,24
     *4,160,179,0/
      IF((PARSCL(AAAAA0,A$BUF).NE.-3))GOTO 10000
        CALL ERROR('Usage: print {-{i<indent>|j|l<length>|m<margin>|p}}
     *{-h <head> | <file>}.')
10000 IF((A$BUF(236-225+1).EQ.2))GOTO 10001
        A$BUF(236-225+27)=66
10001 IF((A$BUF(237-225+1).EQ.2))GOTO 10002
        A$BUF(237-225+27)=6
10002 IF((A$BUF(240-225+1).EQ.0))GOTO 10003
        IF((A$BUF(233-225+1).EQ.2))GOTO 10004
          A$BUF(233-225+27)=5
10004   GOTO 10005
10003   IF((A$BUF(233-225+1).EQ.2))GOTO 10006
          A$BUF(233-225+27)=0
10006 CONTINUE
10005 STATE(1)=1
      HEADI0(1)=0
10007   AAAAB0=GFNARG(NAME,STATE)
        GOTO 10008
10009     GOTO 10010
10011     IFD=OPEN(NAME,1)
          IF((IFD.NE.-3))GOTO 10012
            CALL PRINT(-15,'*s: can''t open*n.',NAME)
            GOTO 10013
10012       GOTO 10014
10015         CALL FPRINT(HEADI0,IFD,A$BUF)
            GOTO 10016
10017         CALL FPRINT(AAAAD0,IFD,A$BUF)
            GOTO 10016
10018         CALL FPRINT(AAAAF0,IFD,A$BUF)
            GOTO 10016
10019         CALL FPRINT(AAAAH0,IFD,A$BUF)
            GOTO 10016
10014       IF((HEADI0(1).NE.0))GOTO 10015
            IF((EQUAL(NAME,AAAAC0).EQ.1))GOTO 10017
            IF((EQUAL(NAME,AAAAE0).EQ.1))GOTO 10018
            IF((EQUAL(NAME,AAAAG0).EQ.1))GOTO 10019
              CALL FPRINT(NAME,IFD,A$BUF)
10016       CALL CLOSE(IFD)
10013   GOTO 10020
10021     CALL GVLARG(HEADI0,STATE)
        GOTO 10020
10008   AAAAI0=AAAAB0+4
        GOTO(10021,10011,10009),AAAAI0
10020 CONTINUE
      GOTO 10007
10010 CALL SWT
      END
      SUBROUTINE FPRINT(NAME,FIN,A$BUF)
      INTEGER NAME(1)
      INTEGER FIN
      INTEGER A$BUF(200)
      INTEGER C,DATE(12),TIME(9),LINE(134),BUF(134)
      INTEGER PAGENO,LINENO,J,BOTTOM,COLUMN,MAXCOL,EJECT,TMARG
      INTEGER GETLIN
      INTEGER AAAAJ0
      INTEGER AAAAK0
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER LENGTH
      INTEGER AAAAO0(41)
      INTEGER AAAAP0(4)
      DATA AAAAO0/160,160,160,160,160,160,160,160,160,160,160,160,160,16
     *0,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
     *160,160,160,160,160,160,160,160,160,160,0/
      DATA AAAAP0/170,163,248,0/
      PAGENO=1
      LINENO=0
      TMARG=A$BUF(237-225+27)/2
      BOTTOM=A$BUF(236-225+27)-A$BUF(237-225+27)
      CALL GETDA0(DATE)
      CALL GETTI0(TIME)
10024 IF((GETLIN(BUF,FIN,134).EQ.-1))GOTO 10025
        EJECT=0
        COLUMN=0
        MAXCOL=0
        J=1
        GOTO 10028
10026   J=J+(1)
10028   IF((BUF(J).EQ.0))GOTO 10027
          C=BUF(J)
          AAAAL0=OR(C,128)
          GOTO 10029
10030       EJECT=1
          GOTO 10031
10032       COLUMN=COLUMN-(1)
          GOTO 10031
10033       COLUMN=0
          GOTO 10031
10034       CONTINUE
10035         COLUMN=COLUMN+(1)
              IF((COLUMN.LE.0))GOTO 10036
              IF((COLUMN.GE.134))GOTO 10036
                LINE(COLUMN)=160
                IF((COLUMN.LE.MAXCOL))GOTO 10037
                  MAXCOL=COLUMN
10037         CONTINUE
10036       CONTINUE
            IF((AND(COLUMN,7).NE.0))GOTO 10035
          GOTO 10031
10038       COLUMN=COLUMN+(1)
            IF((COLUMN.LE.0))GOTO 10039
            IF((COLUMN.GE.134))GOTO 10039
              LINE(COLUMN)=138
              IF((COLUMN.LE.MAXCOL))GOTO 10040
                MAXCOL=COLUMN
10040       CONTINUE
10039     GOTO 10031
10041       COLUMN=COLUMN+(1)
            IF((COLUMN.LE.0))GOTO 10042
            IF((COLUMN.GE.134))GOTO 10042
              LINE(COLUMN)=C
              IF((COLUMN.LE.MAXCOL))GOTO 10043
                MAXCOL=COLUMN
10043       CONTINUE
10042     GOTO 10031
10029     AAAAM0=AAAAL0-135
          GOTO(10032,10034,10038,10044,10030,10033,10044,10044,10044,100
     *44,10044,10044,10044,10044,10044,10044,10044,10044,10044,10044,100
     *44,10044,10044,10044,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41,10041,10041,10041,10041,10041,10041,10041,10041,10041,10041,100
     *41),AAAAM0
10044     CONTINUE
10031   GOTO 10026
10027   LINE(MAXCOL+1)=0
        IF((LINENO.GE.BOTTOM))GOTO 10046
        IF((LINENO.EQ.0))GOTO 10046
        IF((EJECT.NE.0))GOTO 10046
        GOTO 10045
10046     IF((LINENO.LE.0))GOTO 10047
            AAAAJ0=1
            GOTO 10022
10048     CONTINUE
10047     CALL SKIP(A$BUF(237-225+27)-TMARG-1,-11)
          IF((A$BUF(237-225+27).LE.0))GOTO 10049
            AAAAK0=1
            GOTO 10023
10050     CONTINUE
10049     CALL SKIP(TMARG,-11)
          LINENO=A$BUF(237-225+27)
10045   IF((A$BUF(233-225+27).LE.0))GOTO 10051
          CALL PRINT(-11,'*#x.',A$BUF(233-225+27))
10051   CALL PUTLIN(LINE,-11)
        LINENO=LINENO+(1)
      GOTO 10024
10025 IF((LINENO.LE.0))GOTO 10052
        AAAAJ0=2
        GOTO 10022
10053 CONTINUE
10052 RETURN
10022 IF((A$BUF(240-225+1).NE.0))GOTO 10055
      IF((A$BUF(234-225+1).NE.0))GOTO 10055
      GOTO 10054
10055   CALL PUTCH(140,-11)
        CALL PUTCH(138,-11)
        GOTO 10056
10054   CALL SKIP(A$BUF(236-225+27)-LINENO,-11)
10056 PAGENO=PAGENO+(1)
      GOTO 10057
10023 CALL PRINT(-11,AAAAP0,A$BUF(233-225+27))
      AAAAN0=41-MAX0(40-LENGTH(NAME),0)
      CALL PRINT(-11,'*s*s  *s  *s  page *i*n.',NAME,AAAAO0(AAAAN0),DATE
     *,TIME,PAGENO)
      GOTO 10058
10057 GOTO(10048,10053),AAAAJ0
      GOTO 10057
10058 GOTO 10050
      END
      SUBROUTINE SKIP(N,FOUT)
      INTEGER N,FOUT
      INTEGER I
      I=1
      GOTO 10061
10059 I=I+(1)
10061 IF((I.GT.N))GOTO 10060
        CALL PUTCH(138,FOUT)
      GOTO 10059
10060 RETURN
      END
      SUBROUTINE GETDA0(SDATE)
      INTEGER SDATE(12)
      INTEGER MONTH,I
      INTEGER CTOI
      INTEGER MMDDYY(9)
      INTEGER SPOS(13)
      INTEGER SMON(48)
      INTEGER AAAAQ0(15)
      DATA SMON/202,225,238,0,198,229,226,0,205,225,242,0,193,240,242,0,
     *205,225,249,0,202,245,238,0,202,245,236,0,193,245,231,0,211,229,24
     *0,0,207,227,244,0,206,239,246,0,196,229,227,0/
      DATA SPOS/12,1,5,9,13,17,21,25,29,33,37,41,45/
      DATA AAAAQ0/170,243,160,170,172,178,243,160,177,185,170,172,178,24
     *3,0/
      CALL DATE(1,MMDDYY)
      I=1
      MONTH=CTOI(MMDDYY,I)
      CALL ENCODE(SDATE,12,AAAAQ0,SMON(SPOS(MONTH+1)),MMDDYY(4),MMDDYY(7
     *))
      RETURN
      END
      SUBROUTINE GETTI0(STIME)
      INTEGER STIME(9)
      INTEGER I,HOUR
      INTEGER CTOI
      INTEGER HHMMSS(9),AMPM
      INTEGER AAAAR0(13)
      DATA AAAAR0/170,178,233,186,170,172,178,243,160,170,227,237,0/
      CALL DATE(2,HHMMSS)
      I=1
      HOUR=CTOI(HHMMSS,I)
      IF((HOUR.LT.12))GOTO 10062
        AMPM=240
        GOTO 10063
10062   AMPM=225
10063 CALL ENCODE(STIME,9,AAAAR0,MOD(HOUR+11,12)+1,HHMMSS(4),AMPM)
      RETURN
      END
C ---- Long Name Map ----
C newpage                        newpa0
C gettime                        getti0
C heading                        headi0
C getdate                        getda0