.cs 1 on
The SPROSC  command  copies  a file or files from tape to disk.  By default,  a
tape is read  from the current  position,  but the user may instead  request  a
specific   file  number.   SPROSC  will  also  do  limited  label-checking   on
standard-label  tapes - the user may request that the tape and/or data set name
be verified before copying.   Any validation  failure aborts the command.  When
multiple files are to be read, only the first one's name can be verified.
 
SPROSC is  most convenient for  labeled volumes, but it  may be used  even with
unlabeled tapes, provided that the user knows the relevant DCB information (see
the O/S JCL  Reference Manual for a  full description of DCB  parameters if you
dare).  Most DCB information can usually be omitted anyway because defaults are
supplied or  because the information is  irrelevant under CMS.  SPROSC  has the
option of deblocking or reblocking files in the process of copying.
 
Input data from  an ASCII source will  be translated to EBCDIC  by default (the
source can be declared "ASCII" either  explicitly in the command or implicitly,
by  the presence  of  ANSI  standard labels).   In  addition,  files from  ANSI
standard-label tapes  are automatically  converted from  VAX-style VFC  to ANSI
carriage control if necessary.
 
Normally, SPROSC will overwrite  any existing CMS file of the  chosen name, but
when the tape file is the continuation of a multi-reel dataset (as indicated by
a volume  SEQUENCE number  greater than  1 in  the header  label), SPROSC  will
append the file to an existing file of the same name, if any.
 
Optionally, before  copying from  tape, SPROSC  will position  the tape  to the
requested file.  A labeled tape is positioned by reading the labels and spacing
forward or  backward as needed.   An unlabeled tape  is first rewound  and then
spaced forward to the correct file.  When the command has finished copying, the
tape is normally positioned at the next file, that is, after the file mark that
ends the trailer labels (on a labeled tape) or the data (on an unlabeled tape).
 
If the disk file-id is omitted from  the command, SPROSC will just position the
tape to the correct file.  If the tape  is labeled, SPROSC will display the DSN
and leave  the tape positioned  at the beginning of  the header file.
 
Examples:
 
1. Copy 4  files from a labeled tape,  beginning with file 7,  keeping the same
   file names, deblocking if necessary.
 
       SPROSC TAP1 = (SL 7 EOF 4
 
2.  Copy file  12 from  a non-labeled  tape,  using file-id  "fn ft",  assuming
   OS-style varying-length record format (VBS).
 
       SPROSC TAP1 fn ft A4 (NL 12
 
3. Copy the current file from a non-labeled tape, assuming fixed-length 80-byte
   records, deblocking if necessary.
 
       SPROSC TAP1 fn ft (RECFM F
 
4. Copy  a two-reel file from  labeled tapes, starting  at file 3 of  the first
   tape.
 
       SPROSC TAP1 = (SL 3
       SPROSC TAP2 = (SL 1
 
5. Copy all files  with names  beginning with  the string "IK0"  from the whole
   tape.
 
       SPROSC TAP1 = = A1 (SL 1 EOT PREFIX IK0
 
Problems/bugs should be reported to the author:
  J.F. Chandler    <PEPMNT@CFAAMP>              (BITNET)
                   <PEPMNT@CFAAMP.HARVARD.EDU>  (Internet)
 
.cs 1 off
.cs 2 on
+---------+-------------------------------------------------------------------+
|         |                                                                   |
|         |              --        --  -- --  --         --                   |
| SPROSC  |    TAPN      | fn  ft  | fm |  |  | ( options |                   |
|         |              |  =   =  --  --  |  --         --                   |
|         |              --               --                                  |
|         |    ?                                                              |
|         |                                                                   |
|         |                                                                   |
|         |    Options:                                                       |
|         |             RECFM   ccc        LRECL  nnnnn                       |
|         |                                                                   |
|         |             ( BLKSIze nnn )    ( NL   --   -- )                   |
|         |             ( BLock   nnn )    ( SL   | nnn | )                   |
|         |                                ( FILE --   -- )                   |
|         |             ( VOLume volid )                                      |
|         |             ( VOLID  volid )   DSName dsn                         |
|         |                                                                   |
|         |             ( EBCdic )         ( EOF  n )                         |
|         |             ( ASCii  )         ( EOT    )                         |
|         |                                                                   |
|         |             REBlock nnn        PREfix sss                         |
|         |                                                                   |
+---------+-------------------------------------------------------------------+
 
.cs 2 off
.cs 3 on
Parameters:
 
TAPn      is the device name for a tape drive (n may be 0-9) preferably already
          positioned to the correct file (beginning of header label if SL tape,
          beginning of data if NL tape)
 
?         causes SPROSC to display its version number.
 
fn ft fm   gives the file-id of the  output CMS copy.  The  default filemode is
          "A1", except that files of type VS or VBS are forced  to filemode  4.
          If multiple  files are to be read,  only the first one receives  this
          file-id,  and subsequent  files  are named  from  the input  data set
          labels, just as if "=" had been specified.   The filemode is retained
          for subsequent files.
 
=         specifies  that the  output CMS  file is  to be  given a  default CMS
          file-id  formed from  the input  data set  label, which  must have  a
          non-empty name.  This form  (=) is valid only for input  from labeled
          tape.  The last two qualifiers  of a multi-level  DSNAME  become  the
          filename  and filetype  of the output  file with one exception:  when
          there are at least three qualifiers,  and the last one consists  of a
          letter  plus a digit  (0-6),  the digit  is taken  to be the filemode
          number  of the output file, and the previous  two tokens are used for
          the filename and filetype.  If the name has only one qualifier,  that
          is used as the filename,  and the filetype is TAPEFILE.  For example,
          a  DSN  of  "WWW.X.Y.Z"  would  yield  a file-id  of  "Y  Z A1",  but
          "WWW.X2.Y2.Z2" would yield "X2 Y2 A2".
.cs 3 off
.cs 4 on
 
Options:
 
Note: the options RECFM, LRECL, and BLKSIZE are used only in copying files from
an unlabeled tape or if tape label processing is bypassed (by positioning  to a
data file).   Whenever  SPROSC  reads data set labels,  the encoded  attributes
supersede the command options.
 
RECFM     gives the record format for the input data set.  The default is U.
 
LRECL     gives the logical record length for  the input data set.  This option
          is  ignored  for all  data  sets  with varying-length  records.   The
          default is 80.
 
BLKSIZE   (or BLOCK) gives the block size  for the input data set.  This option
          defaults to  32756 and is, therefore,  unnecessary for VBS  tape data
          sets.   It is  also unnecessary  for  files being  deblocked, but  it
          should be specified for any F or  FB data set destined for filemode 4
          from an unlabeled tape.
 
REBLOCK    gives the  block size  for the  output file,  assuming it  is to  be
          filemode number 4 and converted from VBS or VS to VB.  The value must
          be at least 4 more than the LRECL of the input data set but should be
          less than 32768.  If the value is  too small, the copy operation will
          halt.
 
SL        signifies a  standard-label tape and optionally gives  the input file
          number.  If  no number is  given, SPROSC  will read from  the current
          tape  file.  If  a  number is  given, SPROSC  will  space forward  or
          backward as  needed to find the  requested file before  reading data,
          even  if the  tape is  currently positioned  at a  data (rather  than
          label) file.
 
NL        signifies a  non-labeled tape (the default) and  optionally gives the
          input file number.  If no number is  given, SPROSC will read from the
          current tape file.  If a number is given, SPROSC will rewind and then
          space forward  to find the  requested file.   If the tape  is labeled
          after all, and the requested file is  a label, SPROSC will still read
          the file as data.
 
FILE      gives the  file number on tape.  By default SPROSC reads  the current
          file.  The label status should be specified separately by the "SL" or
          "NL" option (or by default to NL).
 
VOLUME     gives the  expected volume  name of  a SL  tape.  When  the name  is
          specified, it will be checked against  the name encoded in the volume
          and/or  data set  header labels.   SPROSC will  halt if  they do  not
          match.  Note  that the  volume name  is never  checked in  the header
          label of  the second  or subsequent  part of  a multi-reel  data set,
          since the label encodes the name of the first volume.
 
DSN       gives the expected data set name of a SL tape file.  This option must
          be specified  last in  the command, since  all subsequent  tokens are
          concatenated with  "." separators to form  the DSN.  The  result must
          not be more than 44 characters.  Only the last 17 characters are used
          in the comparison, but the entire name  will be used if necessary for
          supplying  a  default CMS  file-id  (see  above).  For  example,  the
          specification "DSN AAA1234  INPUT STREAM CNTRL" would yield  a DSN of
          "AAA1234.INPUT.STREAM.CNTRL", but  only "NPUT.STREAM.CNTRL"  would be
          significant in the comparison.
 
ASCII      specifies that  the input  tape is  encoded  in ASCII  and that  the
          labels, if  any, are ANSI standard.   The data will be  translated to
          EBCDIC.   This   option  is   the  default   when  reading   an  ANSI
          standard-label tape.
 
EBCDIC    specifies that the input tape is encoded in EBCDIC (or is binary) and
          that the labels, if any, are  presumably IBM standard.  The data will
          not be translated, even if the labels turn out to be ANSI labels.
 
EOF       gives the number of consecutive files to be read from the input tape.
          This option may be specified only for a labeled tape.  If fewer files
          exist than are requested, this is equivalent to the EOT option.
 
EOT       specifies that consecutive  files are to be read from  the input tape
          up to the end.  This option may be specified only for a labeled tape.
.cs 4 off
.cs 6 on
 
Error messages:
 
SPROSC071E UNKNOWN OPTION '........'
SPROSC083E MISSING FILEID
SPROSC095E NO VALUE SUPPLIED FOR '........' OPTION
SPROSC098E ILLEGAL PARAMETER '........'
SPROSC283E INSUFFICIENT STORAGE FOR BUFFERS
SPROSC308E ILLEGAL ........ VALUE '........'
SPROSC340E INCONSISTENT OPTION '........'
SPROSC770I '........' (.... BLOCKS) COPIED TO '.....'
SPROSC771E MISSING TAPE ID
SPROSC772I REACHED EOT ON ....
SPROSC773E REBLOCK SIZE TOO SMALL
SPROSC775E ERROR WHILE OPENING DDNAME '........' - BAD DCB
SPROSC779E INVALID TAPE LABELS
SPROSC780I TAPE VOLUME: ......
SPROSC781I TAPE ...... DSN: . . . ................. FILE ....
SPROSC782I EXECUTING .... ........ ON .... ...
SPROSC783I ONE OR MORE TAPE BLOCKS WERE OF IMPROPER LENGTH
SPROSC784E MISSING OR EMPTY FILE ON INPUT TAPE
SPROSC785E VOLUME LABEL '......' DOES NOT MATCH 'VOLID ......' OPTION
SPROSC786E DSNAME '....' DOES NOT MATCH 'DSN .....' OPTION
SPROSC787E DSNAME VALUE LONGER THAN 44 BYTES
SPROSC788E SPANNED OR INVALID RECORD FOUND IN INPUT FILE
SPROSC789E NO DSN/FID AVAILABLE FOR INPUT FILE
.cs 6 off
