Adding 3380 (and 3390) DASD Support

Jim Morrison has done an excellent job of writing the modifications required to apply the missing support for 3380 volumes to the base MVS 3.8j distribution.  All I have done is to package his modifications into a single jobstream specifically designed to be run at this particular point in my instructions for building MVS 3.8j from the distribution libraries.  If you would like to grab his original files and instructions, they are available at:  ftp://ensose.com/mvs38j/mvs3380-0004.zip.  You may find additional information in his archive useful if you are performing a secondary System Generation to add 3380 support to an already functional MVS 3.8 system.  

 

Corrective Zap for 3380 Modifications

On 18 March 2002, Jim issued an update to fix a problem with the initial 3380 modifications.  This update repairs a bug that will cause an S0C4 abend in IEBCOPY when accessing datasets on 3380 DASD.  The JCL for the zap is:

//K900071 JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//*
//* ZAP K900071 repairs IEBCOPY ABENDS0C4 
//*  after mvs3380+3390-0007.
//* IPL required to activate zap.
//*
//ZAP EXEC PGM=IMASPZAP
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=SYS1.NUCLEUS,DISP=SHR
//SYSIN DD *
NAME IEANUC01 UTRKCALC
VER 0036 43B0,9013 IC R11,19(,R9)
VER 003A 4740,F042 BM HAVEDEVT
VER 003E 43B0,1003 IC R11,STARTYPE
REP 0036 43B0,1003 IC R11,STARTYPE
REP 003A 4710,F042 BO HAVEDEVT
REP 003E 43B0,9013 IC R11,19(,R9)
//

Apply this zap on your MVS 3.8j system if you have applied the 3380 modifications to your distribution libraries and then generated a system with 3380 DASD.

The archive containing the modifications - mod3380.tgz [MD5: EF56CE82E311F42DFC8A22E86C6AF9AC] - has been updated to incorporate this zap, so you should also remove the modifications from your distribution libraries - using the r3380.jcl jobstream - then download the corrected archive and reapply the modifications, using the corrected m3380.jcl jobstream.

 

Why add 3380 support?

The most compelling reason is that it provides compatibility with other systems using 3380 DASD.  If you are trying to restore a TSO XMIT format file that contains load modules from 3380 or 3390 DASD, you will probably find that the block size specified for the load module dataset exceeds the track capacity of 3350 DASD.  With the addition of 3380 support, you can use the dasdload utility to restore TSO XMIT files that were originally resident on either 3380 or 3390 DASD onto a 3380 image, which may then be read under an MVS 3.8 system generated using Jim's 3380 modifications.

Also, a 3380 volume has 98.5% more capacity than a 3350 volume, which may be significant to how you choose to group datasets on your "mainframe" volumes.

Known problems

Jim completed the modifications in April, 2001, so he has been doing testing for some time.  I only began my own testing of them in the last quarter of 2001.  (A 1,200 mile move seems to have been the least of the distractions I have been dealing with in those intervening months.)  Between the two of us, Jim and I have done extensive testing of 3380 volumes under modified MVS 3.8j systems.  The only known problem is that the IEHDASDR utility cannot be used against them, due to the lack of 3380 definitions in an internal device table.  He and I are looking into what modifications will be required to upgrade IEHDASDR, but that is the only shortcoming we have discovered.

Successful tests on 3380 volumes include:

  • reading datasets restored from TSO XMIT files originally offloaded from 3390 volumes

  • executing load modules restored from TSO XMIT files originally offloaded from 3390 volumes

  • creating sequential datasets

  • reading sequential datasets

  • creating load libraries

  • initializing with ICKDSF, both with and without VALIDATE specified

  • creating and reading VSAM datasets, both UNIQUE and SUBALLOCATED

  • performing all tests above on compressed 3380 volumes

Required Jobstreams

Download the archive mod3380.tgz [MD5: EF56CE82E311F42DFC8A22E86C6AF9AC] from my site, which contains three jobstreams:

  1. m3380.jcl - applies the modifications 

  2. r3380.jcl - removes the modifications

  3. sysgen01.jcl - a modified Stage 1 System Generation deck with 3380 volumes.

Uncompress the archive using the WinZip utility under Windows or tar xvzf mod3380.tgz under Linux or Windiws+Cygwin.

Installing the Modifications

Submit m3380.jcl - on the Hercules' console enter:

devinit 012 jcl/m3380.jcl eof

The steps in this jobstream are:

IEBCOPY1 - COMPRESS (IN PLACE) SYS1.AOSC5                       
ASMBLR1 - ASSEMBLE DEVICE DEFINITION TABLE (USRDDT00)           
LKED1 - LINK DEVICE DEFINITION TABLE INTO SYS1.AOSC5            
DUMPT - DUMP DEVICE DEFINITION TABLE (INFORMATIONAL ONLY)       
IEBCOPY2 - COMPRESS (IN PLACE) SYS1.AOSD0                       
UPDTE1 - CREATE TEMPORARY MACRO LIBRARY (IHADVCT MACRO)         
ASMBLR2 - ASSEMBLE TRACK CALCULATION SUPPORT (UTRKCALC)         
LKED2 - LINK UTRKCALC INTO SYS1.AOSD0                           
LKED3 - CREATE AN EXPANDED WORK COPY OF SYS1.AOSD0(IGC018)      
ZAP - PATCH THE COPY OF IGC018 TO CALL UTRKCALC ROUTINE         
IEBCOPY3 - COPY THE PATCHED IGC018 BACK TO SYS1.AOSD0           
IEBCOPY4 - MAKE BACKUP COPIES OF MACROS TO BE MODIFIED          
UPDTE2 - UPDATE SYSGEN MACROS IN SYS1.AGENLIB                   
UPDTE3 - UPDATE SYSGEN MACROS IN SYS1.AMODGEN                   

The changes made to the distribution libraries (on volume SMP001) are:

  • module USRDDT00 added to SYS1.AOSC5

  • module UTRKCALC added to SYS1.AOSD0

  • module UIGC018 added to SYS1.AOSD0

  • changes applied to System Generation  macros (1 in SYS1.AMODGEN and 11 in SYS1.AGENLIB)

Since changes are made to original macros in SYS1.AMODGEN and SYS1.AGENLIB, the macros affected are first backed up into SYS2.AMODGEN.BACKUP and SYS2.AGENLIB.BACKUP (which are created by this jobstream on SMP001).

Step LKED1 should receive a return code of 0004; all other steps should receive return codes of 0000.

Caution:  If you edit M3380.JCL, make certain you do not change or add sequence numbers in columns 73 through 80.  The SYSIN data for IEBUPDTE, which modifies the System Generation macros, relies upon the sequence numbers currently present in the jobstream to correctly place the modifications.

After running this jobstream, you may continue with the System Generation process.

The alternate Stage 1 deck in this archive, sysgen01.jcl, may be used in place of the sysgen01.jcl jobstream from the installmvs.tgz archive.  The only differences are the definition of sixteen 3380 DASD, eight at addresses 180-187 and eight at addresses 280-287, and the inclusion of the 3380 DASD in the UNITNAME definitions.

You should expect a couple of MNOTE statements from this Stage 1 jobstream, at statements #1054 and #1192.  They are normal and do not indicate an error introduced by the 3380 modifications.

Removing the Modifications

If you later decide that you want to remove the modifications, the jobstream r3380.jcl will do just that.  It will first utilize IEBCOPY to replace the modified System Generation macros (in SYS1.AMODGEN and SYS1.AGENLIB) with the backup copies created by M3380.JCL/IEBCOPY4.  Then it will remove the added modules from SYS1.AOSC5 and SYS1.AOSD0.  Finally, it will remove the backup copies of the System Generation macros.

Note:  if you have decided to remove the modifications with r3380.jcl, you are only removing the modifications made to the distribution libraries.  If you have performed a System Generation to include 3380 support, you will have to perform another System Generation to remove that support.


3390 Modifications

In January 2002, Jim released updates to his modifications to add 3390 DASD to MVS 3.8j.  The latest version of his combined 3380/3390 modifications are available from his site at: ftp://ensose.com/mvs38j/mvs3380+3390-0007.zip.  I have also created the single jobstream equivalents to the jobstreams in the archives described above using Jim's modifications.  They are available from my site in the archive:  mod3390.tgz [MD5: 2656913C45D48606F3D250ECEDE52428].  The jobstreams contained in the archive are similar to those described above for the 3380 modifications, with the addition of the 3390-specific modules.

Additional considerations for 3390 DASD are:

  • you must use dasdload to create 3390 DASD, complete with a Volume Table of Contents, for use under MVS 3.8j - MVS 3.8 utilities will not recognize 3390 DASD for the purpose of initializing/creating VTOCs
  • as with 3380's, you cannot use IEHDASDR to backup/restore entire volumes.

Other that these limitations, there seems to be no problems creating and accessing datasets - sequential, partitioned, or VSAM - on 3390 DASD using these modifications.

The corrective zap described above for the 3380 modifications also applies to the 3390 modifications, and, as noted above has been incorporated into the jobstreams in the mod3390.tgz archive.


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 .