In article <5828839252973544.wa.prf51videotron...@listserv.ua.edu> you wrote:
> I have 64-bit C code that attempts to fetch() IGGCSI00.
> I've used pragma linkage on IGGCSI00 but got nowhere.
> I am getting the following:
> EDC5256S An AMODE64 application is attempting to fetch() an AMODE31 
> executable. (errno2=0xC4070068)
> The C program was compiled with :
> langlvl(LIBEXT),ARCH(5),TUNE(7),GONUMBER,FLAG(I),XPLINK(STOREARGS),EXPORTALL,SPILL(448),LP64,GOFF
> Reading the doc on fetch() and XPLINK in the C/C++ and LE bookshleves doesn't 
> shed nay light on this.
> I think I am forced to write a64-bit assembler program that then calls 
> IGGCSI00 with parameters in 31-bit memory.
> Any suggestions ?
> Thanks in advance, Pierre.

You can call any 31-bit assembler API from a 64-bit C program, but you
have to jump through the hoops. Move all the parms (and anything the parms 
point to) below the bar and then SAM31/BASR/SAM64. If the API expects
R13 to point to a save area, then you need to set that up too. You won't
be using XPLINK parms, so setup the R1 parm area as well. Make sure to
save and restore all the caller registers.  

-- 
Don Poitras - SAS Development  -  SAS Institute Inc. - SAS Campus Drive
sas...@sas.com           (919) 531-5637                Cary, NC 27513

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