On Thu, 13 Apr 2023 17:01:40 -0600, Robert Raicer wrote:
>
>The z/OS MVS JCL Reference contains the prose shown below regarding
>the PARM parameter of the JCL EXEC PGM statement.  Yes, in order to
>understand the details you need to look at the referenced
>publication (z/OS MVS Programming:  Assembler Services Guide).
>  
When you,and slightly later I, entered the MVS arena it was reasonably
expected that a competent programmer would know Assembler
language (some of our co-workers called it "BAL".) and understand the
control blocks it supported.  That's no longer true.  A competent
programmer can know COBOL, C, PL/I, ...m but no Assembler.  I've
written bash, C, and Rexx for Linux on ARM, but I know not a single
ARM machine instruction (I think it's little-endian.)

The JCL Ref. should be language-neutral and say:
    Many programming languages allow a program to access the value
    of the "subparameter".  The details should appear in a User's Guide
    for the specific language.  If the PARM parameter is omitted, that
    subparameter value will be the empty string, as if PARM='' had been
    coded.

>    ...  Thus, a length field value of zero
>indicates no PARM text is present.
>
(Pedantic quibble on whether the length of a nonexistent string is defined.)

>If the PARM parameter is effectively not present on the JCL EXEC PGM
>statement the length field is zero.  This is the "default" value.
>
>The length field is also zero when the PARM parameter is present and
>its operand is an empty string, e.g., PARM=''.
>
Meticulously distinguishing the case of PARM is absent from PARM='',
possibly because a program could determine that PARM was not
specified and take action different from PARM=''.  I'd fail that in a
design review.

>    ...
>    The area referenced by this 31-bit pointer value resides in
>    24-bit addressable storage (this is not clearly documented).
>
In days of yore it was not necessary to specify such things.  COBOL
long evaded the problem by not supporting 64-bit.  Can you imagine
an AMODE=31 Assembler program that would fail accessing PARM
where AMODE=24 would succeed?

In:
Syntax
PARM[.procstepname]=subparameter
PARM[.procstepname]=(subparameter,subparameter)
PARM[.procstepname]=('subparameter',subparameter)
PARM[.procstepname]='subparameter,subparameter'

Does it specify adequately whether the parentheses, commas, and
apostrophes are passed to the program, whether nested sublists
are permitted, and that only one parameter string is passed?

-- 
gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to