There's different ways of doing it and I prefer one of the more complicated ways because it means less coding in the long run.
The simplest method would be to have an image and your menu text displayed on the screen. So you have an arrow image - I've put the 'paste image' command in comments for your reference (the code is all commented for your reference anyway)
Think of each menu selection as a number. You store that as an integer in 'selection'. Then depending on what the current selection is, you stick the arrow next to it.
Simple Method:
sync on
sync rate 60
//Variable for making menu selections
selection = 1
do
cls
//Show the menu text
text 20, 10, "Start Game"
text 20, 20, "Load Game"
text 20, 30, "Options"
text 20, 40, "Credits"
text 20, 50, "Quit"
//Paste an arrow for each selection
if selection = 1
text 0, 10, "->"
//Or use:
//paste image 1, 0, 10
endif
if selection = 2
text 0,20, "->"
endif
if selection = 3
text 0, 30, "->"
endif
if selection = 4
text 0, 40, "->"
endif
if selection = 5
text 0, 50, "->"
if returnkey() = 1 then end
endif
//Use arrow key to increase and decrease selection
//Wait is used so it's not too sensitive, it's not the best method
//but works here
if upkey() = 1 then dec selection ,1 : wait 200
if downkey() = 1 then inc selection, 1 : wait 200
//make sure the selection variable
//doesn't exceed its boundaries
if selection < 1 then selection = 1
if selection > 5 then selection = 5
sync
loop
More complicated method (works better if you want to show inventory items or skills and so on):
//Makes a user defined type
type Menu
//this is the text we'll use for the menu
name as string
//this will be used to determine what selecting this menu does
purpose as string
endtype
sync on
sync rate 60
//Variable for making menu selections
selection = 1
//For placing our menu
PosX = 30
PosY = 30
//For detmining the gap between each line
gapSize = 15
gap = 0
//How many items we've got on our menu
global MenuSize = 5
//Declare our User Defined Type
dim MenuItem(MenuSize) as menu
//Enter the name of each menu item
MenuItem(1).name = "Start Game"
MenuItem(2).name = "Load Game"
MenuItem(3).name = "Options"
MenuItem(4).name = "Credits"
MenuItem(5).name = "Quit"
//Enter the purpose of each menu - you can determine what
//they say, it doesn't matter as long as you understand them
MenuItem(1).purpose = "newgame"
MenuItem(2).purpose = "loadscreen"
MenuItem(3).purpose = "optionscreen"
MenuItem(4).purpose = "creditscreen"
menuitem(5).purpose = "end"
do
cls
//reset 'gap'
gap = 0
//Check through every menu item
for n = 1 to MenuSize
//Display its text
text PosX, PosY+gap*gapSize, MenuItem(n).name
//If the selection matches the current menu item
if selection = n
//Display the arrow
text PosX-20, PosY+gap*gapsize, "->"
//or use:
//paste image 1, posX, posY+gap*gapsize
//If the user hits 'enter'
if returnkey() = 1
//If the current menu item's purpose is to quit, then end
if MenuItem(n).purpose = "end" then end
//Placeholders for other menu item commands:
if MenuItem(n).purpose = "newgame"
endif
if MenuItem(n).purpose = "loadscreen"
endif
if MenuItem(n).purpose = "optionscreen"
endif
if MenuItem(n).purpose = "creditscreen"
endif
endif
//Add a gap for the next line
endif
inc gap, 1
next n
//Use arrow key to increase and decrease selection
//Wait is used so it's not too sensitive, it's not the best method
//but works here
if upkey() = 1 then dec selection ,1 : wait 200
if downkey() = 1 then inc selection, 1 : wait 200
//make sure the selection variable
//doesn't exceed its boundaries
//This time, the boundaries are defined by the size of the menu
if selection < 1 then selection = 1
if selection > MenuSize then selection = MenuSize
sync
loop
The simple code is not very flexible as everything is just hard coded in. The second code is a lot more flexible, you can reuse 'commands' (with 'purpose') without having to write extra code to do so and you just set the variables for each menu item, you can make it bigger or you can make it smaller. You could add to it and make it suitable for an inventory where you could have 3 type of health potions or even more without editing any of the code inside of the loop. You'd just be alterating variables.
Also, to illustrate my point, change all of the MenuItem.Purpose values to "end" except one and press 'enter' on the different selections in the program. You'll find they'll all end the program, except the one you refused to give 'end' to.