      PROGRAM COPYS
      IMPLICIT INTEGER (A-Z)

      COMMON /FILES/ INPUT, OUTPUT

      LOGICAL ENDF
      DIMENSION IFIT(40), OFIT(40)
      DIMENSION IWSA(512)

      CALL FILESQ (IFIT, L"LFN", INPUT,
     +    L"RT", L"S", L"BT", L"C",  L"MBL", 5120,
     +    L"BFS", O"10000")
      CALL FILESQ (OFIT, L"LFN", OUTPUT,
     +    L"RT", L"U", L"BT", L"C", L"MBL",  5120,
     +    L"MRL", 5120, L"BFS", O"10000")
      CALL OPENM (IFIT, L"INPUT", L"N")
      CALL OPENM (OFIT, L"OUTPUT", L"N")
      ENDF = .FALSE.

10    PTL = 5120
      CALL GETP (IFIT, IWSA, PTL)
      FP = IFETCH(IFIT, L"FP")
      PTL = IFETCH(IFIT, L"PTL")
      IF (PTL .NE. 0)  CALL PUT (OFIT, IWSA, PTL)
      IF (FP .NE. O"40") GO TO 20
        CALL ENDFILE (OFIT)

20    IF (FP .NE. O"100") GO TO 30
        CALL CLOSEM (IFIT, L"N")
        CALL CLOSEM (OFIT, L"N")
        ENDF = .TRUE.

30    CALL WEOR (OFIT)

      IF (.NOT. ENDF) GOTO 10

      CALL ENDRUN
      END
          IDENT  DSMNBCS

          ENTRY  DSMNBCS
          ENTRY  ENDRUN

          SYSCOM B1

          USE    /FILES/
 INPUT    DATA   0LINPUT
 OUTPUT   DATA   0LOUTPUT
          USE    *

 DSMNBCS  SB1    1
          SA1    RA.ACT
          SX5    X1

          ZR     X5,CRACK.4        IF NO PARAMETERS
          R=     A2,RA.ARG
          MX0    42
          SA1    A2+B1
          BX6    X0*X2
          BX7    X0*X1
          BX3    -X0*X2
          SX5    X5-1
          BX4    -X0*X1
          SX2    COPYSA            * FILE NAME TOO LONG.*
          ZR     X6,CRACK.1        IF FIRST PARAMETER NULL (USE DEFAULT)
          SA6    INPUT
          ZR     X3,ERROR          IF FILE NAME TOO LONG

 CRACK.1  ZR     X5,CRACK.3        IF ONLY 1 PARAMETER
          ZR     X4,ERROR          IF FILE NAME TOO LONG
          SX2    COPYSB            * TOO MANY PARAMETERS SPECIFIED.*
          SX5    X5-1
          ZR     X7,CRACK.2        IF 2ND PARAMETER NULL (USE DEFAULT)
          SA7    OUTPUT

 CRACK.2  NZ     X5,ERROR          IF TOO MANY PARAMETERS

 CRACK.3  SA1    INPUT             CALL FORTRAN PROGRAM
          SA3    OUTPUT
          SX2    COPYSC            * FILE NAME CONFLICT.*
          BX6    X1-X3
          ZR     X6,ERROR          IF INPUT AND OUTPUT FILES SAME

 CRACK.4  EQ     =XCOPYS           CALL FORTRAN PROGRAM

 ERROR    MESSAGE X2,,R
          ABORT  ,ND

 COPYSA   DATA   C* DSMNBCS - FILE NAME TOO LONG.*
 COPYSB   DATA   C* DSMNBCS - TOO MANY PARAMETERS SPECIFIED.*
 COPYSC   DATA   C* DSMNBCS - FILE NAME CONFLICT.*


 ENDRUN   DATA   0
          MESSAGE ENDRUNA,,R
          ENDRUN

 ENDRUNA  DATA   C* DSMNBCS COMPLETE.*

          END    DSMNBCS

