GENL (Generate Directory List) Macro

The macro generates a local directory list within the partition.

This saves access time if you load the same phases more than once in the course of program execution. The format of the generated directory entries is determined by the DE operand.

Format

Read syntax diagramSkip visual syntax diagramnameGENL , phasename,ADDRESS=area(S, area)( r1),LENGTH= numberDYNAMICDYN,ERREXIT=addr(S, addr)( r2),DE=OLD,DE=VSEVSEFORM

Requirements for the caller

AMODE:
24 or 31
RMODE:
24
ASC Mode:
Primary

Parameters

phasename1,phasename2,...
Specify, for these operands, the names of phases for which entries in a local directory list are to be built. The list is generated in alphanumeric sequence. You can specify up to 200 phase names, but no more than a total of 200 operands.
ADDRESS=area | (S,area) | (r1)
If the ADDRESS operand is omitted, the assembler builds a 38-(or 40-)byte directory entry within the macro expansion for each of the specified phases and inserts the pertinent phase name in the entry. The rest of the entry is filled in by the supervisor when the phase is called by a FETCH or LOAD macro with the LIST option for the first time. When, subsequently, the phase is called again, the entry is active.

Coding ADDRESS with LENGTH indicates that the directory is to be built, during execution, at a location within your program whose address is given by the ADDRESS operand.

The specified address must be below 16 MB.

LENGTH=number
LENGTH gives the length of the field provided for the generation of the directory. If LENGTH is too short, the assembler issues an MNOTE.
ADDRESS=DYNAMIC | DYN
Coding ADDRESS=DYNAMIC (or the short form ADDRESS=DYN) directs the system to acquire, through a GETVIS, as much dynamic storage as needed. Execution of the macro causes the contents of registers 0, 1, 14, and 15 to be overwritten.
ERREXIT=addr | (S,addr) | (r2)
ERREXIT is the address of a routine to be executed should the implicit GETVIS fail. If the ERREXIT operand is omitted, an unsuccessful GETVIS will cause the task to be canceled.
DE=OLD | VSE | VSEFORM
Indicates the format of the directory entries to be generated. DE=OLD generates 38-byte directory entries in the old (VSE/Advanced Functions Version 1) format. DE=VSE | VSEFORM generates 40-byte directory entries in the new (Version 2) librarian format. VSE is a short form of VSEFORM.