In this example, a sequential data set is punched according to
user specifications.
//PHSEQNO JOB ...
//STEP1 EXEC PGM=IEBPTPCH
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=MASTER.SEQSET,LABEL=(,SUL),DISP=SHR
//SYSUT2 DD SYSOUT=B
//SYSIN DD *
PUNCH MAXFLDS=1,CDSEQ=0,CDINCR=20
RECORD FIELD=(72)
LABELS DATA=YES
/*
The control statements are as follows:
- SYSUT1 DD defines the input data set, MASTER.SEQSET, which resides
on a disk or tape volume. The data set contains 80-byte, fixed blocked
records.
- SYSUT2 DD defines the system output class (punch is assumed).
That portion of each record from the input data set defined by the
FIELD parameter is represented by one punched card.
- SYSIN DD defines the control data set, which follows in the input
stream.
- PUNCH begins the punch operation, indicates that one FIELD parameter
is included in a subsequent RECORD statement (MAXFLDS=1), and assigns
a sequence number for the first punched card (00000000) and an increment
value for successive sequence numbers (20). Sequence numbers are placed
in columns 73 through 80 of the output records.
- RECORD indicates that positions 1 through 72 of the input records
are to be punched. Bytes 73 through 80 of the input records are replaced
by the new sequence numbers in the output card deck.
- LABELS specifies that user header labels and user trailer labels
are punched.
Labels cannot be edited; they are always moved to the first 80
bytes of the output buffer. No sequence numbers are present on the
cards containing user header and user trailer records.