PARM is the first statement in the program. It tells EZTPA00 how to compile this member: how much listing to write, whether to stay in compatibility mode, what to name the load module, and how CALL finds a subprogram. The site options table can set the same switches for every compile. A PARM line in the source wins for that program.
12345PARM DEBUG(PMAP DMAP XREF) LIST FILE FILE PAYFILE FB(200 20000) EMP-NO 1 5 N JOB INPUT PAYFILE PRINT PAY-RPT
Nothing that declares data comes before PARM. FILE, DEFINE, and JOB follow it.
| Option | What it does |
|---|---|
| LIST FILE | Prints the source in the compile listing |
| DEBUG(XREF) | Cross-reference. PMAP and DMAP add more maps |
| SYNTAX | Check the source and stop before object code |
| COMPILE | Write object to SYSLIN for a separate link |
| LINK(name) | Name the load module IEWL writes |
| COMPAT | Keep 6.4-style behavior during migration |
| CALL | Default binding for CALL (dynamic on z/OS if omitted) |
123PARM LINK(MTHRPT) PARM COMPAT LIST FILE PARM CALL
LIST and DEBUG change SYSPRINT. They do not change the numbers on a report. COMPILE and LINK change whether this step produces a module. COMPAT changes which language rules the compiler applies. Mix those up and you will debug a listing while the production proc is still running the old load module.
PARM CALL sets the default for every CALL in the program. On z/OS the default without it is dynamic: the runtime loads the module from STEPLIB. Unix defaults to static. A shop standard either documents dynamic or sets PARM CALL so a new program does not surprise operations at runtime.
PARM is the note on the front of the homework that says how the teacher should mark it: show the work (LIST), use the old rules (COMPAT), or write the finished paper into a named folder (LINK). The homework itself starts on the next line.
1. PARM is coded:
2. PARM LINK(MTHRPT) means:
3. PARM COMPAT is used when:
4. PARM DEBUG(XREF) affects:
5. PARM CALL sets: