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