Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

%QUALIFY

&pagelevel(3)&pagelevel

With %QUALIFY you define qualifications. In the address operand of another command you may refer to these qualifications by prefixing a period.
Use of this abbreviated format for a qualification is practical whenever you want to repeatedly reference addresses which are not located in the current AID work area.

  • With prequalification you define qualifications which you would like to incorporate in other commands by referencing them via a prefixed period.

Command Operand
%Q[UALIFY][prequalification]

A prequalification specified with the aid of the %QUALIFY command applies until it is overwritten by a %QUALIFY with a new prequalification or revoked by a %QUALIFY without operands, or until /LOGOFF or /EXIT-JOB.

On input of a %QUALIFY command, only a syntax check is made. Whether the specified link name has been assigned a dump file or whether the specified program has been loaded or included in the LSD records is not checked until subsequent commands are executed and the information from prequalification is actually used in addressing.

The declarations of the %QUALIFY command are only used by commands which are input subsequently. %QUALIFY has no effect on any subcommands in %CONTROL, %INSERT and %ON commands entered prior to this %QUALIFY command, even if they are executed after it.

The same %AID LOW={ON|OFF} setting must apply for input of the %QUALIFY and for replacement in an address operand.

%QUALIFY may only be specified as an individual command, i.e. it may not be part of a command sequence or subcommand.

The %QUALIFY command does not alter the program state.

prequalification

consists of a single qualification or a sequence of qualifications, which must then be separated by a period.

The reference to a prequalification defined in the %QUALIFY command is effected by prefixing a period to the address operands of subsequent AID commands.

prequalification operand  - - - - - - - - - - - - - - - - - - - - - - - - - - -

[E={VM|Dn} ][[•]S=srcname][[•]{PROC=program-id | C=segmentname | C=sharename}]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E={VM|Dn}

must be specified if you want to use a base qualification which is different from the current one (see %BASE command).

S=srcname

srcname designates a compilation unit.

PROC=program-id

designates a program unit.

If srcname in the S qualification and program-id are the same, only the PROG qualification need be written.

C=segmentname

segmentname is composed of the specification in the PROGRAM-ID paragraph and the segment number. Only the first 6 places of the PROGRAM-ID are used for generating the segment name.

C=sharename

sharename is composed of the first 7 places of the PROGRAM-ID specification and the @ character.

Examples

  1. %QUALIFY E=D1.PROG=SORT

    %D .TAB(1)

    Because of the prequalification, the %DISPLAY command has the same effect as the following %DISPLAY command in full format:
    %D E=D1.PROG=SORT.TAB(1)

  2. %QUALIFY PROG=SUB

    %SET .A INTO .B

    Because of the prequalification, the %SET command has the same effect as the following %SET command in full format:

    %SET PROG=SUB.A INTO PROG=SUB.B

  3. %QUALIFY PROG=SUB

    %D .TAB(I)

    %D .L'OUT1' IN L'PUTOUT'

As in examples 1 and 2, the PROG qualification from the %QUALIFY command is written before the period in the two %DISPLAY commands.
Thus in the first %DISPLAY command not only do you address table element TAB from the SUB program unit; you also search for index I in the SUB program unit.
The same applies for the second %DISPLAY command for identifying the paragraph: the PROG qualification refers both to paragraph OUT1 and to the identifying section PUTOUT.