XPI syntax

The XPI functions use special syntax. The description of each function defines only the options that are specific to that call.

Options that are applicable to all function calls are described in Making an XPI call. The following argument types are used:
name1, name2,….
Each of these refers to the name of a field of the given size in bytes. “name1” means that the name you specify should be that of a 1-byte field.
literalconst
A number in the form of a literal, for example B'00000000', X'FF', X'FCF4', "0", or an equate symbol with a similar value.
expression
A valid assembler-language expression: a decimal integer, or any arithmetic expression (including symbolic values) valid in assembler language; for example:
20; L'AREA; L'AREA+10; L'AREA+X'22'; SYMB/3+20 .
(Rn)
A register reference. The parentheses shown here are required in addition to those that surround the argument. For example: OPTION((R5)).
block-descriptor
Represents a source of both the data address and the data length fields. A block-descriptor can be either a single value or a double value. The following is the single-value form:
 
OPTION(blkdname)
 
blkdname
The name of a block-descriptor. A pair of contiguous fullwords, in which the first word contains the address of the data, and the second word contains the length in bytes of the data, as a fullword binary value. Register notation is not accepted for this single-value form.
The following is the double-value form:
 
OPTION(addr,len)
 
addr
The data address as {namea | (Ra) | aliteral}:
namea
The name of a location containing the data address
(Ra)
A register containing the data address
aliteral
An address constant literal; for example: A(data).
len
The data length as {namel | (Rn) | expression}:
namel
The name of a location containing a binary fullword giving the data length in bytes
(Rn)
A register, the contents of which specify in fullword binary the number of bytes of data
expression
A decimal integer, or any arithmetic expression, including symbolic values, valid in assembler language; for example:
L'AREA ; L'AREA+10 ; L'AREA+X'22' ; SYMB/3+20 .
buffer-descriptor
Represents a source of both the data address and the maximum data length fields. Parts of the buffer-descriptor are also reserved to act as receiving fields for output information. A buffer-descriptor can be either a single value or a multiple value. The following is the single-value form:
 
OPTION(bufdname)
 
bufdname
The name of a buffer-descriptor. A group of up to four contiguous fullwords, that represent multiple components of the buffer-descriptor. The fields are interpreted as follows:
  • The first word contains the address of the data (input).
  • The second word is reserved to receive the current length in bytes of the data, as a fullword binary value (output). If three components are specified, the third component maps to this word. If only two components are specified in the buffer-descriptor, the second component maps to this word.
  • The third word contains the maximum length in bytes of the data, as a fullword binary value (input). If three components are specified, the second component maps to this word. If only two components are specified in the buffer-descriptor, this field is not used.
  • The fourth word is reserved for use by the XPI.
Register notation is not accepted for this single-value form.
The following is the multiple-value form:
 
OPTION(addr,maxlen,*)
 
addr
The data address as {namea | (Ra) | aliteral}:
namea
The name of a location containing the data address
(Ra)
A register containing the data address
aliteral
An address constant literal, for example, A(data).
maxlen
The maximum data length as {namel | (Rn) | expression}:
namel
The name of a location containing a binary fullword giving the maximum data length in bytes
(Rn)
A register, the contents of which specify in fullword binary the maximum number of bytes of data
expression
A decimal integer, or any arithmetic expression, including symbolic values, valid in assembler language; for example:
L'AREA ; L'AREA+10 ; L'AREA+X'22' ; SYMB/3+20 .
*
A required parameter to indicate that the parameter list is to be used for the reserved fields. If this parameter is coded, then the required value must be taken from the _N component returned in the buffer-descriptor.