Thanks, Abe. I documented the technique to read a COPY book with AREAD in response to a previous requirement documented in the "Ideas" tool (which needs IBM id to access): https://ideas.ibm.com/ideas/HLASM-I-1
If I remember correctly, the COPY statement will still be seen by the AREAD, but it will be followed by the copy book contents. The AINSERT statements should be processed in the order shown below, but can either be issued in the same order with the BACK option (which I prefer) or in reverse order with the FRONT option. Unfortunately the "Ideas" tool stripped out a lot of spaces, requiring some reconstruction for valid assembler. Here's what it should have said (it will look best with a monospaced font): There is an existing technique to allow a COPY file to be processed via AREAD, which is to cause the COPY file to be fetched by lookahead by using a forward attribute reference, so the AREAD will see the contents of the copy file rather than the COPY statement itself. This can all be encapsulated in a macro, using AINSERT to create an end label and issue the COPY, for example something like the following: MACRO MYCOPY &MEMBER &ENDLABEL SETC 'ENDCOPY_&SYSNDX' AINSERT ' READMEM &ENDLABEL',BACK AINSERT ' COPY &MEMBER',BACK AINSERT '&ENDLABEL DS 0X',BACK MEND MACRO READMEM &ENDLABEL &T SETC T'&ENDLABEL Cause lookahead .LOOP ANOP , &LINE AREAD , Read next input line AIF ('&LINE'(1,K'&ENDLABEL+1) EQ '&ENDLABEL ').END ... Process input line AGO .LOOP .END ANOP , MEND MYCOPY MEM1 Jonathan Scott