CLIST, ISPF, ISPF 2.x, MVS38J, TSO, Utility

CPRTOFF in MVS38J

Overview

CPRTOFF – Foreground Print utility using ISPF Dialogue under MVS38J / ISPF / Hercules
(current version 0.9.00  2022-02-10)

Printing or spooling a data set using a batch job can be accomplished by simply submitting set of JCL to copy the data set to SYSOUT using IEBGENER.

The MVS 3.8J public-domain OS includes many utilities. One TSO command utility I frequently utilized is PRINTOFF, a CP, which prints (routes) a sequential or partitioned dataset to a local printer (in TSO foreground). As with any CPs, some parameters are required for specific actions. In the case where several parameters may be specified, I resort to using the TSO HELP function to verify command syntax!

As a productivity aid, CPRTOFF uses an ISPF wrapper (dialogue) to display (prompt) all available parameters before executing the PRINTOFF command resulting in a printed version of a requested data set.

A software contribution to CBT (CBTTAPE.ORG) as FILE#161 by Jim Marshall in October 1999 includes a set of ISPF panels, clists and skeletons (file tailoring) that ‘ISPF-enables’ the PRINTOFF command. Jim’s specific components are prefixed as PRINT# and PRT# in file 161.

Since ISPF v2.2 does not contain skeleton support, I developed a panel and CLIST to accomplish a similar ISPF wrapper solution using the PRINTOFF command under ISPF v2.2 (ISPF-like product from Wally Mclaughlin) by referencing and extending the original software contributed / authored by Jim Marshall.

The CPRTOFF software suite is comprised of two panels (including a HELP panel), messages and CLISTs.

Thanks to Jim Marshall for his CBT contribution and providing an opportunity to create an convenient ISPF add-on for the MVS 3.8J / ISPF v2.2 hobbyist community.

Enjoy!
Larry Belmontes

Data Set Print Utility – CPRTOFF

Below is a screen snippet and functional description of CPRTOFF:

 -------------------  Data Set Print Utility - PRINTOFF  ----------------------
 Command ===>                                                           LARRY02 
                                                                        PPRTOFF 
  PRINTOFF:                                                                                
       Data Set Name ===> 'HERC01.TEST.CNTL(MBR)      
              Volume ===>           If not cataloged                    
        Sysout Class ===> A         SYSOUT=A  
                Dest ===>           Remote (RMTnn), blank implies LOCAL  
          Copy Count ===> 1         Number of copies                    
                Hold ===> NOHOLD    Hold or Nohold  
                List ===> LIST      List or Nolist  
               Print ===> PRINT     Print or Noprint                    
               Forms ===>             
                 UCS ===>             
             Heading ===> NOHEADING Heading or Noheading  
    Upper Case Shift ===> ASIS      CAPS or ASIS  
    Carriage control ===>           Enter ASA if 1st char is really
                                    valid ANSI carriage control                    
                                                                                
                                                                                


Simply, CPRTOFF presents a ‘pre-filled form’ that is completed by the ISPF user including data set name and print options as dictated by PRINTOFF. Then, selected options are used to construct the PRINTOFF command line and executed under TSO.

That’s it!

PRINTOFF only processes (prints) sequential or partitioned data sets.

The PRINTOFF help file contains functional details and command syntax including description of each parameter. The help file can be accessed via the TSO command: TSO HELP PRINTOFF.

For convenient reference, the PRINTOFF help member is shown below:

 
 HELP MEMBER==> PRINTOFF  SUBCOMMAND==>                  LINE 00001 COL 001 080 
       INPUT==>                                                        RANGE 20 
1       10        20        30        40        50        60        70        80
+---+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
)F FUNCTION -                                                                   
   THE PRINTOFF COMMAND CAN BE USED TO OBTAIN HARDCOPY                          
   OF DATA SETS THROUGH FOREGROUND COPYING TO SYSOUT.                           
   THE COMMAND PRINTS A DATASET(S) WHICH IS SEQUENTIAL                          
   OR PARTITIONED, BLOCKED OR UNBLOCKED, WITH FIXED OR                          
   VARIABLE RECORD LENGTH LESS THAN OR EQUAL TO 256                             
   (255 IF WITHOUT CARRIAGE CONTROL).                                           
                                                                                
)X SYNTAX -                                                                     
     PRINTOFF ('DSLIST') CLASS('CLASS') DEST('REMOTE')                          
              COPIES('NNN') HOLD/NOHOLD                                         
              LIST/NOLIST PRINT/NOPRINT                                         
              FORMS('FORM') UCS('IMAGE')                                        
              PROG('NAME')  FCB('FCBNAME')                                      
              HEADING/NOHEADING  SNUM  ASA                                      
              CAPS/ASIS TEXT VOLUME('VOLSER')  NOMSG                            
                                                                                
     REQUIRED -- 'DSLIST'                                                       
     ALIAS    -- PRINTO, LISTOFF                                                
     DEFAULTS -- CLASS(A), COPIES(1), NOHOLD, LIST, PRINT, ASIS,                
                 HEADING                                                        
)O OPERANDS -                                                                   
))'DSLIST'  - 'DATA SET LIST' CONTAINS THE NAMES OF DATA SETS                   
            TO BE PRINTED OR PUNCHED.  THE NAMES SHOULD FOLLOW                  
            TSO CONVENTION,  IN QUOTES IF THE PRIMARY INDEX                     
            DIFFERS FROM YOUR USERID, OR WITHOUT QUOTES AND                     
            WITH THE PRIMARY INDEX OMITTED IF IT IS THE SAME                    
            AS YOUR USERID.                                                     
))CLASS('CLASS') - SYSOUT CLASS IN WHICH OUTPUT IS TO BE                        
            PRINTED.  DEFAULT IS A.                                             
))COPIES('NNN') - NUMBER OF COPIES TO BE PRINTED.                               
            DEFAULT IS 1.                                                       
))DEST('REMOTE') - REMOTE LOCATION TO WHICH SYSOUT DATA SETS                    
            ARE TO BE ROUTED.                                                   
))HOLD      - OUTPUT IS TO BE PLACED ON A HOLD QUEUE UPON                       
            DEALLOCATION.                                                       
))NOHOLD    - OUTPUT IS NOT TO BE PLACED ON A HOLD QUEUE                        
            UPON DEALLOCATION.                                                  
))LIST      - MEMBER NAMES ARE ONLY TO BE LISTED UNLESS                         
            PRINT IS EXPLICITLY STATED.                                         
))NOLIST    - MEMBER NAMES ARE NOT TO BE LISTED (ONLY                           
            PRINTED UNLESS NOPRINT IS EXPLICITLY STATED).                       
))PRINT     - MEMBERS ARE ONLY TO BE PRINTED (NOT LISTED                        
            UNLESS LIST IS EXPLICITLY STATED).                                  
))NOPRINT   - MEMBERS ARE NOT TO BE PRINTED (ONLY LISTED                        
            UNLESS NOLIST IS EXPLICITLY STATED).                                
))FORMS('FORM')  - FORM TO BE USED WHEN THE DATA SET IS PRINTED.                
                  (1-4 CHARACTER FORM NAME)                                     
))UCS('IMAGE')   - PRINT IMAGE TO BE USED WHEN PRINTED.                         
            THIS IS OFTEN CALLED THE TRAIN.                                     
            (1-4 CHARACTER PRINT IMAGE NAME)                                    
))PROG('NAME')  - PROGRAM TO BE USED TO PRINT THE DATASET.                      
                 SEE JCL MANUAL FOR MORE DETAIL.                                
))FCB('FCBNAME') - CARRIAGE CONTROL IMAGE TO BE USED.                           
            (1-4 CHARACTER CONTROL IMAGE NAME)                                  
))HEADING   - OUTPUT IS TO HAVE HEADING INFORMATION.                            
            THIS CONTAINS THE DATASET NAME.                                     
))NOHEADING - OUTPUT IS NOT HAVE HEADING INFORMATION.                           
))SNUM      - THE LAST 8 COLUMNS OF FIXED-LENGTH RECORDS                        
            AND THE FIRST 8 COLUMNS OF VARIABLE LENGTH RECORDS                  
            WILL NOT BE PRINTED. THIS ALLOWS SEQUENCE NUMBERS                   
            TO BE SUPPRESSED FROM THE PRINT.                                    
))ASA       - USE THIS KEYWORD IF YOUR DATA SET CONTAINS ASA                    
            CARRIAGE CONTROLS IN COLUMN 1 BUT ITS RECORD FORMAT                 
            DOES NOT INDICATE SO, AND YOU WANT PRINTOFF TO USE                  
            THE CARRIAGE CONTROLS IN THE DATA.                                  
))CAPS      - OUTPUT IS TO BE CONVERTED TO UPPER CASE                           
            PRIOR TO PRINTING.                                                  
))ASIS      - OUTPUT IS NOT TO BE CONVERTED TO UPPER CASE                       
            PRIOR TO PRINTING.(IT IS LEFT AS IT IS)                             
))TEXT      - OUTPUT IS CONSIDERED TO BE TEXT. THIS OPERAND CHANGES             
            CHANGES DEFAULTS TO BE ASIS UCS(TN)'                                
))VOLUME('VOLSER') - VOLUME SERIAL OF VOLUME ON WHICH DATA SETS                 
            TO BE PRINTED ARE FOUND.  THIS VOLUME SERIAL                        
            WILL BE USED FOR ALL DATA SETS SPECIFIED IN                         
            THE DATA SET LIST.                                                  
))NOMSG     - MESSAGES TO THE TERMINAL ARE TO BE SUPPRESSED.                    
******************************** BOTTOM OF DATA ********************************

Prerequisites

ISPF v2.2 (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.

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 CPRTOFF now for a demo!

Take CPRTOFF for a ‘test drive’ before downloading and installing onto your MVS38J system.

Point your TN3270 terminal emulator using TLS to

URL: mywhs.belmontes.net
PORT: 5000
TLS : Version 1.2

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.

Locate and make note of a DASD sequential data set to be used for printing via CPRTOFF.

From the ISPF PRIMARY OPTION MENU, type L in the command field (OPTION ==>) and press ENTER to display the ShareABitOfIT Software Demo Menu.

Type PO in the command field (OPTION ==>) and press ENTER.

Data Set Print Utility panel, PPRTOFF, is displayed.

Use PF1 to display help panel.

Use PF3 to return to the Data Set Print Utility panel.

Enter sequential data set name for Data Set Name.
Review or modify default print options.
Press ENTER to print data set to selected SYSOUT / local printer.

PRINTOFF will display messages at bottom of screen when data set request is processed.

Press PF3 to exit the Data Set Print Utility.

Review your output in the appropriate printer or printer queue.

Use PF3 until returning to the TSO READY prompt.

Log off TSO.

Terminate 3270 session.

Installing CPRTOFF Software

After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution content (HET and/or XMI) 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 the CPRTOFF zip file to your PC local drive.

The below README file includes a ZIP file content list, pre-installation requirements and installation steps.


CPRTOFF for MVS3.8J / Hercules                                              . 
==============================                                              .


CPRTOFF for MVS3.8J / Hercules                                               
==============================                                               


Date: 02/10/2022  Release V0R9M00  **INITIAL software distribution
      09/11/2019  Release V0R5M00

*  Author:  Larry Belmontes Jr.
*           https://ShareABitofIT.net/CPRTOFF-in-MVS38J
*           Copyright (C) 2019-2022  Larry Belmontes, Jr.


---------------------------------------------------------------------- 
|    CPRTOFF      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



---------------------------------------------------------------------- 
|    CPRTOFF      C h a n g e   H i s t o r y                        | 
---------------------------------------------------------------------- 
*  MM/DD/CCYY Version  Name / Description                                       
*  ---------- -------  -----------------------------------------------          
*  02/10/2022 0.9.00   Larry Belmontes Jr.                                      
*                      - Initial version released to MVS 3.8J                   
*                        hobbyist public domain
*                                                                               
*  09/11/2019 0.5.00   Larry Belmontes Jr.
*                      - CPRTOFF is a version of PRINT#C and
*                        PRINT#S from CBT161 by Jim Marshall.
*                        https://cbttape.org/cbtdowns.htm
*                      - Retrofit into MVS 3.8J TSO / ISPF v2.x
*                      - Initial prototyping and development
*                        w ISPF 2.x
*                                                                               
*
======================================================================
* I. C o n t e n t   o f   Z I P   F i l e                           |
======================================================================

o  $INST00.JCL          Define Alias for HLQ CPRTOFF in Master Catalog
 
o  $INST01.JCL          Load CNTL data set from distribution tape
 
o  $RECVXMI.JCL         Receive XMI SEQ to MVS PDSs                  
 
o  CPRTOFF.V0R9M00.HET  Hercules Emulated Tape (HET) multi-file volume
                        with VOLSER of VS0900 containing software
                        distribution.
 
o  CPRTOFF.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 or higher must be installed under MVS3.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 CPRTOFF.
        More information at:
        http://www.prycroft6.com.au/vs2mods/
 
Note:   CUTIL00 is a TSO utility for CLIST variables and           
-----   must be installed as a pre-requisite.  
        More information at:
        
CUTIL00 for MVS 3.8J
Note: PRINTOFF (TSO CP) is a pre-requisite for this install ----- and may be available on MVS3.8J TK3 and TK4- systems. More information at: https://www.cbttape.org/cbtdowns.htm FILE #325 - or - may be downloaded in a MVS 3.8J install-ready format from Jay Moseley's site: http://www.jaymoseley.com/hercules/cbt_ware/printoff.htm Credit: CBT File#161 contributed by Jim Marshall in October 1999 ------- contains one ISPF print application named with prefix PRINT# and PRT# using panels, clists and skeletons. PRT# components were used as models to construct a working version for MVS 3.8J / ISPF v2.2 users. Thanks to Jim Marshall for his CBT contribution. More information at: https://www.cbttape.org/cbtdowns.htm FILE #161 ====================================================================== * 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 As default, DASD files will be loaded to VOLSER=MVSDLB, type 3350 device. Below is a DATASET List after tape distribution load for reference purposes: DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT CPRTOFF.V0R9M00.ASM MVSDLB 5 1 PO FB 20 1 CPRTOFF.V0R9M00.CLIST MVSDLB 2 1 PO FB 50 1 CPRTOFF.V0R9M00.CNTL MVSDLB 20 7 PO FB 35 1 CPRTOFF.V0R9M00.HELP MVSDLB 2 1 PO FB 50 1 CPRTOFF.V0R9M00.ISPF MVSDLB 5 4 PO FB 80 1 CPRTOFF.V0R9M00.MACLIB MVSDLB 2 1 PO FB 50 1 **END** TOTALS: 36 TRKS ALLOC 15 TRKS USED 6 EXTENTS Confirm the TOTAL track allocation is available on MVSDLB. 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 CPRTOFF in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: CPRTOFF.V0R9M00.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF00 JOB (SYS),'Def CPRTOFF Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF for MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for HLQ CPRTOFF * //* * Note: The master catalog password will be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(CPRTOFF) IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(CPRTOFF) 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: CPRTOFF.V0R9M00.CNTL($RECVXMI) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive CPRTOFF 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=CPRTOFF,VRM=V0R9M00,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=3350,DVOLSER=MVSDLB <-- 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,DSPACE='(TRK,(20,10,10))' //HELP EXEC RECV,TYP=HELP,DSPACE='(TRK,(02,02,02))' //CLIST EXEC RECV,TYP=CLIST,DSPACE='(TRK,(02,02,02))' //ISPF EXEC RECV,TYP=ISPF,DSPACE='(TRK,(05,05,10))' //ASM EXEC RECV,TYP=ASM,DSPACE='(TRK,(05,10,10))' //MACLIB EXEC RECV,TYP=MACLIB,DSPACE='(TRK,(02,02,02))' // ______________________________________________________________________ Figure 2: $RECVXMI.JCL a) Transfer CPRTOFF.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: CPRTOFF.V0R9M00.ASM CPRTOFF.V0R9M00.CLIST CPRTOFF.V0R9M00.CNTL CPRTOFF.V0R9M00.HELP CPRTOFF.V0R9M00.ISPF CPRTOFF.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: CPRTOFF.V0R9M00.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF01 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC HLQ=CPRTOFF,VRM=V0R9M00,TVOLSER=VS0900, // TUNIT=480,DVOLSER=MVSDLB,DUNIT=3350 <-- 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=(,CATLG), // 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\CPRTOFF.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: CPRTOFF.V0R9M00.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF02 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF 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=3350 on MVSDLB * //* -------------------------------------------------------* //LOADOTHR PROC HLQ=CPRTOFF,VRM=V0R9M00,TVOLSER=VS0900, // TUNIT=480,DVOLSER=MVSDLB,DUNIT=3350 <-- 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=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(05,05,10)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(05,10,10)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)),DISP=(,CATLG), // 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\CPRTOFF.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: CPRTOFF.V0R9M00.CNTL($UP0900) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF0U JOB (SYS),'Upgrade CPRTOFF', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP0900 Upgrade CPRTOFF Software * //* * Upgrade to release V0R9M00 from VxRxMxx * //* * * //* * Review JCL before submitting!! * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * No upgrades for V0R9M00 * //* -------------------------------------------------------* //CPRTOFF 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: CPRTOFF.V0R9M00.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF03 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF 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=CPRTOFF.V0R9M00.CLIST,DISP=SHR //INHELP DD DSN=CPRTOFF.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 CPRTOFF Software | +--------------------------------------------------------------------+ | JCL Member: CPRTOFF.V0R9M00.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF04 JOB (SYS),'Install CPRTOFF', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install CPRTOFF Software * //* * No software programs * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* // ______________________________________________________________________ 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: CPRTOFF.V0R9M00.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF05 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF 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=CPRTOFF,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$CPRTOF SELECT MEMBER=CPRTOFF //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=CPRTF0 //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=PPRTOFF SELECT MEMBER=HPRTOFF //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: CPRTOFF.V0R9M00.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CPRTOF40 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CPRTOFF 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 CPRTOFF | +--------------------------------------------------------------------+ a) From the ISPF Main Menu, enter the following command: TSO %C$CPRTOF b) The panel PPRTOFF is displayed. ________________________________________________________________________________ ------------------- Data Set Print Utility - PRINTOFF ----------------------- Command ===> * LARRY01 PPRTOFF PRINTOFF: Data Set Name ===> Volume ===> If not cataloged Sysout Class ===> A SYSOUT=A Dest ===> Remote (RMTnn), blank implies LOCAL Copy Count ===> 1 Number of copies Hold ===> NOHOLD Hold or Nohold List ===> LIST List or Nolist Print ===> PRINT Print or Noprint Suppress SEQ NOs ===> NOSNUM SNUM or noSNUM Forms ===> UCS ===> Heading ===> NOHEADING Heading or Noheading Upper Case Shift ===> ASIS CAPS or ASIS Carriage control ===> Enter ASA if 1st char is really valid ANSI carriage control ________________________________________________________________________________ Figure 7: PPRTOFF Data Set Print Utility panel c) Enter a fully qualified DSN of a sequential data set. d) Use the default options and press ENTER. d) PRINTOFF prints requested data set to your local printer. e) Validation is complete. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for CPRTOFF. +--------------------------------------------------------------------+ | Step 13. Integrate CPRTOFF into an ISPF Selection Menu | +--------------------------------------------------------------------+ a) To integrate CPRTOFF into a selection panel (menu) of your choice, follow the below steps - b) Add a selection line to the panel )BODY section similar to the below snippet to display the CPRTOFF option: P +CPRTOFF - Data Set Print Utility using PRINTOFF c) Add a entry to a TRANSlate function similar to the below snippet: 'NEW ENTRY' line can be added to invoke panel PPRTOFF when menu option P is typed followed by the ENTER key )PROC &ZSEL = TRANS( TRUNC (&ZCMD,'.') 1,'CMD(xxxxx) NEWAPPL(ISR)' 6,'PGM(xxxxxx)' . . P,'PANEL(PPRTOFF)' <-- NEW ENTRY . . ' ',' ' *,'?' ) )END d) After applying update, redisplay the modified selection menu. The new CPRTOFF option should display. e) Select the new option and press ENTER. f) The Data Set Print Utility (panel PPRTOFF) should display. Enjoy CPRTOFF! ====================================================================== * IV. S o f t w a r e I n v e n t o r y L i s t | ====================================================================== - CPRTOFF.V0R9M00.ASM . README Dummy member, this is intentional - CPRTOFF.V0R9M00.CLIST . README Dummy member, this is intentional - CPRTOFF.V0R9M00.CNTL . $INST00 Define Alias for HLQ CPRTOFF . $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 V0R9M00 . DSCLAIMR Disclaimer . PREREQS Required User-mods . README Documentation and Installation instructions - CPRTOFF.V0R9M00.HELP . README Dummy member, this is intentional - CPRTOFF.V0R9M00.ISPF . CPRTF0 CPRTF0 Messages . C$CPRTOF CLIST to invoke panel PPRTOFF from TSO . CPRTOFF CLIST to execute PRINTOFF . PPRTOFF PRINTOFF Options panel . HPRTOFF PRINTOFF Options help panel - CPRTOFF.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

Closing

Use CPRTOFF as a ISPF add-on to quickly print data sets 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.

Thank You.

Version History

*  MM/DD/CCYY Version  Name / Description                                       
*  ---------- -------  -----------------------------------------------          
*  02/10/2022 0.9.00   Larry Belmontes Jr.                                      
*                      - Initial version released to MVS 3.8J                   
*                        hobbyist public domain
*                                                                               
*  09/11/2019 0.5.00   Larry Belmontes Jr.
*                      - CPRTOFF is a version of PRINT#C and
*                        PRINT#S from CBT161 by Jim Marshall.
*                        https://cbttape.org/cbtdowns.htm
*                      - Retrofit into MVS 3.8J TSO / ISPF v2.x
*                      - Initial prototyping and development
*                        w ISPF 2.x
*   

Tagged , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


CAPTCHA Image
Reload Image

This site uses Akismet to reduce spam. Learn how your comment data is processed.