|
| |
TAPESCAN
TAPESCAN can be used to read a tape volume and produce a report
giving an overview of the contents. Although perhaps of less value running
against virtual tapes in the Hercules environment, it also has the ability to
copy datasets and recover data past the first end-of-volume indicator.
Information on the report produced includes record and byte count, length
estimate (again not very useful in our environment), and the display of the
first 100 bytes of a specifiable number of records from the beginning of each
data block read.
TAPESCAN is located in File #102 of the CBT tape and was written by
Will Daland at the University of North Carolina at Chapel Hill. It was
modified by Sam Golob in 2000 to handle 64K blocks.
Installation
I have extracted the Assembler
source from the CBT tape and added JCL to assemble using IFOX00.. I made three modifications to
the source so that it would assemble under IFOX00:
- symbolic variable &W was missing and I added the definition for it
just prior to the first use,
- the symbol UCB3480 is not present in MVS 3.8 macros, so I changed the
reference to the hex value that the symbol should equate to, and
- moved an EQU referencing JFCB elements to follow the JFCB DSECT.
The resulting jobstream
- tapescan.jcl - is contained in the archive tapescan.tgz
[MD5: 15A752D72815F403632FE06492675AFD].
Download the archive and extract the jobstream (WinZip on Windows/?? or tar on
Linux). Submit the jobstream to assemble and link the single load module
for LISTPDS into SYS2.LINKLIB. If you don't have SYS2.LINKLIB defined, you
will need to modify the jobstream to specify a target load library. Note:
The load module must reside in an authorized library.
Executing TAPESCAN
Here is an example jobstream to run TAPESCAN:
//COPYTAPE EXEC PGM=TAPESCAN,PARM=('COPY,NOVOLSER',
// 'EOVMOD,SKIPTM10,MAXTM16,LIST20,NOHEX')
//SYSPRINT DD SYSOUT=A (MESSAGES)
//INPUT DD UNIT=2400-7,DISP=OLD,DCB=(TRTCH=ET,DEN=1,
// EROPT=ACC),VOL=SER=TRACK7
//OUTPUT DD UNIT=2400-4,LABEL=2,VOL=SER=OTPTTP
|
This execution of TAPESCAN will copy the fourth and fifth files of a standard labeled seven track 556 BPI even parity tape needing translation and conversion, to the second and third files of a tape which had only one file. The volume header record will not be copied and the hexadecimal output will not be included on the report to SYSPRINT. The first twenty records of the input datasets will be listed. Processing will stop after five I/O errors occur.
The OUTPUT DD may be omitted if COPY is not specified or implied. All parameters are specified via the PARM on the EXEC and are:
| COPY |
Create a copy of the input datasets, labels and tape marks
requested on output. The OUTPUT DD statement must be
included. NOCOUNT may not be specified. By default, this
parameter is assumed not to be in effect. |
| EOVMOD |
Places the input data to be copied after the last dataset
on output. The OUTPUT DD statement must be included. This
parameter implies COPY. NOCOUNT may not be specified. By
default, this parameter is assumed not to be in effect. |
| ERRLIMn |
The maximum number of I/O errors
allowed before processing is terminated is specified by the value of
"n". The default is
ERRLIM50. |
| LISTn |
The number of blocks which have one
line produced on SYSPRINT is specified by the value of
"n". The default is LIST4. |
| MAXEOVn |
Processing will continue until
"n" end of volume indicators have been found. Processing
will stop when either MAXTMn or MAXEOVn is exceeded. The
default value is MAXEOV1 and if SKIPEOVn is
used then MAXEOVn must be one greater than SKIPEOVn. |
| MAXTMn |
Stop processing after "n"
tape marks have been encountered. This will not go past the end of
volume indicator. The default is to
process to the end of the volume. |
| NOCOUNT |
To save I/O time the counting
feature may be turned off by this parameter. The number of
physical blocks, the maximum, average, and minimum block sizes, the
length, and the total number of bytes processed will not be
reported. This parameter may not be used with COPY or EOVMOD.
By default the parameter is assumed not to
be in effect. |
| NOHEX |
Do not produce the hexadecimal
equivalent of the first lines of each block printed on SYSPRINT. By
default the parameter is assumed to be off. |
| NOLIST |
Functions the same as LIST0. By
default the parameter is assumed not to be in effect. |
| NOSUMMARY |
Do not produce the summary of
datasets for standard labeled tape on SYSPRINT. By
default the parameter is assumed not to be in effect. |
| NOVOLSER |
During a copy operation between two
standard label tapes, the volume header label will not be copied. By
default the parameter is assumed not to be in effect. |
| SKIPEOVn |
Processing will start after
"n" number of end of volume indicators have been
encountered. Insure that MAXEOV is at least one greater than
SKIPEOVn. The default is SKIPEOV0. |
| SKIPTMn |
Start processing after "n"
tape marks have been encountered. Processing will not start past
the end of volume indicator. When both SKIPTMn and SKIPEOVn are
specified, the maximum amount of skipping is done. The
default is SKIPTM0. |
| VTOC |
For a standard label tape, produce
only the VTOC report, and not the sample dump of each file. |
The default parameters are: LIST4,SKIPTM0,MAXEOV1,SKIPEOV0,ERRLIM50.
The JOB LOG and SYSPRINT output from an execution of TAPESCAN used to process
one of the volumes containing MVS 3.8 source may be viewed at: TAPESCAN.SYSOUT.
I hope that you have found my instructions useful. If you have
questions that I can answer to help expand upon my explanations and examples
shown here, please don't hesitate to send them to me:

This page was last updated on November 12, 2010
. |