Op Code (Hex) | Operand 1 | Operand 2 | ||
---|---|---|---|---|
004A | Receiver | Attributes |
Operand 1: Data pointer.
Operand 2: Character(7) scalar.
The value of the character scalar specified by operand 2 is interpreted as an encoded representation of an attribute set that is assigned to the attribute portion of the data pointer specified by operand 1. The addressability portion of the data pointer is not modified. If operand 1 contains an initialized but unresolved data pointer, the data pointer is resolved in order to establish the addressability in the pointer. The attributes specified by the instruction are then assigned to the data pointer. If operand 1 does not contain a data pointer at the initiation of the instruction's execution, a pointer does not exist (hex 2401) exception or pointer type invalid (hex 2402) exception is signaled.
The format of the attribute set is as follows:
Offset | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||||||||||||||||||||||||
0 | 0 |
| Data pointer attributes |
| Char(7) | ||||||||||||||||||||||||||||||
0 | 0 |
| Scalar type |
| Char(1) | ||||||||||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Scalar length |
| Bin(2) | ||||||||||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||||||||||
|
|
|
If binary:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (only 2, 4 or 8 for binary) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||||||||||
|
|
|
If binary floating-point:
| ||||||||||||||||||||||||||||||||
1 | 1 | Length (only 4 or 8 for binary floating-point) | Bits 0-15 | ||||||||||||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||||||||||
|
|
|
If zoned decimal or packed decimal:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Fractional digits (F) |
| Bits 0-7 | ||||||||||||||||||||||||||||||
1 | 1 |
| Total digits (T) |
| Bits 8-15 | ||||||||||||||||||||||||||||||
|
|
|
(where
1 <= T <= 63,
0 <= F <= T)
If character:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (L, where 1 <= L <= 32,767) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
| ||||||||||||||||||||||||||||||||
|
|
|
If Onlyns:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (L, where 1 <= L <= 16,383) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
L is the number of double-byte characters
If Onlys:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (L, where 2 <= L <= 32,766) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
If Either:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (L, where 1 <= L <= 32,766) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
If Open:
| ||||||||||||||||||||||||||||||||
1 | 1 |
| Length (L, where 1 <= L <= 32,766) |
| Bits 0-15 | ||||||||||||||||||||||||||||||
|
|
|
If decimal floating-point:
| ||||||||||||||||||||||||||||||||
1 | 1 | Length (only 4, 8, or 16 for decimal floating-point) | Bits 0-15 | ||||||||||||||||||||||||||||||||
3 | 3 |
| Reserved (binary 0) |
| Bin(4) | ||||||||||||||||||||||||||||||
7 | 7 |
| --- End --- |
|
|
Support for usage of a data pointer describing an Onlyns, Onlys, Either, or Open scalar value is limited to the Copy Extended Characters Left Adjusted With Pad instruction (CPYECLAP). Usage of such a data pointer defined value on any other instruction is not supported and results in the signaling of the scalar type invalid (hex 3201) exception.
06 Addressing
08 Argument/Parameter
10 Damage Encountered
1C Machine-Dependent
20 Machine Support
22 Object Access
24 Pointer Specification
2E Resource Control Limit
32 Scalar Specification
36 Space Management
44 Protection Violation