> On Mon, 4 Apr 2022 at 15:45, João Reginato <jb.regin...@gmail.com> wrote: > > > > Thank you all for the comments. > > What I'm trying to do is simply to map a dynamic data area (WKINFO) using > a static one (LKINFO). > > > > Any references to data after LKINFO will be in fact referencing the dynamic > area after WKINFO instead. > I'm still convinced that your USING operands are backwards. > > You have USING LKINFO,WKINFO > but would it make any sense to write > USING R2,WKINFO ? What you have done is to tell the assembelr how to > address symbols starting at LKINFO using the addressibility it already > has to WKINFO via R13. This is not fundamentally wrong, but I'm sure > it's not what you want to accomplish.
I want to repeat the same area in another place without rewrite all the fields individually. And don't spend a register for USING. > > I wonder why "USING area,map" accepts a data area as "map" but the > DROP only accepts a register. > You want "USING map,area". Same as you'd write USING CVT,R3 or the > like. Yes, you *can* use mappings that are not in a DSECT, but again, > I'm pretty sure it's not what you want to do. > Why can't you DROP with the name from the second operand of USING? > Because there's potential ambiguity - you can have multiple USINGs > covering the same area. Which one do you wnat to drop? I've tried "DROP LKINFO" and "DROP WKINFO". Both gets "** ASMA029E Incorrect register specification". I've just discovered that if I use "LKUSING USING LKINFO,WKINFO" I can use "DROP LKUSING" instead. It solved all the references after the DROP as I wanted. > > And it worked fine until that point inside the PATCH_AREA where the base > register was suddenly changed from 8 to 13. > > I have many other similar samples working properly as I expected. But they > are less complexes and smaller too. > > The error is being caused because the corresponding DROP is missing and I > don't know how to drop it. > I don't think this is your problem. Yes it is. Even the "LY R15,=V(FDRCOMP)" is getting a wrong address and I wonder what will be loaded here. 0017CE E320 D07C 0058 02B10 3468+ LY R2,=V(FDRCOMPR) It is using D07C instead of R8 as the base register. > Regardless, you can always use a labelled USING (which can also be > dependent or not) just so you can unambiguously DROP it. Now I know how. > > I think the simplest solution is using a register instead of a data area to > > map > it. > No - just fix your dependent USING. Now I know how. > > And also why LKINFO is being shown as a negative offset in > "LKINFO(X'FFFFE56C'),R13+X'2A94'" once it is defined inside the main CSECT > addressed by R8 and not in the DSECT addressed by R13. > Because you told the assembler it could address LKINFO using the > existing addressibility to WKINFO via R13. I had a wrong concept for this kind of USING. > > It should be R8+X'2A94'. > > And again why X'FFFFE56C' (the same as -X'1A94')? > > I don't know if I was clear enough. > If you would make your *entire* listing available, not skipping over > the parts you think are unimportant, and including all macro > expansions and no PRINT OFFs or NOGENs, I'm sure people will look > harder at it. Perhaps make it available on a website or something > rather than inline and wrapped. There is no need anymore. But how? Using attachments? There is a limit of 250 lines in this list. > Tony H. Thank you Tony Regards João