(2020-05-27, 22:37)N. W. Perry Wrote: I'm having trouble understanding the problem as described. It says "everything after the start command is placed in the buffer"—but really, it's everything before the start (STORE) command that's buffered, no? Then when you RETRIEVE it, that's basically like the end command already. Or am I getting something mixed up?
It's been a little while since I last used buffer exchange, but I'm pretty sure everything after the STORE command is what is buffered.
In any case, an example for the problem described there. Imagine you're making instructions for which need a part in a temporary positions for a certain number of steps. Everything after the STORE command will be removed once RETRIEVE is called. So, if you add temporary part in step 20, then in steps 21-24 you add other ('normal') parts and then call RETRIEVE in step 25 to place the temporary part in the final positions, all the other parts in steps 21-24 will be removed too, because the STORE command never ends (until RETRIEVE).
Due to this limitation, buffer exchange cannot work through multiple steps. If you want to do that with the current implementation, you'd have to repeat the same STORE/RETRIEVE over multiple steps.