Allgemeines
Anwendungsgebiet: | Binden und Laden; siehe "Binden und Laden" |
Makrotyp: | S-Typ, MF-Format 2: Standardform/C-/D-/E-/L-/M-Form; siehe "S-Typ-Makroaufrufe" |
Zum dynamischen Bindelader DBL siehe auch Handbuch „BLSSERV“ [4].
Makrobeschreibung
Der Makroaufruf SELPRGV legt fest, welche Programmversion der DBL verwendet, wenn mehrere Versionen eines Programms geladen werden können. Zum Zeitpunkt der Versionsauswahl ist es nicht notwendig, dass dieses Programm schon geladen ist.
Makroaufrufformat und Operandenbeschreibung
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>
Name des Programms. Aus der Sicht von DBL ist dies der Name einer Ladeeinheit. Der Name darf nur alphanumerische Zeichen enthalten. Angabe nur mit MF=L oder MF=S.
PRGNAM@=<var: name 32..32> / (<reg: pointer>)
Symbolische Adresse oder Register mit der Adresse eines 32 Zeichen langen Feldes, in dem der Programmname steht. Kürzere Namen müssen mit Leerzeichen aufgefüllt werden. Angabe nur mit MF=M.
PRGVERS=<name 1..24>
Programmversion, die der DBL verwenden soll. Angabe nur mit MF=L oder MF=S.
*STD
Keine Version wird ausgewählt. Der DBL löscht die Programmversion aus seiner Versionstabelle.
PRGVER@=<var: name 24..24> / (<reg: pointer>)
Symbolische Adresse oder Register mit der Adresse eines 24 Zeichen langen Feldes, das die Programmversion enthält. Kürzere Versionsangaben müssen mit Leerzeichen aufgefüllt werden. Angabe nur mit MF=M.
SCOPE=
Geltungsbereich für die Versionsauswahl.
PROGRAM
Die Versionsauswahl ist nur solange gültig, bis eine Programmterminierung erfolgt oder die Versionsauswahl gelöscht wird. Die Versionsauswahl muss deshalb vor bzw. bei jedem Programmaufruf wiederholt werden.
TASK
Die Versionsauswahl ist bis zum Ende der Task gültig oder solange, bis die Versionsauswahl gelöscht wird.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. angegebenen Operanden PARAM, PREFIX und MACID siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
Bei der C-Form, D-Form oder M-Form des Makroaufrufs kann ein Präfix PREFIX und bei der C-Form oder M-Form zusätzlich eine Macid MACID angegeben werden (siehe Abschnitt „S-Typ-Makroaufrufe“).
Hinweise zum Makroaufruf
Bei PRGNAM@ und PRGVER@ müssen gültige Klasse-6-Speicher-Adressen angegeben werden.
Rückinformation und Fehleranzeigen
Standardheader:
+---------------+ | | | | | |c|c|b|b|a|a|a|a| +---------------+
Über die Ausführung des Makros SELPRGV wird im Standardheader folgender Returncode übergeben (cc=Subcode2, bb=Subcode1, aaaa=Maincode):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'00' | X'0000' | Der Makro wurde normal ausgeführt. |
X'00' | X'01' | X'0001' | PRGNAME nicht angegeben oder ungültig. |
X'00' | X'01' | X'0002' | PRGVERS nicht angegeben oder ungültig. |
X'00' | X'01' | X'0003' | Ungültige Angabe bei SCOPE. |
X'00' | X'00' | X'0004' | Versionsauswahl kann nicht gelöscht werden, da keine Programmversion |
X'00' | X'01' | X'0005' | Programmversionstabelle kann nicht erzeugt werden. Versionsauswahl |
X'00' | X'20' | X'0006' | DSSM-Fehler |
X'00' | X'20' | X'0300' | Systemfehler |
X'00' | X'01' | X'FFFF' | Die Funktion wird nicht mehr oder noch nicht unterstützt. |
X'00' | X'03' | X'FFFF' | Die Version der Schnittstelle wird nicht unterstützt. |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standard-Returncodes“ (Standardheader) entnommen werden.