I recently encountered a gotcha. While doing something similar to what you are doing, I dynamically changed the DCBEDCB field before open with the appropriate DCBE address. I thought that would do the trick for the DCBE.

But as it turns out, the DCBE= parm on the DCB is pretty much required, even if you use a dummy address. The invocation of that parm will set a couple of bits in the DCB that are required for processing. Without them, the system seems to ignore your DCBE address, and allocate the buffers BTL, and of course fail to free them after you close the file. So if you intend to use a DCBE address in your DCB, the parm must be coded in the DCB even if you have to use a dummy address at assembly time.

-Mark Vollmer

Charles Mills wrote:

Okay, I admit it, this is kind of an embarrassingly newbie-ish post for
someone who has been writing assembler for 36 years. My only excuse is
that having sold my old company lock, stock, and barrel, and now working
solo, I have no old reference code to fall back on.

I've got some assembler subroutines (non-reentrant) in which I rather
lazily embedded QSAM and BPAM macros. That of course limits the code to
RMODE=24. I would like to move the necessary control blocks to AMODE=24
STORAGE and let the code be RMODE ANY31. (The code currently runs AMODE
ANY with no problems.)

Question: is there any reference that provides a succinct statement of
the steps necessary? (If not, why not, but that's a different topic.)
Yes, I know each macro is separately documented in the two DFSMS
manuals, but I mean, is there any overview of the conversion steps
necessary.

If there isn't a manual, I would welcome this esteemed group's input. I
need to move the DCB to AMODE=24 STORAGE. I need to point each DCB to
its own DCBE, which can be above the line, and I need to move the
appropriate EODAD= and so forth operands to the DCBE. What else? I don't
need a tutorial on 24-bit adcons or anything, I'm very familiar with the
theoretical concepts and the usage of the macros in general, just what
else specifically do I need to do to get from RMODE 24 code to RMODE
ANY31? I'm familiar with DSECTs and copying model control blocks from
CSECTs to STORAGE areas. What are the gotchas? The code in question has
both DCB abend and SYNAD exits.

Thanks!

Charles Mills



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


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