On 12/20/2012 12:36 PM, [email protected] wrote:
I have a program that loads CSRSI,  It obtains Storage for the response area, 
and invokes CSRSI via a Call

I wanted to replace the STORAGE MACRO with IAVR64
So I believe the program could be re-wriiten as follows:
*
          LOAD  EP=CSRSI                  Load CSRSI Function
          ST    R0,CSRSI@                 Save Address Of CSRSI Function
*
          IARV64 REQUEST=GETSTOR,SEGMENT==AD(MAXSIZE),
              ORIGIN=ORIGIN,MF=E,IARV64,COMPLETE)                               
          *                                                                     
               LG    R0,ORIGIN               Get Starting Address Of Memory 
Object
          STG   R0,CSRSI_INFO@          Store Mem-Obj Address for CSRSI

          SYSSTATE AMODE64=YES,ARCHLVL=2

          L     R15,CSRSI@                       Load R15 with CSRSI Address
    CALL  (R15),(CSRSI_TYPE,CSRSI_INFOLEN,CSRSI_INFO@,CSRSI_RC)
          LTR   R15,R15                     Examine Return code
          BNZ   BAD_CSRSI                   No, Exit

Multiple issues here. If this service *could* be called in 64-bit mode, then you
would probably need to use LGF with LINKINST=BASSM to invoke it and probably
using PLIST8 for the parm list. But, that is all moot because the service
supports 24- and 31-bit addresses only.

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

Reply via email to