Bound program access |
---|
|
The address of the New Program Model parameter list received by the current invocation is returned.
This function cannot be used by procedures defined to be a program entry procedure. Otherwise, an instruction stream not valid (hex 2A1B) exception will be signalled during module creation.
Calls to procedures use the parameter list format shown below. The parameter list is required to be quadword aligned.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Operational descriptor list address |
| Char(16) | ||||||||
16 | 10 |
| Machine work area |
| Char(16) | ||||||||
32 | 20 |
| Arguments |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
The operational descriptor list address is used to pass the address of an operational descriptor to the current invocation. If an operational descriptor is provided by the caller, the machine will store the address in this field as a space pointer. If an operational descriptor is not provided, the contents of this field are undefined. (That is, the machines does not set this field to a special value to indicate the absence of an operational descriptor list address.) The Machine Interface does not define the layout of the operational descriptor list, and it is the MI program's responsibility to pass an operational descriptor list to a procedure which expects it.
The machine work area is reserved for use by the machine.
Arguments is a variable length field used to pass argument values to the current invocation. Even though the actual mechanism used by the machine to pass argument values is not visible at the Machine Interface, this field is large enough to accommodate all passed argument values, with each argument being aligned on its natural boundary. At most 400 arguments may be passed.
The rules for natural alignment are shown in Table 1. For
packed decimal arguments, the length in bytes is derived from the
number of digits, numberofDigits, using the following
formula: ((numberofDigits/2) + 1).
For zoned decimal separate leading sign and zoned decimal separate trailing sign arguments, the byte length is one
greater than the length in digits.
Table 1. Rules for natural alignment
Length in Bytes | Alignment |
---|---|
length = 1 | byte |
length = 2 | halfword |
length = 3, 4 | word |
length = 5, 6, 7, 8 | doubleword |
other lengths | quadword |