DUCBD – Display DASD and TAPE UCB Information Utility for MVS38J / ISPF v 2.x / Hercules
(current version 1.1.01 2024-01-01)
The UCB (Unit Control Block) stores information regarding input/output devices on a MVS 38J operating system. Sometimes, it is necessary to inquire on some of that information for research purposes or general I/O device verification.
DUCBD displays select control information for DASD and TAPE devices on a ISPF panel written in assembler (IFOX00) using ISPF 2.1 (product from Wally Mclaughlin) table services to integrate seamlessly into an MVS 38J hobbyist ISPF suite.
Version 1.1.01 introduces two new screens supporting new commands to display new devices:
– UREC (unit-record)
– DISP (display)
– COMM (communications)
– CTCH (channel-to-channel)
– CHAR (character reader)
– ALLU (all ucb devices).
Each device type displays select UCB information on one screen. Additionally, status and PF Key line added to screens, new ABOUT command to display software version information along with updated tutorial content. See Version History for more change information.
Version 1.1.00 adds filtering for DASD device type (e.g. DASD3350 to only display 3350 devices) and a Select column to invoke DVTOC for the selected volume. TAPE device display functionality remains unchanged. See Version History for more change information.
Below are some ISPF display and help panel snippets.
mm/dd/ccyy.jjj hh:mm:ss ---- UCB Display DASD ---- ROW 1 OF 54 COMMAND ===> SCROLL ===> CSR LARRY01 PDUCBD0 Request: DASD ONLINE only Sorted by: CUU PF3-End PF7-Up PF8-Down Select: - S SEL CUU VOLSER DEVTYPE DSTAT VSTAT MSTAT ASTAT SYStem PAGE 131 SORT01 2314 Online Public PermRes Unalloc 132 SORT02 2314 Online Public PermRes Unalloc 133 SORT03 2314 Online Public PermRes Unalloc 134 SORT04 2314 Online Public PermRes Unalloc 135 SORT05 2314 Online Public PermRes Unalloc 136 SORT06 2314 Online Public PermRes Unalloc 140 WORK00 3350 Online Public PermRes Unalloc 148 MVSRES 3350 Online Private PermRes Alloc Sysres 149 SMP001 3350 Online Public PermRes Unalloc 14A SMP002 3350 Online Public PermRes Unalloc 14B SMP003 3350 Online Public PermRes Unalloc 14C SMP004 3350 Online Public PermRes Unalloc 150 START1 3330 Online Private Reserved Unalloc 151 SPOOL0 3330 Online Public Reserved Unalloc 152 HASP00 3330 Online Public Reserved Alloc 154 VSAM01 3330 Online Private PermRes Alloc 156 SPOOL1 3330 Online Public Reserved Unalloc
mm/dd/ccyy.jjj hh:mm:ss ---- UCB Display TAPE ---- ROW 1 OF 4 COMMAND ===> SCROLL ===> CSR LARRY01 PDUCBD0 Request: TAPE ONLINE only Sorted by: CUU PF3-End PF7-Up PF8-Down CUU DEVTYPE VOLSER USERID DSTAT ASTAT BPI 480 3400-6 Online Unalloc 1600/6250 481 3400-6 INIT Online Unalloc 1600/6250 482 3400-6 Online Unalloc 1600/6250 484 3400-6 Online Unalloc 1600/6250 ******************************* BOTTOM OF DATA *******************************
mm/dd/ccyy.jjj hh:mm:ss ---- UCB Display UREC ---- ROW 1 OF 4 COMMAND ===> SCROLL ===> CSR LARRY01 PDUCBU0 Request: UREC* Off/Online Sorted by: CUU PF3-End PF7-Up PF8-Down CUU DEVTYPE DSTAT ASTAT SYStem 002 3211 Offline Unalloc 003 3211 Offline Unalloc 009 3215 Online Unalloc 00C 2540 Online Alloc 00D 2540-2 Online Alloc 00E 1403 Online Alloc 00F 1403 Online Alloc 01F 3215 Offline Unalloc 102 3211 Offline Unalloc 103 3211 Offline Unalloc 10C 2540 Online Alloc 10D 2540-2 Online Unalloc 10E 1403 Offline Unalloc 10F 1403 Offline Unalloc 202 3211 Offline Unalloc 203 3211 Offline Unalloc
--HELP---------------------- UCB Display DASD ----------------------- v1.1.00 - Command ===> HDFSPC0 DUCBD displays UCB (Unit Control Block) information for DASD devices. ¦ Col - Sort By... ¦ Col - Sort By... ¦ Col - Sort By... ¦ ¦ CUU - Unit Address ¦ VOL - Volume Serial No ¦ DEV - Unit Type ¦ ¦ DST - Device Status ¦ VST - Volume Status ¦ MST - Mount Status ¦ ¦ SYS - SYSRES Volume ¦ AST - Allocate Status ¦ PAG - Pagefile ¦ ------------------------------------------------------------------------------- Data can be filtered or sorted with below commands (Cmd): ¦ Cmd - Display..... ¦ Cmd - Display..... ¦ ¦ DASD - List Online DASD ¦ DASD* - List Off/Online DASD ¦ ¦ DASDxxxx - Filter DASD Devices by Unit Type Online e.g DASD33 ¦ ¦ DASDxxxx*- Filter DASD Devices by Unit Type Off/Online e.g DASD3350* ¦ ¦ SORT Col - Sort by Col preceed Col with minus sign for descending sort ¦ ------------------------------------------------------------------------------- xxxx represents up to first four bytes of DEV ( Unit Type ). Use SEL code S to invoke DVTOC for VOLSER volume (DVTOC must be installed). Type MYTUTOR in Command line to initiate tutorial session.
For release v1r1m00 and above, the command MYTUTOR can be typed into the DUCBD COMMAND line to invoke a tutorial if LBTUTOR add-on is installed.
On each UCB display, data can be sorted by typing ‘SORT ColNm’ into the COMMAND line. ColNm must be a minimum of 3 characters as listed in the help panel. For descending order, use a preceding minus sign with the ColNm (i.e. SORT -CUU). Due to a limitation in ISPF v2.1, descending sorts are ignored. However, this limitation is resolved in ISPF v 2.2!
The method used to acquire UCB data is facilitated by scanning the UCB (as offered in MVS38J) using the CVT UCB Table lookup address and terminating the search when detecting terminator x’FFFF’. The search extracts select data for DASD and TAPE devices only. Other devices are bypassed in this version of DUCBD. The UCB includes a wealth of device information. For a full description on the UCB, refer to a Systems Data Areas manual.
For the curious enthusiast, refer to the code for more DUCBD logic details! Feel free to expand functionality and display other information at will and share it with the MVS 38J community…
Date and time values are sourced from ISPF Z variables (ZDATE, ZJDATE, ZTIME). Format of date / time is mm/dd/ccyy.jjj hh:mm:ss based on ISPF configuration.
DUCBD uses ISPF generic message ISRZ002 for posting errors. Message set ISRZ00 must be installed to display message content. Otherwise, a ‘not found’ message is posted.
Some common macros are used by DUCBD and other ShareABitofIT software before assembly-link-edit which requires installation of SHRABIT.MACLIB.
DUCBD can be invoked directly from an ISPF panel or menu using ‘CMD(DUCBD) NEWAPPL(DUCB)’ as follows:
Assume an existing ISPF panel has the following )PROC section, the 'NEW ENTRY' line can be added to invoke DUCBD when option UD is entered. )PROC &ZSEL = TRANS( TRUNC (&ZCMD,'.') 1,'CMD(xxxxx) NEWAPPL(ISR)' 6,'PGM(xxxxxx)' UD,'CMD(DUCBD) NEWAPPL(DUCB)' <-- NEW ENTRY ' ',' ' *,'?' ) )END
Alternatively, a command entry can be defined in the ISPF command table (ISPCMDS) as follows:
COMMAND TABLE - ISP ---------------------------- ROW 1 OF 6
COMMAND ===> SCROLL ===> PAGE
INSERT, DELETE, AND CHANGE COMMAND ENTRIES. UNDERSCORES NEED NOT BE BLANKED.
ENTER END COMMAND TO SAVE CHANGES OR CANCEL TO END WITHOUT SAVING.
VERB T ACTION
DESCRIPTION
____ DUCBD 5 SELECT CMD(DUCBD) NEWAPPL(DUCB)
DISPLAY UCB DEVICES
Then, you can access from any screen by typing DUCBD on the command line.
DUCBD is based on Wally Mclaughlin’s ISPF product Ver 2.1 and written in IFOX00 under MVS38J TK3 and Hercules v3.07.
Prerequisites
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 and using this software installation. 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.
Several other components are pre-requisites. See README file for a complete list of required and/or optional software including download sites.
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.
Access DUCBD now for a demo!
Take DUCBD for a ‘test drive’ before downloading and installing onto your MVS38J system.
Point your TN3270 terminal emulator using TLS to access TK4- v8 system
- URL: mywhs.belmontes.net
- PORT: 5000
- TLS : Version 1.2
or, point your TN3270 terminal emulator using TLS to access TK5 system
- URL: mywhs.belmontes.net
- PORT: 5050
- TLS : Version 1.2
Once connected, log on using any TK4- or TK5 default user ids and passcodes.
On TK4-, select option I (I for ISPF) from the TSO Applications Menu to display ISPF Main Menu.
Note, option I is not listed on the menu – this is intentional.
On TK5, the ISPF Main menu displays.
Once connected, log on using any of the TK4- default user ids and passcodes.
After successful logon, select option I (I for ISPF) from the TSO Applications Menu. Note, option I is not listed on the menu – this is intentional.
From the ISPF PRIMARY OPTION MENU, type L in the command field (OPTION ==>) and press ENTER to display the ShareABitOfIT Software Demo Menu.
Type DUCBD in the command field (OPTION ==>) and press ENTER.
Use PF1 to display help panel.
Use PF3 to end DUCBD.
Use PF3 to exit from ISPF and TSO Applications Menu returning to the TSO READY prompt.
Log off TSO.
Terminate 3270 session.
Installing Software
After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution content file (HET or XMI) from your personal computing device to MVS.
When the transfer completes, associated load JCL (HET, RECV370 or TSO RECEIVE) can also be transferred to MVS to load the distribution software.
Alternatively, the load JCL may be submitted from your device if a TCP/IP socket reader is setup on you device hosting Hercules / MVS 3.8J.
Continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO per the readme.txt instructions.
The below README file includes a ZIP file content list, pre-installation requirements (notes, credits) and installation steps.
DUCBD for MVS 3.8J / Hercules . ============================= . . Date: 01/10/2024 Release V1R1M01 02/10/2022 Release V1R1M00 08/10/2020 Release V1R0M00 **INITIAL software distribution * Author: Larry Belmontes Jr. * https://ShareABitofIT.net/DUCBD-in-MVS38J * Copyright (C) 2020-2024 Larry Belmontes, Jr. ---------------------------------------------------------------------- | DUCBD 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 ---------------------------------------------------------------------- | DUCBD C h a n g e H i s t o r y | ---------------------------------------------------------------------- * * MM/DD/CCYY Version Change Description * ---------- ------- ----------------------------------------------- * 01/01/2024 1.1.01 - Add support to display select UCB information * for additional devices: * CHAR COMM CTCH DISP UREC and ALLU * - Add new panels to support new device classes * - Enhance device keyword and filter processing * - Add status line to display list content * as an awareness aid * - Add commands: ABOUT, MYTUTOR, RFIND * - Remove use of GETDTE for date-time, * continue to use ISPF Z variables * - Add tutorial panels * - Miscellanous documentation updates * * 02/10/2022 1.1.00 - Allow device type filtering for DASD * - Enhance messaging * - Add SELECT processing * - Enhance SORT command processing * - Incorporate GETDTE for date-time * - Miscellanous documentation updates * - Add transaction logging * * 08/10/2020 1.0.00 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 in Master Catalog o $INST01.JCL Load CNTL data set from distribution tape o $RECVXMI.JCL RECV370 Receive XMI SEQ to MVS PDSs o $RECVTSO.JCL TSO Receive XMI SEQ to MVS PDSs o DUCBD.V1R1M01.HET Hercules Emulated Tape (HET) multi-file volume volser=VS1101 containing software distribution library. o DUCBD.V1R1M01.XMI XMIT file containing software distribution library. o DSCLAIMR.TXT Disclaimer o PREREQS.TXT Required user-mods o README.TXT This File Note: See application web page for any updates to readme.txt Note: ISPF v2.1+ (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/ Note: Generic message(s) ISRZ00x are used for error message posting ----- by this software and must be installed as a pre-requisite. More information including current version download link at:ISRZ00 in MVS38JNote: SHRABIT.MACLIB is macro library required to assemble/compile this ----- software. A version as-of this distribution is included for installation as a pre-requisite. More information including current version download link at:SHRABIT.MACLIB in MVS 3.8JNote: CLOGIT is an ISPF add-on that performs transaction logging ----- and must be installed as a pre-requisite. Current version can be downloaded and more information at:CLGLST in MVS38J====================================================================== * 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 name for HLQ aliases. o The Master Catalog password may be required for some installation steps. o If loading via tape files, device 480 is utilized. o DATASET List after distribution library load for reference purposes: DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT SHRABIT.DUCBD.V1R1M01.ASM PUB006 20 5 PO FB 25 1 SHRABIT.DUCBD.V1R1M01.CLIST PUB006 2 1 PO FB 50 1 SHRABIT.DUCBD.V1R1M01.CNTL PUB006 20 5 PO FB 25 1 SHRABIT.DUCBD.V1R1M01.HELP PUB006 2 1 PO FB 50 1 SHRABIT.DUCBD.V1R1M01.ISPF PUB006 10 6 PO FB 60 1 SHRABIT.DUCBD.V1R1M01.MACLIB PUB006 10 3 PO FB 30 1 **END** TOTALS: 64 TRKS ALLOC 21 TRKS USED 6 EXTENTS Confirm the TOTAL track allocation is available on your device. Note: A different DASD device type (e.g. 3380) may yield different usage. 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. o JCL from your local device (after unzip) may be edited using Notepad or nano (based on you host OS) and submitted via TCP/IP sockets reader if your system configuration supports this option. This option can replace some copy-paste tasks during installation. For more information on submitting JCL to MVS 3.8J, seeSubmitting JCL to MVS 3.8Jo For more information on SHRABIT software distribution library, seeSHRABIT Distributions for MVS38Jo For more information on SHRABIT software installation, seeSHRABIT Installations for MVS38J====================================================================== * III. I n s t a l l a t i o n S t e p s | ====================================================================== +--------------------------------------------------------------------+ | Step 1. Determine software installation source | +--------------------------------------------------------------------+ | HET or XMI ? | +--------------------------------------------------------------------+ a) Software can be installed from one of two sources, HET or XMI. - For tape installation (HET), proceed to STEP 3. **** or - For XMIT installation (XMI), proceed to next STEP. +--------------------------------------------------------------------+ | Step 2. Load distribution source from XMI file | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($RECVXMI) | | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($RECVTSO) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive DUCBD 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 * //* * using RECV370 * //* -------------------------------------------------------* //RECV PROC HLQ='SHRABIT.DUCBD',VRM=V1R1M01,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=DISK,DVOLSER=PUB006 <-- Review and Modify //* //RECV370 EXEC PGM=RECV370 //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 //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* RECV370 DUCBD Software Distribution //* -------------------------------------------------------* //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 //* //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,(10,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,(05,02,02)), // DISP=&DDISP // ______________________________________________________________________ Figure 1a: $RECVXMI.JCL ______________________________________________________________________ //RECV000B JOB (SYS),'TSO RECEIVE XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVTSO TSO RECEIVE APPLICATION XMI FILES * //* * for DUCBD software distribution * //* -------------------------------------------------------* //* //* This JOB executes two steps: //* //* 1) IDCAMS to ensure parent HLQ alias (SHRABIT) is //* defined on master catalog //* Note: Alias definition bypassed if alias already //* ----- defined. //* //* 2) Executes TSO in BATCH mode and issues //* TSO RECEIVE commands to load the XMI distribution //* library (an XMI SEQ dataset) to a temporary PDS. //* Each software PDS is loaded from before deleting //* temporary PDS. //* //* //* This JCL may be modified to suit your installation //* needs. //* //* The TSO RECEIVE commands use INdataset, DAtaset, VOL, //* and NOPRompt parms. //* //* //* -------------------------------------------------------* //* * * //* * PROC: PBTSO * //* * Batch TSO * //* * * //* -------------------------------------------------------* //PBTSO PROC //STEP01 EXEC PGM=IKJEFT01 //SYSPROC DD DISP=SHR,DSN=SYS2.CMDPROC //*STEPLIB DD DISP=SHR,DSN=SYS2.LINKLIB //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY Command Line Input //* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* TSO RECEIVE DUCBD Software Distribution //* -------------------------------------------------------* //TSORCV EXEC PBTSO //* -------------------------------------------------------* //* Review and Modify the DSN of the transferred XMI <----- //* used in the TSO RECEIVE SYSTSIN DD. <----- //* -------------------------------------------------------* //STEP01.SYSTSIN DD * /* Modify 'SHRABIT.' with your parent HLQ, if different */ /* Modify 'your.transfer.xmi' with transferred XMI SEQ DSN */ /* Modify 'volser' with VOLSER on your system */ RECEIVE IN('your.transfer.xmi') - DA('SHRABIT.DUCBD.V1R1M01.XMIPDS') - VOL(volser) NOPROMPT /* Receive CNTL */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(CNTL)') - DA('SHRABIT.DUCBD.V1R1M01.CNTL') - VOL(volser) NOPROMPT /* Receive HELP */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(HELP)') - DA('SHRABIT.DUCBD.V1R1M01.HELP') - VOL(volser) NOPROMPT /* Receive CLIST */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(CLIST)') - DA('SHRABIT.DUCBD.V1R1M01.CLIST') - VOL(volser) NOPROMPT /* Receive ISPF */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(ISPF)') - DA('SHRABIT.DUCBD.V1R1M01.ISPF') - VOL(volser) NOPROMPT /* Receive ASM */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(ASM)') - DA('SHRABIT.DUCBD.V1R1M01.ASM') - VOL(volser) NOPROMPT /* Receive MACLIB */ RECEIVE IN('SHRABIT.DUCBD.V1R1M01.XMIPDS(MACLIB)') - DA('SHRABIT.DUCBD.V1R1M01.MACLIB') - VOL(volser) NOPROMPT /* Delete XMIPDS */ DELETE 'SHRABIT.DUCBD.V1R1M01.XMIPDS' /* // ______________________________________________________________________ Figure 1b: $RECVTSO.JCL a) Transfer DUCBD.V1R1M01.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 - or - 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) If using RECV370 to load XMI, Copy and paste the $RECVXMI JCL to a PDS member, update JOB statement to conform to your installation standard. - or - If using TSO RECEIVE to load XMI, Copy and paste the $RECVTSO JCL to a PDS member, update JOB statement to conform to your installation standard. c) The first step ensures the HLQ alias is defined and the subsequent steps perform the XMI load. 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: SHRABIT.DUCBD.V1R1M01.ASM SHRABIT.DUCBD.V1R1M01.CLIST SHRABIT.DUCBD.V1R1M01.CNTL SHRABIT.DUCBD.V1R1M01.HELP SHRABIT.DUCBD.V1R1M01.ISPF SHRABIT.DUCBD.V1R1M01.MACLIB f) Subsequent installation steps will be submitted from members contained in the CNTL data set. g) Proceed to STEP 6. **** +--------------------------------------------------------------------+ | Step 3. Define Alias for HLQ DUCBD in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD000 JOB (SYS),'Def DUCBD Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD for MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for parent HLQ SHRABIT * //* * Note: The master catalog password may be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and Modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* // ______________________________________________________________________ Figure 2: $INST00 JCL Note: This distribution is installed under the HLQ alias SHRABIT. $INST00 bypasses the DEFINE ALIAS action when the alias is already defined. 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 4. Load CNTL data set from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD001 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC THLQ=DUCBD,TVOLSER=VS1101, // HLQ='SHRABIT.DUCBD',VRM=V1R1M01, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCNTL DD DSN=&THLQ..&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\DUCBD.V1R1M01.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: SHRABIT.DUCBD.V1R1M01.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD002 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD 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 THLQ=DUCBD,TVOLSER=VS1101, // HLQ='SHRABIT.DUCBD',VRM=V1R1M01, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD02 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=&THLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL) //INHELP DD DSN=&THLQ..&VRM..HELP.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL) //INISPF DD DSN=&THLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL) //INASM DD DSN=&THLQ..&VRM..ASM.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL) //INMACLIB DD DSN=&THLQ..&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,(10,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,(05,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\DUCBD.V1R1M01.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: SHRABIT.DUCBD.V1R1M01.CNTL($UP1101) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD00U JOB (SYS),'Upgrade DUCBD', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD for MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP1101 * //* * Upgrade DUCBD Software from release V1R1M00 * //* * * //* * Review JCL before submitting!! * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: ASMLKED * //* * Assembler Link-Edit * //* * * //* -------------------------------------------------------* //ASML PROC HLQ=WHATHLQ,VRM=VXRXMXX,VIO=VIO, // SYSPRM='', // ASMPARM='NODECK,LOAD,RENT,TERM,XREF', // LNKPARM='MAP,LIST,LET,RENT,XREF', // MBR=WHOWHAT //* //ASM EXEC PGM=IFOX00, // PARM='&ASMPARM&SYSPRM' //SYSGO DD DSN=&&LOADSET,DISP=(MOD,PASS),SPACE=(CYL,(1,1)), // UNIT=&VIO,DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800) //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR // DD DSN=SYS2.MACLIB,DISP=SHR ** YREG ** // DD DDNAME=PVTMAC ** PVTMAC ** // DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR * myMACLIB ** //PVTMAC DD DSN=SYS2.MACLIB,DISP=SHR * placeholder* //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=NULLFILE //SYSUT1 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSUT2 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSUT3 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT //* //LKED EXEC PGM=IEWL, // PARM='&LNKPARM', // COND=(0,NE,ASM) //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DUMMY //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=&VIO,SPACE=(CYL,(5,2)) //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * * //* * 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' //* //* -------------------------------------------------------* //* * * //* * ISPF Library Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPF Libraries * //* * - ISPCLIB, ISPMLIB, ISPPLIB, ISPSLIB, ISPTLIB * //* * * //* * 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 ISPxLIB allocation step. * //* * * //* -------------------------------------------------------* //ISPFLIBS EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //ISPFIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //CLIBOUT DD DSN=&CLIB,DISP=SHR //MLIBOUT DD DSN=&MLIB,DISP=SHR //PLIBOUT DD DSN=&PLIB,DISP=SHR //SLIBOUT DD DSN=&SLIB,DISP=SHR //TLIBOUT DD DSN=&TLIB,DISP=SHR //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * Assemble Link-Edit DUCBD to ISPLLIB * //* -------------------------------------------------------* //DUCBD EXEC ASML,HLQ='SHRABIT.DUCBD',VRM=V1R1M01,MBR=DUCBD, // PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR' //LKED.SYSLMOD DD DISP=SHR, // DSN=xxxxxxxx.ISPLLIB(&MBR) <--TARGET //* //* -------------------------------------------------------* //* * Update ISPF parts for this release distribution * //* -------------------------------------------------------* //* * Note: Duplicate members are over-written. * //* -------------------------------------------------------* //* //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* //* -------------------------------------------------------* //ISPFPRTS EXEC PARTSI,HLQ='SHRABIT.DUCBD',VRM=V1R1M01, // CLIB='xxxxxxxx.ISPCLIB', <--TARGET // MLIB='xxxxxxxx.ISPMLIB', <--TARGET // PLIB='xxxxxxxx.ISPPLIB', <--TARGET // SLIB='xxxxxxxx.ISPSLIB', <--TARGET // TLIB='xxxxxxxx.ISPTLIB' <--TARGET //SYSIN DD * COPY INDD=((ISPFIN,R)),OUTDD=CLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((ISPFIN,R)),OUTDD=MLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((ISPFIN,R)),OUTDD=PLIBOUT SELECT MEMBER=HDUCBD0 SELECT MEMBER=PDUCBD0 SELECT MEMBER=PDUCBT0 SELECT MEMBER=HDUCBT0 SELECT MEMBER=PDUCBU0 SELECT MEMBER=HDUCBU0 SELECT MEMBER=PDUCBX0 SELECT MEMBER=HDUCBX0 SELECT MEMBER=TDUCB001 SELECT MEMBER=TDUCB002 SELECT MEMBER=TDUCB003 SELECT MEMBER=TDUCB004 SELECT MEMBER=TDUCB005 SELECT MEMBER=TDUCB006 SELECT MEMBER=TDUCB007 SELECT MEMBER=TDUCB008 SELECT MEMBER=TDUCB009 SELECT MEMBER=TDUCB010 SELECT MEMBER=TDUCB011 SELECT MEMBER=TDUCB012 SELECT MEMBER=TDUCB100 SELECT MEMBER=TDUCBA01 SELECT MEMBER=TDUCBA02 SELECT MEMBER=TDUCBA03 SELECT MEMBER=TDUCBA04 SELECT MEMBER=TDUCBA05 SELECT MEMBER=TDUCBB01 SELECT MEMBER=TDUCBC01 SELECT MEMBER=TDUCBC02 SELECT MEMBER=TDUCBC03 SELECT MEMBER=TDUCBC04 SELECT MEMBER=TDUCBC05 SELECT MEMBER=TDUCBC06 SELECT MEMBER=TDUCBZ01 SELECT MEMBER=TDUCBZ02 SELECT MEMBER=TDUCBZ80 COPY INDD=((ISPFIN,R)),OUTDD=SLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((ISPFIN,R)),OUTDD=TLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ // ______________________________________________________________________ Figure 5: $UP1101.JCL Upgrade from previous version to V1R1M01 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 NOT the most recent ----- PREVIOUS version, perform a FULL install. 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. Note: $UPvrmm.JCL members exist in each software version. ----- For example, V1R3M00 software contains $UP1300.JCL to upgrade from previous V1R2M00 distribution. For example, V1R2M00 software contains $UP1200.JCL to upgrade from previous V1R1M00 distribution. 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: - Upgrading from V1R1M00, use $UP1101.JCL - Upgrading from V1R0M00, use $UP1100.JCL - V1R0M00 is initial release, thus, no updates available! e) After upgrade is applied, proceed to validation, STEP 11. +--------------------------------------------------------------------+ | Step 7. Install TSO parts | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD003 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD 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=SHRABIT.DUCBD.V1R1M01.CLIST,DISP=SHR //INHELP DD DSN=SHRABIT.DUCBD.V1R1M01.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 DUCBD Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.DUCBD.V1R1M01.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD004 JOB (SYS),'Install DUCBD', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install DUCBD Programs * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: ASMLKED * //* * Assembler Link-Edit * //* * * //* -------------------------------------------------------* //ASML PROC HLQ=WHATHLQ,VRM=VXRXMXX,VIO=VIO, // SYSPRM='', // ASMPARM='NODECK,LOAD,RENT,TERM,XREF', // LNKPARM='MAP,LIST,LET,RENT,XREF', // MBR=WHOWHAT //* //ASM EXEC PGM=IFOX00, // PARM='&ASMPARM&SYSPRM' //SYSGO DD DSN=&&LOADSET,DISP=(MOD,PASS),SPACE=(CYL,(1,1)), // UNIT=&VIO,DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800) //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR // DD DSN=SYS2.MACLIB,DISP=SHR ** YREG ** // DD DDNAME=PVTMAC ** PVTMAC ** // DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR * myMACLIB ** //PVTMAC DD DSN=SYS2.MACLIB,DISP=SHR * placeholder* //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=NULLFILE //SYSUT1 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSUT2 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSUT3 DD UNIT=&VIO,SPACE=(CYL,(6,1)) //SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT //* //LKED EXEC PGM=IEWL, // PARM='&LNKPARM', // COND=(0,NE,ASM) //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DUMMY //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=&VIO,SPACE=(CYL,(5,2)) //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * Assemble Link-Edit DUCBD to ISPLLIB * //* -------------------------------------------------------* //DUCBD EXEC ASML,HLQ='SHRABIT.DUCBD',VRM=V1R1M01,MBR=DUCBD, // PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR' //LKED.SYSLMOD DD DISP=SHR, // DSN=XXXXXXXX.ISPLLIB(&MBR) <--TARGET // ______________________________________________________________________ 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: SHRABIT.DUCBD.V1R1M01.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD005 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD in 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='SHRABIT.DUCBD',VRM=V1R1M01, // 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$DUCBD //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=PDUCBD0 SELECT MEMBER=HDUCBD0 SELECT MEMBER=PDUCBT0 SELECT MEMBER=HDUCBT0 SELECT MEMBER=PDUCBU0 SELECT MEMBER=HDUCBU0 SELECT MEMBER=PDUCBX0 SELECT MEMBER=HDUCBX0 SELECT MEMBER=TDUCB001 SELECT MEMBER=TDUCB002 SELECT MEMBER=TDUCB003 SELECT MEMBER=TDUCB004 SELECT MEMBER=TDUCB005 SELECT MEMBER=TDUCB006 SELECT MEMBER=TDUCB007 SELECT MEMBER=TDUCB008 SELECT MEMBER=TDUCB009 SELECT MEMBER=TDUCB010 SELECT MEMBER=TDUCB011 SELECT MEMBER=TDUCB012 SELECT MEMBER=TDUCB100 SELECT MEMBER=TDUCBA01 SELECT MEMBER=TDUCBA02 SELECT MEMBER=TDUCBA03 SELECT MEMBER=TDUCBA04 SELECT MEMBER=TDUCBA05 SELECT MEMBER=TDUCBB01 SELECT MEMBER=TDUCBC01 SELECT MEMBER=TDUCBC02 SELECT MEMBER=TDUCBC03 SELECT MEMBER=TDUCBC04 SELECT MEMBER=TDUCBC05 SELECT MEMBER=TDUCBC06 SELECT MEMBER=TDUCBZ01 SELECT MEMBER=TDUCBZ02 SELECT MEMBER=TDUCBZ80 //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: SHRABIT.DUCBD.V1R1M01.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //DUCBD040 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * DUCBD 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 DUCBD | +--------------------------------------------------------------------+ a) From the ISPF Main Menu, enter the following command: TSO %C$DUCBD b) The panel PDUCBD0 is displayed. ________________________________________________________________________________ dd/mm/ccyy.jjj hh:mm:ss ---- UCB Display DASD ---- ROW 1 OF 54 COMMAND ===> SCROLL ===> CSR LARRY01 PDUCBD0 Request: DASD ONLINE only Sorted by: CUU PF3-End PF7-Up PF8-Down Select: - S SEL CUU VOLSER DEVTYPE DSTAT VSTAT MSTAT ASTAT SYStem PAGE 131 SORT01 2314 Online Public PermRes Unalloc 132 SORT02 2314 Online Public PermRes Unalloc 133 SORT03 2314 Online Public PermRes Unalloc 134 SORT04 2314 Online Public PermRes Unalloc 135 SORT05 2314 Online Public PermRes Unalloc 136 SORT06 2314 Online Public PermRes Unalloc 140 WORK00 3350 Online Public PermRes Unalloc 148 MVSRES 3350 Online Private PermRes Alloc Sysres 149 SMP001 3350 Online Public PermRes Unalloc 14A SMP002 3350 Online Public PermRes Unalloc 14B SMP003 3350 Online Public PermRes Unalloc 14C SMP004 3350 Online Public PermRes Unalloc 150 START1 3330 Online Private Reserved Unalloc 151 SPOOL0 3330 Online Public Reserved Unalloc 152 HASP00 3330 Online Public Reserved Alloc 154 VSAM01 3330 Online Private PermRes Alloc 156 SPOOL1 3330 Online Public Reserved Unalloc 157 HASP01 3330 Online Public Reserved Alloc ________________________________________________________________________________ Figure 10: PDUCBD0 UCB Panel c) Scroll display using PF7 and PF8. d) Use PF1 to display HELP panel. e) Validation is complete. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for DUCBD. +--------------------------------------------------------------------+ | Step 13. Incorporate DUCBD into ISPF menu panel | +--------------------------------------------------------------------+ a) To integrate DUCBD into your ISPF system, refer to SHRABIT.DUCBD.V1R1M01.ASM(DUCBD) for suggested steps in the Overview section as a menu item or ISPF command. Enjoy DUCBD for ISPF 2.x on MVS 3.8J! ====================================================================== * IV. S o f t w a r e I n v e n t o r y L i s t | ====================================================================== - SHRABIT.DUCBD.V1R1M01.ASM $ . DUCBD TSO CP Display DASD and TAPE UCB Information - SHRABIT.DUCBD.V1R1M01.CLIST . README Dummy member, this is intentional - SHRABIT.DUCBD.V1R1M01.CNTL $ . $INST00 Define Alias for HLQ $ . $INST01 Load CNTL data set from distribution tape (HET) $ . $INST02 Load other data sets from distribution tape (HET) $ . $INST03 Install TSO Parts $ . $INST04 Install DUCBD Software $ . $INST05 Install ISPF Parts $ . $INST40 Install Other Software # . $RECVTSO Receive XMI SEQ to MVS PDSs via TSO RECEIVE $ . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 $ . $UP1101 Upgrade to V1R1M01 from V1R1M00 $ . DSCLAIMR Disclaimer $ . PREREQS Required User-mods $ . README Documentation and Installation instructions - SHRABIT.DUCBD.V1R1M01.HELP . README Dummy member, this is intentional - SHRABIT.DUCBD.V1R1M01.ISPF . C$DUCBD IVP CLIST for DUCBD $ . HDUCBD0 DASD UCB Help panel $ . PDUCBD0 DASD UCB Display panel $ . HDUCBT0 TAPE UCB Help panel $ . PDUCBT0 TAPE UCB Display panel # . HDUCBU0 UREC,DISP,COMM,CTCH,CHAR UCB Help panel # . PDUCBU0 URED,DISP,COMM,CTCH,CHAR UCB Display panel # . HDUCBX0 ALL UCB Help panel # . PDUCBX0 ALL UCB Display panel DUCBD Tutorial Panels # . TDUCB100 Tutorial Panel Main Menu # . TDUCB001 Tutorial Panel Overview 1 # . TDUCB002 Tutorial Panel Overview 2 # . TDUCB003 Tutorial Panel Overview 3 # . TDUCB004 Tutorial Panel Overview 4 # . TDUCB005 Tutorial Panel Overview 5 # . TDUCB006 Tutorial Panel Overview 6 # . TDUCB007 Tutorial Panel Overview 7 # . TDUCB008 Tutorial Panel Overview 8 # . TDUCB009 Tutorial Panel Overview 9 # . TDUCB010 Tutorial Panel Overview 10 # . TDUCB011 Tutorial Panel Overview 11 # . TDUCB012 Tutorial Panel Overview 12 # . TDUCBA01 Tutorial Panel Column Descriptions 1 # . TDUCBA02 Tutorial Panel Column Descriptions 2 # . TDUCBA03 Tutorial Panel Column Descriptions 3 # . TDUCBA04 Tutorial Panel Column Descriptions 4 # . TDUCBA05 Tutorial Panel Column Descriptions 5 # . TDUCBB01 Tutorial Panel Selection Code # . TDUCBC01 Tutorial Panel Optional Parameters 1 # . TDUCBC02 Tutorial Panel Optional Parameters 2 # . TDUCBC03 Tutorial Panel Optional Parameters 3 # . TDUCBC04 Tutorial Panel Optional Parameters 4 # . TDUCBC05 Tutorial Panel Optional Parameters 5 # . TDUCBC06 Tutorial Panel Optional Parameters 6 # . TDUCBZ01 Tutorial Panel Change Log and Limitations 1 # . TDUCBZ02 Tutorial Panel Change Log and Limitations 2 # . TDUCBZ80 Tutorial Panel Change Log and Limitations 3 - SHRABIT.DUCBD.V1R1M01.MACLIB . DVCTBL Device Table Entries . ISPFPL ISPF Parameter Address List (10) . ISPFSRV ISPF Service keywords $ . ISPFSRVC ISPF Service keywords (COBOL) . LA#ST Load Address and Store # . LL#ST Load Length and Store . LBISPL Call to ISPLINK (LarryB version) . MISCDC Miscellaneous Constants (i.e. QUOTES) . MOVEC Move VAR at R6, len reflected in R8 (requires MOVEI) $ . MOVEI Init R6 w/ addr of VAR, init R8 to 0 $ . MOVER Move VAR at R6 until BLANK is found $ . MOVEV Move VAR at R6 $ . RDTECOMA DateTime comm area $ . RDTECOMC DateTime comm area (COBOL) . RTRIM Remove trailing spaces . SVC78A SVC78 message area - 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
- Click here to download the ZIP file to your PC local drive.
Closing
Use DUCBD as another utility for your TSO ISPF development on your MVS3.8J system.
Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding DUCBD.
Thank You.
Version History
* * MM/DD/CCYY Version Change Description * ---------- ------- ----------------------------------------------- * 01/01/2024 1.1.01 - Add support to display select UCB information * for additional devices: * CHAR COMM CTCH DISP UREC and ALLU * - Add new panels to support new device classes * - Enhance device keyword and filter processing * - Add status line to display list content * as an awareness aid * - Add commands: ABOUT, MYTUTOR, RFIND * - Remove use of GETDTE for date-time, * continue to use ISPF Z variables * - Add tutorial panels * - Miscellaneous documentation updates * * 02/10/2022 1.1.00 - Allow device type filtering for DASD * - Enhance messaging * - Add SELECT processing * - Enhance SORT command processing * - Incorporate GETDTE for date-time * - Miscellanous documentation updates * - Add transaction logging * * 08/10/2020 1.0.00 Initial version released to MVS 3.8J * hobbyist public domain *
Disable use of GETDTE Utility
In DUCBD V1R1M00 and earlier, date and time on line 1 are populated by GETDTE or Z-variables. The default is GETDTE. Note, GETDTE use is removed in V1R1M01.
GETDTE can be disabled by setting an assembler local symbol and re-installing DUCBD as depicted in the following steps:
1) In the add-on distribution PDS, SHRABIT.DUCBD.VnRnMnn.ASM, edit member DUCBD
2) Position to CSECT portion
EJECT LB1100z DUCBD CSECT *****************************************************************/ * * Software Option Flags */ LCLB &USEDTE * Use GETDTE flag */ LB1100e &USEDTE SETB 1 * 0=No, 1=Yes */ LB1100e * * */ *****************************************************************/ USING DUCBD,R10,R11,R12 my BASE REGISTER(S) PRINT NOGEN *
3) Set local symbol &USEDTE flag from 1(Yes) to 0(No)
EJECT LB1100z
DUCBD CSECT
*****************************************************************/
* * Software Option Flags */
LCLB &USEDTE * Use GETDTE flag */ LB1100e
&USEDTE SETB 0 * 0=No, 1=Yes */ LB1100e
* * */
*****************************************************************/
USING DUCBD,R10,R11,R12 my BASE REGISTER(S)
PRINT NOGEN
*
4) Save the member
5) Use member $INST04 in add-on distribution PDS, SHRABIT.DUCBD.VnRnMnn.CNTL to assemble and link-edit revised member.
5) Review output for normal completion
6) Verify DUCBD
7) Done!