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.v2r1.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 > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send email > to lists...@listserv.ua.edu <mailto: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