Allgemeines
Anwendungsgebiet: | Jobvariablen |
Makrotyp: | S-Typ (bei Version=0): Standardform/D-/E-/L-Form |
Makrobeschreibung
Mit dem Makro DONEVT werden eine oder mehrere Bedingungen gelöscht, die zuvor durch einen ONEVT-Makroaufruf an eine mit dem ENAEI-Makro deklarierte Ereigniskennung gebunden wurden. Der Anwender kann auch alle zurzeit existierenden Bedingungen für Jobvariablen-Ereignisse löschen.
Der Anwender muss den DONEVT-Makro vor dem DISEI-Makro absetzen, d.h., eine Bedingung löschen, bevor er die Ereigniskennung dazu aufgibt, andernfalls ist mit fehlerhaften Ergebnissen zu rechnen.
Über folgende drei Wege können Bedingungen für Jobvariablen-Ereignisse gelöscht werden:
Der ONEVT-Zähler (Operand COUNT) erreicht den Wert null.
Das Programm wird beendet.
Ein DONEVT-Makro löscht die Bedingung.
Makroaufrufformat und Operandenbeschreibung
Operation | Operanden |
|
|
EIID=
bezeichnet die zu löschenden Bedingungen, die zuvor mit dem ONEVT-Makro für ein Jobvariablen-Ereignis gesetzt wurden.
*ALL
alle noch existierenden Bedingungen für Jobvariablen-Ereignisse werden gelöscht.
adr
symbolische Adresse der Ereigniskurzkennung.
(r)
r = Register, das die symbolische Adresse der Ereigniskurzkennung enthält.
MF=
PREFIX=
MACID=
PARAM=
Zur Beschreibung der Operanden MF, PREFIX, MACID und PARAM siehe "Allgemeine Makro-Operanden ". Die gültigen Werte und Voreinstellungen von MF für diesen Makro sind zu Beginn der Makrobeschreibung, für PREFIX und MACID bei der Beschreibung des Operanden VERSION angegeben.
VERSION=
legt fest, welcher Version die Makroauflösung entsprechen soll.
0
ist Voreinstellung: Die Makroauflösung entspricht dem Stand JV <=
V8.7.
Bei der D-Form des Makroaufrufs kann ein Präfix (pre=1..3 Buchstaben) angegeben werden. Voreinstellung: pre=DON
1
Die Makroauflösung entspricht dem Stand >=
JV V10.0.
Bei der C-Form, D-Form oder M-Form des Makroaufrufs kann ein Präfix PREFIX (p=1 Buchstabe) und bei der C-Form und M-Form zusätzlich eine Macid MACID angegeben werden.
POST=
bezeichnet einen 2 Byte langen Wert, der auf Programmebene zusammen mit der Ereigniskurzkennung zur Identifizierung des DONEVT verwendet werden kann und zuvor mit dem ONEVT-Makro gesetzt wurde. Die Angabe dieses Operanden ist nur ab VERSION=1 erlaubt.
wert
2 Byte lange Assembler-Konstante beliebigen Formats.
r
r = Register, das die Adresse des 2 Byte langen Feldes enthält, in dem der Benutzer den Wert hinterlegt hat.
Rückinformation und Fehleranzeigen
bei VERSION=0:
R15 |
| Über die Ausführung des Makros DONEVT (VERSION=0) wird im Register R15 ein Returncode übergeben: (aa=Rücksprungschalter, bb= Sekundärindikator) |
X'bb' | X'aa' | Erläuterung |
X'00' | X'00' | Ausführung normal beendet. |
X'00' | X'04' | Funktion nicht ausgeführt: ungültige Adresse für die Ereigniskennung. |
X'04' | X'04' | Funktion nicht ausgeführt: Ereigniskennung nicht gefunden. |
X'08' | X'04' | Funktion nicht ausgeführt: Systemfehler (Speicherplatzverwaltung). |
X'FF' | Funktion nicht ausgeführt: CJC im System nicht verfügbar. |
bei VERSION=1:
Nach Initialisierung des Standardheaders (bei Aufruf mit MF=S/L) wird die Rückkehrinformation an der symbolischen Adresse <PREFIX><MACID>RET zur Verfügung gestellt (4Byte).
Standardheader |
| Über die Ausführung des Makros DONEVT (VERSION=1) wird im Standardheader ein Returncode übergeben: (aaaa=MAINCODE,bb=SUBCODE1,cc=SUBCODE2) |
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'00' | X'0000' | Ausführung normal beendet. |
X'00' | X'01' | X'0004' | Funktion nicht ausgeführt: ungültige Adresse der Ereigniskennung. |
X'04' | X'01' | X'0004' | Funktion nicht ausgeführt: Ereigniskennung nicht gefunden. |
X'08' | X'20' | X'0004' | Funktion nicht ausgeführt: Systemfehler. |
X'FFFF' | Funktion nicht ausgeführt: Fehler bei der Initialisierung des Standardheaders, siehe "Makroebene". |
Zusätzlich zu den bei VERSION=0 bzw. 1 genannten Returncodes können bei grundlegenden Fehlern (z.B. ungültige Adresse der Operandenliste) auch allgemeine JV-Returncodes auftreten. Deren Bedeutung kann dem Kommentar zum entsprechenden Returncode im Makro IDEJVS ("Makroebene") entnommen werden.
DSECT
DONEVT DONEVT MF=D,VERSION=1,PREFIX=A 1 DONEVT MFCHK MF=D, C 1 SUPPORT=(C,D,E,L,M,S), C 1 PREFIX=A, C 1 MACID=VSC, C 1 DMACID=VSC, C 1 DNAME=DONPL, C 1 PARAM=, C 1 SVC=190 2 DONEVT DSECT , 2 *,##### PREFIX=A, MACID=VSC ##### 1 AVSCFHDR FHDR MF=(C,AVSC),EQUATES=NO 2 AVSCFHDR DS 0A 2 AVSCFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER 2 * 2 AVSCIFID DS 0A 0 INTERFACE IDENTIFIER 2 AVSCFCTU DS AL2 0 FUNCTION UNIT NUMBER 2 * BIT 15 HEADER FLAG BIT, 2 * MUST BE RESET UNTIL FURTHER NOTICE 2 * BIT 14-12 UNUSED, MUST BE RESET 2 * BIT 11-0 REAL FUNCTION UNIT NUMBER 2 AVSCFCT DS AL1 2 FUNCTION NUMBER 2 AVSCFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER 2 * 2 AVSCRET DS 0A 4 GENERAL RETURN CODE 2 AVSCSRET DS 0AL2 4 SUB RETURN CODE 2 AVSCSR2 DS AL1 4 SUB RETURN CODE 2 2 AVSCSR1 DS AL1 5 SUB RETURN CODE 1 2 AVSCMRET DS 0AL2 6 MAIN RETURN CODE 2 AVSCMR2 DS AL1 6 MAIN RETURN CODE 2 2 AVSCMR1 DS AL1 7 MAIN RETURN CODE 1 2 AVSCFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH 2 * 1 AVSCPCON DS X PARAM.-CONTROL 1 AVSCPREG EQU X'40' PARAM. IN REGISTER 1 AVSCXREG EQU X'20' POST IN REGISTER 1 AVSCXSPE EQU X'04' POST SPECIFIED 1 AVSCPTPR EQU X'02' P2 CALLER 1 AVSCPKEY EQU X'01' PARAM. IS KEYWORD 1 AVSCUNUD DS CL1 UNUSED 1 AVSCPOST DS H POST-VALUE 1 ORG AVSCPOST 1 AVSCPOSR DS AL1 REG. CONT. POST-VALUE 1 DS AL1 NOT USED IN THIS CONTEXT 1 AVSCEIID DS A A(IDENTIFIER) 1 ORG AVSCEIID 1 AVSCREG DS X REGISTER # 1 AVSCUNU2 DS CL3 UNUSED 1 AVSC# EQU *-AVSCFHDR LENGTH 1 * 1 * RETURNCODES 1 * 1 AVSCOK EQU X'00000000' SUCCESSFUL CALL 1 AVSCINAD EQU X'00010004' INVALID PARM.-LIST 1 AVSCINEI EQU X'04010004' INVALID IDENTIFIER 1 AVSCSYSE EQU X'08200004' SYSTEM ERROR