REM Code posted by OldosloverDEFINT A-Z 'make all variables integersSCREEN 12 '640 x 480 pixel at 16 colorsSelectionArea$ = STRING$(20, 220) 'create 20 characters of a square into a stringDone = 0 'our master exit variableOOption = 1 'our menu idenitifyerPRINT "Use the UP and DOWN arrow keys to move highlight bar up and down , enter key to select that selection"PRINT "Any key to contimue"Dummy$ = INPUT$(1) 'wait for keypressCLS 'clear the screenGOSUB Drawmenu 'draw the menuGOSUB Highlight 'draw the highlightDO IF _KEYDOWN(20480) THEN 'down arrow key OOption = OOption + 1 'increment selection variable IF OOption = 7 THEN OOption = 1 'if variable at end of list wrap it around to start of list CLS GOSUB Drawmenu GOSUB Highlight _DELAY .5 'delay to stop too fast movement END IF IF _KEYDOWN(18432) THEN 'up arrow key OOption = OOption - 1 IF OOption = 0 THEN OOption = 6 CLS GOSUB Drawmenu GOSUB Highlight _DELAY .5 END IF IF _KEYDOWN(13) THEN 'enter key LOCATE 28, 20: PRINT "Now going to MENU "; OOption Done = 1 'toggle exit variable END IFLOOP WHILE Done = 0SLEEPSYSTEM'------------------------Drawmenu:menuid = 1FOR t = 10 TO 20 STEP 2 LOCATE t, 30: PRINT menuid menuid = menuid + 1NEXT tRETURNHighlight:SELECT CASE OOption CASE 1 LOCATE 10, 32: PRINT SelectionArea$ CASE 2 LOCATE 12, 32: PRINT SelectionArea$ CASE 3 LOCATE 14, 32: PRINT SelectionArea$ CASE 4 LOCATE 16, 32: PRINT SelectionArea$ CASE 5 LOCATE 18, 32: PRINT SelectionArea$ CASE 6 LOCATE 20, 32: PRINT SelectionArea$END SELECTRETURN
DIM SHARED Llist$(10)DIM SHARED Sel AS INTEGERSCREEN 12FOR x = 1 TO 10 '---- Get the Menu List - Only needs done once READ Llist$(x)NEXT xMakeMenu '---- Show the Menu'----------------DO '--- Moving down Menu IF _KEYDOWN(20480) THEN COLOR 0, 7 ' --- Erase last move LOCATE Sel, 25: PRINT Llist$(Sel - 5) Sel = Sel + 1: IF Sel > 15 THEN Sel = 6 COLOR 0, 8 ' --- Show present move going down LOCATE Sel, 25: PRINT Llist$(Sel - 5) END IF ' --- Moving up the Menu IF _KEYDOWN(18432) THEN COLOR 0, 7 ' --- Erase last move LOCATE Sel, 25: PRINT Llist$(Sel - 5) Sel = Sel - 1: IF Sel < 6 THEN Sel = 15 COLOR 0, 8 ' --- Show present move going up the Menu LOCATE Sel, 25: PRINT Llist$(Sel - 5) END IF a$ = INKEY$ IF a$ = CHR$(13) THEN '--- press ENTER to select Selection Sel ' --- Goto Selected item END IF IF LCASE$(a$) = "q" THEN EXIT DO ' --- end Program _DISPLAY _LIMIT 8 ' --- set speed of selecter, change if selecter goes to fast or slow. Large number = fasterLOOPSYSTEM'-------------- Change these suit your needs in the menu ----------------DATA "Math","Draw Circle","Draw Box","Enter Name","Paste","Clear","Cut","Find","New","Run"'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' _____________________ Sub Selection _________________________________SUB Selection (Sel)GotoRoutine = Sel - 5' NOTE: cases 1 to 3 are calling subs. I didn't use subs in Cases 4 to 10 ' You can choose to do it either way but subs seperate from the rest' so its easier to edit later on and makes the programs more clear.SELECT CASE GotoRoutine CASE 1 Math ' --- Call sub math CASE 2 DrawCircle ' --- Call sub DrawCircle CASE 3 Drawbox ' --- Call sub Drawbox CASE 4 COLOR 0, 7: CLS: LOCATE 10, 20 INPUT "What is your name?"; n$, LOCATE 12, 20: PRINT "Hello "; n$; " Press a key to go to menu" _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 5 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option 'PASTE', Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 6 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option Clear, Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 7 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option 'CUT', Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 8 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option 'FIND', Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 9 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option 'NEW', Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statement CASE 10 COLOR 0, 7: CLS: LOCATE 10, 20 PRINT "you selected Option 'RUN', Press a key to go to menu"; _DISPLAY SLEEP 'wait for keypress to leave sub DO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statementEND SELECTMakeMenu '-------- Go back to the menuEND SUB' _______________________ Sub Draw Circle _________________________________SUB DrawCircleCOLOR 0, 7: CLS '------- Clear the screen of the menuCIRCLE (300, 100), 50, 4LOCATE 14, 20PRINT " we are drawing circles"LOCATE 16, 20PRINT " Press a key to go back to main menu"_DISPLAY ' -- show the circle and textSLEEP 'wait for keypress to leave subDO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statementEND SUB'_______________________ Sub Draw Box_________________________________SUB DrawboxCOLOR 0, 7: CLS ' ------- Clear the screen of the menuLINE (200, 100)-(400, 150), 4, BFLINE (200, 100)-(400, 150), 0, BLOCATE 14, 20PRINT " we are drawing boxes"LOCATE 16, 20PRINT " Press a key to go back to main menu"_DISPLAY ' --- show the box and textSLEEP 'wait for keypress to leave subDO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statementEND SUB'______________________ Sub Math _____________________________________SUB MathCOLOR 0, 7: CLS ' ------- Clear the screen of the menuLOCATE 10, 16PRINT " we are doing math now: 9 X 6 = 54"LOCATE 12, 10PRINT " Put your Multiplication tables in this Sub Routine 'Math'"LOCATE 16, 18PRINT "Press a key to go back to the main menu"_DISPLAY ' ------- Show the textSLEEPDO: LOOP UNTIL INKEY$ = "" ' clear the keyboard after SLEEP statementEND SUB'_________________ Sub Make the Menu ________________________SUB MakeMenuSel = 6 ' --- Start location for selecterCOLOR 0, 7: CLSFOR x = 5 TO 15 ' --- Print the Menu list LOCATE x, 25 PRINT Llist$(x - 5)NEXT xLOCATE 20, 10PRINT "Use up/Down arrow keys - Press Enter to make selection";LOCATE 22, 20: PRINT " Press q to exit";COLOR 0, 8: LOCATE Sel, 25PRINT Llist$(Sel - 5)_DISPLAYEND SUB
REMDIM Alltitles$(26)SCREEN 12GOSUB MakmenuGOSUB ShowmenuDO _LIMIT 30 IF _KEYDOWN(97) THEN GOSUB aMenu IF _KEYDOWN(98) THEN GOSUB bMenu IF _KEYDOWN(99) THEN GOSUB cMenu IF _KEYDOWN(100) THEN GOSUB dMenu IF _KEYDOWN(101) THEN GOSUB eMenu IF _KEYDOWN(102) THEN GOSUB fMenu IF _KEYDOWN(103) THEN GOSUB gMenu IF _KEYDOWN(104) THEN GOSUB hMenu IF _KEYDOWN(105) THEN GOSUB iMenu IF _KEYDOWN(106) THEN GOSUB jMenu IF _KEYDOWN(107) THEN GOSUB kMenu IF _KEYDOWN(108) THEN GOSUB lMenu IF _KEYDOWN(109) THEN GOSUB mMenu IF _KEYDOWN(110) THEN GOSUB nMenu IF _KEYDOWN(111) THEN GOSUB oMenu IF _KEYDOWN(112) THEN GOSUB pMenu IF _KEYDOWN(113) THEN GOSUB qMenu IF _KEYDOWN(114) THEN GOSUB rMenu IF _KEYDOWN(115) THEN GOSUB sMenu IF _KEYDOWN(116) THEN GOSUB tMenu IF _KEYDOWN(117) THEN GOSUB uMenu IF _KEYDOWN(118) THEN GOSUB vMenu IF _KEYDOWN(119) THEN GOSUB wMenu IF _KEYDOWN(120) THEN GOSUB xMenu IF _KEYDOWN(121) THEN GOSUB yMenu IF _KEYDOWN(122) THEN GOSUB zMenu GOSUB ShowmenuLOOP UNTIL _KEYDOWN(27)SYSTEMDATA "Title1"DATA "Title2"DATA "Title3"DATA "Title4"DATA "Title5"DATA "Title6"DATA "Title7"DATA "Title8"DATA "Title9"DATA "Title10"DATA "Title11"DATA "Title12"DATA "Title13"DATA "Title14"DATA "Title15"DATA "Title16"DATA "Title17"DATA "Title18"DATA "Title19"DATA "Title20"DATA "Title21"DATA "Title22"DATA "Title23"DATA "Title24"DATA "Title25"DATA "Title26"Makmenu:FOR a = 0 TO 25 READ a$ Alltitles$(a) = a$NEXT aa$ = ""RETURNShowmenu:FOR a = 0 TO 25 LOCATE a + 1, 10 PRINT CHR$(97 + a); " "; Alltitles$(a)NEXT aRETURNaMenu:CLS_DELAY 1RETURNbMenu:CLS_DELAY 1RETURNcMenu:CLS_DELAY 1RETURNdMenu:CLS_DELAY 1RETURNeMenu:CLS_DELAY 1RETURNfMenu:CLS_DELAY 1RETURNgMenu:CLS_DELAY 1RETURNhMenu:CLS_DELAY 1RETURNiMenu:CLS_DELAY 1RETURNjMenu:CLS_DELAY 1RETURNkMenu:CLS_DELAY 1RETURNlMenu:CLS_DELAY 1RETURNmMenu:CLS_DELAY 1RETURNnMenu:CLS_DELAY 1RETURNoMenu:CLS_DELAY 1RETURNpMenu:CLS_DELAY 1RETURNqMenu:CLS_DELAY 1RETURNrMenu:CLS_DELAY 1RETURNsMenu:CLS_DELAY 1RETURNtMenu:CLS_DELAY 1RETURNuMenu:CLS_DELAY 1RETURNvMenu:CLS_DELAY 1RETURNwMenu:CLS_DELAY 1RETURNxMenu:CLS_DELAY 1RETURNyMenu:CLS_DELAY 1RETURNzMenu:CLS_DELAY 1RETURN