For example:
WHILE 1 'Start infinite loop
IF BUTTON() AND #LEFT THEN:X=X-1
IF BUTTON() AND #RIGHT THEN:X=X+1
IF BUTTON() AND #UP THEN:Y=Y-1
IF BUTTON() AND #DOWN THEN:Y=Y+1
LOCATE X,Y:?"@";
'Moves text cursor to X,Y and prints @ without adding a line break
VSYNC 'Wait a frame
WEND 'End infinite loop
V360 I tried that, and it worked, but the method of repeatedly using ACLS wasn't working. I need a method to only clear the screen when the dpad is pressed. Any help would be greatly appreciated.
As mentioned above, ACLS clears EVERYTHING and is probably not what you want. CLS clears just the text and will be better. Still, I think we can do better still with the dirty rectangles technique. With that you only update what changed on screen. I rewrote your code (see attached) to use it and it seems plenty fast. Give it a try let me know if you find bugs.