Actually, I think it was PARMCARDS or SYSPARM or something like that for your JCL. And then that only SENT the parms to the Global Symbol Table...when your program started, if you only sent one value via the SYSPARM, you were OK just using &SYSPARM. But if you sent more than one value on your jobcard, then you had to split up the SYSPARM or PARMCARD into pieces.
But, my memory must not be quite right. I see in the documentation that SYSPARM is for UNIX and that PARMCARDS seems to be for z/OS. I do not have the documentation for MVS, so I don't actually know which one worked for MVS, or how it worked.
Wow, I did not get that at all from your original question! I don't understand what you mean by "passing a parameter while in a SAS program to another program that is being called using the PROC statement"? As I remember from my JCL days, a JCL procedure of 3 steps could be something like this:
//MYJOB JOB (111,222),'my sas job',CLASS=2,MSGCLASS=Q,NOTIFY=XXX123
//STEP1 EXEC SAS
//DATAIN DD DSN=XXXXXX.YYYYYY.FLATFILE.SEQ,DISP=SHR
//SASLIB DD DSN=XXXXXX.YYYYYY.SASLIB.ACCT,DISP=OLD
//SYSIN DD *
proc means data=saslib.new;
Do you mean passing a parameter from SAS in STEP1 to SAS in STEP3??? Or creating something inside Step 1's DATA step program that would be used in Step 1's PROC FREQ???? I still think the best thing for you to do is to contact Tech Support for help on this.
The first one (738) says that the feature is not officially supported. But it does have an example of passing a parm like this:
The second document (575) is an example of a COBOL module being called. Even though it's not officially supported, it seems that Tech Support would be the ones to help with this if you're still having issues.