player was (and still is) the formal parameter of the ParseMove subroutine. It received its value in the gosub call indirectly, through gosub ParseMove true; , which then does a gosub HandleMove #player; The debug prints I mentioned were inserted in ParseMove (because a cond var player ... expression appeared to give the wrong result).
The only thing I changed to get the current code is that it now does cond #player ..., and I deleted the debug print / printr.
player was (and still is) the formal parameter of the ParseMove subroutine. It received its value in the gosub call indirectly, through gosub ParseMove true; , which then does a gosub HandleMove #player; The debug prints I mentioned were inserted in ParseMove (because a cond var player ... expression appeared to give the wrong result).
The only thing I changed to get the current code is that it now does cond #player ..., and I deleted the debug print / printr.