I am not an expert. But remember that the initiator which invokes the PGM= program simply passes the parms via R1, just like any other program. The initiator does not know if the PGM= is LE or not. So, for the initiator, R1 points to a single fullword with the high order bit set. This fullword contains the address of the PARM= string which is a halfword for the length of the PARM value (h'0' if no PARM= value) followed by the parm.
As I understand it, when you invoke an LE main routine, you don't go directly to your main routine. Instead, you go to an LE front end which parses the PARM= according to LE rules, then it invokes your code with a modified PARM. This __might__ be the place to start reading: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/CEEV1190/1.4.4 -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * [email protected] * www.HealthMarkets.com Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM > -----Original Message----- > From: IBM Mainframe Assembler List > [mailto:[email protected]] On Behalf Of Kirk Wolf > Sent: Wednesday, July 20, 2011 8:59 AM > To: [email protected] > Subject: Non-LE Assembler XCTL to LE C module with PARM= > > I apologize if this is a bit O.T., but the audience on this > list seems to be > a little more focused than IBM-MAIN for this kind of question.... > > I was curious about what would happen in the following scenario: > > Suppose you have a LE enabled "main" program written in C, > that is normally > invoked as a job step via "EXEC PGM=". The program accepts > parameters in > PARM=, but you can also set LE options for it (as with other > LE programs) by > putting them in the PARM before the first slash, e.g.: EXEC > PGM=CLEPROG,PARM='HEAP(12M)/arg1 arg2". > > Now, suppose I have a small non-LE assembler program (call it > "ASMXCTL"), > that does a "XCTL EP=CLEPROG", passing the original R1 (PARM=)...... > > What would happen if I did this? - > > EXEC PGM=ASMXCTL,PARM='HEAP(12M)/arg1 arg2' > > Does the "main" initialization of "CLEPROG" process the LE options as > before? > > Of course, I will have to try it I guess, but I was curious > if one of the > experts here knew what will happen and why... > > Thanks, > > Kirk Wolf > Dovetailed Technologies > http://dovetail.com > >
