I think the only scenario that would work from a non LE assembler is calling a main 64 bit C which would than call the 64 C DLL
Joe Reichman 170-10 73 rd ave Fresh meadows NY 11366 > On Oct 29, 2019, at 7:38 PM, scott Ford <idfli...@gmail.com> wrote: > > Yep, looking at the z/os xl c/c++ manuals there are examples of Hlasm > calling C, > You have to use XPLINK for 64bit and there are prologs and epilogs. > > Scott > >> On Tue, Oct 29, 2019 at 2:22 PM David Crayford <dcrayf...@gmail.com> wrote: >> >>> On 2019-10-29 11:50 PM, Joseph Reichman wrote: >>> Peter thanks so much if I need a C main then this exercise in CELQPIPI >> is irrelevant >> >> >> We use CEEPIPI and don't use main. We use subroutines with the following >> (this is C++ code) >> >> #pragma linkage(FUWIPSTR, fetchable) // required for PIPI init_sub/call_sub >> >> >>> >>> Now I need to figure out how to call a C main from non LE assembler as >> all of my code is that >>> >>> On Oct 29, 2019, at 11:45 AM, Farley, Peter x23353 < >> peter.far...@broadridge.com> wrote: >>>> Joe, >>>> >>>> From my somewhat limited experience with CEEPIPI (only to enable >> 31-bit COBOL calls from 31-bit non-LE assembler subroutines called from >> 31-bit COBOL main), it looks to me like your 64-bit assembler code needs to >> set up a CEEPIPI INIT_SUB not an INIT_MAIN since you are calling the DLL as >> a subroutine. >>>> >>>> You may also need to use a "stub" C main program to just call your >> assembler 64-bit code and then exit just to establish the C main >> environment, since as you found the CELQPRLG doesn't allow you to make your >> assembler code look like a 64-bit C main. >>>> >>>> HTH >>>> >>>> Peter >>>> >>>> -----Original Message----- >>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >> Behalf Of Joseph Reichman >>>> Sent: Tuesday, October 29, 2019 11:32 AM >>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>> >>>> It was my understanding after a lot of digging that I couldn’t call 64 >> bit C from assembler because the 64 bit LE assembler prologue macro >> CELQPRLG doesn’t support main like CEEENTRY and there for the LE >> environment isn’t established I just thought that CELQPIPI would do that >> for assembler but am having a hard time getting that working with a 64 bit >> LE assembler Thanks >>>> >>>> On Oct 29, 2019, at 11:26 AM, scott Ford <idfli...@gmail.com >>>> >>>>> wrote: >>>>> >>>>> Joe, >>>>> >>>>> I havent dont 64bit C ..but I would be surprised the guys here on the >>>>> listserv havent . >>>>> I understand 64bit in theory but working as a ISV my mgmt is stuck in >>>>> the Cobol back woods. >>>>> >>>>> Scott >>>>> >>>>>> On Tue, Oct 29, 2019 at 9:42 AM Joseph Reichman >>>>>> <reichman...@gmail.com> >>>>>> wrote: >>>>>> >>>>>> I am trying to call a AMODE 64 bit C DLL (exported function) from >>>>>> assembler and because CELQPRLG (LE 64 bit prologue) doesn't support >>>>>> main like CEEENTRY (MAIN=YES) Cannt seem do it I thought the >>>>>> INIT_MAIN function for CELQPIPI would do the trick for me >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> >>>>>> -----Original Message----- >>>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >>>>>> Behalf Of scott Ford >>>>>> Sent: Tuesday, October 29, 2019 9:35 AM >>>>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>>>> >>>>>> Joe: >>>>>> >>>>>> What are you trying to accomplish exactly so we can better assist you >> ? >>>>>> Scott >>>>>> >>>>>> On Tue, Oct 29, 2019 at 8:52 AM Joseph Reichman >>>>>> <reichman...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> I guess I could do a series of calls to the exports things is they >>>>>>> all share a global area >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> >>>>>>> On Oct 29, 2019, at 8:47 AM, David Crayford <dcrayf...@gmail.com> >> wrote: >>>>>>>> Why do you need a DLL? Can you just use PIPI to call a static >> program? >>>>>>>> >>>>>>>>> On 2019-10-29 8:15 PM, Joseph Reichman wrote: >>>>>>>>> This is add_entry I was using INIT_SUB, INIT_MAIN regardless >>>>>>>>> that’s a >>>>>>> good idea to try to use add_entry >>>>>>>>> After init_sub/MAIN >>>>>>>>> This is the program I trying to initiate as in Assembler LE 64 bit >>>>>>> prolog CELQPRLG does not have a main and I cannot call a 64 C DLL I >>>>>>> was thinking CELQPIPI would resolve these issues >>>>>>>>> Thanks >>>>>>>>> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A >>>>>>>>> YREGS >>>>>>>>> * LOAD EP=CEETEST >>>>>>>>> * LR R15,R0 >>>>>>>>> * BASR R14,R15 >>>>>>>>> CELQCALL opendata,(SYSADATA),WORKREG=10 >>>>>>>>> XR R15,R15 >>>>>>>>> CELQEPLG >>>>>>>>> SYSADATA DC CL8'SYSADATA' >>>>>>>>> * CEEPDDA opendata,SCOPE=IMPORT >>>>>>>>> PARM1 DC A(COMMANDS) >>>>>>>>> PARM2 DC A(FEEDBACK) >>>>>>>>> DS 0H >>>>>>>>> DC H'9' >>>>>>>>> COMMANDS DC C'AT ENTRY ' >>>>>>>>> FEEDBACK DS CL12 >>>>>>>>> CEEDSA SECTYPE=XPLINK PING OF THE DYNAMIC SAVE AREA >>>>>>>>> CEECAA MAPPING OF THE COMMON ANCHOR AREA >>>>>>>>> *LLPPA CEEPPA >>>>>>>>> WORKAREA DSECT >>>>>>>>> DS 0D >>>>>>>>> WORKSIZE EQU *-WORKAREA >>>>>>>>> * CEEEDB MAPPING OF THE ENCLAVE DATA BLOCK >>>>>>>>> END >>>>>>>>> >>>>>>>>> >>>>>>>>> -----Original Message----- >>>>>>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >>>>>>> Behalf Of Joe Monk >>>>>>>>> Sent: Tuesday, October 29, 2019 3:34 AM >>>>>>>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>>>>>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>>>>>>> >>>>>>>>> So .... according to: >>>>>>>>> >>>>>>>>> "20 The routine_name contains only blanks and the routine_entry >>>>>>>>> was >>>>>>> zero. >>>>>>>>> The PreInit table was not updated." >>>>>>>>> >>>>>>>>> >>>>>>> https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos >>>>>>> .v >>>>>>> 2r1.ceeam00/ceeam141.htm >>>>>>>>> Joe >>>>>>>>> >>>>>>>>> On Mon, Oct 28, 2019 at 8:55 PM Joseph Reichman >>>>>>>>> <reichman...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> The listing has the SYSSTATE set AMODE 64 The LISTPSW >>>>>>>>>> indicates botH the EA and BA BITS of the PSW as one indicating >>>>>>>>>> AMODE 64 at location F8 right before the call CELQPIPI >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> CEEWQPIP: LOADing CELQPIPI >>>>>>>>>> CEEWQPIP: Doing CELQPIPI INIT_MAIN IKJ57024I AT +F6 TEST istpsw >>>>>>>>>> IKJ57652I PSW LOCATED AT 8BA068 >>>>>>>>>> XRXXXTIE KEY XMWP AS CC PROGMASK EA BA INSTR ADDR >>>>>>>>>> 00000111 8 1101 00 00 0000 1 1 >>>>>> 1F7010F6 >>>>>>>>>> TEST >>>>>>>>>> t +f8 >>>>>>>>>> TEST >>>>>>>>>> o >>>>>>>>>> CEEWQLOD: Called to LOAD "TEST64A " >>>>>>>>>> IKJ57024I AT +F8 >>>>>>>>>> TEST >>>>>>>>>> >>>>>>>>>> The program is AMODE 64 >>>>>>>>>> >>>>>>>>>> ________ TEST64A 00000D30 0001D6 00 >>>>>>> 64 >>>>>>>>>> ANY >>>>>>>>>> >>>>>>>>>> This is a listing of the table >>>>>>>>>> +CEEXPTBL DC CL8'CELQPTBL' Eyecatcher >>>>>>>>>> + DC A(CELQPIT0058) Number of e >>>>>>>>>> + DC F'16' Entry size >>>>>>>>>> + DC F'100' Version >>>>>>>>>> ice routines >>>>>>>>>> >>>>>>>>>> Source Statement HLASM R6 >>>>>>>>>> + DC AL1(0) >>>>>>>>>> + DC 3X'00' >>>>>>>>>> CELQPITY TEST64A,0 ically load CE >>>>>>>>>> + DC CL8'TEST64A' Name, set t >>>>>>>>>> + DC AD(0) Load dblwd >>>>>>>>>> CELQPITS , End of CELQPIP >>>>>>>>>> +CELQPIT0058 EQU 1 Number of e >>>>>>>>>> * >>>>>>>>>> Here is the listing of TEST64A >>>>>>>>>> >>>>>>>>>> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A >>>>>>>>>> YREGS >>>>>>>>>> * LOAD EP=CEETEST >>>>>>>>>> * LR R15,R0 >>>>>>>>>> * BASR R14,R15 >>>>>>>>>> CELQCALL opendata,(SYSADATA),WORKREG=10 >>>>>>>>>> XR R15,R15 >>>>>>>>>> CELQEPLG >>>>>>>>>> SYSADATA DC CL8'SYSADATA' >>>>>>>>>> * CEEPDDA opendata,SCOPE=IMPORT >>>>>>>>>> PARM1 DC A(COMMANDS) >>>>>>>>>> PARM2 DC A(FEEDBACK) >>>>>>>>>> >>>>>>>>>> Here is the link >>>>>>>>>> For TEST64A >>>>>>>>>> >>>>>>>>>> >> //***************************************************************** >>>>>>>>>> //* LINK EDIT THE PROGRAM >> * >>>>>>>>>> //*************************************************************** >>>>>>>>>> * >>>>>>>>>> * >>>>>>>>>> //STEP0200 EXEC PGM=IEWL,COND=(0,LT,STEP0100), >>>>>>>>>> // PARM='AMODE(64),LIST,MAP,XREF,CASE=MIXED,DYNAM=DLL' >>>>>>>>>> //SYSPRINT DD SYSOUT=* >>>>>>>>>> //SYSDEFSD DD SYSOUT=* >>>>>>>>>> //OBJ DD DSN=&&HEXOBJ,DISP=(OLD,PASS) >>>>>>>>>> //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 * >>>>>>>>>> IMPORT CODE64,'SYSADATA','opendata' >>>>>>>>>> INCLUDE OBJ(TEST64A) >>>>>>>>>> ENTRY TEST64A >>>>>>>>>> NAME TEST64A(R) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 84 * >>>>>>>>>> 85 >>>>>>>>>> >>>>>> ********************************************************************* >>>>>> * >>>>>>>>>> 86 * >>>>>>>>>> 00000000 00000000 000007B0 87 CEEWQPIP CSECT >> , >>>>>>>>>> 88 CEEWQPIP AMODE >>>>>> 64 >>>>>>>>>> 89 CEEWQPIP RMODE >>>>>> 31 >>>>>>>>>> 90 SYSSTATE >>>>>>>>>> AMODE64=YES >>>>>>>>>> 91+* THE >> VALUE >>>>>> OF >>>>>>>>>> SYSSTATE IS NOW SET TO ASCENV=P AMODE64=YES ARCHLX01-SYSSTATE >>>>>>>>>> + >> VL=2 >>>>>>>>>> OSREL=00000000 >>>>>>>>>> 00000000 010E 92 SAM64 >> , >>>>>>>>>> 93 * >>>>>>>>>> 94 * >>>>>>>>>> 95 * Standard >>>>>>> 64-bit >>>>>>>>>> entry linkage >>>>>>>>>> 96 * >>>>>>>>>> ----------------------------- >>>>>>>>>> 97 * >>>>>>>>>> 00000002 EBEC D008 0024 00000008 98 STMG >>>>>>>>>> R14,R12,SAVF4SAG64RS14-SAVF4SA(R13) Save caller regs >>>>>>>>>> 00000008 0DB0 99 BASR >>>>>>> R11,0 >>>>>>>>>> Set up basereg >>>>>>>>>> R:B 0000000A 100 USING >>>>>>> *,R11 >>>>>>>>>> Addressabliity >>>>>>>>>> 101 GETMAIN >>>>>>>>>> RU,LV=DSA_L Obtain DSA >>>>>>>>>> 0000000A 103+ DS 0H >>>>>>>>>> @P5C 01-GETMAIN >>>>>>>>>> 0000000A 104+IHB0002C DS >> 0H >>>>>>>>>> 01-GETMAIN >>>>>>>>>> 0000000A 5800 B36E 00000378 105+ L >>>>>>>>>> 0,=A(DSA_L) LOAD LENGTH >> 01-GETMAIN >>>>>>>>>> 0000000E 58F0 B372 0000037C 106+ L >>>>>>>>>> 15,=AL1(B'00000000',(0),(0),B'00000010') >> X01-GETMAIN >>>>>>>>>> + >>>>>>>>>> LOAD GETMAIN PARMS >>>>>>>>>> 00000012 1B11 107+ SR >> 1,1 >>>>>>>>>> ZERO RESERVED REG 1 01-GETMAIN >>>>>>>>>> 00000014 0A78 108+ SVC >> 120 >>>>>>>>>> ISSUE GETMAIN SVC 01-GETMAIN >>>>>>>>>> 00000016 E3D0 1080 0024 00000080 109 STG >>>>>>>>>> R13,SAVF4SAPREV-SAVF4SA(,R1) Set backchain >>>>>>>>>> i0000001C E310 D088 0024 00000088 110 STG >>>>>>>>>> R1,SAVF4SANEXT-SAVF4SA(,R13) Set fwd chain >>>>>>>>>> Sample AMODE64 PreInit DRIVER with service routines >>>>>>>>>> Page 5 >>>>>>>>>> Active Usings: CEEWQPIP+X'A',R11 >>>>>>>>>> Loc Object Code Addr1 Addr2 Stmt Source Statement >>>>>>>>>> HLASM R6.0 2019/10/28 20.02 >>>>>>>>>> 00000022 D203 D004 B376 00000004 00000380 111 MVC >>>>>>>>>> SAVF4SAID-SAVF4SA(R4,R13),=A(SAVF4SAID_VALUE) "F4SA" >>>>>>>>>> 00000028 B904 00D1 112 LGR >>>>>>>>>> R13,R1 Set up DSAreg >>>>>>>>>> R:D 00000000 113 USING >>>>>>>>>> DSA,R13 Addressability >>>>>>>>>> 114 * >>>>>>>>>> 115 * >>>>>>>>>> 116 * Issue >> LOAD >>>>>>> for >>>>>>>>>> CELQPIPI (will ABEND if LOAD fails) >>>>>>>>>> 117 * >>>>>>>>>> ----------------------- >>>>>>>>>> 118 * >>>>>>>>>> 119 WTO >>>>>>>>>> 'CEEWQPIP: LOADing CELQPIPI',ROUTCDE=11 >>>>>>>>>> 0000002C 121+ CNOP >> 0,4 >>>>>>>>>> 01-WTO >>>>>>>>>> 0000002C A715 0013 00000052 122+ BRAS >>>>>>>>>> 1,IHB0004A BRANCH AROUND MESSAGE @LCC 01-WTO >>>>>>>>>> 00000030 001E 123+ DC >>>>>>> AL2(30) >>>>>>>>>> TEXT LENGTH @YA17152 01-WTO >>>>>>>>>> 00000032 8000 124+ DC >>>>>>>>>> B'1000000000000000' MCSFLAGS 01-WTO >>>>>>>>>> 00000034 C3C5C5E6D8D7C9D7 125+ DC >>>>>>>>>> C'CEEWQPIP: LOADing CELQPIPI' X01-WTO >>>>>>>>>> 0000003C 7A40D3D6C1C48995 + >>>>>>>>>> MESSAGE TEXT @L6C >>>>>>>>>> 0000004E 0000 126+ DC >>>>>>>>>> B'0000000000000000' DESCRIPTOR CODES 01-WTO >>>>>>>>>> 00000050 0020 127+ DC >>>>>>>>>> B'0000000000100000' ROUTING CODES 01-WTO >>>>>>>>>> 00000052 128+IHB0004A DS 0H >>>>>>>>>> 01-WTO >>>>>>>>>> 00000052 0A23 129+ SVC 35 >>>>>>>>>> ISSUE SVC 35 @L6A 01-WTO >>>>>>>>>> 130 * >>>>>>>>>> 131 LOAD >>>>>>>>>> EP=CELQPIPI LOAD LE main module >>>>>>>>>> 00000054 133+ CNOP >> 0,4 >>>>>>>>>> @L2P 01-LOAD >>>>>>>>>> 00000054 A7F5 0006 00000060 134+ BRAS >>>>>>>>>> 15,LOAD2_0006 BRANCH AROUND CONSTANT(S) 01-LOAD >>>>>>>>>> 00000058 135+LD2_0006 DS 0H >>>>>>>>>> 01-LOAD >>>>>>>>>> 00000058 C3C5D3D8D7C9D7C9 136+LE2_0006 DC >>>>>>>>>> CL8'CELQPIPI' ENTRY POINT NAME 01-LOAD >>>>>>>>>> 00000060 137+LOAD2_0006 DS >> 0H >>>>>>>>>> 01-LOAD >>>>>>>>>> 00000060 4100 F000 00000000 138+ LA >>>>>>>>>> 0,LE2_0006-LD2_0006(,15) ADDR OF PARAMETER 01-LOAD >>>>>>>>>> 00000064 1B11 139+ SR >> 1,1 >>>>>>>>>> SHOW NO DCB PRESENT 01-LOAD >>>>>>>>>> 00000066 0A08 140+ SVC 8 >>>>>>>>>> 01-LOAD >>>>>>>>>> 00000068 E300 B366 0080 00000370 141 NG >>>>>>>>>> R0,=X'00000000FFFFFFFE' Clear low (AMODE64) bit >>>>>>>>>> 0000006E E300 D090 0024 00000090 142 STG >>>>>>>>>> R0,CELQPIPI_EP Save CELQPIPI E.P. Address >>>>>>>>>> 143 * >>>>>>>>>> 144 * >>>>>>>>>> 145 * Set up >>>>>>> Service >>>>>>>>>> Routine Vector and parm >>>>>>>>>> 146 * >>>>>>>>>> -------------------------------------- >>>>>>>>>> 147 * >>>>>>>>>> 00000074 D24F D0E0 B696 000000E0 000006A0 148 MVC >>>>>>>>>> SV_DYNAMIC,SV_STATIC Copy over into DSA >>>>>>>>>> 0000007A 41F0 D1E8 000001E8 149 LA >>>>>>>>>> R15,USER_AREA Point to 1000-byte user area >>>>>>>>>> 0000007E E3F0 D0E8 0024 000000E8 150 STG >>>>>>>>>> R15,SV_UWORD SV user word -> user area >>>>>>>>>> 00000084 41F0 D0E0 000000E0 151 LA >>>>>>>>>> R15,SV_DYNAMIC Address of modifiable SV >>>>>>>>>> 00000088 E3F0 D0A0 0024 000000A0 152 STG >>>>>>>>>> R15,SERVICE_RTNS Save as parm for INIT_MAIN >>>>>>>>>> 153 * >>>>>>>>>> 154 * >>>>>>>>>> 155 * Do >>>>>> CELQPIPI >>>>>>>>>> INIT_MAIN >>>>>>>>>> 156 * >>>>>>>>>> --------------------- >>>>>>>>>> 157 * >>>>>>>>>> 158 WTO >>>>>>>>>> 'CEEWQPIP: Doing CELQPIPI INIT_MAIN',ROUTCDE=11 >>>>>>>>>> 0000008E 0700 160+ CNOP >> 0,4 >>>>>>>>>> 01-WTO >>>>>>>>>> 00000090 A715 0017 000000BE 161+ BRAS >>>>>>>>>> 1,IHB0008A BRANCH AROUND MESSAGE @LCC 01-WTO >>>>>>>>>> 00000094 0026 162+ DC >>>>>>> AL2(38) >>>>>>>>>> TEXT LENGTH @YA17152 01-WTO >>>>>>>>>> 00000096 8000 163+ DC >>>>>>>>>> B'1000000000000000' MCSFLAGS 01-WTO >>>>>>>>>> 00000098 C3C5C5E6D8D7C9D7 164+ DC >>>>>>>>>> C'CEEWQPIP: Doing CELQPIPI INIT_MAIN' X01-WTO >>>>>>>>>> 000000A0 7A40C49689958740 + >>>>>>>>>> MESSAGE TEXT @L6C >>>>>>>>>> 000000BA 0000 165+ DC >>>>>>>>>> B'0000000000000000' DESCRIPTOR CODES 01-WTO >>>>>>>>>> i000000BC 0020 166+ DC >>>>>>>>>> B'0000000000100000' ROUTING CODES 01-WTO >>>>>>>>>> Sample AMODE64 PreInit DRIVER with service routines >>>>>>>>>> Page 6 >>>>>>>>>> Active Usings: CEEWQPIP+X'A',R11 DSA,R13 >>>>>>>>>> Loc Object Code Addr1 Addr2 Stmt Source Statement >>>>>>>>>> HLASM R6.0 2019/10/28 20.02 >>>>>>>>>> 000000BE 167+IHB0008A DS 0H >>>>>>>>>> 01-WTO >>>>>>>>>> 000000BE 0A23 168+ SVC 35 >>>>>>>>>> ISSUE SVC 35 @L6A 01-WTO >>>>>>>>>> 169 * >>>>>>>>>> 000000C0 B982 0000 170 XGR >>>>>> R0,R0 >>>>>>>>>> 000000C4 E3F0 D090 0004 00000090 171 LG >>>>>>>>>> R15,CELQPIPI_EP Address of CELQPIPI E.P. >>>>>>>>>> 172 * >>>>>>>>>> 174 CALL >>>>>> (15), >>>>>>>>>> X >>>>>>>>>> >>>>>>>>>> (INIT_MAIN, CELQPIPI INIT_MAIN request X >>>>>>>>>> >>>>>>>>>> CEEXPTBL_ADDR, Address of CELQPIPI table X >>>>>>>>>> >>>>>>>>>> SERVICE_RTNS, Address of service rtn vector X >>>>>>>>>> >>>>>>> TOKEN), >>>>>>>>>> Token from INIT_MAIN X >>>>>>>>>> >>>>>>>>>> MF=(E,CALL_PL) >>>>>>>>>> 000000CA 176+ DS 0H >>>>>>>>>> 01-CALL >>>>>>>>>> 000000CA 4110 D138 00000138 181+ LA >>>>>>>>>> 1,CALL_PL LOAD PARAMETER REG 1 >> 03-IHBINNRR >>>>>>>>>> 000000CE 4100 B386 00000390 182+ LA >>>>>>>>>> 0,INIT_MAIN PICKUP PARAMETER >> 02-IHBOPLTX >>>>>>>>>> 000000D2 E300 1000 0024 00000000 183+ STG >>>>>>> 0,0(0,1) >>>>>>>>>> STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>>>>>> 000000D8 4100 B57E 00000588 184+ LA >>>>>>>>>> 0,CEEXPTBL_ADDR PICKUP PARAMETER >> 02-IHBOPLTX >>>>>>>>>> 000000DC E300 1008 0024 00000008 185+ STG >>>>>>> 0,8(0,1) >>>>>>>>>> STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>>>>>> 000000E2 4100 D0A0 000000A0 186+ LA >>>>>>>>>> 0,SERVICE_RTNS PICKUP PARAMETER >> 02-IHBOPLTX >>>>>>>>>> 000000E6 E300 1010 0024 00000010 187+ STG >>>>>>>>>> 0,16(0,1) STORE INTO PARAM. LIST >> 02-IHBOPLTX >>>>>>>>>> 000000EC 4100 D098 00000098 188+ LA >>>>>>> 0,TOKEN >>>>>>>>>> PICKUP PARAMETER 02-IHBOPLTX >>>>>>>>>> 000000F0 E300 1018 0024 00000018 189+ STG >>>>>>>>>> 0,24(0,1) STORE INTO PARAM. LIST >> 02-IHBOPLTX >>>>>>>>>> 000000F6 05EF 190+ BALR >>>>>> 14,15 >>>>>>>>>> BRANCH TO ENTRY POINT 01-CALL >>>>>>>>>> 191 * >>>>>>>>>> 192 * >>>>>>>>>> 193 * Check >>>>>>> results >>>>>>>>>> of INIT_MAIN >>>>>>>>>> 194 * >>>>>>>>>> 000000F8 B902 002F 195 LTGR >>>>>>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >>>>>>>>>> Behalf Of Jon Perryman >>>>>>>>>> Sent: Monday, October 28, 2019 8:38 PM >>>>>>>>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>>>>>>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>>>>>>>> >>>>>>>>>> The CALL macro supports 32 and 64 bit parm addresses. I believe >>>>>>>>>> it defaults to 32 bit and the SYSSTATE macro is used to change it. >>>>>>>>>> Does CELQPITY require 64 bit parm list? If so, make sure you have >>>>>>>>>> SYSSTATE prior to the call. Also make sure SYSSTATE is before the >>>>>> CALL MF=L. >>>>>>>>>> I've never used TEST so I'm not familiar with the specifics. Your >>>>>>>>>> listing below seems to show it running the program with AMODE=31 >>>>>>>>>> and the L commands only display fullwords. Did you switch to >>>>>>>>>> AMODE64 >>>>>>> before calling CELQPITY? >>>>>>>>>> >>>>>>>>>> Jon. >>>>>>>>>> >>>>>>>>>> On Monday, October 28, 2019, 05:08:58 PM PDT, Joseph Reichman >>>>>>>>>> < reichman...@gmail.com <mailto:reichman...@gmail.com> > wrote: >>>>>>>>>> >>>>>>>>>> Just tried it with the service_rtns parm exactly as it was in the >>>>>>>>>> sample with the exception That the CELQPITY points to my 64 bit >>>>>>>>>> assembler program TEST64A program and do X'20' DECIMAL 32 >>>>>>>>>> >>>>>>>>>> CALL (15), >>>>>>>>>> X >>>>>>>>>> (INIT_MAIN, CELQPIPI INIT_MAIN request >> X >>>>>>>>>> CEEXPTBL_ADDR, Address of CELQPIPI table >> X >>>>>>>>>> SERVICE_RTNS, Address of service rtn vector >>>>>> X >>>>>>>>>> TOKEN), Token from INIT_MAIN >>>>>>>>>> X >>>>>>>>>> MF=(E,CALL_PL) >>>>>>>>>> >>>>>>>>>> I traced the CEEWQLOAD it loaded TEST64A which had bit 63 as a >>>>>>>>>> one After the load >>>>>>>>>> >>>>>>>>>> IKJ57382I ENTRY POINT AT 1F790140 AMODE=31 TEST L +F6 >>>>>>>>>> +F6 05EFB902 TEST AT +F6 TEST AT +F8 TEST GO >>>>>>>>>> CEEWQPIP: LOADing CELQPIPI >>>>>>>>>> CEEWQPIP: Doing CELQPIPI INIT_MAIN IKJ57024I AT +F6 TEST GO >>>>>>>>>> CEEWQLOD: Called to LOAD "TEST64A " IKJ57024I AT +F8 TEST L 15R >>>>>>>>>> 15R >>>>>>>>>> 00000020 >>>>>>>>>> >>>>>>>>>> ----------------------------------------------------------------- >>>> This message and any attachments are intended only for the use of the >> addressee and may contain information that is privileged and confidential. >> If the reader of the message is not the intended recipient or an authorized >> representative of the intended recipient, you are hereby notified that any >> dissemination of this communication is strictly prohibited. If you have >> received this communication in error, please notify us immediately by >> e-mail and delete the message and any attachments from your system. >>>> >>>> >>>> ---------------------------------------------------------------------- >>>> 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 >> > -- > Scott Ford > IDMWORKS > z/OS Development > > ---------------------------------------------------------------------- > 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