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:

  1. 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.
  2. 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:

  1. 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.
  2. 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 .