Re: 64 bit Assembler DLL app PSECT parm
I think that's normal for the binder to not show the module information for your exported functions & variables, because they are being exported by the module currently being bound, so it's sort of superfluous. For historical reasons the binder uppercases things. You can either use the CASE=MIXED parm, or (preferable so it works regardless), put quotes around the symbol names on the control statements. If you look at the SYSDEFSD produced by the binder, it quotes these: IMPORT CODE64,'SYSADATA','opendata' On 22 Aug 2019 18:55:24 -0400 Joseph Reichman wrote: > Did that my problem now Is that I am getting unresolved in the Assembler > program which is calling my DLL, > the DLL exported function which is a C program -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm forgot quotes sorry thanks got 0 return code
d ===> IMPORT CODE64,'SYSADATA','opendata' ENTRY CELQSTRT NAME TESTPRGD(R) /* // -Original Message- From: IBM Mainframe Discussion List On Behalf Of Barry Lichtenstein Sent: Thursday, August 22, 2019 6:11 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: 64 bit Assembler DLL app PSECT parm The value of R5 on entry to an XPLINK (which include AMODE 64) function is not the address of the WSA in its entirety (as R0 was in non-XPLINK), but rather the value of the "environment" of that function, which is somewhere within the WSA of that module (executable file). (As implemented I believe it's the same for the entire compilation unit, but the specification is that it corresponds to the function.) The environment address comes from the caller loading the function descriptor -- the R-con/V-con pair for that function. Where V(function) gives the address of the code, R(function) gives the address of the "environment". That then gives the function the base location for its "writable-static area" on entry -- the non-reentrant area containing writable data items and static data items. Thus when an XPLINK function is to call another function (exception OS linkage), it needs a descriptor to do so. As the address of the environment is unique to each instance of the program (LE enclave), the descriptor of a RENT-compiled program has to live in the WSA so that it can be updated with the environment address of the target program, unlike a V-con which can be relocated during load time. (The V-con in the descriptor also needs to be updated in support of DLLs, i.e. if the function being called is not within the calling module). The net of this is that in XPLINK you need the PSECT in concert with the call macro (CELQCALL), and that call macro automatically takes care of allocating the descriptor. The manual says only under the CELQCALL usage notes: 2. This macro requires that a PSECT was defined by the CELQPRLG prolog macro Though I don't see where there is a similar note, CEEPDDA and CEEPLDA also both require a PSECT for XPLINK (perhaps because these macros also work for non-XPLINK DLLs). These allow you to define and reference data items your environment (WSA) which are exportable/importable respectively. On 21 Aug 2019 11:17:24 AM Joseph Reichman wrote: > Just looked thru LE book shelf would be nice If they had programming > examples Or at the very least documentation on the parameters used for > the EDC macros -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
Calling assembler Bind step /* //* //* LINK EDIT THE PROGRAM * //* //STEP0200 EXEC PGM=IEWL,COND=(0,LT,STEP0100), // PARM='AMODE(64),LIST,MAP,XREF,RENT,REUS,DYNAM=DLL' //SYSPRINT DD SYSOUT=* //SYSDEFSD DD SYSOUT=* //SYSLIB DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB // DD DISP=SHR,DSN=CEE.SCEEBND2 // DD DISP=SHR,DSN=CEE.SCEELKED //SYSLMOD DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509) //SYSLIN DD DSN=&&HEXOBJ(TESTPRGD),DISP=(OLD,PASS) // DD DSN=CEE.SCEELIB(CELQS003),DISP=SHR // DD DDNAME=SYSIN //SYSINDD * IMPORT CODE64,SYSADATA,opendata ENTRY CELQSTRT NAME TESTPRGD(R) /* // C R O S S - R E F E R E N C E T A B L E _ EXT CLASS = C_WSA64 -- R E F E R E N C E -- T A R G E T --- CLASSELEMENT | OFFSET SECT/PART(ABBREV) OFFSET TYPE | SYMBOL(ABBREV) SECTION (ABB | 8 MYPSECT 8 V-CON | opendata $UNRESOLVED *** E N D O F C R O S S R E F E R E N -Original Message- From: IBM Mainframe Discussion List On Behalf Of Barry Lichtenstein Sent: Thursday, August 22, 2019 6:11 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: 64 bit Assembler DLL app PSECT parm The value of R5 on entry to an XPLINK (which include AMODE 64) function is not the address of the WSA in its entirety (as R0 was in non-XPLINK), but rather the value of the "environment" of that function, which is somewhere within the WSA of that module (executable file). (As implemented I believe it's the same for the entire compilation unit, but the specification is that it corresponds to the function.) The environment address comes from the caller loading the function descriptor -- the R-con/V-con pair for that function. Where V(function) gives the address of the code, R(function) gives the address of the "environment". That then gives the function the base location for its "writable-static area" on entry -- the non-reentrant area containing writable data items and static data items. Thus when an XPLINK function is to call another function (exception OS linkage), it needs a descriptor to do so. As the address of the environment is unique to each instance of the program (LE enclave), the descriptor of a RENT-compiled program has to live in the WSA so that it can be updated with the environment address of the target program, unlike a V-con which can be relocated during load time. (The V-con in the descriptor also needs to be updated in support of DLLs, i.e. if the function being called is not within the calling module). The net of this is that in XPLINK you need the PSECT in concert with the call macro (CELQCALL), and that call macro automatically takes care of allocating the descriptor. The manual says only under the CELQCALL usage notes: 2. This macro requires that a PSECT was defined by the CELQPRLG prolog macro Though I don't see where there is a similar note, CEEPDDA and CEEPLDA also both require a PSECT for XPLINK (perhaps because these macros also work for non-XPLINK DLLs). These allow you to define
Re: 64 bit Assembler DLL app PSECT parm
The value of R5 on entry to an XPLINK (which include AMODE 64) function is not the address of the WSA in its entirety (as R0 was in non-XPLINK), but rather the value of the "environment" of that function, which is somewhere within the WSA of that module (executable file). (As implemented I believe it's the same for the entire compilation unit, but the specification is that it corresponds to the function.) The environment address comes from the caller loading the function descriptor -- the R-con/V-con pair for that function. Where V(function) gives the address of the code, R(function) gives the address of the "environment". That then gives the function the base location for its "writable-static area" on entry -- the non-reentrant area containing writable data items and static data items. Thus when an XPLINK function is to call another function (exception OS linkage), it needs a descriptor to do so. As the address of the environment is unique to each instance of the program (LE enclave), the descriptor of a RENT-compiled program has to live in the WSA so that it can be updated with the environment address of the target program, unlike a V-con which can be relocated during load time. (The V-con in the descriptor also needs to be updated in support of DLLs, i.e. if the function being called is not within the calling module). The net of this is that in XPLINK you need the PSECT in concert with the call macro (CELQCALL), and that call macro automatically takes care of allocating the descriptor. The manual says only under the CELQCALL usage notes: 2. This macro requires that a PSECT was defined by the CELQPRLG prolog macro Though I don't see where there is a similar note, CEEPDDA and CEEPLDA also both require a PSECT for XPLINK (perhaps because these macros also work for non-XPLINK DLLs). These allow you to define and reference data items your environment (WSA) which are exportable/importable respectively. On 21 Aug 2019 11:17:24 AM Joseph Reichman wrote: > Just looked thru LE book shelf would be nice > If they had programming examples > Or at the very least documentation on the parameters used for the EDC macros -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm found the edc doc it’s in the C/C++ programming guide
> On Aug 21, 2019, at 5:10 AM, Don Poitras wrote: > > R5 points to the WSA. In a 64-bit xplink assembler routine, it's required to > be passed in from the caller. Just like R4 points to the stack and R12 points > to the CAA. See: > > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/cbc1p2179.htm > > In article <007201d557c8$5238af60$f6aa0e20$@gmail.com> you wrote: >> Not sure if that it seems like in the CELQCALL register 5 should be >> initialized to something which it is not either by CELQCALL macros or the >> CELQPRLG macros > >> -Original Message- >> From: IBM Mainframe Discussion List On Behalf Of >> Charles Mills >> Sent: Tuesday, August 20, 2019 9:12 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: Re: 64 bit Assembler DLL app PSECT parm > >> There is more here >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/xatrsyn.htm >> but not much. (Watch the fold.) > >> This seems pretty good: >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/adaattr.htm > >> Charles > > >> -Original Message- >> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On >> Behalf Of Joseph Reichman >> Sent: Tuesday, August 20, 2019 5:47 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: 64 bit Assembler DLL app PSECT parm > >> Hi > >> > >> I have a 64 bit C DLL being called by a 64 BIT Assembler program the >> following is an example I saw in the LE 64 bit guide > >> > >> DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this >> was the only occurrence > >> > >> I am wondering what the value is for the PSECT parm > >> > >> I seem to be abending in CELQCALL macro which is somehow related to the >> PSECT parm or its address > >> > >> Looking up the documentation on the parm > >> * > >> Not quite sure what this means > >> > >> PSECT > >> The name to be assigned to the AMODE 64 assembler routine PSECT area. The >> PSECT is used to > >> establish this routines 64-bit XPLINK environment. For more information >> about the PSECT area, see > >> High Level Assembler and Toolkit Feature in IBM Knowledge Center >> (www.ibm.com/support/ > >> knowledgecenter/SSENW6). > >> > >> thanks > > -- > Don Poitras - SAS Development - SAS Institute Inc. - SAS Campus Drive > sas...@sas.com (919) 531-5637Cary, NC 27513 > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
Just looked thru LE book shelf would be nice If they had programming examples Or at the very least documentation on the parameters used for the EDC macros Thanks for your help I’ll look in the maclib > On Aug 21, 2019, at 5:10 AM, Don Poitras wrote: > > R5 points to the WSA. In a 64-bit xplink assembler routine, it's required to > be passed in from the caller. Just like R4 points to the stack and R12 points > to the CAA. See: > > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/cbc1p2179.htm > > In article <007201d557c8$5238af60$f6aa0e20$@gmail.com> you wrote: >> Not sure if that it seems like in the CELQCALL register 5 should be >> initialized to something which it is not either by CELQCALL macros or the >> CELQPRLG macros > >> -Original Message- >> From: IBM Mainframe Discussion List On Behalf Of >> Charles Mills >> Sent: Tuesday, August 20, 2019 9:12 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: Re: 64 bit Assembler DLL app PSECT parm > >> There is more here >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/xatrsyn.htm >> but not much. (Watch the fold.) > >> This seems pretty good: >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/adaattr.htm > >> Charles > > >> -Original Message- >> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On >> Behalf Of Joseph Reichman >> Sent: Tuesday, August 20, 2019 5:47 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: 64 bit Assembler DLL app PSECT parm > >> Hi > >> > >> I have a 64 bit C DLL being called by a 64 BIT Assembler program the >> following is an example I saw in the LE 64 bit guide > >> > >> DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this >> was the only occurrence > >> > >> I am wondering what the value is for the PSECT parm > >> > >> I seem to be abending in CELQCALL macro which is somehow related to the >> PSECT parm or its address > >> > >> Looking up the documentation on the parm > >> * > >> Not quite sure what this means > >> > >> PSECT > >> The name to be assigned to the AMODE 64 assembler routine PSECT area. The >> PSECT is used to > >> establish this routines 64-bit XPLINK environment. For more information >> about the PSECT area, see > >> High Level Assembler and Toolkit Feature in IBM Knowledge Center >> (www.ibm.com/support/ > >> knowledgecenter/SSENW6). > >> > >> thanks > > -- > Don Poitras - SAS Development - SAS Institute Inc. - SAS Campus Drive > sas...@sas.com (919) 531-5637Cary, NC 27513 > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
Thanks have to change the macros xplink supports amode 64 Thanks again > On Aug 21, 2019, at 5:10 AM, Don Poitras wrote: > > R5 points to the WSA. In a 64-bit xplink assembler routine, it's required to > be passed in from the caller. Just like R4 points to the stack and R12 points > to the CAA. See: > > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/cbc1p2179.htm > > In article <007201d557c8$5238af60$f6aa0e20$@gmail.com> you wrote: >> Not sure if that it seems like in the CELQCALL register 5 should be >> initialized to something which it is not either by CELQCALL macros or the >> CELQPRLG macros > >> -Original Message- >> From: IBM Mainframe Discussion List On Behalf Of >> Charles Mills >> Sent: Tuesday, August 20, 2019 9:12 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: Re: 64 bit Assembler DLL app PSECT parm > >> There is more here >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/xatrsyn.htm >> but not much. (Watch the fold.) > >> This seems pretty good: >> https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. >> asma400/adaattr.htm > >> Charles > > >> -Original Message- >> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On >> Behalf Of Joseph Reichman >> Sent: Tuesday, August 20, 2019 5:47 PM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: 64 bit Assembler DLL app PSECT parm > >> Hi > >> > >> I have a 64 bit C DLL being called by a 64 BIT Assembler program the >> following is an example I saw in the LE 64 bit guide > >> > >> DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this >> was the only occurrence > >> > >> I am wondering what the value is for the PSECT parm > >> > >> I seem to be abending in CELQCALL macro which is somehow related to the >> PSECT parm or its address > >> > >> Looking up the documentation on the parm > >> * > >> Not quite sure what this means > >> > >> PSECT > >> The name to be assigned to the AMODE 64 assembler routine PSECT area. The >> PSECT is used to > >> establish this routines 64-bit XPLINK environment. For more information >> about the PSECT area, see > >> High Level Assembler and Toolkit Feature in IBM Knowledge Center >> (www.ibm.com/support/ > >> knowledgecenter/SSENW6). > >> > >> thanks > > -- > Don Poitras - SAS Development - SAS Institute Inc. - SAS Campus Drive > sas...@sas.com (919) 531-5637Cary, NC 27513 > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
R5 points to the WSA. In a 64-bit xplink assembler routine, it's required to be passed in from the caller. Just like R4 points to the stack and R12 points to the CAA. See: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/cbc1p2179.htm In article <007201d557c8$5238af60$f6aa0e20$@gmail.com> you wrote: > Not sure if that it seems like in the CELQCALL register 5 should be > initialized to something which it is not either by CELQCALL macros or the > CELQPRLG macros > -Original Message- > From: IBM Mainframe Discussion List On Behalf Of > Charles Mills > Sent: Tuesday, August 20, 2019 9:12 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: 64 bit Assembler DLL app PSECT parm > There is more here > https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. > asma400/xatrsyn.htm > but not much. (Watch the fold.) > This seems pretty good: > https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. > asma400/adaattr.htm > Charles > -Original Message- > From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On > Behalf Of Joseph Reichman > Sent: Tuesday, August 20, 2019 5:47 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: 64 bit Assembler DLL app PSECT parm > Hi > > I have a 64 bit C DLL being called by a 64 BIT Assembler program the > following is an example I saw in the LE 64 bit guide > > DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this > was the only occurrence > > I am wondering what the value is for the PSECT parm > > I seem to be abending in CELQCALL macro which is somehow related to the > PSECT parm or its address > > Looking up the documentation on the parm > * > Not quite sure what this means > > PSECT > The name to be assigned to the AMODE 64 assembler routine PSECT area. The > PSECT is used to > establish this routines 64-bit XPLINK environment. For more information > about the PSECT area, see > High Level Assembler and Toolkit Feature in IBM Knowledge Center > (www.ibm.com/support/ > knowledgecenter/SSENW6). > > thanks -- Don Poitras - SAS Development - SAS Institute Inc. - SAS Campus Drive sas...@sas.com (919) 531-5637Cary, NC 27513 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
Not sure if that it seems like in the CELQCALL register 5 should be initialized to something which it is not either by CELQCALL macros or the CELQPRLG macros -Original Message- From: IBM Mainframe Discussion List On Behalf Of Charles Mills Sent: Tuesday, August 20, 2019 9:12 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: 64 bit Assembler DLL app PSECT parm There is more here https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. asma400/xatrsyn.htm but not much. (Watch the fold.) This seems pretty good: https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. asma400/adaattr.htm Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Joseph Reichman Sent: Tuesday, August 20, 2019 5:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: 64 bit Assembler DLL app PSECT parm Hi I have a 64 bit C DLL being called by a 64 BIT Assembler program the following is an example I saw in the LE 64 bit guide DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this was the only occurrence I am wondering what the value is for the PSECT parm I seem to be abending in CELQCALL macro which is somehow related to the PSECT parm or its address Looking up the documentation on the parm * Not quite sure what this means PSECT The name to be assigned to the AMODE 64 assembler routine PSECT area. The PSECT is used to establish this routines 64-bit XPLINK environment. For more information about the PSECT area, see High Level Assembler and Toolkit Feature in IBM Knowledge Center (www.ibm.com/support/ knowledgecenter/SSENW6). thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: 64 bit Assembler DLL app PSECT parm
There is more here https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. asma400/xatrsyn.htm but not much. (Watch the fold.) This seems pretty good: https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6. asma400/adaattr.htm Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Joseph Reichman Sent: Tuesday, August 20, 2019 5:47 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: 64 bit Assembler DLL app PSECT parm Hi I have a 64 bit C DLL being called by a 64 BIT Assembler program the following is an example I saw in the LE 64 bit guide DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this was the only occurrence I am wondering what the value is for the PSECT parm I seem to be abending in CELQCALL macro which is somehow related to the PSECT parm or its address Looking up the documentation on the parm * Not quite sure what this means PSECT The name to be assigned to the AMODE 64 assembler routine PSECT area. The PSECT is used to establish this routines 64-bit XPLINK environment. For more information about the PSECT area, see High Level Assembler and Toolkit Feature in IBM Knowledge Center (www.ibm.com/support/ knowledgecenter/SSENW6). thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
64 bit Assembler DLL app PSECT parm
Hi I have a 64 bit C DLL being called by a 64 BIT Assembler program the following is an example I saw in the LE 64 bit guide DLLAPPL CELQPRLG PSECT=ADLA6IFP I searched for the text ADLA6IFP and this was the only occurrence I am wondering what the value is for the PSECT parm I seem to be abending in CELQCALL macro which is somehow related to the PSECT parm or its address Looking up the documentation on the parm * Not quite sure what this means PSECT The name to be assigned to the AMODE 64 assembler routine PSECT area. The PSECT is used to establish this routines 64-bit XPLINK environment. For more information about the PSECT area, see High Level Assembler and Toolkit Feature in IBM Knowledge Center (www.ibm.com/support/ knowledgecenter/SSENW6). thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN