This is a fun custom menu that I made for a game called TI-FLOW:
10->J
3+sum({V<theta,not(D->A
30-5Ans->B
Ans+JA+2->C
For(G,B,Ans,7
min(G,C-7
Text(~1,Ans,2,"
Text(~1,Ans,55,"
End
3+Xmin->H
Ans+56->G
Ymax-B-1->I
Ans-JA
Line(H,I,H,Ans
Line(G,I,G,Ans
Line(H,I,G,I
Line(H,Ans,G,Ans
"COMPLETE
If D
"PERFECT
Text(B+3,16+2D,Ans
13+B->B
Ans->C
{0
If V<theta
Then
Text(B,12,"NEXT LEVEL
B+J->B
{0,1
End
If not(D
Then
Text(B,12,"TRY AGAIN
augment(Ans,{2
End
augment(Ans,{3,0->L1
B+Jnot(D
Text(Ans,12,"SELECT LEVEL
Text(Ans+J,12,"QUIT
2->D
Repeat Ans=21
max(2,min(A,D+sum(DeltaList(Ans={25,34->D
JAns+C-20->B
Text(Ans,6,">
getKey
If Ans
Text(B,6,"
End
L1(D
If Ans=2
ClrDraw
If Ans=2
Goto B
If Ans=3
Goto A
IS>(V,V+Ans
Goto C
Lbl Q
Basically, it takes some information about how the last game ended and then chooses the appropriate options to display. Based on the number of options, it centers the menu on the game board, clears a rectangle of the appropriate size, draws a border and then displays the options. The user uses the up/down arrow keys to move a > cursor up and down, then presses [2ND] to select their option.