What environment did you use in your ADDRESS statement? Please post the relevant REXX code.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [[email protected]] on behalf of Cameron Conacher [[email protected]] Sent: Monday, March 22, 2021 12:44 PM To: [email protected] Subject: Re: Can I use a REXX PLIST when calling a COBOL program? I am not sure I understand now. I created a simple COBOL Program and added a number of 01 level items to the Linkage section and then I added PROCEDURE DIVISION USING... a list of the data items I expected to see passed from my little REXX EXEC. LINKAGE SECTION. 01 parameter-1 PIC X(08) 01 parameter-2 PIC X(08) 01 parameter-3 PIC X(20) PROCEDURE DIVISION USING parameter-1, parameter-2, parameter-3. I create a PLIST in REXX and called my dumb program passing the PLIST PARM and then dumped the Linkage parameters. >From what I can see when I look at the items in HEX, I get a two byte binary length followed by something that looks like a pointer. len= x'000A' and pointer is x'0000000130E10000' But none of the PARMs are actually ten bytes long, and the address seems wrong to me. Have I misunderstood something here? On Mon, Mar 22, 2021 at 12:00 PM Paul Gilmartin < [email protected]> wrote: > On Mon, 22 Mar 2021 14:34:58 +0000, Seymour J Metz <[email protected]> wrote: > > >The PLIST format is the same regardless of language; for AMODE 24 or > AMODE 31 it's just a list of pointers with the high bit of the last pointer > set. However, the Devil is in the details. > > > Indeed. If the objects addressed by pointers in the PLIST are control > blocks containing pointers to areas the caller must create, Rexx is > unsuited to the task. E.g. such parameters make the SMP/E API > unsuitable to Rexx. In contrast, the ICSF API wisely uses only > pointers in the PLIST which can be created by ADDRESS LINKMVS, > the programmer using D2C(), etc.. > > >If you are calling a main program, REXX handles everything. If you are > calling a program that doesn't expect a specific runtime environment, e.g., > LE, to have been initialized, then as long as you can create the proper > parameters, REXX handles everything. I don't know of any way to call a > program that expects an existing LE environment or that requires any input > beyond R14-R1. > > -- gil > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
