10 REM >Step4 20 REM by Steven Flintham 30 REM 40 REM Sunday 4th April 1993 50 : 60 MODE 4 70 VDU 23;8202;0;0;0; 80 PROCdisable 90 PROCinit 100 REPEAT 110 choice%=FNmenu 120 UNTIL choice%=5 130 MODE 7 140 PROCenable 150 END 160 : 170 DEF PROCdisable 180 *FX229,1 190 *FX4,1 200 ENDPROC 210 : 220 DEF PROCenable 230 *FX229 240 *FX4 250 ENDPROC 260 : 270 DEF PROCinit 280 ON ERROR MODE 7:REPORT:PRINT " at line ";ERL:PROCenable:END 290 DIM block% 8 300 ENDPROC 310 : 320 DEF FNmenu 330 LOCAL choice%,key% 340 PROCtitle 350 PRINTTAB(3,4);"Option 1" 360 PRINTTAB(3,5);"Option 2" 370 PRINTTAB(3,6);"Option 3" 380 PRINTTAB(3,7);"Option 4" 390 PRINTTAB(3,8);"Option 5" 400 PRINTTAB(3,9);"Quit this program" 410 PRINTTAB(0,11);"Use the cursor keys to move the bar and"'"press RETURN to select" 420 choice%=0 430 PROCdraw_bar(choice%,TRUE,0) 440 REPEAT 450 *FX21 460 key%=GET 470 IF key%=138 THEN IF choice%<5 THEN choice%=choice%+1:PROCdraw_bar(choice%,TRUE,32) 480 IF key%=139 THEN IF choice%>0 THEN choice%=choice%-1:PROCdraw_bar(choice%,FALSE,-32) 490 UNTIL key%=13 500 =choice% 510 : 520 DEF PROCdraw_bar(choice%,top_to_bottom%,offset%) 530 LOCAL start%,end%,temp%,y% 540 GCOL 4,1 550 start%=1020-((choice%+4)*32) 560 end%=(1020-((choice%+4)*32)-28) 570 IF NOT top_to_bottom% THEN temp%=start%:start%=end%:end%=temp% 580 FOR y%=start% TO end% STEP SGN(end%-start%)*4 590 MOVE 0,y% 600 DRAW 1276,y% 610 IF offset%<>0 THEN MOVE 0,y%+offset%:DRAW 1276,y%+offset% 620 PROCdelay(2) 630 NEXT 640 ENDPROC 650 : 660 DEF PROCdelay(delay%) 670 LOCAL time% 680 time%=TIME 690 REPEAT UNTIL TIME-time%>=delay% 700 ENDPROC 710 : 720 DEF PROCtitle 730 VDU 26,12 740 COLOUR 0:COLOUR 129 750 PROCdouble_height(" Menu demonstration ",10,0) 760 COLOUR 1:COLOUR 128 770 PRINTTAB(8,2);"(C) Steven Flintham 1993" 780 ENDPROC 790 : 800 DEF PROCdouble_height(text$,x%,y%) 810 LOCAL pos%,A%,X%,Y% 820 VDU 31,x%,y% 830 FOR pos%=1 TO LEN(text$) 840 block%?0=ASC(MID$(text$,pos%,1)) 850 A%=10 860 X%=block% MOD 256 870 Y%=block% DIV 256 880 CALL &FFF1 890 VDU 23,255,0,block%?1,block%?1,block%?2,block%?2,block%?3,block%?3,block%?4,255,8,10,23,255,block%?4,block%?5,block%?5,block%?6,block%?6,block%?7,block%?7,block%?8,255,11 900 REM VDU 23,255,block%?1,block%?1,block%?2,block%?2,block%?3,block%?3,block%?4,block%?4,255,8,10,23,255,block%?5,block%?5,block%?6,block%?6,block%?7,block%?7,block%?8,block%?8,255,11 910 NEXT 920 ENDPROC