I'm not clear on what you (Joseph Reichman) are attempting to
accomplish.  If you are going to produce a Rexx program that does
something with symbols which appear in some form of an assembler
data structure, then you could do something like the example shown
below and (as others have suggested) subsequently process the
SYSADATA file with the Rexx program.


 D-Loc   Object Code      Addr1    Addr2    Stmt   Source Statement
00000000                00000000 00000046      1 TEST     DSECT ,
00000000 4040404040404040                      2 X1       DC 7CL10' '
00000046                                       3 X2       DC 0CL20' '
                        00000000 00000046      4 GROUP1   EQU X1,*-X1,C'C'
                                               5          End   ,

                                                Symbol Cross Reference
Symbol    Length    Value     Id   Type Asm  Program   Defn References
GROUP1        70 00000000 FFFFFFFF    C                   4
TEST           1 00000000 FFFFFFFF    J                   1
X1            10 00000000 FFFFFFFF    C  C                2  4
X2            20 00000046 FFFFFFFF    C  C                3

                                                Dsect Cross Reference
Dsect      Length      Id      Defn  Con  Member
TEST      00000046  FFFFFFFF      1       PRIMARY INPUT


Here is an extraction from the High Level Assembler Language
Reference (V1.6) regarding length attributes of symbols when the
"Duplication Factor" is zero:

*  A duplication factor of zero is permitted, except for literals,
*  with the following results:
*
*  - No value is assembled.
*
*  - Alignment is forced according to the type of constant
*    specified, if no length attribute is present.
*
*  - The length attribute of the symbol naming the constant is
*    established according to the implicitly or explicitly specified
*    length.

For reasons lost in antiquity, an explicitly specified Length value
must be positive, e.g., CL0' ' is invalid.

Note that:
 - The Length Attribute of symbol X1 is 10 (decimal) even though it
   occupies 70 bytes.

 - The Length Attribute of symbol X2 is 20 (decimal) even though it
   occupies zero bytes.

 - The GROUP1 equate gets you the origin location and proper length
   of a collection of items.

There are all kinds of quirks and inconsistencies in how the assembler
treats the length attributes of symbols.  For example, the length
attribute of a DSECT (e.g., L'TEST in this coding example) is always 1
even though the proper length is reflected in the DSECT Cross Reference.

Reply via email to