In article <8873109401385730.wa.m42tomibmmainyahoo....@listserv.ua.edu> you wrote: > On Tue, 18 Dec 2018 12:24:38 -0600, Pierre Fichaud 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. > I think you will need to write a small AMODE(64) assembler program that will > either LOAD, CALL, and DELETE IGGCSI00, or LINK to IGGCSI00. It isn't too > difficult. Some things to remember: > o The save area that XPLINK-64 provides will be above the bar. If that > behavior can be modified, I don't know how. > o Use F4SA format to save the registers on entry. LE will pass you a 144-byte > save area. > o GETMAIN storage for a 144-byte save area plus whatever other storage you > need for passing parameters. > o Save the 8-byte address of the save area you were passed in offset 128 > (X'80') of the new save area. > o Mark the new save area with "F4SA" in offset 4. > o Copy your parameters to your below the bar storage. > o SAM31 to go to AMODE(31) before making the call. > o If necessary, copy results to where your C program can find them. > o SAM64 before trying to restore registers. > -- > Tom Marchant The XPLINK asm macros will take care of all that stack bookkeeping. See doc on EDCXPRLG and EDCXEPLG. -- 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