Thanks. Steve Comstock's method does work, in any case. Frank
----- Original Message ----- > From: Victor Gil <victor....@broadridge.com> > To: IBM-MAIN@bama.ua.edu > Cc: > Sent: Thursday, April 12, 2012 1:59 PM > Subject: Re: PL/I with variable PLISTs (was: LE C calling HLASM) > > Frank, > > I just re-tested my suggestion and you are right, it DOES NOT work [not to > mention the wrong location for A-POINTER, as it should be in WORKING-STORAGE > rather than in LINKAGE]. This made me curious as I vaguely remember dealing > with > a variable p-list in COBOL. It turns out I was calling a simple Assembler > subroutine, below, to return back the registers. > > Apologies for mis-information, > -Victor- > > YREGS > COB#REGS CSECT > COB#REGS AMODE ANY > COB#REGS RMODE ANY > * > * Sample invocation: > * CALL 'COB#REGS' USING R0-R15 (ARRAY OF 16 FULLWORDS) > * > ST R15,12+4(,R13) - SAVE R15 > USING PARMS,R1 > L R15,PARM_PTR - PARM POINTER > USING PARM,R15 > STM R0,R15,PARM - PASS REGS > MVC PARM+4*15(4),12+4(R13) - ... AND FIX R15 > * > SR R15,R15 - ALWAYS "OK" > BR R14 - DONE > * > PARMS DSECT > PARM_PTR DS A > * > PARM_D DSECT > PARM DS (16)A > * > END > > ============================================================================================ > It was. Program 'callee' in my example below. (My example has three > programs; 'callopt' calls 'callee'. 'callee' should > call 'print-string' only for parms that were passed from program > 'callopt'. I did not show the code for 'print-string', as it is > not being passed a variable number of parameters. > > > Frank > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN