General
Application area: | Linking and loading; see "Linking and loading" |
Macro type: | Type S, MF format 2: standard /C/D/E/L/M form; see "S-type macros" |
See also the “BLSSERV” manual [4 (Related publications)] for information on the dynamic binder loader DBL.
Macro description
The SELPRGV macro determines which program version the DBL is to use if several versions of a program can be loaded. This program must not been loaded when the version is selected.
Macro format and description of operands
SELPRGV |
MF=S / C / D / E / L / M ,PRGNAME=<name 1..32> ,PRGNAM@=<var:name 32..32> / (<reg: pointer>) ,PRGVERS=<name 1..24> / *STD ,PRGVER@=<var:name 24..24> / (<reg: pointer>) ,SCOPE=PROGRAM / TASK ,PARAM=<var: pointer> / (reg: pointer>) ,PREFIX=P / p ,MACID=BSL / macid |
PRGNAME = <name 1..32>
Program name. As far as the DBL is concerned this is the name of a load unit. The name may contain alphanumerical characters only. May be specified only with MF=L or MF=S.
PRGNAM@ = <var: name 32..32> / (<reg: pointer>)
Symbolic address or register containing the address of a 32 character field, which contains the the program name. Shorter name specifications must be padded with blanks.
May be specified only if MF=M.
PRGVERS = <name 1..24>
Program version to be used by the DBL. May be specified only with MF=L or MF=S.
*STD
No version is selected. The DBL deletes the program version from its version table.
PRGVER@ = <var: name 24..24> / (<reg: pointer>)
Symbolic address or register containing the address of a 32 character field, which contains the the program version. Shorter version specifications must be padded with blanks.
May be specified only if MF=M.
SCOPE=
Scope for the version selection.
PROGRAM
Default setting: The version selection only remains valid until the program is terminated or the version selection is deleted. Version selection must therefore be repeated before or during every program call.
TASK
The version selection remains valid until the end of the task or until the version selection is deleted.
MF=
For a general description of the MF operand, its operand values and any of the specified operands PARAM, PREFIX and MACID, see section “S-type macros”. The valid MF values are given at the start of the macro description under “Macro type” and are included in the macro format.
It is possible to specify a PREFIX in the C form, D form, or M form of the macro, and additionally a MACID in the C form or M form (see section “S-type macros”).
Notes on the macro call
Valid class 6 memory addresses must be specified in PRGNAM@ and PRGVER@.
Return information and error flags
Standard header:
+---------------+ | | | | | |c|c|b|b|a|a|a|a| +---------------+
A return code relating to the execution of the SELPRGV macro is transferred in the standard header
(cc=subcode2,bb=subcode1,aaaa=main code)
X'cc' | X'bb' | X'aaaa' | Meaning |
X'00' | X'00' | X'0000' | The macro was executed normally |
X'00' | X'01' | X'0001' | PRGNAME not specified or invalid |
X'00' | X'01' | X'0002' | PRGVERSnot specified or invalid |
X'00' | X'01' | X'0003' | Invalid specification in SCOPE |
X'00' | X'00' | X'0004' | Version selection cannot be deleted since no program version has been |
X'00' | X'01' | X'0005' | Program version table cannot be generated. Version selection rejected |
X'00' | X'20' | X'0006' | DSSM error |
X'00' | X'20' | X'0300' | System error |
X'00' | X'01' | X'FFFF' | The function is no longer or not yet supported |
X'00' | X'03' | X'FFFF' | The interface version is not supported |
Other return codes which, in accordance with conventions, apply to all macros are given in the table “Standard return codes” (Standard header).