Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

TERM - Programm und Prozedurabschnitt beenden

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Starten, Unterbrechen und Beenden; siehe "Starten, Unterbrechen und Beenden";

Testhilfe; siehe "Testhilfe"

Makrotyp:

S-Typ, MF-Format 1: Standardform/E-Form/L-Form;

siehe "S-Typ-Makroaufrufe"


Makrobeschreibung

Der TERM-Makro führt folgende Funktionen durch:

  • Programm beenden (Standardwert)

  • Programm und Prozedurabschnitt beenden (Operand UNIT=STEP)

  • Speicherabzug ausgeben (Operand DUMP)

  • Rückkehrcode an programmüberwachende Jobvariable übergeben
    (Operand URETCD)

Vor Programmbeendigung werden alle laufenden Ein-/Ausgabe-Operationen beendet.

Makroaufrufformat und Operandenbeschreibung

TERM

UNIT=PRGR / STEP

,DUMP=N / Y

,MODE=NORMAL / ABNORMAL

[,URETCD=code / adr / (r)]

,MF=S / (E,..) / L

UNIT=
bestimmt, ob bei der Beendigung des Programms nach Betriebsarten unterschieden werden soll.

PRGR
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-, END-PROCEDURE- oder CANCEL-PROCEDURE-Kommando. Wurde das Programm in einer S-Prozedur aufgerufen, so leitet das System zusätzlich die SDF-P-Fehlerbehandlung ein.

  • Batch-Betrieb (ENTER-Datei):
    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
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.

NORMAL
Das Programm soll normal beendet werden.
Für Anwender von Jobvariablen:
Ist eine programmüberwachende Jobvariable definiert, so wird ihre Zustandsanzeige auf C'$T'BLANK'' gesetzt.

ABNORMAL
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 C'$A'BLANK'' gesetzt. Siehe Hinweis oben.

MF=

Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“ . Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.

Der folgende Operand steht nur dem Anwender mit dem Software-Produkt JV (siehe Handbuch „JV“ [22]) zur Verfügung:

URETCD=code
gibt einen 1 bis 4 Byte langen alphanumerischen Wert, dezimal (C'cccc') oder sedezimal (X'xxxxxxxx') an. Dieser Wert wird als Rückkehrcode vom Programm an die programmüberwachende Jobvariable übergeben (linksbündig, Byte 4 bis 7).

Hinweis

Fehlt der Operand, so wird der Wert C'    ' in die programmüberwachende Jobvariable übergeben.
Der Operand wird ignoriert, wenn keine programmüberwachende Jobvariable definiert wurde.

adr
relative virtuelle Adresse eines 4 Zeichen langen alphanumerischen Wertes. Dieser Wert wird als Rückkehrcode in die das Programm überwachende Jobvariable
(Byte 4-7) übergeben.

(r)
r = Register, in dem ein 4 Zeichen langer alphanumerischer Wert steht. Dieser Wert wird als Rückkehrcode in die das Programm überwachende Jobvariable (Byte 4-7) übergeben. Ist URETCD=(r) angegeben, so wird Register R0 zerstört.

Funktionsweise

Wenn der Makroaufruf ausgeführt wird, tritt Folgendes auf:

  • Eine ggf. definierte STXIT-Routine für die Ereignisklasse TERM wird aktiviert.
  • Alle dem Programm zugewiesenen und noch geöffneten Dateien werden geschlossen.
  • Der Speicherplatz für das Programm wird freigegeben.

  • AIDSYS wird aufgerufen mit dem Ereignis „TERM“.
  • In der Geräteliste werden die Bytes 8 - 30 für jedes freigegebene Gerät gelöscht. In der Operationsliste wird das erste Byte auf X'FF' gesetzt. Im Eintrag der Programmtabelle wird die Programmanfangsadresse auf 0 gesetzt (4 Byte).

  • Anschließend wechselt das System in den Kommando-Modus.

Hinweise zum Makroaufruf

  • 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 (Standardwert) veranlasst TERM eine der folgenden Meldungen:

    • im Dialogbetrieb:

      DUMP DESIRED ? REPLY (Y=YES, N=NO)

      Die Ausgabe des Dumps hängt von der Antwort ab.

    • im Batch-Betrieb und in Prozeduren:

      SYSTEM REGULATIONS PROHIBIT DUMP

      Der Dump wird nicht ausgegeben.

    Der Speicherabzug wird in nicht aufbereiteter Form als PAM-Datei auf Platte ausgegeben, siehe Makro CDUMP2. Die Datei, die den Speicherabzug enthält, wird unter der Kennung des Benutzers eingerichtet, der ihn angefordert hat. Sobald der Speicherabzug erstellt ist, werden die Meldung

    DUMP WRITTEN,FILENAME=$userid.DUMP.tsn.i

    und die TITLE-Zeile des Dumps ausgegeben.
    Mit dem Wert „i“ werden die Speicherabzüge durchnummeriert, wenn pro TSN mehrere angefordert werden. Die Datei kann mit dem Aufbereitungsprogramm DAMP ausgewertet werden.