Easytrieve Listing Options

Listing options decide how much paper—or how many spool lines—your compile step produces. Easytrieve separates listing control into PARM-level switches on the first source line and mid-source LIST statements that toggle printing as the compiler walks your program. A thousand-line payroll program with fifty FILE copybooks can generate a listing larger than the source itself when LIST ON MACROS and full DEBUG maps are active. Production compile procs shrink that volume with LIST OFF, LIST NOMACROS, and NOPARM while development keeps verbose output for new hires learning offset arithmetic from DMAP. Options Table defaults from Configuration Manager establish site baselines—LISTPRM for parameter summary, global DMAP/XREF defaults—overridden per program when PARM says otherwise. This tutorial covers PARM LIST FILE and LIST PARM, LIST ON/OFF and MACROS/NOMACROS, NEWPAGE and SKIP formatting, PUSH/POP stacking, compile summary contents, JCL DD routing, storage of listings for audit, and pairing listing options with debugging options without redundant output.

Progress0 of 0 lessons

PARM LIST Subparameters

On PARM, LIST accepts FILE, NOFILE, PARM, and NOPARM combinations documented in Language Reference. LIST FILE enables file statistics sections at activity boundaries—record counts, organization hints useful when validating FILE definitions against JCL. LIST PARM prints compile summary showing parameters in effect—critical when comparing dev and prod compile outcomes. NOPARM suppresses that summary when archives need only source and diagnostics.

PARM LIST controls
OptionEffect
LIST FILEInclude file statistics in listing
LIST NOFILEOmit file statistics section
LIST PARMPrint compile summary and active parameters
LIST NOPARMSuppress compile summary parameter block

Source LIST Statement

After PARM, LIST ON prints all subsequent source statements in the listing until LIST OFF. Default at program start is LIST ON MACROS per Controlling Compilation documentation. LIST OFF after FILE definitions is a common pattern: keep Library layout visible once, hide repetitive JOB and REPORT logic from listing bulk. LIST ON before a complex PROC restores visibility for the section under maintenance.

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PARM DEBUG(DMAP XREF) LIST FILE FILE PAYMAST FB(150 1500) EMP-NO 1 6 N GROSS 94 5 P 2 LIST OFF REPORT PAY-RPT TITLE 01 'PAYROLL' SYSDATE ... LIST ON COMPLEX-PROC. PROC * detailed logic under review END-PROC

LIST MACROS and LIST NOMACROS

Macros expand before compile logic sees final source. LIST MACROS prints expanded statements— essential when %INCLUDE or cataloged macros generate DEFINE blocks you did not type manually. LIST NOMACROS omits expansion detail, shrinking listing size for stable macro libraries. Macro debugging page pairs with NOMACROS-off compiles until substitution errors resolved.

NEWPAGE, SKIP, PUSH, and POP

NEWPAGE starts a fresh listing page—use before large REPORT section for readability. SKIP n inserts blank lines. PUSH saves current LIST and MACROS settings; change temporarily with LIST OFF NOMACROS; POP restores prior settings without remembering original combination. Nested PUSH/POP stacks like conditional compilation discipline—document depth in team standards.

Compile Summary Section

When LIST PARM active, summary aggregates error and warning counts, compiler options, macro libraries searched, generated code size estimates, and execution options embedded at compile. Before promoting load module, diff summary against golden baseline proc—unexpected DEBUG flag is release defect smoking gun.

Options Table LISTPRM and Listing Defaults

Configuration Manager LISTPRM option mirrors PARM LIST PARM at site level. Compiler Options DMAP, XREF, PMAP defaults interact with listing volume—listing options page focuses on LIST family; see debugging and cross-reference pages for DEBUG-specific sections.

Development Versus Production Profiles

Typical listing profiles
ProfileTypical settingsGoal
Developer debugLIST ON MACROS, LIST FILE PARM, full DEBUG mapsMaximum visibility
Maintenance fixLIST ON near changed PROC, DMAP on PARMTargeted section focus
Production compileLIST OFF NOMACROS, NOPARM, minimal DEBUGSmall listing, fast compile
Support casePer article 55089—MACROS on, LIST FILEUpload complete listing to Broadcom

Common Listing Option Mistakes

  • LIST OFF before first FILE—cannot verify DEFINE offsets in statement listing.
  • NOMACROS while debugging macro substitution errors.
  • Assuming listing DD name without reading site compile proc.
  • Discarding compile summary when auditing which PARM was active.
  • PUSH without matching POP—listing settings drift rest of source.
  • Identical prod and dev listing profile—wastes spool and compile time.

Explain It Like I'm Five

Listing options tell the printer how much of your homework to photocopy. LIST ON copies every line; LIST OFF skips lines until you turn copying back on. MACROS means also photocopy the hidden template pages that expanded into real lines. PARM at the top can ask for an extra cover sheet summarizing which copying rules you picked.

Exercises

  1. Add LIST OFF after FILE section and note what remains with DEBUG DMAP.
  2. Write PUSH/LIST OFF/POP sequence around one PROC.
  3. Compare LIST FILE versus NOFILE on a two-file program listing.
  4. Draft production versus development listing policy table for your team.
  5. Find compile summary in a sample listing and list three fields it contains.

Quiz

Test Your Knowledge

1. LIST OFF in source:

  • Suppresses subsequent source lines in the compile listing
  • Disables all FILE statements
  • Prevents job execution
  • Turns off SYSDATE

2. PARM LIST PARM controls:

  • Printing compile summary and parameters at end of syntax check
  • Runtime SORT only
  • Db2 bind output
  • CICS mapset listing

3. LIST MACROS versus LIST NOMACROS:

  • Whether macro expansion appears in listing
  • Whether JOB runs
  • VSAM cluster creation
  • Report page breaks

4. PUSH and POP listing statements:

  • Save and restore LIST ON/OFF MACROS settings
  • Stack subroutine calls
  • Sort input records
  • Allocate GDG bases

5. LIST FILE on PARM:

  • Controls file statistics listing at activity boundaries
  • Deletes input files
  • Sets BUFNO
  • Defines KEY fields
Published
Read time15 min
AuthorMainframeMaster
Reviewed by MainframeMaster teamVerified: Broadcom Easytrieve 11.6 PARM LIST, Controlling Compilation listing statementsSources: Broadcom PARM Statement, Controlling Compilation, Compiler Options LISTPRMApplies to: Easytrieve compile listing control options