I have an assembler routine that gets called by 64-bit C++. The assembler 
routine uses CELQPRLG and CELQEPLG and calls DSNALI. The C++ function prototype 
has a variable number of arguments, the first being the number of parameters 
that follow in the argument list. The C++ program passes the count of 7 
followed by 7 31-bit pointers. These were dumped prior to the call. I forced an 
S0C3 at entry to the assembler routine. R01 contains a valid 64-bit address. It 
points to a doubleword containing 7. But the 7 31-bit addresses do NOT follow 
the value of 7. They are at +A8 from r01. I want to move the pointers into 
31-bit memory and call DSNALI to do a CONNECT (Hence a prior post about DB2 
manuals). I can't figure out what I've done wrong. There is precious little doc 
on this and it's in the LE bookshelf, LE Programming Guide for 64-bit Virtual 
Addressing Mode. Is there other doc somewhere else ? I've looked but can't find 
anything.

R01 points has 50_082FEBF8 and the 7 addresses are at 82FECA0.

 _82FEBF8                         00000000   00000007   !         ........ !
 _82FEC00   00000000   2B0DBB88   00000050   29E54920   ! .......h...&.V.. !
 _82FEC10   00000050   082FED20   00000000   00000000   ! ...&............ !
 _82FEC20   00000000   297ED1C6   00000050   29E55330   ! .....=JF...&.V.. !
 _82FEC30   00000000   2B1D1B60   00000000   2B0DB74A   ! .......-.......Ä !
 _82FEC40   00000000   2B0DBB88   00000000   281B72A0   ! .......h........ !
 _82FEC50   00000000   2B0DCD88   00000050   29D29640   ! .......h...&.Ko  !
 _82FEC60   00000050   29E2EB60   00000000   25218CF0   ! ...&.S.-.......0 !
 _82FEC70   00000000   2B14D808   00000000   2B1D152A   ! ......Q......... !
 _82FEC80   00000000   2B0DBB88   00000000   281B72A0   ! .......h........ !
 _82FEC90   00000000   2B0DCD88   00000050   29D29640   ! .......h...&.Ko  !
 _82FECA0   00000000   297ED0A2   00000000   297ED198   ! .....=üs.....=Jq !
 _82FECB0   00000000   297ED180   00000000   297ED184   ! .....=J......=Jd !
 _82FECC0   00000000   297ED188   00000000   297ED190   ! .....=Jh.....=J. !
 _82FECD0   00000000   297ED194   00000000   00000000   ! .....=Jm........ !

Registers at abend are :

    General purpose register values
       0-1  00000000_297ED194  00000050_082FEBF8
       2-3  00000000_297ED0A2  00000000_297ED198
       4-5  00000050_082FD940  00000000_00000000
       6-7  00000000_2B14B778  00000000_2B1D9088
       8-9  00000000_2B1D971E  00000000_281B72A0
      10-11 00000000_2B1D9B58  00000050_29E55330
      12-13 00000000_297ED188  00000000_297ED184
      14-15 00000000_297ED180  00000000_24D50010




Thanks in advance, Pierre.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to