10 REM >DirctC4 20 REM by Steven Flintham 30 REM 40 REM Sunday 10th January 1992 50 : 60 MODE 7 70 VDU 23;8202;0;0;0; 80 PROCdisable 90 PROCinit 100 REPEAT 110 choice%=FNmain_menu 120 UNTIL choice%=6 130 MODE 7 140 PROCenable 150 END 160 : 170 DEF PROCdisable 180 *FX229,1 190 *FX4,2 200 ENDPROC 210 : 220 DEF PROCenable 230 *FX229,0 240 *FX4,0 250 ENDPROC 260 : 270 DEF PROCinit 280 ON ERROR MODE 7:REPORT:PRINT " at line ";ERL:PROCenable:END 290 ENDPROC 300 : 310 DEF FNmain_menu 320 REM Display the main menu and accept the user's input 330 LOCAL choice_x%,choice_y% 340 PROCtitle 350 PRINTTAB(15,4);"Main Menu" 360 PRINTTAB(1,6);CHR$131;"A";CHR$135;"Menu option 1" 370 PRINTTAB(1,7);CHR$131;"B";CHR$135;"Menu option 2" 380 PRINTTAB(1,8);CHR$131;"C";CHR$135;"Menu option 3" 390 PRINTTAB(1,9);CHR$131;"D";CHR$135;"Menu option 4" 400 PRINTTAB(1,10);CHR$131;"E";CHR$135;"Menu option 5" 410 PRINTTAB(1,11);CHR$131;"F";CHR$135;"Quit this program" 420 PRINT'"Your choice?";CHR$131; 430 choice_x%=POS:choice_y%=VPOS 440 PRINT'"(Press RETURN to confirm your choice)" 450 =FNmenu_select(3,choice_x%,choice_y%,6,6) 460 : 470 DEF FNmenu_select(default%,choice_x%,choice_y%,options%,offset%) 480 REM Standard menu selection routine 490 LOCAL choice%,choice_made%,key$ 500 offset%=offset%-1 510 IF default%<>-1 THEN choice%=default%:choice_made%=TRUE:PRINTTAB(choice_x%,choice_y%);CHR$(64+choice%);TAB(0,offset%+choice%);CHR$136; ELSE choice%=1:choice_made%=FALSE 520 REPEAT 530 REPEAT 540 *FX21 550 key$=CHR$(GET AND &DF) 560 UNTIL (key$>="A" AND key$<=CHR$(64+options%)) OR (key$=CHR$(13) AND choice_made%) 570 IF key$<>CHR$(13) THEN choice_made%=TRUE:PRINTTAB(choice_x%,choice_y%);key$;TAB(0,offset%+choice%);CHR$137;:choice%=ASC(key$)-64:PRINTTAB(0,offset%+choice%);CHR$136; 580 UNTIL key$=CHR$(13) 590 =choice% 600 : 610 DEF PROCtitle 620 REM Display the program title at the top of the screen 630 VDU 26,12 640 PRINTTAB(7,0);CHR$141;CHR$132;CHR$157;CHR$131;"Menu Demonstration ";CHR$156 650 PRINTTAB(7,1);CHR$141;CHR$132;CHR$157;CHR$131;"Menu Demonstration ";CHR$156 660 PRINTTAB(7,2);CHR$131;"(C) Steven Flintham 1993" 670 ENDPROC