Hi guys
Take a look in these pieces of code compiled in z/OS V2R4: (use any
proportional font like courier for better understanding)

000BCC D2A5 D100 8B94 00100 02B94  2107          MVC
WKINFO(LINFO/2),LKINFO  INITIALIZE DYNALLOC 
000BD2 D2A5 D1A6 8C3A 001A6 02C3A  2108          MVC
WKINFO+(LINFO/2)(LINFO/2),LKINFO+(LINFO/2) 
               D 100  02B94 00100  2109          USING LKINFO,WKINFO 
** ASMA303W Multiple address resolutions may result from this USING and the
USING on statement number 781 
000BD8 4100 D104            02B98  2110          LA    R0,LKINFO+4
RB POINTER 
000BDC 5000 D100            02B94  2111          ST    R0,LKINFO
SAVE IT 
000BE0 9680 D100      02B94        2112          OI    LKINFO,X'80'
LAST RB 
000BE4 4100 D118            02BAC  2113          LA    R0,LKTXTIFC
1ST TEXT UNIT 
000BE8 5000 D10C            02BA0  2114          ST    R0,LKATXTU
SAVE IT 
000BEC 4100 D128            02BBC  2115          LA    R0,LKDDNP
USE THIS DDNAME 
000BF0 5000 D118            02BAC  2116          ST    R0,LKTXTIFC
SAVE IT 
000BF4 4100 D13A            02BCE  2117          LA    R0,LKDSGP
RETURN DSORG
000BF8 5000 D11C            02BB0  2118          ST    R0,LKTXTIFC+4
SAVE IT 
000BFC 4100 D146            02BDA  2119          LA    R0,LKDSNP
RETURN DSNAME 
000C00 5000 D120            02BB4  2120          ST    R0,LKTXTIFC+8
SAVE IT 
000C04 9680 D120      02BB4        2121          OI    LKTXTIFC+8,X'80'
LAST TEXT UNIT
...
000C20 4110 D100            02B94  2129 S3DYNIOK LA    R1,LKINFO
POINTS TO PARAMETERS 
                                   2130          DYNALLOC ,
RETURN DSORG & TRUE DSNAME
                                   2131+*        MACDATE Y-2 73082 
000C24 0A63                        2132+         SVC   99 CALL DYNAMIC
ALLOCATION
...
Up to here everything appears to be ok. But see below:
...
0017FA E3F0 D07C 0058       02B10  3486+         LY    R15,=V(FDRCOMPR)
LOAD EPA 
...
002A8E                             5341+PATCH_AREA DS  0H
PATCH AREA 
002A8E 8A8E8A908A92D000            5342+         DC    64S(*)
PATCH AREA 
002A96 D002D004D006D008 ==> THE LOCATION COUNTER WAS CHANGED SUDDENLY
!!!!!!!! 
002A9E D00AD00CD00ED010 
002AA6 D012D014D016D018
002AAE D01AD01CD01ED020 
002AB6 D022D024D026D028 
002ABE D02AD02CD02ED030
002AC6 D032D034D036D038 
002ACE D03AD03CD03ED040 
002AD6 D042D044D046D048 
002ADE D04AD04CD04ED050 
002AE6 D052D054D056D058 
002AEE D05AD05CD05ED060
002AF6 D062D064D066D068 
002AFE D06AD06CD06ED070 
002B06 D072D074D076D078
002B10                             5343+         LTORG 
002B10 00000000                    5344                =V(FDRCOMPR) 
002B14 00000000                    5345                =V(FDRDCOMP) 
...
Page   83 
  Active Usings: TLTCVAF,R2  IHADCB,R3  TASKPARM,R10  FDRIOC,R11,R9,R8
QCTDCB,R12  JFCB(X'FB4'),R12+X'4C' 
  DECB(X'FF0'),R12+X'10'  WKAREA,R13  LKINFO(X'FFFFE56C'),R13+X'2A94'
DCBE,R15 
  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement
HLASM R6.0  2022/04/01 19.40
...
002B94 80002B98                   29585 LKINFO   DC    A(*+X'80000004')
RB POINTER 
002B98 1407                       29586          DC
AL1(LKTXTIFC-*,S99VRBIN) LENGTH, INFORMATION VERB 
002B9A 0600                       29587          DC
AL1(S99MSGL0+S99GDGNT,0) FLAGS1 
002B9C 0000                       29588 LKERC    DC    AL2(0)
ERROR CODE 
002B9E 0000                       29589 LKIRC    DC    AL2(0)
INFO CODE 
002BA0 00002BAC00000000           29590 LKATXTU  DC    A(LKTXTIFC,0)
TEXT UNIT LIST PTR, RBX 
002BA8 00000000                   29591          DC    AL1(0,0,0,0)
FLAGS2
002BAC 00002BBC00002BCE           29592 LKTXTIFC DC
A(LKDDNP,LKDSGP,LKDSNP+X'80000000') 
002BB4 80002BDA 
002BB8 C4C4D5D4                   29593          DC    C'DDNM' 
002BBC 000100010008               29594 LKDDNP   DC    AL2(DINDDNAM,1,8)
GET INFO FROM 
002BC2 4040404040404040           29595 LKDDN    DC    CL8' '
DDNAME 
002BCA C4E2D6D9                   29596          DC    C'DSOR' 
002BCE 000A00010002               29597 LKDSGP   DC    AL2(DINRTORG,1,2)
GET INFO FROM 
002BD4 0000                       29598 LKDSG    DC    AL2(0)
DSORG 
002BD6 C4E2D5D4                   29599          DC    C'DSNM' 
002BDA 0005000100FF               29600 LKDSNP   DC
AL2(DINRTDSN,1,L'TKPATHN) GET INFO FROM 
002BE0 0000000000000000           29601 LKDSN    DC    XL(L'TKPATHN)'00'
DSNAME/PATH 
002CE0                            29602          DS    0H 
                      0014C       29603 LINFO    EQU   *-LKINFO
LENGTH
                                  29604
*---------------------------------------------
                                  29605 *-       DYNAMIC AREA
                                  29606
*---------------------------------------------
000000                00000 0024C 29607 WKAREA   DSECT 
...
000100                            29662          DS    0F 
000100                            29663 WKINFO   DS    CL(LINFO)
...
                                                 END

Take a look at the location counter following “PATCH_AREA” label and the
USING list in the header lines above.
This is a very large source program with 3 base registers: (R11, R9 and R8).

My questions are:
1.      Why “LKINFO(X'FFFFE56C'),R13+X'2A94'” does show a negative location?
2.      About “0017FA E3F0 D07C 0058       02B10  3486+         LY
R15,=V(FDRCOMPR)”:
That should be “0017FA E3F0 8B10 0058”. Am I right?
3.      Also the patch area is wrong. Why?
4.      Where am I going wrong?

Any tips will be helpful.

TIA
João

Reply via email to