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 of the standardized transfer area up to SDF V4.0

&pagelevel(4)&pagelevel

The standardized transfer area begins on a word boundary. The header field is in bytes 0 through 19. It contains, amongst other things, the internal statement name (see ADD-STMT ...,INTERNAL-NAME=...). The array for operands valid for all statements, i.e. for operands defined with RESULT-OPERAND-LEVEL=1 (see ADD-OPERAND), begins with byte 20. It accommodates a 6-byte description for each of these operands. The operand descriptions are arranged in the order resulting from the operand positions established in the statement definition (see ADD-OPERAND ...,RESULT-OPERAND-NAME=*POSITION(POSITION=<integer>)). Each operand description contains, among other things, the absolute address where the associated operand value, or the description of the associated list or non-linearized structure, is stored in the transfer area. The description of a nonlinearized structure contains an operand array describing the operands contained in the structure. It has the same format as the array for the operands valid for all statements.

In the simplest case, an operand has only one simple value (Figure 8 without standard header).

If the operand value introduces a structure (Figure 9 without default header, "Format of the standardized transfer area"), there is a structure description for this value. This contains an operand array with descriptions for all operands of the structure, as well as for the operands from linearized substructures. The operand descriptions are arranged in the order resulting from the structureoriented operand positions established in the statement definition (see ADD-OPERAND...,RESULT-OPERAND-NAME=*POSITION (POSITION=<integer>)). The operand values corresponding to the operands of the structure may introduce further structures and/or consist of a list of values.

Values for operands defined with ADD-OPERAND ...,LIST-POSSIBLE=*YES (...,FORM=*NORMAL) are transferred in the form shown in Figure 10 ("Format of the standardized transfer area", without default header). A structure may be attached to a list element. In this case, “value of the list element” is a structure description.

Header field of a standardized transfer area

Byte

Contents

Source of field contents in case of

analyzed
statement to

program

errored
statement back
to SDF

default
values to
SDF

0 to 1

Length of the transfer area
(maximum 65536 bytes)

Program

unchanged

Program

2 to 9

Internal name of the statement

SDF

unchanged

Program

10 to 17

Reserved




18 to 19

Number of positions in the
operand array

SDF

unchanged

Program

The internal name of the statement and the number of positions in the operand array are stored in the syntax file in the statement definition
(see ADD-STMT...,INTERNAL-NAME=...,MAX-STRUC-OPERAND=...).

Description of operands

The operand array and the descriptions therein for the operands of a structure have exactly the same format as the one for the operands valid for all statements.

Byte

Contents

Source of field contents in case of

analyzed
statement to
program

errored
statement back
to SDF

default
values to
SDF

0 to 1

0

1

Value description

Additional information

Description of type


See below

SDF


See below

unchanged


See below

Program 1)

2 to 5

Absolute address (stored
unaligned) of the value assigned
to the operand or, in the case of
structures or lists, of the further
description

SDF

unchanged

Program 1)

1Entry only for operands for which there are values to be converted, i.e. when bit 0 of the additional information is set

Additional information

The additional information is contained in the first byte of the value description. The following specifications regarding the additional information apply regardless of whether the additional information appears in an operand description, in the header field of a structure description, in the description of a list element or in an OR list description.

Bit

Value

Meaning

Source of field contents in case of
analyzed
statement to
program
errored
statement back to
SDF
default values
to SDF
00Value not availableSDF1unchangedProgram2
01Value availableSDFunchangedProgram2
10Value changeable-Program3-
11Value not changeable-Program3-
20Value not errored-Program-
21Value errored-Program-
30Value is not to be used as
default value
--Program
31Value is to be used as
default value
--Program
4 to 7-Reserved--Program

For example: values for operands defined with ADD-OPERAND..., PRESENCE= *EXTERNAL-ONLY, or values in structures not referenced.
0 for operands for which there are neither operand values to be converted nor structures containing operands with values to be converted. 1 for operands for which there are either operand values to be converted or structures containing operands with values to be converted.
All list values coming after the first changeable list value are considered changeable by SDF, regardless of whether bit 1 is set. In this way, list elements that have already been processed are protected against being overwritten.

Type description

The type description is contained in the second byte of the value description. The following specifications regarding the type description apply regardless of whether the type description appears in an operand description, in the header field of a structure description, in the description of a list element or in an OR list description.

Structure descriptions can be entered by a program in order to specify custom defaults. Defaults can be entered:

  • in the internal format (like the OUTPUT operand in the SDF-A statement ADD-VALUE) or

  • in the external format as a string analogous to the operand description. The auxiliary data type <input-text> must be used, and the value is analyzed as if it had been entered via the user interface.

Value (decimal)

Meaning

1

Command rest

2

Integer

4

X-string

5

C-string

6

Name

7

Alphanumeric name

8

Structured name

9

Label

11

Fully qualified file name

12

Partially qualified file name

13

Time

14

Date

15

Composed name

16

Text

17

Catalog identifier (cat-id)

18

Input text

19

Structure

20

List

21

OR list

22

Keyword

23

Reserved for internal use

24

VSN

25

X-text

26

Fixed-point number

27

Device

28

Product version

29

POSIX pathname

35

POSIX file name

36Long-integer

Header field of a structure description

Byte

Contents

Source of field contents in case of

analyzed
statement to

program

errored
statement back
to SDF

default values
to SDF

0 to 1

Number of positions in the
operand array

SDF

unchanged

Program

2 to 3


2

3

Value description for the operand

value introducing the structure

Additional information

Type description



-

SDF



See above

unchanged



See above

Program

4 to 7

Absolute address (stored
unaligned) of the operand value
introducing the structure

SDF

unchanged

Program

The number of positions in the operand array is stored in the statement definition in the syntax file (see ADD-VALUE...,STRUCTURE=*YES(..,MAX-STRUC-OPERAND=...).

The operand array belonging to the structure begins immediately after the header field.It has exactly the same format as the one for operands valid for all statements.

List element

Byte

Contents

Source of field contents in case of

analyzed
statement to

program

errored
statement back
to SDF

default values
to SDF

0 to 1

0

1

Value description

Additional information

Description of type


See above

SDF


See above

unchanged


See above

Program1)

2 to 5

Absolute address (stored
unaligned) of the value assigned
to the list element or, in the case
of structures, of the further
description

SDF

unchanged

Program1)

6 to 9

Absolute address (stored
unaligned) of the next list element

SDF

unchanged

Program1)

1Specified only for operands with operand values to be converted, i.e. when bit 0 of the additional information is set

In the last element of the list, the “absolute address of the next list element” has the value 0.

An OR-list consists of a single element. The “absolute address of the next list element” is redundant in this case.

For an operand defined with LIST-POSSIBLE=*YES(FORM=*NORMAL), the number of list elements must be restricted (LIMIT=...) so as to prevent an overflow in the standardized transfer area. The size of a list in the standardized transfer area can be calculated by using the following formula:

n * (10 + 2 + l)


where:

n

l

is the number of list elements, and

is the length of a single list element (rounded to a multiple of 2).


Example:

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

  ADD-VALUE *NAME(1,8)

A list that is defined in this way can occupy up to 2000 bytes in the standardized transfer area:
(100 * (10 + 2 + 8) = 2000).

How values are stored

Byte

Contents

Source of field contents in case of

analyzed
statement to

program

errored
statement back
to SDF

default values
to SDF

0 to 1

Length specifications

SDF

unchanged

Program

2 to...

Value

SDF

unchanged

Program

How the values are passed depends on the definition in the syntax file (see ADD-VALUE..., OUTPUT=*NORMAL(...). In this regard, the following points apply:

  • A value defined with ADD-VALUE TYPE=*INTEGER(...,OUT-FORM=*BINARY) is stored as a signed four-byte string.

  • A value defined with ADD-VALUE TYPE=*TIME is stored as a four-byte string, with 2 bytes (binary) for the hours and one byte each for the minutes and seconds.