Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Format des normierten Übergabebereiches bis SDF V4.0

&pagelevel(4)&pagelevel

Der normierte Übergabebereich beginnt auf Wortgrenze. In Byte 0 bis 19 liegt das Kopffeld. Es enthält u.a. den internen Anweisungsnamen (siehe ADD-STMT ...,INTERNAL-NAME=...). Ab Byte 20 beginnt das Array für anweisungsglobale Operanden, d.h. für Operanden, die mit RESULT-OPERAND-LEVEL=1 definiert sind (siehe ADD-OPERAND). In ihm steht für jeden dieser Operanden eine sechs Byte lange Beschreibung. Die Operandenbeschreibungen sind in der Reihenfolge angeordnet, die sich aus den in der Anweisungsdefinition festgelegten Operandenpositionen ergibt (siehe ADD-OPERAND ..., RESULT-OPERAND-NAME=*POSITION(POSITION=<integer>)). Jede Operandenbeschreibung enthält u.a. die Absolutadresse, unter der der zugehörige Operandenwert bzw. die Beschreibung der zugehörigen Liste oder nichtlinearisierten Struktur im Übergabebereich abgelegt ist. In der Beschreibung einer nichtlinearisierten Struktur steht ein Ope-randen-Array, das die in der Struktur enthaltenen Operanden beschreibt. Es ist genauso aufgebaut, wie das Array für die anweisungsglobalen Operanden.

Im einfachsten Fall hat ein Operand lediglich einen einfachen Wert (Bild 8 (Aufbau des normierten Übergabebereichs) ohne Standardheader, "Aufbau des normierten Übergabebereichs").

Leitet der Operandenwert eine Struktur ein (Bild 9 (Aufbau des normierten Übergabebereichs) ohne Standardheader, "Aufbau des normierten Übergabebereichs"), so gibt es für ihn eine Strukturbeschreibung. Diese enthält ein Operanden-Array mit Beschreibungen für alle Operanden der Struktur sowie für die Operanden aus linearisierten Unterstrukturen. Die Operandenbeschreibungen sind in der Reihenfolge angeordnet, die sich aus den in der Anweisungsdefinition festgelegten strukturrelativen Operandenpositionen ergibt (siehe ADD-OPERAND ...,RESULT-OPERAND-NAME=*POSITION(POSITION= <integer>)). Die zu den Operanden der Struktur gehörenden Operandenwerte können eine weitere Struktur einleiten und/oder aus einer Liste von Werten bestehen.

Von Operanden, die mit ADD-OPERAND...,LIST-POSSIBLE=*YES(...,FORM=*NORMAL) definiert sind, werden die Werte in der in Bild 10 (Aufbau des normierten Übergabebereichs) ("Aufbau des normierten Übergabebereichs", ohne Standardheader) gezeigten Form übergeben. An einem Listenelement kann eine Struktur hängen. In diesem Fall ist „Wert des Listenelements“ eine Strukturbeschreibung.

Kopffeld des normierten Übergabebereichs

Byte

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an
Programm

fehlerhafte
Anweisung
zurück an SDF

Default-
Werte an
SDF

0 bis 1

Länge des Übergabebereichs
(maximal 65536 Byte)

Programm

unverändert

Programm

2 bis 9

interner Anweisungsname

SDF

unverändert

Programm

10 bis 17

reserviert

---

18 bis 19

Anzahl der Positionen im
Operanden-Array

SDF

unverändert

Programm

Der interne Anweisungsname und die Anzahl der Positionen in dem Operanden-Array sind in der Syntaxdatei in der Anweisungsdefinition abgelegt (siehe ADD-STMT...,INTERNAL-NAME=...,MAX-STRUC-OPERAND=...).

Operandenbeschreibung
Das Operanden-Array und die in ihm stehenden Beschreibungen für die Operanden einer Struktur sind genau so aufgebaut wie bei den anweisungsglobalen Operanden.

Byte

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an
Programm

fehlerhafte
Anweisung
zurück an SDF

Default-
Werte an
SDF

0 bis 1
0
1

Wertbeschreibung
Zusatzinformation
Typbeschreibung


siehe unten
SDF


siehe unten
unverändert


siehe unten
Programm 1)

2 bis 5

Absolutadresse (unaligned
abgelegt) des zu dem Operanden
gehörenden Werts bzw. bei Strukturen
oder Listen der weiteren
Beschreibung

SDF

unverändert

Programm 1)

1)Angabe nur für Operanden, zu denen umzusetzende Operandenwerte gehören, d.h. wenn Bit 0 der Zusatzinformation gesetzt ist.

Zusatzinformation
Die Zusatzinformation steht im ersten Byte der Wertbeschreibung. Die folgenden Angaben über die Zusatzinformation gelten unabghängig davon, ob die Zusatzinformation in einer Operandenbeschreibung, im Kopffeld einer Strukturbeschreibung, in der Beschreibung eines Listenelements oder in einer OR-Listenbeschreibung vorkommt.

Bit

Wert

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an

Programm

fehlerhafte
Anweisung
zurück an SDF

Default-Werte
an SDF

0

0

Wert ist nicht vorhanden

SDF 1)

unverändert

Programm 2)

0

1

Wert ist vorhanden

SDF

unverändert

Programm 2)

1

0

Wert ist änderbar

-

Programm 3)

-

1

1

Wert ist nicht änderbar

-

Programm 3)

-

2

0

Wert ist nicht fehlerhaft

-

Programm

-

2

1

Wert ist fehlerhaft

-

Programm

-

3

0

Wert soll nicht als Default eingesetzt werden

--

Programm

3

1

Wert soll als Default eingesetzt werden

--

Programm

4 bis 7


reserviert

--

Programm

1)z.B. Werte zu Operanden, die mit ADD-OPERAND...,PRESENCE=*EXTERNAL-ONLY definiert sind, oder Werte in nicht angesprochenen Strukturen.
2)0 für Operanden, zu denen weder umzusetzende Operandenwerte gehören noch Strukturen, die Operanden mit umzusetzenden Werten enthalten.
1 für Operanden, zu denen entweder umzusetzende Operandenwerte gehören oder Strukturen, die Operanden mit umzusetzenden Werten enthalten.
3)Alle Listenwerte, die nach dem ersten änderbaren Listenwert kommen, betrachtet SDF unabhängig davon, wie Bit 1 gesetzt ist, als änderbar. Dadurch werden schon bearbeitete Listenelemente gegen Überschreiben geschützt.

Typbeschreibung
Die Typbeschreibung steht im zweiten Byte der Wertbeschreibung. Die Angaben über die Typbeschreibung gelten unabhängig davon, ob die Typbeschreibung in einer Operandenbeschreibung, im Kopffeld einer Strukturbeschreibung, in der Beschreibung eines Listenelements oder in einer OR-Listenbeschreibung vorkommt.

Strukturbeschreibungen können durch ein Programm eingegeben werden, um eigene Default-Werte anzugeben. Die Eingabe der Default-Werte ist möglich:

  • im internen Format (wie beim Operanden OUTPUT der SDF-A-Anweisung ADD-VALUE) oder

  • im externen Format als Zeichenfolge analog der Operandenbeschreibung. Dabei muss der Hilfsdatentyp <input-text> benutzt werden. Der Wert wird dann so analysiert, als ob er über die Benutzerschnittstelle eingegeben worden wäre.

Wert (dezimal)

Bedeutung

1

Kommandorest (Command-Rest)

2

Ganzzahl (Integer)

4

X-Zeichenkette (X-String)

5

C-Zeichenkette (C-String)

6

Name (Name)

7

alphanumerischer Name (Alphanumeric-Name)

8

strukturierter Name (Structured-Name)

9

Marke (Label)

11

Dateiname (Filename)

12

teilqualifizierter Dateiname (Partial-Filename)

13

Uhrzeit (Time)

14

Datum (Date)

15

zusammengesetzter Name (Composed-Name)

16

Text (Text)

17

Katalog-Kennung (Cat-Id)

18

Eingabe-Text (Input-Text)

19

Struktur

20

Liste

21

OR-Liste

22

Schlüsselwort (Keyword)

23

reserviert für internen Gebrauch

24

VSN

25

X-Text (X-Text)

26

Festpunktzahl (Fixed)

27

Gerät (Device)

28

Produkt-Version (Product-Version)

29

POSIX-Pfadname (Posix-Pathname)

35

POSIX-Dateiname (Posix-Filename)

36Long-integer

Kopffeld einer Strukturbeschreibung

Byte

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an
Programm

fehlerhafte
Anweisung
zurück an SDF

Default-Werte
an SDF

0 bis 1

Anzahl der Positionen im Ope-
randen-Array

SDF

unverändert

Programm

2 bis 3

2
3

Wertbeschreibung für den
struktureinleitenden Operandenwert
Zusatzinformation
Typbeschreibung



-
SDF



siehe "Format des normierten Übergabebereiches bis SDF V4.0"
unverändert



siehe "Format des normierten Übergabebereiches bis SDF V4.0"
Programm

4 bis 7

Absolutadresse (unaligned
abgelegt) des struktureinleitenden
Operandenwerts

SDF

unverändert

Programm

Die Anzahl der Positionen in dem Operanden-Array ist in der Syntaxdatei in der Anweisungsdefinition abgelegt (siehe ADD-VALUE...,STRUCTURE=YES(..,MAX-STRUC-OPERAND=...).

Das zu der Struktur gehörende Operanden-Array beginnt unmittelbar hinter dem Kopffeld. Es ist genau so aufgebaut wie das für anweisungsglobale Operanden.

Listenelement

Byte

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an
Programm

fehlerhafte
Anweisung
zurück an SDF

Default-Werte
an SDF

0 bis 1
0
1

Wertbeschreibung
Zusatzinformation
Typbeschreibung


siehe oben
SDF


siehe "Format des normierten Übergabebereiches bis SDF V4.0"
unverändert


siehe "Format des normierten Übergabebereiches bis SDF V4.0"
Programm 1)

2 bis 5

Absolutadresse (unaligned
abgelegt) des zu dem Listenelement
gehörenden Werts bzw. bei
Strukturen der weiteren
Beschreibung

SDF

unverändert

Programm 1)

6 bis 9

Absolutadresse (unaligned
abgelegt) des nächsten Listenelements

SDF

unverändert

Programm 1)

1)Angabe nur für Operanden, zu denen umzusetzende Operandenwerte gehören, d.h. wenn Bit 0 der Zusatzinformation gesetzt ist.

Im letzten Element der Liste hat die „Absolutadresse des nächsten Listenelements“ den Wert 0.

Eine OR-Liste besteht nur aus einem Element. Bei diesem Element entfällt die „Absolutadresse des nächsten Listenelements“.

Für einen Operanden, der mit LIST-POSSIBLE=*YES(FORM=*NORMAL) definiert ist, muss die Anzahl der Listenelemente begrenzt werden (LIMIT=...), damit es nicht zum Überlauf des normierten Übergabebereiches kommt. Die Größe einer Liste im normierten Übergabebereich kann nach folgender Formel berechnet werden:

n * (10 + 2 + l)


wobei:

 n

l

die Anzahl der Listenelemente und

die Länge eines einzelnen Listenelementes (aufgerundet auf ein Vielfaches von 2) ist.


Beispiel:

ADD-OPERAND ... LIST-POSSIBLE=*YES(LIMIT=100,FORM=*NORMAL)

  ADD-VALUE *NAME(1,8)

Eine so definierte Liste kann im normierten Übergabebereich bis zu 2000 Byte belegen (100 * (10 + 2 + 8) = 2000).

Ablage der Werte

Byte

Inhalt

Feldinhalt kommt im Fall ... von

analysierte
Anweisung an

Programm

fehlerhafte
Anweisung
zurück an SDF

Default-
Werte an
SDF

0 bis 1

Längenangabe

SDF

unverändert

Programm

2 bis ...

Wert

SDF

unverändert

Programm

Wie die Werte übergeben werden, hängt ab von der Definition in der Syntaxdatei (siehe ADD-VALUE...,OUTPUT=*NORMAL(...). Dabei gelten folgende Besonderheiten:

  • Ein Wert, der mit ADD-VALUE TYPE=*INTEGER(...,OUT-FORM=*BINARY) definiert ist, wird als 4-Byte-String mit Vorzeichen abgelegt.

  • Ein Wert, der mit ADD-VALUE TYPE=*TIME definiert ist, wird als 4-Byte-String mit 2 Bytes (binär) für Stunden und je ein Byte für Minuten und Sekunden abgelegt.