The High Level Assembler lets you provide I/O exits for all but its SYSUT1 utility file. These exits give you complete control over all records being read or written by the assembler. You can monitor, modify, add, replace, and delete records, and even do your own I/O in place of the assembler's!
This presentation will first discuss the general properties of all exits, and then describe examples of three exits:
(1) An object-file exit to automatically add binder control statements like NAME and ALIAS after each generated object module.
(2) A listing-file exit to check for selected ASMAnnnW warning messages and issue a second message increasing the severity level.
(3) An ADATA-file exit to collect information of any type. We will show one example that extracts data about all macros and COPY files used by the program, indicating whether each came from the primary input or from a library data set member. (This information is especially useful if your macros and COPY files are shared across multiple source files, letting you know which modules may need reassembly.)