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