On 8/11/2011 7:37 AM, Paul Gilmartin wrote:
On Aug 11, 2011, at 05:26, Martin Trübner wrote:

Without LE I (and anyone else) can write subroutines that work
identical if called from JCL or from another program (in VSE as
well as in MVS). All you have to do is make sure that a single
parm is prefixed with an LL field.

This is no longer true with LE in the picture (unless I use PIPI) (at
least in VSE).
     ...
Don't you love em? ;-)

And what about AMODE(64)?  If a load module is marked AMODE(64),
will the (z/OS) initiator enter it with 64-bit addresses in the
parameter list?

-- gil


Excellent question. The answer is no.

From "MVS Assembler Services Guide", Chapter 2, Linkage Conventions:

First describes the classic convention: R1 points to a fullword
that points to a half-word prefixed string with the PARM; noting
that the leftmost bit in the fullword pointed at by R1 is set to
'1' as the traditional 'end-of-list' flag.

The write up then goes on to say:

"The system builds a parameter list that matches the previous description
even if the program that is the target of an EXEC statement is AMODE 64; it
is not a typical parameter list for an AMODE 64 program and the AMODE 64
program must not use the address word without first clearing bit 0."

--

So it looks like you will find your parm below the bar;

elsewhere in the doc it also points out that save areas must
also be below the bar. All this is a reasonable way, it seems
to me, to maintain compatibility with previous linkage coding.



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* Special promotion: 15% off on all DB2 training classes
    scheduled by September 1, taught by year end 2011

* Check out our entire DB2 curriculum at:
    http://www.trainersfriend.com/DB2_and_VSAM_courses/DB2curric.htm

Reply via email to