Op Code (Hex) | Operand 1 | Operand 2 | ||
---|---|---|---|---|
0526 | Receiver | Selection template |
Operand 2: Character scalar.
Bound program access |
---|
|
This instruction materializes the attributes of the non-bound program instruction that are selected in operand 2 and places them in the receiver indicated by operand 1.
Operand 2 is a 16-byte selection template.
Only the first 16 bytes are
used. Any excess bytes are ignored.
Operand 2 has the following format:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Selection template |
| Char(16) | ||||||||
0 | 0 |
| Invocation number |
| Bin(2) | ||||||||
2 | 2 |
| Instruction number |
| Bin(4) | ||||||||
6 | 6 |
| Reserved (binary 0) |
| Char(10) | ||||||||
16 | 10 |
| --- End --- |
|
|
The instruction number specifies the instruction in the specified program invocation that is to be materialized.
Operand 1
addresses a 16-byte aligned template
where the materialized data is placed. The format of the data is as
follows:
Offset | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||||||
0 | 0 |
| Materialization size specification |
| Char(8) | ||||||||||||||||||||||
0 | 0 |
| Number of bytes provided by the user |
| Bin(4) | ||||||||||||||||||||||
4 | 4 |
| Number of bytes available to be materialized |
| Bin(4) | ||||||||||||||||||||||
8 | 8 |
| Object identification |
| Char(32) | ||||||||||||||||||||||
8 | 8 |
| Program type |
| Char(1) | ||||||||||||||||||||||
9 | 9 |
| Program subtype |
| Char(1) | ||||||||||||||||||||||
10 | A |
| Program name |
| Char(30) | ||||||||||||||||||||||
40 | 28 |
| Offset to instruction attributes |
| Bin(4) | ||||||||||||||||||||||
44 | 2C |
| Reserved (binary 0) |
| Char(8) | ||||||||||||||||||||||
52 | 34 |
| Instruction attributes |
| Char(*) | ||||||||||||||||||||||
52 | 34 |
| Instruction type |
| Char(2) | ||||||||||||||||||||||
52 | 34 |
| Instruction version |
| Bits 0-3 | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
52 | 34 |
| Reserved (binary 0) |
| Bits 4-15 | ||||||||||||||||||||||
54 | 36 |
| Instruction length as input to Create Program |
| Bin(2) | ||||||||||||||||||||||
56 | 38 |
| Offset to instruction form specified as input to Create Program |
| Bin(4) | ||||||||||||||||||||||
60 | 3C |
| Reserved (binary 0) |
| Char(4) | ||||||||||||||||||||||
64 | 40 |
| Number of instruction operands |
| Bin(2) | ||||||||||||||||||||||
66 | 42 |
| Operand attributes offsets |
| Char(*) | ||||||||||||||||||||||
66 | 42 |
| An offset is materialized for each of the operands of the instruction specifying the offset to the attributes for the operand |
| [*] Bin(4) | ||||||||||||||||||||||
* | * |
| Instruction form specified as input to Create Program |
| Char(*) | ||||||||||||||||||||||
* | * |
| Instruction operation code |
| Char(2) | ||||||||||||||||||||||
* | * |
| Optional extender field and operand fields |
| Char(*) | ||||||||||||||||||||||
* | * |
| Operand attributes |
| Char(*) | ||||||||||||||||||||||
|
|
|
A set of attributes following this format is materialized for each of
the operands of the instruction. Compound operand references result in
materialization of only one set of attributes for the operand which
describe the substring or array element as is appropriate. See the
specific format described below for each operand type.
| ||||||||||||||||||||||||
* | * |
| Operand type |
| Bin(2) | ||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||
* | * |
| Operand specific attributes |
| Char(*) | ||||||||||||||||||||||
|
|
|
See descriptions below for detailed formats. Nothing is provided for
null operands.
| ||||||||||||||||||||||||
* | * |
| --- End --- |
|
|
Offset | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||||
0 | 0 |
| Data object |
| Char(32) | ||||||||||||||||||||
|
|
|
For a data object, the following operand attributes are materialized.
| ||||||||||||||||||||||
0 | 0 |
| Operand type = 1 |
| Bin(2) | ||||||||||||||||||||
2 | 2 |
| Data object specific attributes |
| Char(7) | ||||||||||||||||||||
2 | 2 |
| Element type |
| Char(1) | ||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||
3 | 3 |
| Element length |
| Char(2) | ||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||
|
|
|
If binary, or character, or floating-point:
| ||||||||||||||||||||||
3 | 3 |
| Length |
| Bits 0-15 | ||||||||||||||||||||
|
|
|
If zoned decimal or packed decimal:
| ||||||||||||||||||||||
3 | 3 |
| Fractional digits |
| Bits 0-7 | ||||||||||||||||||||
3 | 3 |
| Total digits |
| Bits 8-15 | ||||||||||||||||||||
|
|
|
If pointer:
| ||||||||||||||||||||||
3 | 3 |
| Length = 16 |
| Bits 0-15 | ||||||||||||||||||||
5 | 5 |
| Array size |
| Bin(4) | ||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||
9 | 9 |
| Reserved (binary 0) |
| Char(6) | ||||||||||||||||||||
15 | F |
| Data object addressability |
| Char(17) | ||||||||||||||||||||
15 | F |
| Addressability indicator |
| Char(1) | ||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||
16 | 10 |
| Space pointer to the object if addressability could be established |
| Space pointer | ||||||||||||||||||||
32 | 20 |
| --- End --- |
|
|
Offset | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||
0 | 0 |
| Constant data object |
| Char(*) | ||||||||||||||||||
|
|
|
For a constant data object,
the following operand attributes
are materialized (immediate
operands as constants, signed
immediates as binary, and
unsigned immediates as character).
| ||||||||||||||||||||
0 | 0 |
| Operand type = 2 |
| Bin(2) | ||||||||||||||||||
2 | 2 |
| Constant specific attributes |
| Char(7) | ||||||||||||||||||
2 | 2 |
| Element type |
| Char(1) | ||||||||||||||||||
|
|
|
| ||||||||||||||||||||
3 | 3 |
| Element length |
| Char(2) | ||||||||||||||||||
|
|
|
| ||||||||||||||||||||
|
|
|
If binary, or character, or floating-point:
| ||||||||||||||||||||
3 | 3 |
| Length |
| Bits 0-15 | ||||||||||||||||||
|
|
|
If zoned decimal or packed decimal:
| ||||||||||||||||||||
3 | 3 |
| Fractional digits |
| Bits 0-7 | ||||||||||||||||||
3 | 3 |
| Total digits |
| Bits 8-15 | ||||||||||||||||||
5 | 5 |
| Reserved (binary 0) |
| Bin(4) | ||||||||||||||||||
9 | 9 |
| Reserved (binary 0) |
| Char(7) | ||||||||||||||||||
16 | 10 |
| Constant value |
| Char(*) | ||||||||||||||||||
* | * |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Instruction references |
| Char(*) | ||||||||
|
|
|
For instruction references, either
through instruction definition
lists or immediate operands,
the following operand attributes
are materialized.
| ||||||||||
0 | 0 |
| Operand type = 3 |
| Bin(2) | ||||||||
2 | 2 |
| Number of instruction reference elements |
| Bin(2) | ||||||||
|
|
|
| ||||||||||
4 | 4 |
| Reserved (binary 0) |
| Char(12) | ||||||||
16 | 10 |
| Reference list |
| Char(*) | ||||||||
|
|
|
The instruction number of
each instruction reference
is materialized in the order
in which they are defined.
| ||||||||||
* | * |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Argument list |
| Char(*) | ||||||||
|
|
|
For an argument list, the
following operand attributes
are materialized.
| ||||||||||
0 | 0 |
| Operand type = 4 |
| Bin(2) | ||||||||
2 | 2 |
| Argument list specific attributes |
| Char(4) | ||||||||
2 | 2 |
| Actual number of list entries |
| Bin(2) | ||||||||
4 | 4 |
| Maximum number of list entries |
| Bin(2) | ||||||||
6 | 6 |
| Reserved (binary 0) |
| Char(10) | ||||||||
16 | 10 |
| Addressability to list entries |
| Char(*) | ||||||||
16 | 10 |
| Space pointer to each list entry for the number of actual list entries |
| [*] Space pointer | ||||||||
|
|
|
A
value of all zeros is
materialized if addressability
could not be established.
| ||||||||||
* | * |
| --- End --- |
|
|
Offset | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||
0 | 0 |
| Exception description |
| Char(48) | ||||||||||||||||||
|
|
|
For an exception description,
the following operand attributes
are materialized.
| ||||||||||||||||||||
0 | 0 |
| Operand type = 5 |
| Bin(2) | ||||||||||||||||||
2 | 2 |
| Reserved (binary 0) |
| Char(10) | ||||||||||||||||||
12 | C |
| Control flags |
| Char(2) | ||||||||||||||||||
12 | C |
| Exception handling action |
| Bits 0-2 | ||||||||||||||||||
|
|
|
| ||||||||||||||||||||
12 | C |
| Reserved (binary 0) |
| Bits 3-15 | ||||||||||||||||||
14 | E |
| Compare value length |
| Bin(2) | ||||||||||||||||||
16 | 10 |
| Compare value |
| Char(32) | ||||||||||||||||||
48 | 30 |
| --- End --- |
|
|
Offset | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||
0 | 0 |
| Space pointer machine object |
| Char(32) | ||||||||||||
|
|
|
For a space pointer machine object,
the following operand attributes
are materialized.
| ||||||||||||||
0 | 0 |
| Operand type = 7 |
| Bin(2) | ||||||||||||
2 | 2 |
| Reserved (binary 0) |
| Char(13) | ||||||||||||
15 | F |
| Pointer addressability |
| Char(17) | ||||||||||||
15 | F |
| Pointer value indicator |
| Char(1) | ||||||||||||
|
|
|
| ||||||||||||||
16 | 10 |
| Space pointer data object containing the space pointer machine object value if addressability value is valid |
| Space pointer | ||||||||||||
32 | 20 |
| --- End --- |
|
|
The first 4 bytes of the materialization identify the total number of bytes provided by the user for use by the instruction. This value is supplied as input to the instruction and is not modified by the instruction. A value of less than 8 causes the materialization length invalid (hex 3803) exception to be signaled.
The second 4 bytes of the materialization identify the total number of bytes available to be materialized. The instruction materializes as many bytes as can be contained in the area specified as the receiver. If the byte area identified by the receiver is greater than that required to contain the information requested, then excess bytes are unchanged.
The materialization available for an instruction depends on the execution status of the program that the instruction is in. If the program has not executed to the point of the instruction, little or no meaningful information about the instruction can be materialized. If the program executes the instruction multiple times, the materialization will vary with each execution.
No exceptions are signaled in the event that the receiver contains insufficient area for the materialization, other than the materialization length invalid (hex 3803) exception described previously.
This instruction is valid only when the program instruction to be materialized is from a non-bound program. If the invocation indicated by operand 2 is for any other invocation type, then an instruction not valid for invocation type (hex 2C1C) exception is signaled.
06 Addressing
08 Argument/Parameter
10 Damage Encountered
1C Machine-Dependent
1E Machine Observation
20 Machine Support
22 Object Access
24 Pointer Specification
2C Program Execution
2E Resource Control Limit
32 Scalar Specification
36 Space Management
38 Template Specification
44 Protection Violation