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.

Reply via email to