I do not believe the suggestion about putting the COPY statement within a macro definition will work as desired. Here is an extraction of the description of the COPY statement as it relates to macros (Chapter 7. How to specify macro definitions, page 227 of SC26-4940-09 High Level Assembler for z/OS & z/VM & z/VSE Language Reference):
| COPY instruction | | The COPY instruction, inside macro definitions, lets you copy | into the macro definition any sequence of statements allowed in | the body of a macro definition. These statements become part of | the body of the macro before macro processing takes place. You | can also use the COPY instruction to copy complete macro | definitions into a source module. You might consider doing something like this: PUSH PRINT * COPY IEABRC PRINT OFF Suppress listing of IEABRC text COPY IEABRC POP PRINT You could create a macro that uses AINSERT if you find that more convenient; something like this: MACRO XXXBRC AINSERT ' PUSH PRINT',BACK AINSERT '* COPY IEABRC',BACK AINSERT ' PRINT OFF Suppress listing of IEABRC text',BACK AINSERT ' COPY IEABRC',BACK AINSERT ' POP PRINT',BACK MEXIT , MEND , This would work without having to be concerned about the dependencies of the text of IEABRC needing to be in the open source, and would comply with the documented statement that IEABRC should be COPYed into the source stream.
