Whenever I print this it just flashes the text. Anyone know why? It uses locate so I'm not sure why it flashes the text :/ it's only the stuff in @loop that i need help with.
Rather than WAIT, use VSYNC instead. Place "VSYNC 1" at the beginning of the loop, before the CLS. The VSYNC 1 command basically waits until 1 frame is complete before continuing. This is good as it prevents flickering and also allows better control of the game on a 60 FPS basis. (The loop will complete 60 times a second, assuming it isnt so complicated it takes longer than one frame to process.)
Why are you clearing the screen and redrawing it every loop? Try:
ACLS
{commands related to drawing your menu}
@LOOP
{commands related to checking for button press}
GOTO @LOOP