The PLIMOVE subroutine moves z storage units (bytes) from location y to location x, without any conversions, padding, or truncation.
Unlike the PLIOVER built-in subroutine, storage at locations x and y is assumed to be unique. If storage overlaps, unpredictable results can occur.
>>-PLIMOVE(x,y,z)----------------------------------------------><
dcl 1 Str1,
2 B fixed bin(31),
2 C pointer,
2 * union,
3 D char(4),
3 E fixed bin(31),
3 *,
4 * char(3),
4 F fixed bin(8) unsigned,
2 * char(0);
dcl 1 Template nonasgn static,
2 * fixed bin(31) init(200),
2 * pointer init(null()),
2 * char(4) init(''),
2 * char(0);
call plimove(addr(Str1), addr(Template), stg(Str1));