Allgemeines
Anwendungsgebiet: | Jobvariablen |
Makrotyp: | S-Typ: (Standardform/E-/L-Form) |
Makrobeschreibung
Der TERM-Makro führt folgende Funktionen durch:
Programm beenden (Standardwert)
Programm und Prozedurabschnitt beenden (Operand UNIT=STEP)
Speicherauszug ausgeben (Operand DUMP)
Rückkehrcode an programmüberwachende Jobvariable übergeben (Operand URETCD)
Vor Programmbeendigung werden alle laufenden Ein-/Ausgabe-Operationen beendet.
Makroaufrufformat und Operandenbeschreibung
Operation | Operanden |
|
|
UNIT=
bestimmt, ob bei der Beendigung des Programms nach Betriebsarten unterschieden werden soll.
PRGR
ist Voreinstellung: Das Programm wird beendet.
STEP
beendet das Programm, wobei unterschieden wird, in welcher Betriebsart das Programm gelaufen ist.
Dialogbetrieb:
Wurde das Programm in einer Nicht-S-Prozedur aufgerufen, so verzweigt das System zusätzlich zum nächsten SET-JOB-STEP-, EXIT-JOB- oder CANCEL-PROCEDURE-Kommando.
Wurde das Programm in einer S-Prozedur aufgerufen, so löst das System zusätzlich die SDF-P-Fehlerbehandlung aus.Batchbetrieb (ENTER-Prozedur):
Das System verzweigt zusätzlich zum nächsten SET-JOB-STEP- oder EXIT-JOB-Kommando.
Hinweis
Folgende Angaben werden empfohlen:
UNIT=PRGR mit MODE=NORMAL
UNIT=STEP mit MODE=ABNORMAL
DUMP=
entscheidet, ob ein Speicherauszug ausgegeben werden soll.
N
ist Voreinstellung: Ein Speicherauszug wird nicht ausgegeben.
Y
gibt einen Speicherauszug aus, sofern kein Kommando MODIFY-TEST-OPTIONS mit DUMP=NO gegeben wurde.
MODE=
bestimmt die Art der Beendigung des Programms.
N[ORMAL]
ist Voreinstellung: Das Programm soll normal beendet werden.
Ist eine programmüberwachende Jobvariable definiert, so wird ihre Zustandsanzeige auf C’$T ’gesetzt.
A[BNORMAL]
Das Programm soll abnormal beendet werden. Die Meldung „.... ABNORMAL PROGRAM TERMINATION (&00)“
wird ausgegeben.
(&00)= NRT0001
, wenn UNIT=PRGR angegeben wurde (&00)= NRT0101
, wenn UNIT=STEP angegeben wurde
Für Anwender von Jobvariablen:
Ist eine programmüberwachende Jobvariable definiert, so wird ihre
Zustandsanzeige auf $
A gesetzt.
Hinweis
siehe Operand UNIT.
URETCD=
bestimmt den Rückkehrcode, der an die programmüberwachende Jobvariable übergeben wird (linksbündig, Byte 4 bis 7). Ist keine programmüberwachende Jobvariable definiert, wird der Operand ignoriert.
Fehlt der Operand, so wird der Wert C’ ’ in die programmüberwachende Jobvariable übergeben.
code
gibt einen 1 bis 4 Byte langen alphanumerischen Wert, dezimal (C’cccc’) oder sedezimal (X’xxxxxxxx’) an.
adr
adr = relative virtuelle Adresse eines 4 Zeichen langen alphanumerischen Wertes an.
(r)
r = Register, in dem ein 4 Zeichen langer alphanumerischer Wert steht. Mit dieser Angabe wird Register R0 zerstört.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden siehe Abschnitt „Allgemeine Makro-Operanden“.
Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei Makrotyp angegeben und aus dem Aufrufformat ersichtlich.
Funktionsweise
Wenn der Makroaufruf ausgeführt wird, tritt Folgendes auf:
Alle dem Programm zugewiesenen und noch geöffneten Dateien werden geschlossen.
Der Speicherplatz für das Programm wird freigegeben.
Die BBS-Operationsliste und die Einträge der BBS-Programmtabelle werden freigegeben.
Eine ggf. definierte STXIT-Routine für die Ereignisklasse TERM wird aktiviert.
AIDSYS wird aufgerufen mit dem Ereignis „TERM“.
In der Geräteliste werden die Byte 8 - 30 für jedes freigegebene Gerät gelöscht. In der Operationsliste wird das erste Byte auf X’FF’ gesetzt. In dem Eintrag der Programmtabelle wird die Programmanfangsadresse auf 0 gesetzt (4 Byte).
Anschließend wechselt das System in den Kommando-Modus.
Hinweise
Ist im URETCD-Operanden eine ungültige Adresse angegeben, so wird der Operand ignoriert.
Register R1 enthält die Adresse des Datenbereichs.
Ist die Adresse des Datenbereichs ungültig oder wurden fehlerhafte Operanden eingegeben, so wird TERM UNIT=STEP,MODE=ABNORMAL,DUMP=Y ausgeführt und folgende Fehlermeldung ausgegeben:%.... ABNORMAL PROGRAM TERMINATION NRT0601
Der Aufruf des Makros TERM mit dem Operanden DUMP=Y veranlasst die Meldung
"PROCESSING INTERRUPTED AT...)"
Die Ausgabe des Speicherabzugs hängt vom Wert des Operanden DUMP im Kommando MODIFY-TEST-OPTIONS ab. Bei DUMP=*STD (Default-Wert) veranlasst TERM eine der folgenden Meldungen:
im Dialogbetrieb fragt das System:
"DUMP DESIRED ? REPLY (Y=YES, N=NO)"
Die Ausgabe des Dumps hängt von der Antwort ab.im Batchbetrieb und in Prozeduren wird der Dump unterdrückt und folgende Meldung ausgegeben:
"SYSTEM REGULATIONS PROHIBIT DUMP"