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

Reply via email to