GETMSG – Get ISPF Message for MVS38J /ISPF / Hercules
(current version 0.9.00 2019-09-11)
Overview
GETMSG is a simple ISPF utility for use under ISPF 2.x (ISPF-like product from Wally Mclaughlin). Specifically, this utility will fetch an ISPF message from MLIB and return each message component (e.g. short and long message content) in ISPF Shared variables for CLISTs access.
This utility is written in MVT COBOL with ISPF v2.0 as the original host.
Prerequisite: User Modifications
ISPF v2.1+ (ISPF-like product from Wally Mclaughlin) is necessary to use this software.
Two user-mods, ZP60014 and ZP60038, are REQUIRED to process CLIST symbolic variables via the IKJCT441 API on MVS 3.8J before using the this software. More information on user-mods ZP60014 and ZP60038 can be obtained from the following website:
http://www.prycroft6.com.au/vs2mods/
Check your system to determine if one or both user-mods are required. ZP60038 requires ZP60014.
Software Disclaimer
No guarantee; No warranty; Install / Use at your own risk.
This software is provided “AS IS” and without any expressed or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
The author requests keeping authors name intact to any modified versions.
In addition, the author requests readers to submit any code modifications / enhancements and associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality benefiting the MVS 3.8J hobbyist public domain community.
Installing Utility GETMSG
After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution tape (HET) content from the your personal computing device to MVS with minimal JCL (less than 24 lines for easy copy-paste) and to continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO.
Click here to download distribution ZIP file containing installation JCL, text (.TXT) and HET (Hercules Emulated Tape) files.
Once the ZIP file is downloaded and extracted, use the below JCL to load the HET tape to your MVS38J/Hercules system.
GETMSG for MVS 3.8J / Hercules .
============================== .
.
Date: 09/11/2019 Release V0R9M00 **INITIAL software distribution
* Author: Larry Belmontes Jr.
* https://ShareABitofIT.net/GETMSG-in-MVS38J
* Copyright (C) 2019 Larry Belmontes, Jr.
----------------------------------------------------------------------
| GETMSG I n s t a l l a t i o n R e f e r e n c e |
----------------------------------------------------------------------
The approach for this installation procedure is to transfer the
distribution content from your personal computing device to MVS with
minimal JCL and to continue the installation procedure using supplied
JCL from the MVS CNTL data set under TSO.
Below are descriptions of ZIP file content, pre-installation
requirements (notes, credits) and installation steps.
Thanks!
-Larry Belmontes
----------------------------------------------------------------------
| GETMSG C h a n g e H i s t o r y |
----------------------------------------------------------------------
* MM/DD/CCYY Version Name / Description
* ---------- ------- -----------------------------------------------
* 09/11/2019 0.9.00 Larry Belmontes Jr.
* - Initial version released to MVS 3.8J
* hobbyist public domain
*
*
======================================================================
* I. C o n t e n t o f Z I P F i l e |
======================================================================
o $INST00.JCL Define Alias for HLQ GETMSG in Master Catalog
o $INST01.JCL Load CNTL data set from distribution tape
o $RECVXMI.JCL Receive XMI SEQ to MVS PDSs
o GETMSG.V0R9M00.HET Hercules Emulated Tape (HET) multi-file volume
with VOLSER of VS0900 containing software
distribution.
o GETMSG.V0R9M00.XMI XMIT file containing software distribution.
o DSCLAIMR.TXT Disclaimer
o PREREQS.TXT Required user-mods
o README.TXT This File
Note: ISPF v2.0+ (ISPF-like product from Wally Mclaughlin) must be
----- installed under MVS 3.8J TSO including associated user-mods
per ISPF Installation Pre-reqs.
Note: Two user-mods, ZP60014 and ZP60038, are REQUIRED to process
----- CLIST symbolic variables via the IKJCT441 API on MVS 3.8J before
using this software.
More information and download links at:
http://www.prycroft6.com.au/vs2mods/
======================================================================
* II. P r e - i n s t a l l a t i o n R e q u i r e m e n t s |
======================================================================
o The Master Catalog password may be required for some installation
steps.
o Tape files use device 480.
o Below is a DATASET List after tape distribution load for reference purposes:
DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT
GETMSG.V0R9M00.ASM PUB006 10 1 PO FB 10 1
GETMSG.V0R9M00.CLIST PUB006 2 1 PO FB 50 1
GETMSG.V0R9M00.CNTL PUB006 20 4 PO FB 20 1
GETMSG.V0R9M00.HELP PUB006 2 1 PO FB 50 1
GETMSG.V0R9M00.ISPF PUB006 5 1 PO FB 20 1
GETMSG.V0R9M00.MACLIB PUB006 2 1 PO FB 50 1
**END** TOTALS: 41 TRKS ALLOC 9 TRKS USED 6 EXTENTS
Confirm the TOTAL track allocation is available on your device.
Note: A different DASD device type may be used to yield
different usage results.
o TSO user-id with sufficient access rights to update SYS2.CMDPROC,
SYS2.CMDLIB, SYS2.HELP, SYS2.LINKLIB and/or ISPF libraries.
o For installations with a security system (e.g. RAKF), you MAY need to
insert additional JOB statement information.
// USER=???????,PASSWORD=????????
o Names of ISPCLIB (Clist), ISPMLIB (Message), ISPLLIB (Load) and/or
ISPPLIB (Panel) libraries.
o Download ZIP file to your PC local drive.
o Unzip the downloaded file into a temp directory on your PC device.
o Install pre-requisite (if any) software and/or user modifications.
======================================================================
* III. I n s t a l l a t i o n S t e p s |
======================================================================
+--------------------------------------------------------------------+
| Step 1. Define Alias for HLQ GETMSG in MVS User Catalog |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST00) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG00 JOB (SYS),'Def GETMSG Alias', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * JOB: $INST00 Define Alias for HLQ GETMSG *
//* * Note: The master catalog password will be required *
//* -------------------------------------------------------*
//DEFALIAS EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
PARM GRAPHICS(CHAIN(SN))
LISTCAT ALIAS ENT(GETMSG)
IF LASTCC NE 0 THEN -
DEFINE ALIAS(NAME(GETMSG) RELATE(SYS1.UCAT.MVS))
/*
//
______________________________________________________________________
Figure 1: $INST00 JCL
a) Copy and paste the above JCL to a PDS member, update JOB
statement to conform to your installation standard.
b) Submit the job.
c) Review job output for successful DEFINE ALIAS.
Note: When $INST00 runs for the first time,
Job step DEFALIAS returns RC=0004 due to LISTCAT ALIAS function
completing with condition code of 4 and DEFINE ALIAS function
completing with condition code of 0.
Note: When $INST00 runs after the ALIAS is defined,
Job step DEFALIAS returns RC=0000 due to LISTCAT ALIAS function
completing with condition code of 0 and DEFINE ALIAS
function being bypassed.
+--------------------------------------------------------------------+
| Step 2. Determine software installation source |
+--------------------------------------------------------------------+
| HET or XMI ? |
+--------------------------------------------------------------------+
a) Software can be installed from two sources, HET or XMI.
- For tape installation (HET), proceed to STEP 4. ****
or
- For XMIT installation (XMI), proceed to next STEP.
+--------------------------------------------------------------------+
| Step 3. Load XMIPDS data set from XMI SEQ file |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($RECVXMI) |
+--------------------------------------------------------------------+
______________________________________________________________________
//RECV000A JOB (SYS),'Receive GETMSG XMI', <-- Review and Modify
// CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * JOB: $RECVXMI Receive Application XMI Files *
//* -------------------------------------------------------*
//RECV PROC HLQ=GETMSG,VRM=V0R9M00,TYP=XXXXXXXX,
// DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)',
// DUNIT=3390,DVOLSER=PUB006 <-- Review and Modify
//*
//RECV370 EXEC PGM=RECV370
//STEPLIB DD DSN=SYS2.LINKLIB,DISP=SHR <-- Review and Modify
//RECVLOG DD SYSOUT=*
//XMITIN DD DISP=SHR,DSN=&&XMIPDS(&TYP)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&&SYSUT1,
// UNIT=SYSALLDA,SPACE=(CYL,(10,05)),DISP=(,DELETE,DELETE)
//SYSUT2 DD DSN=&HLQ..&VRM..&TYP,DISP=&DDISP,
// UNIT=&DUNIT,SPACE=&DSPACE,VOL=SER=&DVOLSER
//SYSIN DD DUMMY
//SYSUDUMP DD SYSOUT=*
// PEND
//* RECEIVE XMIPDS TEMP
//XMIPDS EXEC RECV,TYP=XMIPDS,DSPACE='(CYL,(10,05,10),RLSE)'
//RECV370.XMITIN DD DISP=SHR,DSN=your.transfer.xmi <-- XMI File
//RECV370.SYSUT2 DD DSN=&&XMIPDS,DISP=(,PASS),
// UNIT=SYSDA,SPACE=&DSPACE
//* RECEIVE CNTL, HELP, CLIST, ISPF, ASM, MACLIB
//CNTL EXEC RECV,TYP=CNTL
//RECV370.SYSUT2 DD DDNAME=&TYP
//CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(20,10,10)),
// DISP=&DDISP
//HELP EXEC RECV,TYP=HELP
//RECV370.SYSUT2 DD DDNAME=&TYP
//HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP
//CLIST EXEC RECV,TYP=CLIST
//RECV370.SYSUT2 DD DDNAME=&TYP
//CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP
//ISPF EXEC RECV,TYP=ISPF
//RECV370.SYSUT2 DD DDNAME=&TYP
//ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(05,05,10)),
// DISP=&DDISP
//ASM EXEC RECV,TYP=ASM
//RECV370.SYSUT2 DD DDNAME=&TYP
//ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(10,10,10)),
// DISP=&DDISP
//MACLIB EXEC RECV,TYP=MACLIB
//RECV370.SYSUT2 DD DDNAME=&TYP
//MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP
//
______________________________________________________________________
Figure 2: $RECVXMI.JCL
a) Transfer GETMSG.V0R9M00.XMI to MVS using your 3270 emulator.
Make note of the DSN assigned on MVS transfer.
Use transfer IND$FILE options:
NEW BLKSIZE=3200 LRECL=80 RECFM=FB
Ensure the DSN on MVS exists with the correct DCB information:
ORG=PS BLKSIZE=3200 LRECL=80 RECFM=FB
b) Copy and paste the above JCL to a PDS member, update JOB
statement to conform to your installation standard.
Review JCL and apply any modifications per your installation
including the DSN assigned during the transfer above for
the XMI file.
d) Submit the job.
e) Review job output for successful load of the following PDSs:
GETMSG.V0R9M00.ASM
GETMSG.V0R9M00.CLIST
GETMSG.V0R9M00.CNTL
GETMSG.V0R9M00.HELP
GETMSG.V0R9M00.ISPF
GETMSG.V0R9M00.MACLIB
f) Subsequent installation steps will be submitted from members
contained in the CNTL data set.
g) Proceed to STEP 6. ****
+--------------------------------------------------------------------+
| Step 4. Load CNTL data set from distribution tape |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST01) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG01 JOB (SYS),'Install CNTL PDS', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * JOB: $INST01 Load CNTL PDS from distribution tape *
//* * Note: Uses tape drive 480 *
//* -------------------------------------------------------*
//LOADCNTL PROC HLQ=GETMSG,VRM=V0R9M00,TVOLSER=VS0900,
// DDISP='(,CATLG,DELETE)',
// TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify
//LOAD001 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//INCNTL DD DSN=&HLQ..&VRM..CNTL.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(1,SL)
//CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(20,10,10)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
// PEND
//STEP001 EXEC LOADCNTL Load CNTL PDS
//SYSIN DD *
COPY INDD=INCNTL,OUTDD=CNTL
//
______________________________________________________________________
Figure 3: $INST01 JCL
a) Before submitting the above job, the distribution tape
must be made available to MVS by issuing the following
command from the Hercules console:
DEVINIT 480 X:\dirname\GETMSG.V0R9M00.HET READONLY=1
where X:\dirname is the complete path to the location
of the Hercules Emulated Tape file.
b) Issue the following command from the MVS console to vary
device 480 online:
V 480,ONLINE
c) Copy and paste the above JCL to a PDS member, update JOB
statement to conform to your installation standard.
Review JCL and apply any modifications per your installation.
d) Submit the job.
e) Review job output for successful load of the CNTL data set.
f) Subsequent installation steps will be submitted from members
contained in the CNTL data set.
+--------------------------------------------------------------------+
| Step 5. Load Other data sets from distribution tape |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST02) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG02 JOB (SYS),'Install Other PDSs', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * JOB: $INST02 Load other PDS from distribution tape *
//* * Tape Volume: File 1 - CNTL *
//* * File 2 - CLIST *
//* * File 3 - HELP *
//* * File 4 - ISPF *
//* * File 5 - ASM *
//* * File 6 - MACLIB *
//* * Note: Default TAPE=480, DASD=DISK on PUB006 *
//* -------------------------------------------------------*
//LOADOTHR PROC HLQ=GETMSG,VRM=V0R9M00,TVOLSER=VS0900,
// DDISP='(,CATLG,DELETE)',
// TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify
//LOAD02 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//INCLIST DD DSN=&HLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL)
//INHELP DD DSN=&HLQ..&VRM..HELP.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL)
//INISPF DD DSN=&HLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL)
//INASM DD DSN=&HLQ..&VRM..ASM.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL)
//INMACLIB DD DSN=&HLQ..&VRM..MACLIB.TAPE,UNIT=&TUNIT,
// VOL=SER=&TVOLSER,DISP=OLD,LABEL=(6,SL)
//CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
//HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
//ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(05,05,10)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
//ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(10,10,10)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
//MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER,
// SPACE=(TRK,(02,02,02)),
// DISP=&DDISP,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600)
// PEND
//*
//STEP001 EXEC LOADOTHR Load ALL other PDSs
//SYSIN DD *
COPY INDD=INCLIST,OUTDD=CLIST
COPY INDD=INHELP,OUTDD=HELP
COPY INDD=INISPF,OUTDD=ISPF
COPY INDD=INASM,OUTDD=ASM
COPY INDD=INMACLIB,OUTDD=MACLIB
//
______________________________________________________________________
Figure 4: $INST02 JCL
a) Member $INST02 installs remaining data sets from distribution
tape.
b) Review and update JOB statement and other JCL to conform to your
installation standard.
c) Before submitting the above job, the distribution tape
must be made available to MVS by issuing the following
command from the Hercules console:
DEVINIT 480 X:\dirname\GETMSG.V0R9M00.HET READONLY=1
where X:\dirname is the complete path to the location
of the Hercules Emulated Tape file.
d) Issue the following command from the MVS console to vary
device 480 online:
V 480,ONLINE
e) Submit the job.
f) Review job output for successful loads.
+--------------------------------------------------------------------+
| Step 6. FULL or UPGRADE Installation |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($UP0900) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG0U JOB (SYS),'Upgrade GETMSG', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * *
//* * JOB: $UP0900 Upgrade GETMSG Software *
//* * Upgrade to release V0R9M00 from VxRxMxx *
//* * *
//* * Review JCL before submitting!! *
//* -------------------------------------------------------*
//*
//* -------------------------------------------------------*
//* * No upgrades for V0R9M00 *
//* -------------------------------------------------------*
//GETMSG EXEC PGM=IEFBR14
//*
//
______________________________________________________________________
Figure 5: $UP0900.JCL Upgrade from previous version to V0R9M00
a) If this is the INITIAL software distribution, proceed to STEP 7.
b) This software may be installed in FULL or UPGRADE from a
prior version.
Note: If the installed software version is customized, a manual
----- review and evaluation is suggested to properly incorporate
customizations into this software distribution before
proceeding with the installation.
Refer to the $UPvrmm.JCL members for upgraded software
components being installed.
c) If a FULL install of this software distribution is elected
regardless of previous version installed on your system,
proceed to STEP 7.
d) If this is an UPGRADE from the PREVIOUS version,
execute the below JCL based on current installed version:
- V0R9M00 is initial release, thus, no updates available!
e) After upgrade is applied, proceed to validation, STEP 11.
+--------------------------------------------------------------------+
| Step 7. Install TSO parts |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST03) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG03 JOB (SYS),'Install TSO Parts', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * *
//* * JOB: $INST03 Install TSO parts *
//* * *
//* * Note: Duplicate members are over-written. *
//* -------------------------------------------------------*
//STEP001 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//INCLIST DD DSN=GETMSG.V0R9M00.CLIST,DISP=SHR
//INHELP DD DSN=GETMSG.V0R9M00.HELP,DISP=SHR
//OUTCLIST DD DSN=SYS2.CMDPROC,DISP=SHR
//OUTHELP DD DSN=SYS2.HELP,DISP=SHR
//SYSIN DD *
COPY INDD=((INCLIST,R)),OUTDD=OUTCLIST
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
COPY INDD=((INHELP,R)),OUTDD=OUTHELP
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
/*
//
______________________________________________________________________
Figure 6: $INST03 JCL
a) Member $INST03 installs TSO component(s).
Note: If no TSO components are included for this distribution,
----- RC = 4 is returned by the corresponding IEBCOPY step.
b) Review and update JOB statement and other JCL to conform to your
installation standard.
c) Submit the job.
d) Review job output for successful load(s).
+--------------------------------------------------------------------+
| Step 8. Install GETMSG Program |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST04) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG04 JOB (SYS),'Install GETMSG', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * *
//* * JOB: $INST04 Install GETMSG Software *
//* * *
//* * - Install libraries marked... *
//* * - Search for '<--TARGET' *
//* * - Update install libraries per your *
//* * installation standard *
//* * *
//* -------------------------------------------------------*
//*
//* -------------------------------------------------------*
//* * *
//* * PROC: COBLKED *
//* * COBOL Link-Edit *
//* * *
//* -------------------------------------------------------*
//COBL PROC HLQ=WHATHLQ,VRM=VXRXMXX,
// MBR=WHOWHAT,
// CPARM1='LOAD,SUPMAP',
// CPARM2='SIZE=2048K,BUF=1024K'
//*COB EXEC PGM=IKFCBL00,REGION=4096K,
//* PARM='LOAD,SUPMAP,SIZE=2048K,BUF=1024K'
//COB EXEC PGM=IKFCBL00,REGION=4096K,
// PARM='&CPARM1,&CPARM2'
//STEPLIB DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DSN=NULLFILE
//SYSUT1 DD UNIT=SYSDA,SPACE=(460,(700,100))
//SYSUT2 DD UNIT=SYSDA,SPACE=(460,(700,100))
//SYSUT3 DD UNIT=SYSDA,SPACE=(460,(700,100))
//SYSUT4 DD UNIT=SYSDA,SPACE=(460,(700,100))
//SYSLIN DD DSNAME=&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA,
// SPACE=(80,(500,100))
//SYSLIB DD DSN=&HLQ..&VRM..ASM,DISP=SHR
// DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR
//SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT
//*
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET',
// COND=(5,LT,COB),REGION=96K
//SYSLIN DD DSNAME=&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DUMMY
//SYSLIB DD DUMMY
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,20))
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//*
// PEND
//*
//* -------------------------------------------------------*
//* * Compile Link-Edit GETMSG to ISPLLIB *
//* -------------------------------------------------------*
//GETMSG EXEC COBL,HLQ=CLGLST,VRM=V0R9M01,MBR=GETMSG,
// CPARM1='LIST,LOAD,NODECK,PMAP,DMAP'
//** PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR'
//COB.STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR <--Complr STEPLIB
//LKED.SYSLMOD DD DSN=XXXXXXXX.ISPLLIB(GETMSG), <-- TARGET
// DISP=SHR
//LKED.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR <-- COBOL Subrtns
// DD DSNAME=ISP.V2R2M0.LLIB, <-- ISP SYS LLIB
// DISP=SHR
//
______________________________________________________________________
Figure 7: $INST04 JCL
a) Member $INST04 installs program(s).
Note: If no components are included for this distribution,
----- an IEFBR14 step is executed.
b) Review and update JOB statement and other JCL to conform to your
installation standard.
c) Submit the job.
d) Review job output for successful completion.
+--------------------------------------------------------------------+
| Step 9. Install ISPF parts |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST05) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG05 JOB (SYS),'Install ISPF Parts', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * *
//* * JOB: $INST05 Install ISPF parts *
//* * *
//* * Note: Duplicate members are over-written. *
//* * *
//* * *
//* * - Uses ISPF 2.1 product from Wally Mclaughlin *
//* * - Install libraries marked... *
//* * - Search for '<--TARGET' *
//* * - Update install libraries per your *
//* * installation standard *
//* -------------------------------------------------------*
//*
//* -------------------------------------------------------*
//* * *
//* * PROC: PARTSISPF *
//* * Copy ISPF Parts *
//* * *
//* -------------------------------------------------------*
//PARTSI PROC HLQ=MYHLQ,VRM=VXRXMXX,
// CLIB='XXXXXXXX.ISPCLIB',
// MLIB='XXXXXXXX.ISPMLIB',
// PLIB='XXXXXXXX.ISPPLIB',
// SLIB='XXXXXXXX.ISPSLIB',
// TLIB='XXXXXXXX.ISPTLIB'
//*
//* -------------------------------------------------------*
//* * *
//* * CLIB Member Installation *
//* * *
//* * Suggested Location: *
//* * DSN defined or concatenated to ISPCLIB DD *
//* * *
//* * Note: If you use a new PDS, it must be defined *
//* * before executing this install job AND the *
//* * ISPF start-up procedure should include the *
//* * new PDS in the ISPCLIB allocation step. *
//* * *
//* -------------------------------------------------------*
//ADDCLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//CLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR
//CLIBOUT DD DSN=&CLIB,DISP=SHR
//SYSIN DD DUMMY
//*
//* -------------------------------------------------------*
//* * *
//* * MLIB Member Installation *
//* * *
//* * Suggested Location: *
//* * DSN defined or concatenated to ISPMLIB DD *
//* * *
//* * Note: If you use a new PDS, it must be defined *
//* * before executing this install job AND the *
//* * ISPF start-up procedure should include the *
//* * new PDS in the ISPMLIB allocation step. *
//* * *
//* -------------------------------------------------------*
//ADDMLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//MLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR
//MLIBOUT DD DSN=&MLIB,DISP=SHR
//SYSIN DD DUMMY
//*
//* -------------------------------------------------------*
//* * *
//* * PLIB Member Installation *
//* * *
//* * Suggested Location: *
//* * DSN defined or concatenated to ISPPLIB DD *
//* * *
//* * Note: If you use a new PDS, it must be defined *
//* * before executing this install job AND the *
//* * ISPF start-up procedure should include the *
//* * new PDS in the ISPPLIB allocation step. *
//* * *
//* -------------------------------------------------------*
//ADDPLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//PLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR
//PLIBOUT DD DSN=&PLIB,DISP=SHR
//SYSIN DD DUMMY
//*
//* -------------------------------------------------------*
//* * *
//* * SLIB Member Installation *
//* * *
//* * Suggested Location: *
//* * DSN defined or concatenated to ISPSLIB DD *
//* * *
//* * Note: If you use a new PDS, it must be defined *
//* * before executing this install job AND the *
//* * ISPF start-up procedure should include the *
//* * new PDS in the ISPSLIB allocation step. *
//* * *
//* -------------------------------------------------------*
//ADDSLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR
//SLIBOUT DD DSN=&SLIB,DISP=SHR
//SYSIN DD DUMMY
//*
//*
//* -------------------------------------------------------*
//* * *
//* * TLIB Member Installation *
//* * *
//* * Suggested Location: *
//* * DSN defined or concatenated to ISPTLIB DD *
//* * *
//* * Note: If you use a new PDS, it must be defined *
//* * before executing this install job AND the *
//* * ISPF start-up procedure should include the *
//* * new PDS in the ISPTLIB allocation step. *
//* * *
//* -------------------------------------------------------*
//ADDTLIB EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//TLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR
//TLIBOUT DD DSN=&TLIB,DISP=SHR
//SYSIN DD DUMMY
//*
// PEND
//*
//ISPF EXEC PARTSI,HLQ=GETMSG,VRM=V0R9M00,
// CLIB='XXXXXXXX.ISPCLIB', <--TARGET
// MLIB='XXXXXXXX.ISPMLIB', <--TARGET
// PLIB='XXXXXXXX.ISPPLIB', <--TARGET
// SLIB='XXXXXXXX.ISPSLIB', <--TARGET
// TLIB='XXXXXXXX.ISPTLIB' <--TARGET
//ADDCLIB.SYSIN DD * CLIB
COPY INDD=((CLIBIN,R)),OUTDD=CLIBOUT
SELECT MEMBER=C$GETMSG
//ADDMLIB.SYSIN DD * MLIB
COPY INDD=MLIBIN,OUTDD=MLIBOUT
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
//ADDPLIB.SYSIN DD * PLIB
COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
//ADDSLIB.SYSIN DD * SLIB
COPY INDD=((SLIBIN,R)),OUTDD=SLIBOUT
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
//ADDTLIB.SYSIN DD * TLIB
COPY INDD=((TLIBIN,R)),OUTDD=TLIBOUT
SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */
//
______________________________________________________________________
Figure 8: $INST05 JCL
a) Member $INST05 installs ISPF component(s).
Note: If no ISPF components are included for this distribution,
----- RC = 4 is returned by the corresponding IEBCOPY step.
b) Review and update JOB statement and other JCL to conform to your
installation standard.
c) Review and update DD statements for ISPCLIB (clist),
ISPMLIB (messages), and/or ISPPLIB (panel) library names.
The DD statements are tagged with '<--TARGET'.
d) Submit the job.
e) Review job output for successful load(s).
+--------------------------------------------------------------------+
| Step 10. Install Other Software |
+--------------------------------------------------------------------+
| JCL Member: GETMSG.V0R9M00.CNTL($INST40) |
+--------------------------------------------------------------------+
______________________________________________________________________
//GETMSG40 JOB (SYS),'Install Other Pgms', <-- Review and Modify
// CLASS=A,MSGCLASS=X, <-- Review and Modify
// MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify
//* -------------------------------------------------------*
//* * GETMSG for MVS3.8J TSO / Hercules *
//* * *
//* * JOB: $INST40 Install Other Software *
//* * Install xxxxxx Programs *
//* * *
//* * *
//* -------------------------------------------------------*
//*
//* -------------------------------------------------------*
//* * IEFBR14 *
//* -------------------------------------------------------*
//DUMMY EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//*
//
______________________________________________________________________
Figure 9: $INST40 JCL
a) Member $INST40 installs additional software.
Note: If no other software is included for this distribution,
----- an IEFBR14 step is executed.
b) Review and update JOB statement and other JCL to conform to your
installation standard.
c) Submit the job.
d) Review job output for successful completion.
+--------------------------------------------------------------------+
| Step 11. Validate GETMSG |
+--------------------------------------------------------------------+
a) From the ISPF Main Menu, enter the following command:
TSO %C$GETMSG
-- or --
TSO %C$GETMSG MSGID(DVTC020)
b) Upon execution return, one of the following two responses
are successful:
MSGID='XXXX020'
GETMSG ERROR, RC=nn
-- or --
MSGID='DVTC020'
ERRSM='MSG VARIABLE NOT FOUND '
ERRLM='ISP076E - VARIABLE IN MESSAGE DVTC020 NOT FOUND
'
ERRALRM='YES'
ERRHM=' '
ERRTYPE=' '
***
c) Validation is complete.
+--------------------------------------------------------------------+
| Step 12. Done |
+--------------------------------------------------------------------+
a) Congratulations! You completed the installation for GETMSG.
+--------------------------------------------------------------------+
| Step 13. Incorporate GETMSG into ISPF menu panel |
+--------------------------------------------------------------------+
a) Not applicable.
Enjoy GETMSG!
======================================================================
* IV. S o f t w a r e I n v e n t o r y L i s t |
======================================================================
- GETMSG.V0R9M00.ASM
# . GETMSG TSO CP get message via GETMSG
- GETMSG.V0R9M00.CLIST
# . README Dummy member, this is intentional
- GETMSG.V0R9M00.CNTL
# . $INST00 Define Alias for HLQ GETMSG
# . $INST01 Load CNTL data set from distribution tape (HET)
# . $INST02 Load other data sets from distribution tape (HET)
# . $INST03 Install TSO Parts
# . $INST04 Install GETMSG CP
# . $INST05 Install ISPF Parts
# . $INST40 Install Other programs
# . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370
# . $UP0900 Upgrade to V0R9M00 from V1R0M00
# . DSCLAIMR Disclaimer
# . PREREQS Required User-mods
# . README Documentation and Installation instructions
- GETMSG.V0R9M00.HELP
# . README Dummy member, this is intentional
- GETMSG.V0R9M00.ISPF
# . C$GETMSG IVP CLIST for GETMSG
- GETMSG.V0R9M00.MACLIB
# . README Dummy member, this is intentional
- After downloading any other required software, consult provided
documentation including any configuration steps (if applicable)
for software and HELP file installation.
$ - Denotes modified software component for THIS DISTRIBUTION
relative to prior DISTRIBUTION
# - Denotes new software component for THIS DISTRIBUTION
relative to prior DISTRIBUTION
Closing
Use this ISPF utility, GETMSG, to acquire ISPF message components in ISPF Shared variables in your MVS3.8J application software.
Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding this post.
Thank You.
Version History
* * MM/DD/CCYY Version Name / Description * ---------- ------- ----------------------------------------------- * 09/11/2019 0.9.00 Larry Belmontes Jr. * - Initial version released to MVS 3.8J * hobbyist public domain *