The MOVE opcode aligns the source against the rightmost positions of the
result. The (P) pad extender controls what happens to the result's high-order
(leftmost) positions when the source is shorter than the result:
| Extender | Meaning |
|---|---|
| (none) | Overlay right - only the source's low-order positions are replaced; the result's high-order positions are preserved |
P |
Pad - the result's high-order positions are cleared (blank for character, zero for numeric) after the move |
For a numeric result the digit positions are overlaid ignoring the decimal
point, and the whole result takes the source's sign (a positive source
clears a previously negative result's sign, and vice versa). A source at least
as wide as the result fills every position, so the (P) and non-(P) forms
then behave identically (a plain right-aligned truncation).
C MOVE Two Year (Year was 999999, Two=21 → 999921)
C MOVE(P) Two Year (Year was 999999, Two=21 → 000021)
C MOVE NegSrc Year (Year was 999999, NegSrc=-5 → 999905-)