Op Code (Hex) | Operand 1 | Operand 2 | Operand 3 | |
---|---|---|---|---|
109F | Receiver | Source | Table |
Operand 2: Character scalar.
Operand 3: Character scalar.
The source characters are translated under control of the translate table and placed in the receiver. The operation begins with the leftmost character of operand 2 and proceeds character-by-character, left-to-right.
Characters are translated as follows:
If operand 1 overlaps with operand 2 and/or 3, the overlapped operands are updated for every character translated. The operation proceeds from left to right, one character at a time. The following example shows the results of an overlapped operands translate operation. Operands 1, 2, and 3 have the same coincident character string with a value of hex 050403020103.
Hex 050403020103-Initial value
Hex 030403020103-After the 1st character is translated
Hex 030103020103-After the 2nd character is translated
Hex 030102020103-After the 3rd character is translated
Hex 030102020103-After the 4th character is translated
Hex 030102020103-After the 5th character is translated
Hex 030102020102-After the 6th character, the final result
Note that the instruction does not use the length specified for the table operand to constrain access of the bytes addressed by the table operand.
If operand 3 is less than 256 characters long, and a source character specifies an offset beyond the end of operand 3, the result characters are obtained from byte locations in the space following operand 3. If that portion of the space is not currently allocated, a space addressing violation (hex 0601) exception is signaled. If operand 3 is a constant with a length less than 256, source characters specifying offsets greater than or equal to the length of the constant are translated into unpredictable characters.
All of the operands support variable length substring compound scalars.
Substring operand references that allow for a null substring reference (a length value of zero) may be specified for all of the operands on this instruction. Specifying a null substring reference for the table operand does not affect the operation of the instruction. In this case, the bytes addressed by the table operand are still accessed as described above. This is due to the definition of the function of this instruction which does not use the length specified for the table operand to constrain access of the bytes addressed by the table operand. The effect of specifying a null substring reference for either or both of the receiver and the source operands is that no result is set.
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