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.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
>> 
>> ----------------------------------------------------------------------
>> 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

Reply via email to