z/OS ISPF User's Guide Vol II
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


JCL generation—compilers

z/OS ISPF User's Guide Vol II
SC19-3628-00

Figure 1 shows an example for the PL/I optimizing compiler. This panel is typical of the batch compiler entry panels. After you fill in an entry panel and press Enter, ISPF generates the appropriate JCL statements. The JCL that would be generated for the PL/I example is:

 //SCAN   EXEC PGM=ISRLEMX,COND=(12,LE),
 //   PARM=('PLI,TOPSEG,B,N,E,4, ,00,ENU,4,7',
 //        '1,/,VIO')
 //*
 //* INSERT STEPLIB DD CARDS HERE FOR ISRLEMX AND THE NATIONAL
 //* LANGUAGE LITERAL LOAD MODULE IF THEY ARE NOT IN YOUR SYSTEM
 //* LIBRARY
 //*
 //ISRLCODE DD  DSN=ISPFDEMO.XXX.PLIO,DISP=SHR
 //         DD  DSN=ISPFDEMO.A.PLIO,DISP=SHR
 //         DD  DSN=ISPFDEMO.MASTER.PLIO,DISP=SHR
 //ISRLEXPD DD  UNIT=SYSDA,DISP=(NEW,PASS),SPACE=(CYL,(2,2)),
 //             DSN=&&TEMP1
 //ISRLMSG  DD  SYSOUT=(A)
 //PLIO   EXEC  PGM=IEL0AA,REGION=1024K,COND=(12,LE),
 //             PARM='MACRO,XREF'
 //SYSPRINT DD  DSN=ISPFDEMO.LISTPLIO.LIST,UNIT=SYSDA,
 //             SPACE=(CYL,(2,2)),DISP=(MOD,CATLG),
 //             DCB=(RECFM=VBA,LRECL=125,BLKSIZE=3129)
 //SYSIN    DD  DSN=&&TEMP1,DISP=(OLD,DELETE)
 //SYSLIB   DD  DSN=ISPFDEMO.XXX.PLIO,DISP=SHR
 //         DD  DSN=ISPFDEMO.A.PLIO,DISP=SHR
 //         DD  DSN=ISPFDEMO.MASTER.PLIO,DISP=SHR
 //         DD  DSN=ISPFTEST.FLAG.PLIO,DISP=SHR
 //SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(2,2))
 //SYSLIN   DD  DSN=ISPFDEMO.XXX.OBJ(TOPSEG),DISP=OLD\

The JCL is generated in two steps:

  1. The first step processes one of these scan programs, which are distributed as part of ISPF:
    ISRSCAN
    Copies one member.
    ISRLEMX
    Copies the primary member, expands any included members, and unpacks any packed members.
    The selected scan program searches the user-specified sequence of concatenated libraries to find the designated member. If the scan program finds the member, it copies the member to a temporary sequential data set that is shown by &&TEMP1 and generated by the system. The scan program then exits with a return code of zero, if no errors are found. If any errors are found, the scan program exits with one of these return codes, which prevents the processing of the second job step. Table 1 describes ISRLEMX return codes:
    Table 1. ISRSCAN and ISRLEMX return codes
    ISRSCAN ISRLEMX
    12
    Member not found.
    16
    OPEN error on DDNAME=IN.
    20
    I/O error on DDNAME=IN.
    24
    OPEN error on DDNAME=OUT.
    28
    I/O error on DDNAME=OUT.
    1-15
    Parameter n was too long, where n = 1 to 15.
    16
    Too many parameters.
    17
    Too few parameters.
    20
    Severe error in expand module. An error message should be printed in the ISRLMSG data set.
  2. In this example, the second step calls the PL/I optimizing compiler by using the temporary data set designated by &&TEMP1 as the input data set. The concatenation sequence is passed to the compiler through SYSLIB DD statements, to allow inclusion of subsidiary members referenced by %INCLUDE statements in the source text.

    The object module is directed to a partitioned data set with a three-level name composed of the project name, the first library name, and a type qualifier of OBJ. The member name for the object module is the same as the primary member to be compiled.

    The compiler listing is directed to SYSOUT class A, as specified.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014