Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Hinweise zur Definition von Anweisungen

&pagelevel(4)&pagelevel

Standardanweisungen

Die Standardanweisungen (siehe "SDF-A-Anweisungen") sind nicht SDF-A-spezifisch. Sie werden automatisch systemweit für Benutzer-Programme angeboten, die ihre Anweisungen über SDF einlesen. In Ihrem Programm sind diese Anweisungen nicht zu implementieren. Die Information über eine eingelesene END- oder STEP-Anweisung erhält Ihr Programm über Register 15 (alte Schnittstelle) bzw. den Returncode im Standardheader (neue Schnittstelle).

Operandenposition

In dem Übergabebereich, in den SDF die analysierte Anweisung schreibt, sind die Operanden nur anhand ihrer Position im Operanden-Array identifizierbar (siehe Abschnitt „Aufbaudes normierten Übergabebereichs“). Diese Position bestimmen Sie beim Definieren der Operanden (siehe ADD-OPERAND...,RESULT-OPERAND-NAME
=*POS(...)).

Struktur

Beim Definieren des Struktureinleiters (siehe ADD-VALUE...,STRUCTURE=
*YES(...,FORM=...)) und der in der Struktur stehenden Operanden (siehe ADD-
OPERAND..., RESULT-OPERAND-LEVEL=) bestimmen Sie, ob die Stuktur im Übergabebereich erhalten bleibt oder linearisiert wird. Wenn Sie die Default-Werte der Anweisungen ADD-VALUE und ADD-OPERAND benutzen, wird die Struktur linearisiert. Mit ADD-
VALUE..., STRUCTURE=*YES(SIZE=...,...),... bestimmen Sie, ob in der MINIMUM- und MEDIUM-Stufe des geführten Dialogs SDF eine Struktur in den übergeordneten Operandenfragebogen integriert oder dafür einen eigenen Unterfragebogen ausgibt. Standardmäßig wird die Struktur so definiert, dass SDF sie in den übergeordneten Fragebogen integriert.

Operand übergeben

Ein Operand, der z.B. nur zur Strukturierung der Anweisungssyntax, aber nicht zur Implementierung benötigt wird, lässt sich bei der Operandenübergabe an das Programm unterdrücken (siehe ADD-OPERAND...,PRESENCE=*EXTERNAL-ONLY).

Andererseits lässt sich ein Operand, für den es nur einen einzigen zulässigen Wert gibt, so definieren, dass er zwar an das Programm übergeben wird, aber nicht in der Anweisungssyntax erscheint (siehe ADD-OPERAND...,PRESENCE=*INTERNAL-ONLY). Steht dieser Operand als einziger Operand in einer Struktur, so ist auch die Struktur in der Anweisungssyntax unsichtbar.

Operandenwert definieren

Beim Definieren eines Operandenwertes bestimmen Sie, wie SDF den Wert in den Übergabebereich schreibt. Wenn Sie die Default-Werte der Anweisung ADD-VALUE benutzen, so schreibt SDF einen eingegebenen Wert unverändert in den Übergabebereich.

Mit ADD-VALUE...,VALUE=<c-string>(...,OUTPUT=...,...),... können Sie festlegen, dass SDF definierte Einzelwerte vor der Übergabe an das Programm in andere Werte umwandelt oder deren Übergabe unterdrückt. Beispielsweise können Sie festlegen, dass SDF statt des für die Eingabe definierten Werts ’YES’ den Wert ’ISD’ an das Programm übergibt (siehe "Beispiel 1: Kommando zum Assemblieren").

Den Default-Wert eines Operanden, der mit ADD-OPERAND...,OVERWRITE-POSSIBLE= *YES definiert ist, kann Ihr Programm durch einen anderen Wert (Innen-Default) so ersetzen, dass im geführten Dialog der Innendefaultwert im Operandenfragebogen sichtbar ist (siehe Operand DEFAULT bei den Makros CMDCST, CMDRST und CMDTST).

Einen eingegebenen Operandenwert kann Ihr Programm durch einen anderen Wert ersetzen, wenn der zu ersetzende Wert mit ADD-VALUE...,VALUE=<c-string> (...,OVERWRITE-POSSIBLE=*YES),... definiert ist. Dabei ist Folgendes zu beachten:

  • Der Innen-Default-Wert muss durch einen mit ADD-VALUE definierten Operandenwert abgedeckt sein.

  • Je Operand kann nur maximal ein Innen-Default-Wert bestimmt werden. Allerdings kann mehreren Eingabealternativen eines Operanden derselbe Innen-Default-Wert zugeordnet werden.

  • Ist einer Eingabealternative ein Innen-Default-Wert zugeordnet und hängt an einer anderen Eingabealternative eine Struktur, in der ebenfalls eine Innen-Defaultierung erfolgen soll, so erfordert das, dass die Struktur im Übergabebereich (und damit auch in der Umsetzbeschreibung für Innen-Default-Wert) linearisiert ist.

  • In alternativen Strukturen ist Innen-Defaultierung nur möglich, wenn die Strukturen im Übergabebereich linearisiert sind (eine der alternativen Strukturen braucht nicht linearisiert zu sein).

  • Stehen die zu defaultierenden Operanden in einer Struktur, deren Einleiter mit LIST-ALLOWED=*YES definiert ist (siehe ADD-VALUE), so kann folgender Fall eintreten: Die Umsetzbeschreibung enthält mehrere Listenelemente, an denen eine Struktur mit zu defaultierenden Operanden hängt. Auf der anderen Seite gibt der Benutzer ebenfalls mehrere Listenelemente ein, an denen eine Struktur mit zu defaultierenden Operanden hängt. SDF versucht zunächst, die vom Benutzer eingegebenen und die in der Umsetzbeschreibung angegebenen Strukturen einander über den Wert des Struktureinleiters zuzuordnen.
    Ist über den struktureinleitenden Wert keine eindeutige Zuordnung möglich, weil keiner der eingegebenen Werte mit denen in der Umsetzbeschreibung übereinstimmt oder weil der Benutzer den übereinstimmenden Wert mehrfach eingegeben hat, so erfolgt die Zuordnung über die Position des Struktureinleiters in der Liste.

Normalerweise können Sie bei der Definition einer Anweisung weitgehend die Default-Werte der ADD-Anweisungen benutzen. Diese Anweisungen bieten Ihnen aber auch viele Möglichkeiten, die Anweisungsdefinition auf Ihre ganz speziellen Erfordernisse auszurichten. Einzelheiten dazu finden Sie in der Beschreibung der ADD-Anweisungen.