      INTEGER ARG(128)
      INTEGER UNIT,FOUT
      INTEGER OPEN,CREATE,GETNE0
      INTEGER OUTFI0(8)
      DATA OUTFI0/236,233,226,174,239,245,244,0/
      FOUT=CREATE(OUTFI0,2)
      IF((FOUT.NE.-3))GOTO 10000
        CALL CANT(OUTFI0)
10000 CONTINUE
10001 IF((GETNE0(ARG).EQ.-1))GOTO 10002
        UNIT=OPEN(ARG,1)
        IF((UNIT.NE.-3))GOTO 10003
          CALL CANT(ARG)
10003   CALL FCOPY(UNIT,FOUT)
        CALL CLOSE(UNIT)
      GOTO 10001
10002 CALL CLOSE(FOUT)
      CALL SWT
      END
      INTEGER FUNCTION GETNE0(ARG)
      INTEGER ARG(1)
      INTEGER GETARG,GETLIN
      INTEGER COUNT,LEN
      DATA COUNT/0/
      IF((GETARG(1,ARG,128).EQ.-1))GOTO 10004
        COUNT=COUNT+1
        GETNE0=GETARG(COUNT,ARG,128)
        GOTO 10005
10004   LEN=GETLIN(ARG,-10,128)
        IF((LEN.NE.-1))GOTO 10006
          GETNE0=-1
          GOTO 10007
10006     ARG(LEN)=0
          GETNE0=LEN-1
10007 CONTINUE
10005 RETURN
      END
      SUBROUTINE FCOPY(FIN,FOUT)
      INTEGER FIN,FOUT
      INTEGER GETBY0
      INTEGER B
10008 IF((GETBY0(B,FIN).NE.-2))GOTO 10009
        CALL PUTBY0(B,FOUT)
      GOTO 10008
10009 RETURN
      END
      INTEGER FUNCTION GETBY0(B,FD)
      INTEGER B,FD
      INTEGER JUNK,RC
      INTEGER MAPFD
      CALL PRWF$$(:1,MAPFD(FD),LOC(B),1,INTL(0),JUNK,RC)
      IF((RC.NE.0))GOTO 10010
        GETBY0=-2
        GOTO 10011
10010   GETBY0=-3
10011 RETURN
      END
      SUBROUTINE PUTBY0(B,FD)
      INTEGER B,FD
      INTEGER W,JUNK
      INTEGER MAPFD
      W=RT(B,8)
      CALL PRWF$$(:2,MAPFD(FD),LOC(W),1,INTL(0),JUNK,JUNK)
      RETURN
      END
C ---- Long Name Map ----
C putbyte                        putby0
C getbyte                        getby0
C outfile                        outfi0
C getnext                        getne0