[top posting]

Yikes! And I thought Colorado was the wild, wooly west. But noooo!
You win.


On 3/31/2012 5:45 AM, Bernd Oppolzer wrote:
Furthermore, you can call non-LE programs from LE programs and later
call LE programs from these non-LE programs, if you do the following:

- propagate R12 to the lower LE program

- take care of the values in the locations after offset 72 in the savearea (NAB
etc.);
if you pass these values correctly to the lower save area, the lower LE program
will
pick up the LE areas of the higher save area.

This is working for us, although I'm not quite sure, if it is recommended by 
IBM.
But we did it this way, because otherwise we would have to change some
several thousand ASSEMBLER modules (making them LE compliant). By
doing it this way, we only had to change two interface modules which support the
control transfer between dynamically loaded modules. These interface modules
were in place since the 1970s and only had to be extended to support LE.

We were able to support DLLs, too, by using these interface modules. If the
module to be called is a DLL, the interface issues the CEEFETCH, which it
does not, if the module is a "normal" load module. In the mid 1980s, the 
interfaces
did the necessary AMODE switch etc., when we migrated to MVS-XA.

We always have to pay about 1 percent of the overall CPU which is spended in
the interfaces, but this is payed back by the flexibility we have when we have
system changes, for example new compilers, new systems or migration to LE,
for example. Such things can almost always be handled in the interfaces. And:
the interfaces support the multi-language approach (at the moment: ASSEMBLER,
PL/1 and C).

Another goodie: the interfaces are perfect for setting up tests and for CPU
measurements etc. (special versions of the interfaces, which produce
accounting data, for example).

Kind regards

Bernd



Am 30.03.2012 20:22, schrieb Steve Comstock:
On 3/30/2012 12:13 PM, Tony Harminc wrote:
On 30 March 2012 13:55, Steve Comstock<st...@trainersfriend.com> wrote:
[...]
I would definitely look at CEEPIPI; however, this involves non-LE Assembler
invoking a routine to set up one or more LE environments then running either
a main or a subroutine under those environments. It's not clear if that kind
of structure works for what you are trying to do.

Is it not generally the case that LE assembler can make itself non-LE
for purposes of calling something, just by not passing the appropriate
value in R12?

Tony H.

Whoa! That's news to me!!

I don't think so.


R12 points to the Common Anchor Area; being LE-conforming
means, among other things, that an ESTAE (and usually an
ESPIE) is established; a heap and a stack have been acquired,
and other infrastructure put into place.


That being said, LE Assembler can call non-LE programs (usually
Assembler themselves) with no problem (well, there are a few
sticky situations), with no need to change R12 contents.





----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN



--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-355-2752
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment

* Try our tool for calculating your Return On Investment
    for training dollars at
  http://www.trainersfriend.com/ROI/roi.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

Reply via email to