Paul, Thank you for pointing out the very illuminating web page. It states that AD constants of 2-8 bytes are supported, so I changed the A constants to ADs. As shown below, z390 still doesn't recognize 5-, 6-, or 7-byte ADs, and even though the listing shows the correct length of 2, 3, 4, and 8-bytes in the RLD entries, the actual object code doesn't properly indicate an 8-byte relocation.
Keven, Having retired 2¾ years ago, I have no access to a mainframe, and I'm just noodling around at home with an emulator. So, I can't compare what HLASM produces, but I'm confident that it gets it right. The z390 listing (with AD constants) is as follows; the interpreted object code follows thereafter. 19:55:42 rldnfg2 MZ390 START USING z390 V1.5.06 ON J2SE 14.0.1 07/02/20 AZ390I Copyright 2011 Automated Software Tools Corporation AZ390I z390 is licensed under GNU General Public License AZ390I program = C:\Users\Dan\Documents\IBM\Assembler\rldnfg2 AZ390I options = sysmac(C:\PROGRA~2\AUTOMA~1\z390\mac+.) syscpy(C:\PROGRA~2\AUTOMA~1\z390\mac+.) External Symbol Definitions ESD=0001 LOC=00000000 LEN=00000028 TYPE=CST NAME=RLDNFG Assembler Listing 000000 (1/1)1 RLDNFG CSECT 000000 1C (1/2)2 A DC ADL1(H) 000001 0015 (1/3)3 B DC ADL2(G) 000003 00000F (1/4)4 C DC ADL3(F) 000006 0000000A (1/5)5 D DC ADL4(E) 00000A 0000000006 (1/6)6 E DC ADL5(D) 00000F 000000000003 (1/7)7 F DC ADL6(C) 000015 00000000000001 (1/8)8 G DC ADL7(B) 00001C 0000000000000000 (1/9)9 H DC ADL8(A) 000024 (1/10)10 END Relocation Definitions ESD=0001 LOC=00000001 LEN=2 SIGN=+ XESD=0001 ESD=0001 LOC=00000003 LEN=3 SIGN=+ XESD=0001 ESD=0001 LOC=00000006 LEN=4 SIGN=+ XESD=0001 ESD=0001 LOC=0000001C LEN=8 SIGN=+ XESD=0001 Symbol Table Listing SYM=A LOC=00000000 LEN=00000001 ESD=0001 TYPE=REL XREF=2 9 SYM=B LOC=00000001 LEN=00000002 ESD=0001 TYPE=REL XREF=3 8 SYM=C LOC=00000003 LEN=00000003 ESD=0001 TYPE=REL XREF=4 7 SYM=D LOC=00000006 LEN=00000004 ESD=0001 TYPE=REL XREF=5 6 SYM=E LOC=0000000A LEN=00000005 ESD=0001 TYPE=REL XREF=6 5 SYM=F LOC=0000000F LEN=00000006 ESD=0001 TYPE=REL XREF=7 4 SYM=G LOC=00000015 LEN=00000007 ESD=0001 TYPE=REL XREF=8 3 SYM=H LOC=0000001C LEN=00000008 ESD=0001 TYPE=REL XREF=9 2 SYM=RLDNFG LOC=00000000 LEN=00000028 ESD=0001 TYPE=CST XREF=1 Literal Table Listing AZ390I total mnote warnings = 0 AZ390I total mnote errors = 0 AZ390I max mnote level = 0 AZ390I total mz390 errors = 0 AZ390I total az390 errors = 0 19:55:42 rldnfg2 MZ390 ENDED RC= 0 SEC= 0 MEM(MB)= 38 IO=61 Interpreted object code rldnfg2.OBJ 7/2/2020 0: 02 C5 E2 C4 40 40 40 40 40 40 00 10 40 40 00 01 .ESD .. .. 10: D9 D3 C4 D5 C6 C7 40 40 00 00 00 00 07 00 00 28 RLDNFG .......( 20: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 30: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 50: 02 E3 E7 E3 40 00 00 00 40 40 00 10 40 40 00 01 .TXT ... .. .. 60: 1C 00 15 00 00 0F 00 00 00 0A 00 00 00 00 06 00 ................ 70: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 80: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 90: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 A0: 02 E3 E7 E3 40 00 00 10 40 40 00 10 40 40 00 01 .TXT ... .. .. B0: 00 00 00 00 03 00 00 00 00 00 00 01 00 00 00 00 ................ C0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 D0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 E0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 F0: 02 E3 E7 E3 40 00 00 20 40 40 00 04 40 40 00 01 .TXT .. .. .. 100: 00 00 00 00 40 40 40 40 40 40 40 40 40 40 40 40 .... 110: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 120: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 130: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 140: 02 D9 D3 C4 40 40 40 40 40 40 00 08 40 40 40 40 .RLD .. 150: 00 01 00 01 04 00 00 01 40 40 40 40 40 40 40 40 ........ 160: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 170: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 180: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 190: 02 D9 D3 C4 40 40 40 40 40 40 00 08 40 40 40 40 .RLD .. 1A0: 00 01 00 01 08 00 00 03 40 40 40 40 40 40 40 40 ........ 1B0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 1C0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 1D0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 1E0: 02 D9 D3 C4 40 40 40 40 40 40 00 08 40 40 40 40 .RLD .. 1F0: 00 01 00 01 0C 00 00 06 40 40 40 40 40 40 40 40 ........ 200: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 210: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 220: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 230: 02 D9 D3 C4 40 40 40 40 40 40 00 08 40 40 40 40 .RLD .. 240: 00 01 00 01 00 00 00 1C 40 40 40 40 40 40 40 40 ........ 250: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 260: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 270: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 280: 02 C5 D5 C4 40 00 00 00 40 40 40 40 40 40 00 00 .END ... .. 290: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 2A0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 2B0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 2C0: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 Note that in the 4th RLD entry (for the ADL8 constant), the RLD flag byte (at offset X'244' is zero). According to the HLASM Programmer's Guide, this indicates an A-type constant with a length of one byte. Summary: Avoid using AD constants with a length of 5, 6, or 7. If you plan on linking your object code on a real mainframe, avoid AD constants with a length of 8.
