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