pl/i and ispf usage

This forum provides the support of Dezhi Mainframe systems. Please post your questions about logon, usage of our mainframe environment.

Moderators: sysprog, prino, sfan, steve-myers, Tim001

pl/i and ispf usage

Postby jkzup » Tue 16 Jun 2009, 20:15

Where can I find JCL to compile and bind PL/I programs? I have written several programs I want to use to drive customized ISPF dialogs.

I tried using ISPF 4.5 for a foreground compile but it didn't work.

Thank you!

jk zup
jkzup
 
Posts: 37
Joined: Tue 16 Jun 2009, 20:06

Re: pl/i and ispf usage

Postby sysprog » Wed 17 Jun 2009, 13:05

Here lists the cataloged procedures that you may use for PL/I compile:
viewtopic.php?f=4&t=9

The cataloged procedure is stored in SYSFAN.PROCLIB.
Regards,
sysprog
sysprog
 
Posts: 126
Joined: Wed 20 May 2009, 04:03

Re: pl/i and ispf usage

Postby jkzup » Sat 20 Jun 2009, 17:09

I have a couple more questions about pl/i on the system.
1. Where are the load modules that run the compiler, link editor/binder, and prelink? I
looked at the cataloged procedures but couldn't locate all the referenced libraries
and programs. What load libraries are preallocated to TSO users and which would
I have to supply in a STEPLIB to run a compile/prelink/link? (Also, some procedures
have a prelink step but others don't--when is prelink required?)
2. I read in another post that pl/i 3.3 will be upgraded to 3.6. When is this scheduled?
If I compile my programs under 3.3 would I have to recompile them once 3.6 is up,
or would they continue to run okay?

Thank you!

jk zup
jkzup
 
Posts: 37
Joined: Tue 16 Jun 2009, 20:06

Re: pl/i and ispf usage

Postby sysprog » Mon 22 Jun 2009, 02:48

1. IEL330.SIBMZCMP is the load module to compile and pre-link the PL/I source. If you use the cataloged procedures, you don't need to worry about the STEPLIBs.

The run-time environment uses IBM Language Environment (L/E), and this applied to all languages (C, COBOL, etc). All L/E loadlib (CEE.SCEERUN, etc) are in LINKLST, so that you don't need to STEPLIB them at run-time.

2. There is no hard schedule to upgrade PL/I to V3.6, however, we expect there is no changes required for this upgrade.

If you really care about the migration detail, please refer here:
http://publibz.boulder.ibm.com/cgi-bin/ ... 1026134839
Regards,
sysprog
sysprog
 
Posts: 126
Joined: Wed 20 May 2009, 04:03

Re: pl/i and ispf usage

Postby mikrom » Tue 29 Dec 2009, 08:15

First I tried to use IEL1CL but the procedure was not found on the system.
Then I tried all the cataloged procedures given in the link viewtopic.php?f=4&t=9
and only the procedure IBMZCPL works for my purpose.

So, when I have my PL/I source member placed in MIKROM.TEST.PLI(PLI01) and want to compile and link it into a binary member
MIKROM.TEST.LOAD(PLI01) then this JCL script works for me fine:

Code: Select all
//MIKROMC JOB (),CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),NOTIFY=&SYSUID,
//        REGION=4M
//* THIS DOESN'T WORK:
//*STEP1 EXEC IEL1CL,LIBPRFX=CEE
//* THIS COMPILES WITH 'MIKROMC  ENDED AT N1  MAXCC=4 CN(INTERNAL)':
//STEP1 EXEC IBMZCPL
//PLI.SYSIN DD DSN=&SYSUID..TEST.PLI(PLI01),DISP=SHR
//LKED.SYSLMOD DD DSN=&SYSUID..TEST.LOAD,DISP=SHR
//LKED.SYSIN DD *
 NAME PLI01(R)
/*
mikrom
 
Posts: 9
Joined: Mon 28 Dec 2009, 20:08

Re: pl/i and ispf usage

Postby prino » Tue 29 Dec 2009, 10:33

The PL/I compiler that can be used is V3R5M0 - V3R7M0 does not seem to work. All PL/I compilers are in
Code: Select all
PLI.V2R3M0.AIBMMOD1
PLI.V2R3M0.AIBMMOD2
PLI.V2R3M0.AIBMSRC1
PLI.V2R3M0.AIBMSRC2
PLI.V2R3M0.AIELMOD1
PLI.V2R3M0.AIELSRC1
PLI.V2R3M0.CNTL   
PLI.V2R3M0.DSSDUMP
PLI.V2R3M0.PLIBASE
PLI.V2R3M0.PLICLIST
PLI.V2R3M0.PLICMD 
PLI.V2R3M0.PLICOMP
PLI.V2R3M0.PLIHELP
PLI.V2R3M0.PLILINK
PLI.V2R3M0.PLIPROC
PLI.V2R3M0.PLISAMP
PLI.V2R3M0.PLISMAC
PLI.V2R3M0.PLITASK
PLI.V2R3M0.SAQACMD
PLI.V2R3M0.SAQAMLIB
PLI.V2R3M0.SAQAPNLS
PLI.V2R3M0.SIBMBASE
PLI.V2R3M0.SIBMLINK
PLI.V3R5M0.AIBMZHFS
PLI.V3R5M0.AIBMZMOD
PLI.V3R5M0.AIBMZSRC
PLI.V3R5M0.SIBMZCMP
PLI.V3R5M0.SIBMZPRC
PLI.V3R5M0.SIBMZSAM
PLI.V3R7M0.AIBMZHFS
PLI.V3R7M0.AIBMZMOD
PLI.V3R7M0.AIBMZSRC
PLI.V3R7M0.SIBMZCMP
PLI.V3R7M0.SIBMZPRC
PLI.V3R7M0.SIBMZSAM
except for the 3.3 version which is in
Code: Select all
IEL330.AIBMZHFS         
IEL330.AIBMZMOD
IEL330.AIBMZSRC
IEL330.SIBMZCMP
IEL330.SIBMZHFS
IEL330.SIBMZPRC
IEL330.SIBMZSAM

Compile JCL, wihout DB2, CICS or pre-link can be found in

Code: Select all
'prino.rahp.pli(@fan23)' - for V2.3.0
'prino.rahp.pli(@fan)' - for V3R3M0, needs updating for V3R5M0


JCL is for compile/link/go of one of my private programs, but contains plenty of SET statements to customize the flow. Feel free to make a copy, and paste it here with your CICS, DB2 and/or pre-link additions.
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
Some programming here :mrgreen:
prino
 
Posts: 479
Joined: Sat 06 Jun 2009, 21:41
Location: Vilnius, Lithuania

Re: pl/i and ispf usage

Postby mikrom » Wed 30 Dec 2009, 08:18

Thank you very much for previous answers!
I'm new to the mainframe world, working through some tutorials to learn the first steps on mainframe, so I have some questions - maybe very stupid:
1. What is meant by the concept of "Cataloged Procedures"? For example: What is the difference between the procedure 'IEL1CL' and the cataloged procedure 'IBMZCPL' for compiling PL/I? Are only the cataloged procedures supported by IBM and the other not?

2. I'm little bit confused of a cryptic usage of procedure names. How can I decipher the purpose of the procedure from the procedure name?
For example: Why is the procedure for compiling PL/I named 'IBMZCPL' and for compiling COBOL 'IGYWCL' ?
I thing (when I look at substitution JCL in compile job logs in SDSF), that probably only the last characters in the procedure names says what the procedure does: Maybe 'CPL' in 'IBMZCPL' means Compile + Prelink + Link-edit and
'CL' in 'IGYWCL' means Compile + Link-edit. But the other letters in the procedure names seems to be arbitrarily given by IBM. Am I right or not?

3. When I read Compile+Link+Go I understand the first two, but what means the step Go ?
mikrom
 
Posts: 9
Joined: Mon 28 Dec 2009, 20:08

Re: pl/i and ispf usage

Postby prino » Wed 30 Dec 2009, 16:55

mikrom wrote:Thank you very much for previous answers!
I'm new to the mainframe world, working through some tutorials to learn the first steps on mainframe, so I have some questions - maybe very stupid:
1. What is meant by the concept of "Cataloged Procedures"? For example: What is the difference between the procedure 'IEL1CL' and the cataloged procedure 'IBMZCPL' for compiling PL/I? Are only the cataloged procedures supported by IBM and the other not?


A cataloged procedure is one that resides in a PDS, the alternative, which is useful when you are developing a procedure, is an "in-stream" procedure. There are probably also examples 'prino.rahp.pli', e.g. 'RUN2PDS'. Basically, it has the same format as an "external" PROC, but is placed before any "executable" JCL and ends with a
Code: Select all
//   PEND
statement.

Using in-stream procedures was pretty normal until the mid 1990's as few users could place there procedures in the system PROCLIBS. Since then you can code a
Code: Select all
//label JCLLIB ORDER=(your.own.proclib,your.other.proclib)
directly after the JOB statement, and those PDS'es will be searched before any system PROCLIBs.

mikrom wrote:2. I'm little bit confused of a cryptic usage of procedure names. How can I decipher the purpose of the procedure from the procedure name?
For example: Why is the procedure for compiling PL/I named 'IBMZCPL' and for compiling COBOL 'IGYWCL' ?
I thing (when I look at substitution JCL in compile job logs in SDSF), that probably only the last characters in the procedure names says what the procedure does: Maybe 'CPL' in 'IBMZCPL' means Compile + Prelink + Link-edit and
'CL' in 'IGYWCL' means Compile + Link-edit. But the other letters in the procedure names seems to be arbitrarily given by IBM. Am I right or not?


The PL/I compiler load module is called IBMZ(something), the COBOL compiler load module is called, if I am correct, IGY(something). Your guess that the last characters more or less give the function of the procedure is correct, but this only holds true for IBM procs. At one client procedures for JOB Pxxxx were simply called PxxxxA/B/C/etc. For real production work using procedures is (probably) the way to go, but for your own JCL I'd suggest that you just code in-line JCL and a bunch of
Code: Select all
//   SET VAR='value'
statements to customize the lot.

mikrom wrote:3. When I read Compile+Link+Go I understand the first two, but what means the step Go ?


Go means run the compiled and linked program ;)
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
Some programming here :mrgreen:
prino
 
Posts: 479
Joined: Sat 06 Jun 2009, 21:41
Location: Vilnius, Lithuania

Re: pl/i and ispf usage

Postby mikrom » Thu 31 Dec 2009, 19:14

Hi prino,
Thank you very much for valuable informations.
I wish You Happy New Year!
mikrom
 
Posts: 9
Joined: Mon 28 Dec 2009, 20:08


Return to Dezhi systems: Mainframe

Who is online

Users browsing this forum: No registered users and 0 guests

cron