> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
> Behalf Of Leslie Wagner
> Sent: Monday, May 04, 2009 10:09 AM
> To: [email protected]
> Subject: Re: Assembler and ECBL conversion issues
> 
> I am the original poster of this on bit.listserv.ibm-main. PJ Farley
ccd
> it here - thanks Pete!

You're quite welcome.  Glad to help.

> These assembler modules all do I/O against VSAM and QSAM files. Open,
> close, gencb, modcb, acb macros mostly that I've seen so far. I'm
still
> going thru them.
> 
> Some of them were upgraded from older DOS assembler code 37 years ago
or
> so. I think we want to take the path of least resistance here, but
also
> wanted to know just what we might be losing by taking that path.

Well, if they're mostly I/O subs you may want to replace them
eventually, but for the "least resistance" path you can just leave them
alone for now and try the "helper module" route I suggested in my first
reply.

As to what you lose, you can safely assume that the Enterprise COBOL
code will occupy more storage than the older COBOL II code, if for no
other reason than that Enterprise COBOL uses re-entrant working-storage
where VALUE clauses mean that variables are initialized with actual code
on first entry rather than just meaning data is compiled into the object
code.  So keeping the new Enterprise code below the line will result in
even less available storage than the current COBOL II code has.

As I said earlier, a generic helper module that could call any of these
24-bit modules (LE-enabled assembler or even a COBOL version) would give
you breathing room if you can nail down all the possible parameters.
Then you can use DATA(31) for all your Enterprise COBOL recompiles and
get at least some of the advantages of the conversion right away.

BTW, using DATA(24) does not require static links.  The simple change to
dynamic call instead of static can be combined with DATA(24), so that
your new COBOL code resides above the line even if your data is below.
OTOH, static links mean lower CALL overhead, so CPU usage may well
increase a bit for dynamically-invoked subroutines.  If you go the
helper module route, that module should be linked AMODE(31)/RMODE(ANY)
(and DATA(24) if COBOL) and use dynamic CALL to the assembler
subroutines.

On the third hand, you really do want to try to avoid the
DATA(24)/static link solution if at all possible.  IMHO it's the worst
of all possible worlds.  If you're already managing re-links when a
subroutine changes (or if they never do change), I guess I can see a
management decision to avoid the work, but only if there is a follow-on
plan (with an allocated budget!) to finish the upgrade to get to a full
DATA(31) environment in reasonably-sized phases.

Feel free to ask more questions as they come up.

Regards,

Peter
This message and any attachments are intended only for the use of the addressee 
and
may contain information that is privileged and confidential. If the reader of 
the 
message is not the intended recipient or an authorized representative of the
intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail and delete the message and any
attachments from your system.


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to