IEHMAP is the Swiss army knife of DASD mapping utilities. It will analyze a DASD volume and print a report showing the exact location of each extent of all the datasets on the volume, plus where unallocated space exists. It also has functions that will show detailed information about the contents of Partitioned Datasets. And more! It makes the output of IEHLIST looks primative in comparison.
IEHMAP has been around for a long time, and the original version was contributed to CBT anonymously, and in object format. It has been supported by the CBT user community for decades. The current version of the CBT tape includes two versions, an older S/370 version and a S/390 version. Along the history, much of IEHMAP has been disassembled and large portions are now able to be maintained in source form.
Which is a way of leading up to ... we aren't going to be lucky enough to use those versions. But, we can use the version from CBT 129, which with some updates to the DASD device type CSECT will still provide a lot of functionality to an MVS 3.8 system. The version that I installed is located in file #83 of CBT 129. That, and two even earlier versions of CBT, were made available by Sam Knutson in November, 2001.
The contents of file #83 are the object modules and Link Editor control statements to link the two load modules that make up IEHMAP. I have copied file #83 to an unblocked 80 byte dataset on the AWS tape: iehmap.het.
Installed as it is, the latest DASD type supported is 3350, and there is an error in the characteristics table for 3350s, so there is another step involved in the installation besides simply linking the supplied objects. The latest version on the current CBT tape includes the source for the MAPDEV CSECT, which is the module containing the table of DASD type characteristics. I used this module as the basis for a replacement to MAPDEV CSECT in the older version of IEHMAP. By completely replacing this CSECT from a source, it allows a great deal of flexibility to anyone wanting to add even more DASD types. The assembly step for MAPDEV, plus the Assembler source, is in the second step of the jobstream: iehmap$.jcl.
There is also a 40+ pages of documentation for IEHMAP on the CBT tape, and it hasn't been updated since 1975. I ran it through a word processor to change the case to "normal" mixed case and added some missing page numbers to index tables. Other than that, it is as of the last update in 1975, and is provided in: iehmap.pdf.
All three of these files are included in the archive: iehmap.tgz [MD5: dcf29a4c87564c10c4ddcee5196ae60f]. Download the archive and extract the contents (WinZip on Windows/?? or tar on Linux). Submit the jobstream to link, assemble, and re-link IEHMAP 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 target library must be authorized.
01/25/2022 Update: I have updated the MAPDEV source to increase the maximum number of cylinders for 3380 DASD to 26,550. This will allow correct reporting for 3380 DASD up to 3380-E, which has 1,770 data cylinders.
IEHMAP has a lot of control cards and options, so if you are not familiar with it, you will probably want to take a look at the documentation in iehmap.pdf. The basic JCL is:
//IEHMAP JOB (001),'IEHMAP',CLASS=A,MSGCLASS=A //IEHMAP EXEC PGM=IEHMAP,REGION=1024K //SYSPRINT DD SYSOUT=* --- one or more DD statements for DASD volumes --- //SYSIN DD * --- one or more control cards --- //
The JCL and output from some sample runs of IEHMAP:
Note that the catalog functions for this version of IEHMAP are for the CVOL catalogs, not for VSAM catalogs, so those functions are probably not going to be of much use to anyone running MVS 3.8.
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 January 25, 2022 .