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