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
