MVT Sort/Merge Source
The source for the MVT Sort/Merge is contained on the same CD-ROM that
contains the distribution libraries for OS360/MVT. The version I am
working from came from the CBT site and was included on version 430 of the CBT
tape, which came to me on version #5 of the CBT CD-ROM. Of course, this
material was originally collected by Rick Fochtman and distributed by him via
CD-ROM before it was added to the CBT collection.
The source for the entire OS360/MVT system is included on the CD-ROM.
The Sort/Merge program is found under the directory labeled: sm023
which is found under the source library subdirectory. There are 251 source
modules that you need from this directory. In order to successfully
assemble the program, you also must have 9 members from the directory
labeled: AAPVT.
A couple of notes if you are trying to duplicate my steps:
- The module on the CD-ROM that is labeled ierrco00 needs to be
renamed ierrco; ierrco00 is the external reference name for the CSECT, but you
will encounter problems during the link-edit step if you leave it named
incorrectly in the source and object library PDS. Since I extracted
the link-edit statements from the MVT System Generation, I tend to think
they are what should be matched.
- There is another archive (tapefile.zip) included in the source library
subdirectory on the CD-ROM. It contains IEBUPDTE streams for all the
source for OS360/MVT, including the Sort/Merge (split into two
members). I did a comparison and it exactly duplicates the members
stored individually under the sm023 directory. I used the sm023
directory to lay down the source.
There are two methods provided here for downloading the MVT Sort/Merge
source/macros/jobstreams; you may use whichever is more convenient for you:
- I created an archive - mvtsort1.zip
[MD5: BFBAFD5B7E0BD521BC22C76F4FBCB0BD] - that contains three jobstreams, each of which utilize IEBUPDTE to create
three PDS libraries. Unzip the three jobstreams, make any changes
required for you environment (dataset names, volume serial numbers, DASD
unit type) and submit them to create the three libraries.
- I have also created an archive - mvtsort2.zip
[MD5: A4AA1DE603DD8C7537E52CF8EEB6A629] - that contains an XMIT format unload of the three libraries as they exist
on my system. You can use these files as input to the dasdload utility
to recreate the libraries directly onto a DASD volume. They were
unloaded from a 3350 volume on my system.
Following is a description of the three libraries:
SYSP.MVT.SORT.SOURCE
This PDS contains the assembler source for the 251 modules that make up the
Sort/Merge load module and library. I have also added an $INDEX member
that contains the comments extracted from the beginning of each of the
source members. This may be helpful in determining what each member
does if you are intending to modify the utility.
SYSP.MVT.SORT.MACLIB
This PDS contains the additional macro/copy members required to assemble the
Sort/Merge modules in the PDS above. It also contains an $INDEX member that I added, but there
is little additional information required for these members. They are
mostly tables of address and text constants.
SYSP.MVT.SORT.JCL
This PDS contains the JCL to assemble and link-edit the Sort/Merge.
There is an $INDEX member that explains the other members, but in less
detail than I include here below.
The steps required to assemble and link-edit the MVT Sort/Merge are:
- Submit the ALLOC member of the JCL library. This allocates a PDS
which will contain the assembled object members.
- The 251 modules are divided into 26 jobstreams for assembly (10 modules
each for the first 25 and 1 module in the last), just to keep the output to
a manageable size. There is a single job - SUBMITS - that uses IEBGENER
to submit all the assembly jobstreams through the internal reader. If
you prefer, you can submit them one at a time manually.
- There is a single jobstream - LINKEDIT - that contains two jobs. The
first links the load module and the second links the modules that are
invoked dynamically by the sort from its run-time library.
- There is a jobstream - SORTTEST - that will do a simple sort of in stream
data to verify that the Sort/Merge was assembled and link-edited correctly.
You will probably need to do some tailoring on the jobstreams before you
submit them. For this project I created a new 3350 DASD image with the serial number MVTSRT.
Also, all datasets have a high level qualifier of SYSP on my system to place
them in a special User Catalog. The sort test jobstream expects a 2314
work volume with the serial number of PUB002. You will need to ensure that
the datasets created by the jobstreams will match your environment.
There are several people who have indicated to me that they are interested in
updating the MVT Sort/Merge utility to be more useful by recognizing modern DASD
types. If you are interested in working on something like that, perhaps we
could set up a new Hercules' discussion group to facility a joint effort.
Let me know.
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 April 23, 2008
. |