Here are a few more tidbits of information regarding relocatable address constants (summarized from the disjoint information contained in SC26-4940-06, High Level Assembler for z/OS & z/VM & z/VSE Language Reference):
1-byte relocatable constants have never been allowed. 2-byte relocatable constants are allowed and the assembler will produce message "ASMA066W 2-byte relocatable address constant" unless assembler option RA2 is specified. Quoting from "High Level Assembler for z/OS & z/VM & z/VSE Programmer's Guide Version 1 Release 6" (SC26-4941-08): "RA2 Instructs the assembler to suppress error diagnostic message ASMA066W when 2-byte relocatable address constants, such as AL2(*) and Y(*), are defined in the source program." Only AD type address constants may have lengths (in bytes) over the range 5-8 inclusive. VD type address constants may have lengths (in bytes) of 3, 4 or 8. The Tachyon z/Assembler correctly assembles (and produces the correct Relocation Dictionary items) for this slightly modified version of Dan's test program (I specified RA2 and XOBJ assembler options): RLDNFG CSECT , A DC AD(H) B DC ADL2(G) C DC ADL3(F) D DC ADL4(E) E DC ADL5(D) F DC ADL6(C) G DC ADL7(B) H DC ADL8(A) END , I do not have local access to another fairly popular cross-assembler produced by Dignus (see http://www.dignus.com/dasm/). However, Dignus permits the assembly of small source files on their web site (http://www.dignus.com/dasm/asmit.html). The assembler version is DASM V1.95.11. Unfortunately, their web site doesn't permit specifying any assembler options and the object code format is the old OBJ rather than XOBJ/GOFF, so the RLD entries for statements 7 through 10 are incorrect. Also, the *PROCESS statement does not permit specifying XOBJ or GOFF, so I cannot correspondingly instruct the assembler using that method. Here is the Dignus assembly listing (I edited the listing a bit to hopefully avoid line wrapping problems when posting this message to the list server): Loc Object Code Addr1 Addr2 Stmt Source Statement 1 *PROCESS RA2 00000000 00000000 0000002B 2 RLDNFG CSECT , 00000000 0000000000000023 3 A DC AD(H) 00000008 001C 4 B DC ADL2(G) 0000000A 000016 5 C DC ADL3(F) 0000000D 00000011 6 D DC ADL4(E) 00000011 000000000D 7 E DC ADL5(D) 00000016 00000000000A 8 F DC ADL6(C) 0000001C 00000000000008 9 G DC ADL7(B) 00000023 0000000000000000 10 H DC ADL8(A) 11 END , Relocation Dictionary Pos.Id Rel.Id Address Type Action 00000001 00000001 00000000 A 4 + 00000001 00000001 00000008 A 2 + 00000001 00000001 0000000A A 3 + 00000001 00000001 0000000D A 4 + 00000001 00000001 00000011 A 1 + 00000001 00000001 00000016 A 2 + 00000001 00000001 0000001C A 3 + 00000001 00000001 00000023 A 4 + Bob Raicer