Code:
DO: move$ = INKEY$: LOOP UNTIL move$ <> ""
Because this line does not allow keystrokes to accumulate in the buffer. As soon as one arrives it's taken out of the buffer.
Look, here's how it works:
(user presses A)
"Tell program that the user pressed A" is put in sort of a TO-DO list.
(user presses X)
Like before: "Tell program that the user pressed X" is added to the same TO-DO list.
(program uses INKEY$)
A is removed from the TO-DO list, and INKEY$ gives the program "A"
(program uses INKEY$ again)
X is removed from the TO-DO list, and INKEY$ gives the program "X" - the TO-DO list is now empty
(program uses INKEY$ again)
the TO_DO list is empty (no more keystrokes to report), so INKEY$ returns ""
It's called a queue. Anyway, by doing "move$ = INKEY$" over and over again, you're catching and removing keystrokes from the buffer almost immediately.
Try the code I put in my previous post.