As I read the doc, PL/1 won't parse the args from the OS PARM other than
using the length to set the varying size.

http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/ibm3lr10/6.7.3

---
When the invoking program is the operating system and when compiled with
the SYSTEM(MVS) compiler option:

    * A single argument is passed to the MAIN procedure, and that
parameter must be declared as CHARACTER VARYING.

    * The current length of this parameter is set equal to the argument
length at run-time. So, in the following example:


           Tom:  proc (Param) options (main);
              dcl Param char(100) varying;
---

Unfortunately, I don't see an 'else' to the 'when's in this doc...


Paulo Caze wrote:
> 
> Hi all.
> 
> I have a PL/I program that receives 2 arguments:
> 
> PGM1: PROCEDURE(DSN,DDN)  OPTIONS(MAIN NOEXECOPS) REORDER;
> 
> DCL  DSN  CHAR(44)   VAR;
> DCL  DDN  CHAR(08)   VAR;
> 
> Then I'm calling this pgm in a REXX:
> 
> dsn = left('sys1.proctest',44)
> ddn = left('DD1',8)
> address linkmvs "PGM1 dsn ddn"
> 
> Then I got a S0C4 and RC(-196)
> 
> When I change the program to receive just one argument it works fine.
> Maybe I'm doing a stupid thing, but I can't find... Any ideas ?
> 
> Thank you!
> 
> Paulo Caze

-- 
Don Poitras - zSeries R & D  -  SAS Institute Inc. -  SAS Campus Drive 
mailto:[EMAIL PROTECTED]   (919)531-5637  Fax:677-4444     Cary, NC 27513

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to