CLIST, ISPF 2.x, MVS38J, TSO

ISPOPT5 in MVS38J

Overview

If you have experienced the ISPF-like product from Wally Mclaughlin, you not only get a nostalgic feel but the actuality of an ISPF environment on your MVS 3.8J system running under the Hercules emulator.

As you traverse the ISPF menu, you will notice some voids as this product is continually under development by a single person team, Wally! Of course, when you have a large product like ISPF, providing all functionality is a large undertaking.

Therefore, some menu options are not yet developed due to time and/or use demand.

In mid-2018, I decided to fill one void, probably one of low demand based on the original background option 5 – which generates JCL decks for selected processes and submits for batch processing after all selections are complete. This includes support for Assembler, COBOL, FORTRAN, PL/I and Linkage Editor.

Some MVS 3.8J TK3 distributions may include a version of the SYSCPK (System Language/Compiler Pack) which includes the MVS 3.8J Assemblers and Compilers and other public domain compilers / interpreters such as GCC, XPL and BASIC 360. If not, a copy can be obtained from the link below.

The Assemblers, Compilers, Translators and Interpreters targeted by this project referenced the SYSCPK DASD pack from Jay Moseley. Of course, batch JCL procedures already exist under SYSPCK for each of the supplied Language processors. Jay has an excellent page dedicated to the various compilers and tools at the below link:
http://www.jaymoseley.com/hercules/compilers/syscpk.htm

Option 5 selections use a CLIST and Panel for each language processor request to create instream JCL and submit for batch processing very similar to real-iron ISPF Option 5. CLISTs were selected due to ease of maintenance and realizing results immediately! The ISPF Skeleton function in not currently supported in the current version of ISPF from Wally Mclaughlin.

The batch functionality presented here does NOT duplicate original IPSF functionality, this is intentional.

One simple, very simple, optional function added to each language process is a LOAD-n-GO step which appends a LOADER step to execute the generated OBJ file including optional JCL statements appended to the last processor job step.

A good reference for batch option 5 is SC34-2089-1 ISPF Program Reference for MVS.

At this point you may be questioning the value of this software contribution –
‘Is it worth the work for ISPF option 5 add-on?’

Yes!! For the personal experience and more importantly, sharing with the MVS 3.8J community.

In conclusion, here is my contribution as a beta release of an ISPF batch processing add-on.

Enjoy!

Background Selection Menu


 -----------------------  Background Selection Menu  ---------------------------
 SELECT OPTION ===>                                                             
                                                                                
    1 - Assembler          A - RPG             J - TBD                  LARRY01 
    2 - OS/VS Cobol        B - Simula          K - TBD                  ISPOPT5 
    3 - Fortran IV         C - SNOBOL          L - TBD 
    4 - Mortran            D - WATFIV                          
    5 - PL/I               E - XPL                          
    6 - Linkage Editor     F - LISP                             
    7 - ASSIST             G - GCC                            
    8 - ALGOL              H - PL360                             
    9 - Pascal             I - BASIC 360                             
                                                                                
                                                                                
                                                                                
 Source DATA online ===> Y   (Y/N)     Delete SUBMIT JCL ===> Y   (Y/N)         
 USING ===> yourid.CARDS.Dyyjjj.Thhmmss                                        
 JOB STATEMENT INFORMATION:  (Verify before proceeding)                         
   ===> //youridA JOB (SYS),'BG PROCESS',CLASS=A,MSGCLASS=A                    
   ===> //   MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=0M                            
   ===> //* MY COMMENT                                                          
   ===> //*                                                                     
                                                                                
                                                                                

The background selection menu, ISPOPT5, offers several language processors including the Linkage Editor.

Each selection utilizes an independent panel and associated help panel.

The selection menu help panel, HSPOPT5, is shown below:


 -Tutorial--------------  BACKGROUND SELECTION MENU  ------------------Tutorial-
 SELECT OPTION ===>                                                    HSPOPT5  
                                                                                
  This menu facilitates selection of various language processor panels.  Each 
  panel/CLIST creates JCL for submission via TSO.                             
                                                                              
  While using the background panels, you can continue using ISPF interactively
  with no session waits.                                                      
                                                                                
  When Source DATA online = Y source existence is verified real-time by         
  searching library1-4. Otherwise, ODSN is validated. An error message is       
  displayed if source is not found.                                             
                                                                                
  When Source DATA online = N source is not validated.  Source location is from 
  ODSN if specified. Otherwise, source location is from library1.               
                                                                                
  Process Field       Description                                               
  Delete SUBMIT JCL : N delete temp JCL        Y keep temp JCL                  
  Source DATA online: N use ODSN or library1   Y confirm existence real-time     
  USING             : Session batch JCL Data Set Name
  JCL               : Up to 4 lines for JOB Statement
                                                                                
   ODSN Other Partitioned or Sequential Data Set Name

   

Source data set is validated for existence in real-time (via SYSDSN and LISTDSJ) if Source DATA online is set to Y. If the source data set is not validated in real-time, the batch assembly / compile job may fail due to a DATA SET NOT FOUND error.

Generated JCL for the selected language process is deleted after JOB submission if Delete SUBMIT JCL is set to Y. The JCL DSN (USING) is listed above the JOB STATEMENT INFORMATION. If the JCL DSN is not deleted, those data sets will accumulate and must be deleted manually.

JOB Statement Information included in the generated JCL consists of 1-4 statements.

All panel data is saved to the users ISPF profile data set under application CBGP.

The language processor creates an object file which can be used as input to the Linkage Editor option.

A few language processors act as interpreters resulting in ‘auto execution’ of source statements without link-n-go steps such as BASIC 360.

Panel Processing Sequence

From the Background Selection Menu (ISPOPT5), select a language processor and enter appropriate parameters and JCL statement information.

Press ENTER when complete.

The selected language processor panel is displayed.

Enter source data set and member name, library concatenation sequence, language processor options and other information. Either an ISPF Library or other partitioned or sequential data set must be specified.

Press ENTER when complete.

The Background Selection Menu (ISPOPT5X) is displayed with a “JCL generated” message.

At this point, you can select another Background Selection option or enter CANCEL to exit without submitting queued generated JCL or press PF3 to submit generated JCL.

Language Processor Panels

Language processor panels, for the most part, have the same “look-and-feel”. This is intentional for sharing of CLIST logic. Below are two sample panels (Assembler and SIMULA):


 ---------------------  BACKGROUND Assembler  ----------------------------------
 COMMAND ===>                                                                   
                                                                                
 ISPF Library:                                                          LARRY01 
 PROJECT ===> LARRY01                                                   ISPOPT51         
 LIBRARY ===> TEST      ===> TEST2     ===>           ===>                      
 TYPE    ===> ASM                                                               
 MEMBER  ===> HELLOASM                                                             
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . . ''                            

 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. Assembler XF 
  List ID ==>          or SYSOUT class ==> *                  2. XF Macro XREF 
  Parms   ==> NODECK,LOAD,RENT,XREF                           3. G  Waterloo               
  SYSLIB1 ==> SYS1.MACLIB 
  SYSLIB2 ==> SYS1.AMODGEN 
  SYSLIB3 ==> SYS2.MACLIB  
  SYSLIB4 ==>                                                                 
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 


 ------------------------  BACKGROUND SIMULA Compiler  -------------------------
 COMMAND ===>                                                                   
                                                                                
 ISPF Library:                                                          LARRY01 
 PROJECT ===> LARRY01                                                   ISPOPT5B         
 LIBRARY ===> TEST      ===>      ===>           ===>                      
 TYPE    ===> CNTL                                                              
 MEMBER  ===> HELLOSM1                                                          
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . .                             
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA 
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a              
  SYSLIB1 ==>                                                      
  SYSLIB2 ==>                                                     
  SYSLIB3 ==>                                                      
  SYSLIB4 ==>  
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 
                                                                                

All the language processor panels include an ISPF library structure or Other Partitioned or Sequential Data Set to specify location of assembler/compiler source statements.

Other parameters include STEPLIB for language processor, LIST ID for list data set node, SYSOUT class, and Process selection (i.e. 1. Assembler XF or 2. XF Macro XREF).

Language Processor parameters include Term and Other parameter options.

Lastly, up to 4 additional SYSLIB concatenations can be specified for use by the language processor.

Most help panels resemble the following layout:


 -Tutorial------------  BACKGROUND Assembler --------------------------Tutorial-
 SELECT OPTION ===>                                                    HSPOPT51 
                                                                                
  This function creates batch processor JCL for submission via TSO.
                                                                                

  Type    Data Set Naming Convention                                             
  INPUT   ODSN or project.lib1-4 with project.lib1 at minimum   
  OBJ     project.lib1.OBJ(member), ODSN-1node.OBJ(member) or SEQdsn-1node.OBJ              
  TERM    project.member.TERM      Optional, member=TEMPNAME for SEQ Source            
  PUNCH   project.member.PUNCH     SYSOUT=B unless noted in processor panel            
  LIST    project.member.LIST      Optional                                               
                                                                                
  Processor Field     Description                                               
  Term                TERM- TERM dataset  NOTERM- no TERM dataset 
  Quik Go             Add simple GO step  (Y/N)
  STEPLIB             STEPLIB DD, validated if specified 
  Process             Processor type from list
  List ID             LIST dataset, if specified. Otherwise, hardcopy. 
  SYSOUT class        Sysout class for hardcopy   
  Parms               Processor specific options (parms) 
  SYSLIBs             Up to 4 SYSLIBs, validated if specified
  MoreJCL             Up to 4 JCL statements appended to processor or GO step

 See appropriate language reference manuals for syntax and/or options.

It is strongly suggested using language processor programmer’s guides and other related manuals for use of assembler / compiler options.

Genereated JCL

The sample generated JCL from the FORTRAN IV G language processor CLIST is as follows:


000001 //LARRY01A JOB (SYS),'BG PROCESS',CLASS=A,MSGCLASS=A,
000002 //   MSGLEVEL=(1,1),NOTIFY=LARRY01,REGION=0M         
000003 //* MY COMMENT                                       
000004 //* 2                                                
000005 //***BEGIN TDD****************************           
000006 //*                                                  
000007 //* JCL TEMPORARY DATASET INFORMATION:               
000008 //* ----------------------------------               
000009 //*      DD : CARDS                                  
000010 //*      DSN: yourid.CARDS.Dyyjjj.Thhmmss           
000011 //*      DSA: CARDSA                                 
000012 //*   SOURCE DATA ONLINE : Y                         
000013 //*   DELETE JCL TEMPFILE: N                         
000014 //*                                                  
000015 //*    TSO USER INFORMATION:                         
000016 //* ----------------------------------               
000017 //*   PREFIX: LARRY01                                
000018 //*   SYSUID: LARRY01                                
000019 //*                                                  
000020 //***END  TDD****************************            
000021 //*                                                  
000022 //*----------------------------------------          
000023 //* 3.1                                              
000024 //* F O R T R A N  IV  G  C O M P I L E              
000025 //*                                                  
000026 //* SOURCE LIBRARIES SEARCHED:-----------       
000027 //*   OTHER: LARRY01.TEST.CNTL(HELLOFOR)        
000028 //*   --- SEARCH STOPPED AT OTHER DSN ---       
000029 //*                                             
000030 //*   FROM --- LARRY01.TEST.CNTL(HELLOFOR)      
000031 //*     TO --- LARRY01.TEST.OBJ(HELLOFOR)       
000032 //*---------------------------------------      
000033 //FORTG   EXEC PGM=IEYFORT,REGION=100K,         
000034 //         COND=(12,LE),                        
000035 //   PARM=''                                    
000036 //STEPLIB  DD DISP=SHR,                         
000037 //         DSN=SYSC.LINKLIB                     
000038 //SYSPRINT DD SYSOUT=(*)                        
000039 //SYSPUNCH DD SYSOUT=B,                         
000040 //         DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) 
000041 //SYSIN    DD DISP=SHR,                         
000042 //         DSN=LARRY01.TEST.CNTL(HELLOFOR)      
000043 //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,2))      
000044 //SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(2,2))      
000045 //SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(2,2))      
000046 //SYSUT4   DD UNIT=SYSDA,SPACE=(CYL,(2,2))      
000047 //SYSLIN   DD DISP=SHR,                         
000048 //         DSN=LARRY01.TEST.OBJ(HELLOFOR)       
000049 //*                                          
000050 //*--END----------------------------------   
000051 //*                                          

Lines 1-4 are the JOB STATEMENTS from Background Selection menu.

Lines 5-20 are inserted as comments for the temporary dataset generated by select language processor.

Lines 21-32 summarize library search results in locating the language source member or other partitioned or sequential dataset containing the source statements.

Lines 33-51 represent the actual language process compile step:
Line 36-37 STEPLIB DD from Language Processor panel
Line 38 SYSPRINT DD with SYSOUT class from Language Processor panel
Line 41-42 Source statement input data set
Line 47-48 SYSLIN compiler object output data set

About BATCH Options 5…

JCL DSN

The JCL DSN format is userid.CARDS.date.time created when a BATCH Selection Menu (ISPOPT5) session is initiated.

Language Processor JCL is injected into the JCL DSN until the Batch Selection session is terminated via a CANCEL command or submitted for batch processing via END command (PF3).

The disposition of the JCL DSN is deleted or kept based on the Delete SUBMIT JCL indicator on panel ISPOPT5.

As precautionary, when JCL DSN is kept for later reference, it requires manual deletion as such data sets will accumulate under the userid HLQ.

One advantage of keeping the JCL DSN is to edit/correct and resubmit a subsequent compilation.

ISPF Libraries and Other Partitioned or Sequential Data Set (ODSN)

Language processor input source statements can be contained in a PDS or sequential data set.

ISPF Libraries are PDSs comprised of 3-node data set names. The library concept provides a hierarchy to search up to 4 ISPF PDS libraries. The actual search resolves (locates) the specified input source member. Additionally, to include source from COPY-type statements during assembly and/or compilation.

Each background language processor panel includes ISPF Library and Other Partition or Sequential Data Set (ODSN) section to designate a source input.

                                                                    
 ISPF Library:                                                          LARRY01 
 PROJECT ===> LARRY01                                                   ISPOPT51 
 LIBRARY ===> TEST      ===> TEST2     ===>           ===>                      
 TYPE    ===> ASM                                                               
 MEMBER  ===> MYPGM                                                             
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . .                             


Source Input snippet for Language Processor panel

ISPF Libraries are represented in the following DSN format: project.library.type(member)

ISPF Hierarchy consists of up to 4 concatenation levels where LIBRARY is the varying node in the data set name.

When an ISPF Library is used to designate a source input, the specified libraries are searched for the source member. Also, the languages processor uses the specified libraries to resolve MACROS and COPY-type statements, if supported via a SYSLIB-type DD.

For example, using the above snippet:
– LARRY01.TEST.ASM and LARRY01.TEST2.ASM are searched for member MYPGM
– Language Processor (i.e. IFOX00) includes SYSLIB DSNs for LARRY01.TEST.ASM and LARRY01.TEST2.ASM to resolve MACROS and/or COPY statements.

The ODSN is fully qualified when using beginning and ending apostrophes within the specified DSN.

The ODSN is not fully qualified when no apostrophes are used. In this case, the DSN is prefixed with the TSO prefix. If the TSO prefix is blank, TSO userid is used.

If ODSN is sequential, source is the ODSN. No source member search is performed. No SYSLIB DSNs are inserted in the language processor job step. However, other SYSLIB DSNs can be manually specified as part of the SYSLIB1-SYSLIB4 parameters, if supported by the language processor.

When Other Partitioned or Sequential Data Set (ODSN) designates the source input and no ISPF libraries are specified, one of two actions are taken depending on data set organization.

                                                                    
 ISPF Library:                                                          LARRY01 
 PROJECT ===>                                                           ISPOPT51 
 LIBRARY ===>           ===>           ===>           ===>                      
 TYPE    ===>                                                                
 MEMBER  ===>                                                              
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . . 'LARRY01.TEST.HELLO.ASM'                            


Source Input snippet for Language Processor panel

For example, using the above snippet. the source member is data set LARRY01.TEST.HELLO.ASM. No source member search is necessary. No SYSLIB concatenation is necessary. However, other SYSLIB DSNs can be manually specified as part of the SYSLIB1-SYSLIB4 parameters.

                                                                    
 ISPF Library:                                                          LARRY01 
 PROJECT ===>                                                           ISPOPT51 
 LIBRARY ===>           ===>           ===>           ===>                      
 TYPE    ===>                                                                
 MEMBER  ===>                                                              
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . . 'LARRY01.TEST.PDS.ASM(MYPGM)'                            


Source Input snippet for Language Processor panel

If ODSN is partitioned, source is the ODSN (which includes a source member as part of data set name). No source member search is necessary. The ODSN (Partitioned Data Set Name) is included as a DSN in the SYSLIB concatenation. Other SYSLIB DSNs can be manually specified as part of the SYSLIB1-SYSLIB4 parameters.

For example, using the above snippet. the source member is data set LARRY01.TEST.PDS.ASM(MYPGM). No source member search is necessary. Also, the language processor (i.e. IFOX00) includes SYSLIB DD with DSN of LARRY01.TEST.PDS.ASM to resolve MACROS or COPY statements. Other SYSLIB DSNs can be manually specified as part of the SYSLIB1-SYSLIB4 parameters.

When using both, as shown in the below snippet, the ODSN is used as source input. Either an ISPF library or ODSN must be specified.

                                                                    
 ISPF Library:                                                          LARRY01 
 PROJECT ===> LARRY01                                                   ISPOPT51 
 LIBRARY ===> TEST      ===> TEST2     ===>           ===>                      
 TYPE    ===> ASM                                                               
 MEMBER  ===> HELLO                                                             
                                                                                
 Other Partitioned or Sequential Data Set:                                      
    Data Set Name  . . 'LARRY01.TEST.CNTL(HELLOASM)'                            


Source Input snippet for Language Processor panel

STEPLIB


                                                                                
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a 
  SYSLIB1 ==>  
  SYSLIB2 ==>        
  SYSLIB3 ==>          
  SYSLIB4 ==>  
  MoreJCL ==> 
          ==> 
          ==>    
          ==>   

  
Language Processor panel options section

Each processor panel allows for optional language processor STEPLIB declaration by using the “STEPLIB” parameter.

When a STEPLIB is specified, the a STEPLIB DD with specified DSN is inserted after the EXEC statement for the selected language processor.

If a language processor does not support a specific set of parameters, a message is displayed as depicted above for the SIMULA compile panel.

SYSPRINT (SYSOUT)


                                                                                
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA 
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a              
  SYSLIB1 ==>                                                      
  SYSLIB2 ==>                                                     
  SYSLIB3 ==>                                                      
  SYSLIB4 ==>  
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 
                                                                
 
Language Processor panel options section

Each processor panel allows for SYSPRINT to be directed to a dataset using the “List ID” or sysout class using the “SYSOUT class” parameters.

One or the other must be specified. If both are specified, “List ID” is used.

When “List ID” is specified, the SYSPRINT DD is assigned a DSN of prefix.ListID.LIST with a DISP=(MOD,CATLG). This sequential data set will be created/modified and catalogued.

When SYSOUT class is specified, the SYSPRINT DD is assigned SYSOUT=(SYSOUT class)

Prefix is TSO prefix. If TSO prefix is blank, TSO User ID is used.

SYSLIN, SYSGO (OBJECT Data Set)

The OBJECT output data set from the language processor is always a DASD permanent data set. The assigned DSN is based on specified type of input source (ISPF Library, Other Partitioned Data Set or Sequential Data Set).

Note: The OBJECT dataset must be pre-allocated and must be present on DASD before submitting a batch language processor assembly or compiliation. Below is a sample OBJ data set name and attributes where the source data set is named LARRY01.TEST.xxxxxxxx.



     DSN----------------------------------------- CA VOLUME DSO RFM LRECL BLKSZ
     LARRY01.TEST.OBJ                             N  PUB000 PO  FB     80  3120

When specified source is a ISPF Library, the assigned object DSN is project.library1.OBJ(member) where member is the same as input source member name. This data set must exist before running a assembly / compile.

When specified source is Other Partitioned Data Set, the assigned object DSN is Other Partitioned Data Set name where the last node is replaced with OBJ. The member name is the same as input source name.

When specified source is Other Sequential Data Set, the assigned DSN is Other Sequential Data Set name where the last node is replaced by OBJ.

SYSTERM


                                                                                
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA 
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a              
  SYSLIB1 ==>                                                      
  SYSLIB2 ==>                                                     
  SYSLIB3 ==>                                                      
  SYSLIB4 ==>  
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 
                                                                
 
Language Processor panel options section

Some language processors allow for a TERM option to generate a SYSTERM DD statement based on specified type of input source.

When specified source is Other Sequential Data Set, the assigned DSN is prefix.TEMPNAME.TERM with a DISP=(MOD,CATLG). This sequential data set will be created/modified and catalogued.

In all other cases, assigned DSN is prefix.member.TERM

Although SYSTERM may appear batch panels, it may not apply to other language processors. This will be noted in each panel.

SYSLIB


                                                                                
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA 
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a              
  SYSLIB1 ==>                                                      
  SYSLIB2 ==>                                                     
  SYSLIB3 ==>                                                      
  SYSLIB4 ==>  
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 
                                                                
 
Language Processor panel options section

Although SYSLIB appear in all panels it may be ignored based on language processor. This will be noted in each batch panel.

All SYSLIB datasets must be specified in the processing panel.

Note: Some SYSLIB concatenations are automatically inserted based on input source types (ISPF Libraries or Other Partitioned Datasets) such as COBOL compilation to resolve copybook inclusions.

Some public domain compilers such as PASCAL will insert specific SYSLIB statements.

MoreJCL


                                                                                
 *Term, and SYSLIBs are ignored...*
 Processor options:       Term ==> NOTERM  QuikGO ==> Y    Process-------------   
  STEPLIB ==> SYSC.LINKLIB                                 1  1. SIMULA 
  List ID ==>          or SYSOUT class ==> *                  2. n/a 
  Parms   ==>                                                 3. n/a              
  SYSLIB1 ==>                                                      
  SYSLIB2 ==>                                                     
  SYSLIB3 ==>                                                      
  SYSLIB4 ==>  
  MoreJCL ==>                                                                 
          ==>                                                                 
          ==>                                                                 
          ==>                                                                 
                                                                
 
Language Processor panel options section

MoreJCL entries are used to optionally append JCL statements in the last step in the language processor request. That is, JCL can be appended to the end of the language process step or the load-n-go step depending if QuikGO was selected.

Linkage Editor (IEWL)

The linkage editor panel (ISPOPT6) uses an OBJECT file member and creates a LOAD file member.

Both OBJECT and LOAD files must exist before submitting a Linkage Editor batch process

If the input source is Other Partitioned Data Set name, it must contain a member name.

Background Add-on Software Structure

The software component name is tightly aligned with language processor on the selection menu.

For example, Assembler option 1 uses panel ISPOPT51 and CLIST CBGP51
and WATFIV option D uses panel ISPOPT5D and CLIST CBGP5D. And, so on…

This approach is extended into panel variable names to support the same ‘look-and-feel’.

For example, the SYSLIB1-SYSLIB4 panel labels on panel ISPOPT5D (WATFIV Interpreter) use variable names LBDSL1-LBDSL4. The same labels on panel ISPOPT52 use variable names LB2SL1-LB2SL4.

This naming convention facilitates a one set of logic to address common processing.

For reference, the following table includes Selection Option to CLIST name, process and help panel:

Selection Option           CLIST     PANEL      HELP
======================     ========  ========   ========
Initial Selection Menu     CGBP5     ISPOPT5    HSPOPT5
Subsequent Selection Menu  CGBP5     ISPOPT5X   HSPOPT5
1 - Assembler              CBGP51    ISPOPT51   HSPOPT51
2 - OS/VS Cobol            CBGP52    ISPOPT52   HSPOPT52
3 - Fortan IV              CBGP53    ISPOPT53   HSPOPT53
4 - Mortran                CBGP54    ISPOPT54   HSPOPT54
5 - PL/I                   CBGP55    ISPOPT55   HSPOPT55
6 - Linkage Editor         CBGP56    ISPOPT56   HSPOPT56
7 - ASSIST                 CBGP57    ISPOPT57   HSPOPT57
8 - ALGOL                  CBGP58    ISPOPT58   HSPOPT58
9 - Pascal                 CBGP59    ISPOPT59   HSPOPT59
A - RPG                    CBGP5A    ISPOPT5A   HSPOPT5A
B - Simula                 CBGP5B    ISPOPT5B   HSPOPT5B
C - SNOBOL                 CBGP5C    ISPOPT5C   HSPOPT5C
D - WATFIV                 CBGP5D    ISPOPT5D   HSPOPT5D
E - XPL                    CBGP5E    ISPOPT5E   HSPOPT5E
F - SNOBOL                 CBGP5F    ISPOPT5F   HSPOPT5F
G - GCC                    CBGP5G    ISPOPT5G   HSPOPT5G
H - PL360                  CBGP5H    ISPOPT5H   HSPOPT5H
I - BASIC 360              CBGP5I    ISPOPT5I   HSPOPT5I

Other support programs (CPs) included SYSDSN, LISTDSJ, CUTIL00 and PUTCARD.

Prerequisite: User Modifications

Two user-mods, ZP60014 and ZP60038, are REQUIRED to process CLIST symbolic variables via the API, IKJCT441, on MVS 3.8J.  Otherwise, LISTDSJ and CUTIL00 are rendered useless!

More information on the above user-mods 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.

If IKJCT441 is not found when LISTDSJ / CUTIL00 execute, MVS38J will report a system error code 806-4 on program IKJCT441.  LISTDSJ / CUTIL00 will not abend but gracefully terminate with an 806-4 error.  This is by design.

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

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

Point your TN3270 terminal emulator using SSL to

URL: mywhs.belmontes.net
PORT: 5000
SSL : Version 3

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.

Use the PDSs HERCxx.TEST.CNTL as the source data set name to locate or store a sample program. Some programs already exist for demo purposes (i.e. HELLOxxx member names).

After identifying a program to compile, proceed to using the background selection menu..

Type B5 in the command field (OPTION ==>) and press ENTER. Panel, ISPOPT5, will display with a selection of language processors.

Note- JCL is already defined for HERC01-HERC04 users.

Select the language processor to create compiliation JCL and submit for batch processing.

The compile output can be viewed via 3.8.

Use PF3 (this may be used repeatedly) to return to the TSO READY prompt.

Log off TSO.

Terminate 3270 session.

Installing ISPOPT5 Software

After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution content from your personal computing device to MVS with minimal JCL and continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO.

  • Click here to download the zip file to your PC local drive.


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



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


Date: 10/31/2021  Release V0R9M00  **INITIAL software distribution

*  Author:  Larry Belmontes Jr.
*           https://ShareABitofIT.net/ISPOPT5-in-MVS38J
*           Copyright (C) 2021  Larry Belmontes, Jr.


---------------------------------------------------------------------- 
|    ISPOPT5      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.
 
Good luck and enjoy this software as added value to MVS 3.8J!
-Larry Belmontes



---------------------------------------------------------------------- 
|    ISPOPT5      C h a n g e   H i s t o r y                        | 
---------------------------------------------------------------------- 
*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  10/31/2021 0.9.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 ISPOPT5 in Master Catalog
 
o  $INST01.JCL          Load CNTL data set from distribution tape
 
o  $RECVXMI.JCL         Receive XMI SEQ to MVS PDSs                  
 
o  ISPOPT5.V0R9M00.HET  Hercules Emulated Tape (HET) multi-file volume
                        with VOLSER of VS0900 containing software  
                        distribution.
 
o  ISPOPT5.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.1 or higher must be installed under MVS3.8J TSO             
-----   including associated user-mods per ISPF Installation Pre-reqs.
 
Note:   SYSCPK (compiler and tool DASD) is a pre-requisite for this install.
-----   More information at:
        http://www.jaymoseley.com/hercules/compilers/syscpk.htm
       
Note:   LISTDSJ, alias LISTDSI, is a LISTDSI-like program that creates CLIST
-----   variables for some dataset attributes.  For convenience purposes, a
        current version is included for installation.                  
        More information at:
        
LISTDSJ for MVS 3.8J
Note: CUTIL00 is a TSO utility for CLIST variables. ----- For convenience purposes, a current version is included for installation. More information at:
CUTIL00 for MVS 3.8J
Credit: PUTCARD is a pre-requisite for this install and available from ------- an MVS Update article titled "CONTROL CARD IMAGE QUICK BUILDER" dated September 1998 by author UNKNOWN. Thanks to Xephon and CBT for this contribution. For convenience purposes, a modified version is included for installation. More information at: https://www.cbttape.org/xephon as mvs9809.pdf ====================================================================== * 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 ISPOPT5.V0R9M00.ASM MVSDLB 80 63 PO FB 78 1 ISPOPT5.V0R9M00.CLIST MVSDLB 6 3 PO FB 50 1 ISPOPT5.V0R9M00.CNTL MVSDLB 20 10 PO FB 45 1 ISPOPT5.V0R9M00.HELP MVSDLB 4 2 PO FB 50 1 ISPOPT5.V0R9M00.ISPF MVSDLB 80 57 PO FB 66 1 ISPOPT5.V0R9M00.MACLIB MVSDLB 2 1 PO FB 50 1 **END** TOTALS: 192 TRKS ALLOC 131 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 ISPOPT5 in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: ISPOPT5.V0R9M00.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT50 JOB (SYS),'Def ISPOPT5 Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 in MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for HLQ ISPOPT5 * //* * Note: The master catalog password will be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(ISPOPT5) IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(ISPOPT5) 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 initially 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: If $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: ISPOPT5.V0R9M00.CNTL($RECVXMI) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive ISPOPT5 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=ISPOPT5,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 //ASM EXEC RECV,TYP=ASM,DSPACE='(TRK,(80,10,20))' //CLIST EXEC RECV,TYP=CLIST,DSPACE='(TRK,(06,02,02))' //CNTL EXEC RECV,TYP=CNTL,DSPACE='(TRK,(20,10,10))' //HELP EXEC RECV,TYP=HELP,DSPACE='(TRK,(04,02,02))' //ISPF EXEC RECV,TYP=ISPF,DSPACE='(TRK,(80,05,20))' //MACLIB EXEC RECV,TYP=MACLIB,DSPACE='(TRK,(02,02,02))' // ______________________________________________________________________ Figure 2: $RECVXMI.JCL a) Transfer ISPOPT5.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: ISPOPT5.V0R9M00.ASM ISPOPT5.V0R9M00.CLIST ISPOPT5.V0R9M00.CNTL ISPOPT5.V0R9M00.HELP ISPOPT5.V0R9M00.ISPF ISPOPT5.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: ISPOPT5.V0R9M00.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT51 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC HLQ=ISPOPT5,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\ISPOPT5.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: ISPOPT5.V0R9M00.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT52 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 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=ISPOPT5,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,(06,02,02)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(04,02,02)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(80,05,20)),DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(80,10,20)),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\ISPOPT5.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: ISPOPT5.V0R9M00.CNTL($UP0900) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT5U JOB (SYS),'Upgrade ISPOPT5', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 in MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP0902 * //* * Upgrade ISPOPT5 Software from release V0R9M00 * //* * * //* * - No upgrade! INITIAL distribution * //* * * //* -------------------------------------------------------* //* //UP00000 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* // ______________________________________________________________________ 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: - Initial distribution, no updates available! d) After upgrade is applied, proceed to validation, STEP 11. +--------------------------------------------------------------------+ | Step 7. Install TSO parts | +--------------------------------------------------------------------+ | JCL Member: ISPOPT5.V0R9M00.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT53 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST03 Install TSO parts * //* * - C$IPSOP5 clist installs to SYS2.CMDPROC * //* * * //* * Note: Duplicate members are over-written. * //* -------------------------------------------------------* //STEP001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=ISPOPT5.V0R9M00.CLIST,DISP=SHR //INHELP DD DSN=ISPOPT5.V0R9M00.HELP,DISP=SHR //INPROC DD DSN=ISPOPT5.V0R9M00.CLIST,DISP=SHR //OUTCLIST DD DSN=SYS2.CMDPROC,DISP=SHR //OUTHELP DD DSN=SYS2.HELP,DISP=SHR //OUTPROC DD DSN=SYS2.PROCLIB,DISP=SHR //SYSIN DD * COPY INDD=((INCLIST,R)),OUTDD=OUTCLIST SELECT MEMBER=C$ISPOP5 SELECT MEMBER=CFLDSI SELECT MEMBER=CLDSI COPY INDD=((INHELP,R)),OUTDD=OUTHELP SELECT MEMBER=CFLDSI SELECT MEMBER=CLDSI SELECT MEMBER=CUTIL00 SELECT MEMBER=LISTDSJ COPY INDD=((INPROC,R)),OUTDD=OUTPROC SELECT MEMBER=GCCISP5 /* // ______________________________________________________________________ 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 ISPOPT5 Programs | +--------------------------------------------------------------------+ | JCL Member: ISPOPT5.V0R9M00.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT54 JOB (SYS),'Install ISPOPT5', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install Programs * //* * Install ISPOPT5 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: ISPOPT5.V0R9M00.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOPT55 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 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=ISPOPT5,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=CBGIJCL0 SELECT MEMBER=CBGIQGO SELECT MEMBER=CBGLLIBS SELECT MEMBER=CBGVALIN SELECT MEMBER=CBGP5 SELECT MEMBER=CBGP51 SELECT MEMBER=CBGP52 SELECT MEMBER=CBGP53 SELECT MEMBER=CBGP54 SELECT MEMBER=CBGP55 SELECT MEMBER=CBGP56 SELECT MEMBER=CBGP57 SELECT MEMBER=CBGP58 SELECT MEMBER=CBGP59 SELECT MEMBER=CBGP5A SELECT MEMBER=CBGP5B SELECT MEMBER=CBGP5C SELECT MEMBER=CBGP5D SELECT MEMBER=CBGP5E SELECT MEMBER=CBGP5F SELECT MEMBER=CBGP5G SELECT MEMBER=CBGP5H SELECT MEMBER=CBGP5I //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=BGOPT0 SELECT MEMBER=BGOPT1 SELECT MEMBER=BGOPT5 SELECT MEMBER=BGOPT55 //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=HSPOPT5 SELECT MEMBER=HSPOPT51 SELECT MEMBER=HSPOPT52 SELECT MEMBER=HSPOPT53 SELECT MEMBER=HSPOPT54 SELECT MEMBER=HSPOPT55 SELECT MEMBER=HSPOPT56 SELECT MEMBER=HSPOPT57 SELECT MEMBER=HSPOPT58 SELECT MEMBER=HSPOPT59 SELECT MEMBER=HSPOPT5A SELECT MEMBER=HSPOPT5B SELECT MEMBER=HSPOPT5C SELECT MEMBER=HSPOPT5D SELECT MEMBER=HSPOPT5E SELECT MEMBER=HSPOPT5F SELECT MEMBER=HSPOPT5G SELECT MEMBER=HSPOPT5H SELECT MEMBER=HSPOPT5I SELECT MEMBER=ISPOPT5 SELECT MEMBER=ISPOPT51 SELECT MEMBER=ISPOPT52 SELECT MEMBER=ISPOPT53 SELECT MEMBER=ISPOPT54 SELECT MEMBER=ISPOPT55 SELECT MEMBER=ISPOPT56 SELECT MEMBER=ISPOPT57 SELECT MEMBER=ISPOPT58 SELECT MEMBER=ISPOPT59 SELECT MEMBER=ISPOPT5A SELECT MEMBER=ISPOPT5B SELECT MEMBER=ISPOPT5C SELECT MEMBER=ISPOPT5D SELECT MEMBER=ISPOPT5E SELECT MEMBER=ISPOPT5F SELECT MEMBER=ISPOPT5G SELECT MEMBER=ISPOPT5H SELECT MEMBER=ISPOPT5I SELECT MEMBER=ISPOPT5X //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 Program(s) | +--------------------------------------------------------------------+ | JCL Member: ISPOPT5.V0R9M00.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //ISPOP540 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * ISPOPT5 for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST40 Install Other Components * //* * * //* * Install PUTCARD Programs * //* * Install CUTIL00 Programs * //* * Install LISTDSJ Programs * //* * **Note: CUTIL00 and LISTSDJ * //* * require two user-mods * //* * ZP60014 and ZP60038. * //* * Refer to program documenation * //* * or pre-reqs documenation. * //* * * //* * - PUTCARD programs installs to ISPLLIB * //* * - CUTIL00 programs installs to SYS2.CMDLIB * //* * - LISTDSJ program installs to SYS2.CMDLIB * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: ASMLKED * //* * Assembler Link-Edit * //* * * //* -------------------------------------------------------* //ASML PROC HLQ=WHATHLQ,VRM=VXRXMXX, // MBR=WHOWHAT //* //ASM EXEC PGM=IFOX00, // PARM='NODECK,LOAD,RENT,TERM,XREF' //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 DSN=&HLQ..&VRM..MACLIB,DISP=SHR * myMACLIB ** //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='MAP,LIST,LET,RENT,XREF', // 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 PUTCARD to ISPLLIB * //* -------------------------------------------------------* //PUTCARD EXEC ASML,HLQ=ISPOPT5,VRM=V0R9M00,MBR=PUTCARD, // PARM.ASM='OBJECT,NODECK,XREF,TERM', // PARM.LKED='LET,LIST,MAP,XREF,SIZE=(900K,124K)' //LKED.SYSLMOD DD DISP=SHR, // DSN=XXXXXXXX.ISPLLIB(&MBR) <--TARGET //* //* -------------------------------------------------------* //* * Assemble Link-Edit CUTILTBL to SYS2.CMDLIB * //* -------------------------------------------------------* //CUTILTBL EXEC ASML,HLQ=ISPOPT5,VRM=V0R9M00,MBR=CUTILTBL, // PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR' //LKED.SYSLMOD DD DISP=SHR, // DSN=SYS2.CMDLIB(&MBR) <--TARGET //* //* -------------------------------------------------------* //* * Assemble Link-Edit CUTIL00 to SYS2.CMDLIB * //* -------------------------------------------------------* //CUTIL00 EXEC ASML,HLQ=ISPOPT5,VRM=V0R9M00,MBR=CUTIL00, // PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR' //LKED.SYSLMOD DD DISP=SHR, // DSN=SYS2.CMDLIB(&MBR) <--TARGET //LKED.SYSLIB DD DISP=SHR, // DSN=SYS2.CMDLIB //* //* -------------------------------------------------------* //* * Assemble Link-Edit LISTDSJ to SYS2.CMDLIB * //* -------------------------------------------------------* //LISTDSJ EXEC ASML,HLQ=ISPOPT5,VRM=V0R9M00,MBR=LISTDSJ, // PARM.LKED='MAP,LIST,LET,RENT,XREF,REUS,REFR' //LKED.SYSLMOD DD DISP=SHR, // DSN=SYS2.CMDLIB <--TARGET //LKED.SYSIN DD * ALIAS LISTDSI NAME LISTDSJ(R) /* //* //* -------------------------------------------------------* //* * * //* * If SYSn.LINKLIB or SYSn.CMDLIB is updated * //* * * //* -------------------------------------------------------* //DBSTOP EXEC DBSTOP, // COND=(0,NE) //DBSTART EXEC DBSTART, // COND=(0,NE) // ______________________________________________________________________ Figure 9: $INST40 JCL a) Member $INST40 installs additional programs. Note: If no other programs 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 11. Validate ISPOPT5 | +--------------------------------------------------------------------+ This validation will submit a Hello World Fortran compile JOB for batch processing. a) Run JOB to declare a temporary OBJ PDS for validation. The JCL is located at: ISPOPT5.V0R9M00.CNTL($INST99) Check for successful completion. b) From the ISPF Main Menu, enter the following command: TSO C$ISPOP5 c) Press ENTER. d) Panel ISPOPT5 is displayed. ________________________________________________________________________________ ----------------------- Background Selection Menu --------------------------- SELECT OPTION ===> 3 1 - Assembler A - RPG J - TBD yourid 2 - OS/VS Cobol B - Simula K - TBD ISPOPT5 3 - Fortran IV C - SNOBOL L - TBD 4 - Mortran D - WATFIV 5 - PL/I E - XPL 6 - Linkage Editor F - SPITBOL 7 - ASSIST G - GCC 8 - ALGOL H - PL360 9 - Pascal I - BASIC 360 Source DATA online ===> Y (Y/N) Delete SUBMIT JCL ===> Y (Y/N) USING ===> yourid.CARDS.Dyyjjj.Thhmmss JOB STATEMENT INFORMATION: (Verify before proceeding) ===> //youridA JOB (SYS),'BG-SUB',CLASS=A,MSGCLASS=A, ===> // MSGLEVEL=(1,1),NOTIFY=yourid,REGION=0M ===> ===> ________________________________________________________________________________ Figure 10a: Background Selection Menu e) Referring to the above panel: 1. Enter 3 in SELECT OPTION as shown 2. Enter Y in Source DATA online as shown 3. Enter Y in Delete SUBMIT JCL as shown 4. Enter JOB STATEMENT INFORMATION as shown 5. Press ENTER f) Panel ISPOPT53 (Fortran Compiler) is displayed: ________________________________________________________________________________ ------------------------ BACKGROUND Fortran Compiler ------------------------ COMMAND ===> ISPF Library: yourid PROJECT ===> ISPOPT5 ISPOPT53 LIBRARY ===> V0R9M00 ===> ===> ===> TYPE ===> CNTL MEMBER ===> HELLOFOR Other Partitioned or Sequential Data Set: Data Set Name . . *SYSLIBs are ignored...* Processor options: Term ==> QuikGO ==> Y Process------------- STEPLIB ==> SYSC.LINKLIB 1 1. FORTRAN IV G List ID ==> or SYSOUT class ==> * 2. FORTRAN IV H Parms ==> 3. n/a SYSLIB1 ==> SYSLIB2 ==> SYSLIB3 ==> SYSLIB4 ==> MoreJCL ==> ==> ==> ==> ________________________________________________________________________________ Figure 10b: BACKGROUND Fortran Compiler Panel g) Referring to the above panel: 1. Enter ISPF Library information as shown 2. Enter Y for Quik GO as shown 3. Enter STEPLIB as shown 4. Enter 1 for Process as shown 4. Enter * for SYSOUT class as shown 5. Press ENTER f) Panel ISPOPT5X (Background Selection Menu) is displayed acknowledging JCL generation. ________________________________________________________________________________ ----------------------- BACKGROUND SELECTION MENU --------------------------- SELECT OPTION ===> BGOPT553 Fortran IV JCL generated for ISPOPT5.V0R9M00.CNTL(HELLOFOR) 1 - Assembler A - RPG yourid 2 - OS/VS Cobol B - Simula ISPOPT5X 3 - Fortran IV C - SNOBOL 4 - Mortran D - WATFIV 5 - PL/I E - XPL 6 - Linkage Editor F - SPITBOL 7 - ASSIST G - GCC 8 - ALGOL H - PL360 9 - Pascal I - BASIC 360 Select OPTION to continue generating JCL Enter CANCEL on OPTION LINE to EXIT without submitting JOB Press END KEY to submit JOB Source DATA online ===> Y (Y/N) Delete SUBMIT JCL ===> Y (Y/N) USING ===> yourid.CARDS.Dyyjjj.Thhmmss JOB STATEMENT INFORMATION: //youridA JOB (SYS),'BG PROCESS',CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=0M // // ________________________________________________________________________________ Figure 10c: Background Selection Menu g) Press PF3 to end batch selection and submit Fortran JOB for batch processing. h) Upon job completion, review the compile-n-go reports searching for HELLO WORLD message on a single page. i) Validation for ISPOPT5 is complete. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for ISPOPT5. +--------------------------------------------------------------------+ | Step 13. Integrate ISPOPT5 into ISPF PRIMARY OPTION Menu | +--------------------------------------------------------------------+ a) It is suggested using the existing option 5 in the PRIMARY OPTION MENU (panel ISP@PRIM). b) Create a copy of ISP@PRIM in your application panel library instead of the ISPF system panel library to preserve the original system panel in addition to preserving your ISP@PRIM changes when upgrading your ISPF system with a new version. 5 BATCH - Submit job for language processing c) Add the 'COMMENT' and 'NEW ENTRY' lines as shown below to process the option 5: 1 10 20 30 40 50 60 70 +---+----+----+----+----+----+----+----+----+----+----+----+----+----+ )PROC &ZSEL = TRANS( TRUNC (&ZCMD,'.') 0,'PANEL(ISPOP0)' 1,'PANEL(ISPREVB) NEWAPPL(ISR)' . . /* 5,'PGM(ISRJB1) PARM(ISRJPA) NOCHECK' <-- COMMENT 5,'CMD(%CBGP5 ICMD(&ZCMD)) NEWAPPL(CBGP)' <-- NEW ENTRY . . . ' ',' ' *,'?' ) )END e) Save PRIMARY OPTION MENU panel changes. f) Type =5 in the COMMAND line and press ENTER. g) The new Background Selection Menu should display. Enjoy ISPOPT5 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 | ====================================================================== - ISPOPT5.V0R9M00.ASM . CUTIL00 TSO CP for CLIST Variables . CUTILTBL CUTIL00 messages program . LISTDSJ TSO CP LISTDSI-like program . PUTCARD Write CARD images to PS file - ISPOPT5.V0R9M00.CLIST . C$ISPOP5 Validate BG Selection CLIST for IVP . CFLDSI List session allocated datasets using LISTA and LISTDSI . CLDSI List dataset attributes using LISTDSI . GCCISP5 GCC PROC used by GCC Compiler JCL Generation CLIST - ISPOPT5.V0R9M00.CNTL . $INST00 Define Alias for HLQ ISPOPT5 . $INST01 Load CNTL data set from distribution tape (HET) . $INST02 Load other data sets from distribution tape (HET) . $INST03 Install TSO Parts . $INST04 Install ISPOPT5 CP and utilities . $INST05 Install ISPF Parts . $INST40 Install Other programs . $INST99 Install OBJ PDS (for validation) . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 . $UP0900 Upgrade to V0R9M00 from V0R9M00 (IEFBR14) . DSCLAIMR Disclaimer . PREREQS Required User-mods . README Documentation and Installation instructions . HELLOFOR Fortran HELLO WORLD program for validation - ISPOPT5.V0R9M00.HELP . CUTIL00 Help file . LISTDSI * Help file(Alias) . LISTDSJ Help file . CFLDSI Help file . CLDSI Help file - ISPOPT5.V0R9M00.ISPF . HSPOPT5 Help Panel - Background Selection Menu . HSPOPT51 Help Panel - Assembler . HSPOPT52 Help Panel - OS/VS Cobol . HSPOPT53 Help Panel - Fortran IV . HSPOPT54 Help Panel - Mortran . HSPOPT55 Help Panel - PL/I . HSPOPT56 Help Panel - Linkage Editor . HSPOPT57 Help Panel - ASSIST . HSPOPT58 Help Panel - ALGOL . HSPOPT59 Help Panel - Pascal . HSPOPT5A Help Panel - RPG . HSPOPT5B Help Panel - Simula . HSPOPT5C Help Panel - SNOBOL . HSPOPT5D Help Panel - WATFIV . HSPOPT5E Help Panel - XPL . HSPOPT5F Help Panel - SPITBOL 370 . HSPOPT5G Help Panel - GCC . HSPOPT5H Help Panel - PL360 . HSPOPT5I Help Panel - BASIC 360 . ISPOPT5 Panel - Background Selection Menu (initial) . ISPOPT51 Panel - Assembler . ISPOPT52 Panel - OS/VS Cobol . ISPOPT53 Panel - Fortran IV . ISPOPT54 Panel - Mortran . ISPOPT55 Panel - PL/I . ISPOPT56 Panel - Linkage Editor . ISPOPT57 Panel - ASSIST . ISPOPT58 Panel - ALGOL . ISPOPT59 Panel - Pascal . ISPOPT5A Panel - RPG . ISPOPT5B Panel - Simula . ISPOPT5C Panel - SNOBOL . ISPOPT5D Panel - WATFIV . ISPOPT5E Panel - XPL . ISPOPT5F Panel - SPILBOL 370 . ISPOPT5G Panel - GCC . ISPOPT5H Panel - PL360 . ISPOPT5I Panel - BASIC 360 . ISPOPT5X Panel - Background Selection Menu . CBGIJCL0 CLIST - Insert Common Langauage Processor DD statements . CBGIQGO CLIST - Insert Quick Loader step after processor . CBGLLIBS CLIST - List Libraries . CBGVALIN CLIST - Validate Source, STEPLIB, SYSLIBs for existence . CBGP5 CLIST - Background Selection Driver . CBGP51 CLIST - Assembler XF, XF MACRO XREF, G Waterloo . CBGP52 CLIST - OS/VS Cobol . CBGP53 CLIST - Fortran IV F, G . CBGP54 CLIST - Mortran w Fortran IV F, G . CBGP55 CLIST - PL/I F . CBGP56 CLIST - Linkage Editor . CBGP57 CLIST - ASSIST . CBGP58 CLIST - ALGOL F, Algol 68 . CBGP59 CLIST - Pascal 8000, Stonybrook, Stanford . CBGP5A CLIST - RPG E MVT . CBGP5B CLIST - Simula . CBGP5C CLIST - SNOBOL . CBGP5D CLIST - WATFIV . CBGP5E CLIST - XPL Analyzer, Compile-Go . CBGP5F CLIST - SPILBOL 370 . CBGP5G CLIST - GCC . CBGP5H CLIST - PL360 . CBGP5I CLIST - BASIC 360 . BGOPT0 Messages BGOPT00-BGOPT09 . BGOPT1 Messages BGOPT10-BGOPT19 . BGOPT5 Messages BGOPT50-BGOPT59 . BGOPT55 Messages BGOPT551-BGOPT559 - ISPOPT5.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

Although this ISPF add-on may not be a mainstream function, it does provide a convenient avenue for quick compilation and load-n-go processes across various programming languages on your MVS 3.8J system!

Thanks to Jay Moseley for his packaging of various public domain compilers and tools on his SYSPCK DASD.

Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding this post.

Thank You.

Version History

DateVersionDescription
2021-10-310.9.00♦ Initial version released to MVS 3.8J hobbyist public domain
   

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.