Many i5/OS APIs receive variable-length output parameters. Many i5/OS machine interface (MI) instructions expect variable-length output operands. Many algorithms implemented by user programs need to allocate program storage with unpredictable length until run time. All these facts lead to the need for allocating and freeing program storage at run time.
Author's note: The subject of the RPG opcode MoveA (as it pertains to free-format RPG) keeps coming up in articles, blogs, and forums throughout our industry. It's time to put it to rest. The following excerpt from the book Free-Format RPG IV should supply all you need to handle the free-format conversion of this opcode.