10 *TV255,1 20 REM 8BS Menu By S.Flintham 30 *FX119 40 MODE3 50 VDU22,7 60 VDU23;8202;0;0;0; 70 PROCa 80 PROCb 90 ONERRORVDU3:MODE7:REPORT:PRINT" at line ";ERL:PROCc("KEY0 LIST "+STR$(ERL)+"|M"):PROCc("FX138,0,128"):PROCd:END 100 REPEAT 110 e$=FNf 120 IFLEFT$(e$,1)<>CHR$(27)THENPROCg(e$):*DIR $ 130 UNTILLEFT$(e$,1)=CHR$(27) 140 MODE7 150 PROCd 160 END 170 : 180 DEFPROCa 190 *FX225,128 200 *FX229,1 210 *FX4,1 220 ENDPROC 230 : 240 DEFPROCd 250 *FX225,1 260 *FX229,0 270 *FX4,0 280 ENDPROC 290 : 300 DEFPROCb 310 DIMh%256 320 i$=FNj 330 PROCk 340 l$="31" 350 m$="Nov 1993" 360 n$=":0.$.7TO3":REM "$.MAG.7TO3" 370 f%=1 380 e%=1 390 PROCo 400 ENDPROC 410 : 420 DEFFNS 430 ="Menu" 440 : 450 DEFPROCk 460 i%=2 470 p%=6 480 q%=3 490 r%=1 500 s%=5 510 t%=5 520 u%=3 530 v%=3 540 w%=4 550 x%=3 560 y%=2 570 z%=3 580 aa%=7 590 ba%=7 600 ENDPROC 610 : 620 DEFPROCo 630 LOCALca% 640 VDU26,12 650 PRINTCHR$(128+i%);" I.D. ";i$;" ";CHR$(144+p%);"ÿ¯¯¯¯¯¯¯¥ÿ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ÿ"; 660 PRINTCHR$(144+p%);"ÿ¯¯¯¯¯¯¯¯¯¯¯ª¯¯¯¯¯¯¯¯";CHR$(128+r%);" Issue ";LEFT$(l$,2);" ";CHR$(144+p%);"ÿ"; 670 PRINTCHR$(144+p%);"ÿ";CHR$(144+q%);"êë µ €µ ê£àðàðê ° °ð°ðàð   ";CHR$(144+p%);"ÿ"; 680 PRINTCHR$(144+p%);"ÿ";CHR$(144+q%);"ê뢡·µµ· ¢ëêêê€ê¡µŽµœµµê®";CHR$(128+r%);LEFT$(m$,8);CHR$(144+p%);"ÿ"; 690 PRINTCHR$(144+p%);"";CHR$(144+q%);"¢£ £¡¡£¡ ¢£¢£¢ ¢¡££¡¡¡¡¢£   ";CHR$(145);" "; 700 FORca%=1TO18 710 PRINTCHR$(144+p%);"ÿ";SPC(36);CHR$(144+p%);"ÿ"; 720 NEXT 730 PRINTCHR$(144+p%);"ÿüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÿ"; 740 VDU28,2,22,37,5 750 ENDPROC 760 : 770 DEFPROCc($h%) 780 LOCALX%,Y% 790 X%=h%MOD256 800 Y%=h%DIV256 810 CALL&FFF7 820 ENDPROC 830 : 840 DEFFNj 850 LOCALda%,i$ 860 da%=OPENIN("!Boot") 870 IFda%=0THENPROCea("No !Boot file - unable to read user ID!") 880 PTR#da%=EXT#da%-4 890 i$=CHR$(BGET#da%)+CHR$(BGET#da%)+CHR$(BGET#da%) 900 CLOSE#da% 910 =i$ 920 : 930 DEFPROCea(fa$) 940 VDU22,7 950 PRINTfa$ 960 PROCd 970 END 980 : 990 DEFFNf 1000 LOCALga%,s$,ha%,ia%,ja$,ka$,ka% 1010 REPEAT 1020 CLS 1030 PROCla(f%) 1040 READs$,ha% 1050 IFha%>14THENha%=14 1060 PRINTTAB(0,0);CHR$(128+s%);TAB(1+(17.5-(LEN(s$)/2)),0);s$ 1070 FORia%=1TOha% 1080 READja$,ka$,ka$,ka$,ka%,ka%,ka% 1090 PRINTTAB(1,1+ia%);" ";CHR$(128+t%);CHR$(64+ia%);CHR$(128+u%);ja$;TAB(35,1+ia%);CHR$156; 1100 NEXT 1110 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 1120 PRINTTAB(0,17);CHR$(128+v%);"Press";CHR$129;"f0";CHR$(128+v%);"for help if necessary..."; 1130 REPEAT 1140 REPEAT 1150 *FX21 1160 REPEAT:ga%=INKEY(0):PROCx:UNTILga%<>-1 1170 IFga%>=ASC("a")ANDga%<=ASC("z")THENga%=ga%-32 1180 UNTILga%=128ORga%=138ORga%=139ORga%=13OR(ga%>=65ANDga%<=(64+ha%))ORga%=ASC("8")ORga%=ASC("O")ORga%=ASC("P")OR(ga%=27ANDINKEY(-1)) 1190 PRINTTAB(1,1+e%);" "; 1200 IFga%=138ANDe%1THENe%=e%-1 1220 IFga%>=65ANDga%<=(64+ha%)THENe%=ga%-64 1230 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 1240 UNTILga%=13ORga%=128ORga%=ASC("P")ORga%=ASC("8")ORga%=ASC("O")ORga%=27 1250 IFga%=128THENPROCma 1260 UNTILga%=13ORga%=ASC("P")ORga%=ASC("8")ORga%=ASC("O")ORga%=27 1270 =CHR$(ga%)+STR$(e%) 1280 : 1290 DEFPROCma 1300 LOCALga% 1310 CLS 1320 PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 1330 PRINTTAB(0,2);CHR$(128+y%);"Use the up and down cursor keys to"'CHR$(128+y%);"move the bar or press the letter"'CHR$(128+y%);"next to the required menu option to";CHR$(128+y%);"position it immediately." 1340 PRINT'CHR$(128+y%);"Press RETURN to load or view the"'CHR$(128+y%);"highlighted program/article. If it"'CHR$(128+y%);"is an article, pressing 8 will"'CHR$(128+y%);"display it in 80 columns. Pressing" 1350 PRINTCHR$(128+y%);"P will print it out and pressing O"'CHR$(128+y%);"will allow you to view it in"'CHR$(128+y%);"teletext mode with your own choice"'CHR$(128+y%);"of scrolling keys." 1360 PRINTTAB(0,16);CHR$(128+z%);"Press";CHR$(129);"f0";CHR$(128+z%);"for more help or ESCAPE"'CHR$(128+z%);"to return to the menu..."; 1370 REPEAT 1380 *FX21 1390 ga%=GET 1400 UNTILga%=27ORga%=128 1410 IFga%=27THENENDPROC 1420 CLS 1430 PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 1440 PRINTTAB(0,2);CHR$(128+y%);"Pressing SHIFT and ESCAPE together"'CHR$(128+y%);"at the menu will return you to"'CHR$(128+y%);"BASIC." 1450 PRINTTAB(0,16);CHR$(128+z%);"Press ESCAPE to return to the"'CHR$(128+z%);"menu..."; 1460 REPEAT 1470 *FX21 1480 ga%=GET 1490 UNTILga%=27 1500 ENDPROC 1510 : 1520 DEFPROCg(e$) 1530 LOCALna%,ka$,oa$,pa$,qa$,ra%,sa%,ta% 1540 PROCla(f%) 1550 READka$,ka% 1560 FORna%=1TOVAL(MID$(e$,2)) 1570 READka$,oa$,pa$,qa$,ra%,sa%,ta% 1580 NEXT 1590 IFta%=0ANDpa$<>""THENPROCc("DIR "+pa$) 1600 IFra%ANDNOTsa%THENPROCua(ASC(LEFT$(e$,1)),qa$):ENDPROC 1610 IFra%ANDsa%THENPROCva(ASC(LEFT$(e$,1)),qa$):ENDPROC 1620 IFta%>0THENf%=ta%:e%=1:ENDPROC 1630 PROCd 1640 IFLEFT$(oa$,1)="*"THENPROCc(oa$+" "+qa$):END 1650 IFoa$="CHAIN"THENCHAINqa$ 1660 IFoa$="LOAD"THENPROCc("KEY0 LOAD "+CHR$(34)+qa$+CHR$(34)+"|MLIST|N|M"):PROCc("FX21"):PROCc("FX138,0,128"):PROCd:VDU22,7:END 1670 END 1680 : 1690 DEFPROCua(ga%,qa$) 1700 VDU22,3 1710 VDU23;8202;0;0;0; 1720 *FX21 1730 IFga%<>ASC("P")THENPRINT'"Press SHIFT to scroll or ESCAPE for the menu..."':VDU14ELSEPRINT'"Press SPACE when you are ready to print... (Press ESCAPE to quit)"':REPEATUNTILGET=32:VDU2 1740 ONERRORIFERR=17THENPROCc("FX229,1"):VDU3,22,7:VDU23;8202;0;0;0;:PROCo:GOTO90ELSEVDU3:MODE7:REPORT:PRINT" at line ";ERL:PROCc("KEY0 LIST "+STR$(ERL)+"|M"):PROCc("FX138,0,128"):PROCd:END 1750 *FX229,0 1760 PROCc("Type "+qa$) 1770 *FX229,1 1780 ONERRORVDU3:MODE7:REPORT:PRINT" at line ";ERL:PROCc("KEY0 LIST "+STR$(ERL)+"|M"):PROCc("FX138,0,128"):PROCd:END 1790 IFga%<>ASC("P")THENVDU15ELSEVDU3 1800 PRINT'"Press ESCAPE to return to the menu..."; 1810 *FX21 1820 REPEATUNTILGET=27 1830 VDU22,7 1840 VDU23;8202;0;0;0; 1850 PROCo 1860 ENDPROC 1870 : 1880 DEFPROCva(ga%,qa$) 1890 IFINSTR(qa$,"@")<>0AND(ga%=ASC("P")ORga%=ASC("8"))THENqa$=FNwa(qa$) 1900 IFINSTR(qa$,"@")<>0ANDga%<>ASC("P")ANDga%<>ASC("8")THENqa$=LEFT$(qa$,INSTR(qa$,"@")-1) 1910 ?&80=&C6:?&81=&D6 1920 IFga%=ASC("P")THEN$&A00=qa$:Z%=1:CHAINn$ 1930 IFga%=ASC("8")THEN$&A00=qa$:Z%=0:CHAINn$ 1940 IFga%=ASC("O")THENPROCxa(qa$) 1950 PROCc("RUN "+qa$) 1960 ENDPROC 1970 : 1980 DEFFNwa(qa$) 1990 LOCALga% 2000 CLS 2010 PRINTCHR$(128+ba%);"Which part of the article? (1/2)"; 2020 REPEAT 2030 *FX21 2040 ga%=GET 2050 UNTILga%=49ORga%=50 2060 IFga%=49THEN=LEFT$(qa$,INSTR(qa$,"@")-1) 2070 =MID$(qa$,INSTR(qa$,"@")+1) 2080 : 2090 DEFPROCxa(qa$) 2100 CLS 2110 PRINTCHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll up..." 2120 ?&80=0 2130 ?&80=FNya 2140 PRINT'CHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll down..." 2150 *FX21 2160 ?&81=FNya 2170 PROCc("KEY0 *LOAD "+qa$+" 1900|M?&1974=?&80:?&1981=?&81|MCALL&1904|F|M") 2180 *FX21 2190 VDU21 2200 PROCd 2210 *FX138,0,128 2220 END 2230 : 2240 DEFFNya 2250 LOCALA%,B% 2260 REPEAT 2270 A%=&7A 2280 !&70=USR(&FFF4) 2290 B%=255-(?&71) 2300 UNTILB%<>0ANDB%<>182ANDB%<>?&80 2310 =B% 2320 DEFPROCx:IF TIME MOD 10<>0 OR C%=0 ENDPROC 2330 IF?C%=135:IF?(C%+1)=42:?C%=32:?(C%+1)=32 2340 C%=C%+40:IF C%>&7F88 C%=RND(40)+&7CF0 2350 IF?C%=32:IF?(C%+1)=32 ?C%=135:?(C%+1)=42 2360 ENDPROC 2370 DEFPROCla(f%) 2380 IFf%=1THENRESTORE 2390 IFf%=2THENRESTORE 2580 2400 IFf%=3THENRESTORE 2710 2410 IFf%=4THENRESTORE 2820 2420 IFf%=5THENRESTORE 2910 2430 IFf%=6THENRESTORE 3010 2440 IFf%=7THENRESTORE 3060 2450 ENDPROC 2460 : 2470 DATA Main Menu.,8 2480 DATA About This Issue.,,,Thi1,-1,-1,0 2490 DATA Program Documentation.,,,ProgDoc,-1,-1,0 2500 DATA Magazine Menu 1.,,,,0,0,2 2510 DATA Magazine Menu 2.,,,,0,0,3 2520 DATA Utilities Menu.,,,,0,0,4 2530 DATA Games/Competition Menu.,,,,0,0,5 2540 DATA Christmas Menu.,,,,0,0,6 2560 DATA ADFS Extra Menu.,,,,0,0,7 2570 : 2580 DATA Magazine Menu 1.,11 2590 DATA News and views.,,,News,-1,-1,0 2600 DATA Messages and Ads 1.,,,Mes1,-1,-1,0 2610 DATA Messages and Ads 2.,,,Mes2,-1,-1,0 2620 DATA Messages and Ads 3.,,,Mes3,-1,-1,0 2630 DATA Messages to You.,,,uu,-1,-1,0 2640 DATA The Reactor.,,,Reactor,-1,-1,0 2650 DATA Hang on a minute.,,,HangOn,-1,-1,0 2660 DATA 8BS Gazeteer Update.,,,:2.8BScat2,-1,0,0 2670 DATA 8BS Gazeteer Info.,,,:2.8BSinfo,-1,0,0 2680 DATA Magazine Menu 2.,,,,0,0,3 2690 DATA Main Menu.,,,,0,0,1 2700 : 2710 DATA Magazine Menu 2.,7 2720 DATA 8BS Messaging System Info.,,,MesInf,-1,-1,0 2730 DATA Prisoner's Dilemma text.,,,PrisTxt,-1,-1,0 2740 DATA Story from 27N.,,,27Nstor,-1,0,0 2750 DATA Archimedes Debate 5.,,,Arch5,-1,-1,0 2760 DATA Electronics Part 4a.,,,Elec4a,-1,0,0 2790 DATA Magazine Menu 1.,,,,0,0,2 2800 DATA Return to Main Menu.,,,,0,0,1 2810 : 2820 DATA Utilities Menu.,8 2830 DATA 8BS Messaging System.,CHAIN,:2,SendMes,0,0,0 2840 DATA Memory Editor.,CHAIN,:2,A.MEDIT,0,0,0 2850 DATA ROM Dump.,CHAIN,:2,C.ReadRom,0,0,0 2860 DATA 8BS Catalogue/Printer.,CHAIN,:2,CatRd3,0,0,0 2870 DATA ASCII File Splitter.,CHAIN,:2,Split,0,0,0 2880 DATA Wordwise Utilities.,CHAIN,:2,NORUN,0,0,0 2885 DATA John Ilsley's Sound.,CHAIN,:2,Sound,0,0,0 2890 DATA Return to Main Menu.,,,,0,0,1 2900 : 2910 DATA Games/Competition Menu.,8 2920 DATA Repton 3 Screens.,CHAIN,:2,NORUN,0,0,0 2930 DATA Hangman 2.,CHAIN,:2,Dnld,0,0,0 2940 DATA Snakes and Ladders.,CHAIN,:2,Snake,0,0,0 2950 DATA Phrases.,CHAIN,:2,PhraseE,0,0,0 2960 DATA Prisoner's Dilemma.,CHAIN,:2,Comp1,0,0,0 2970 DATA Repton 1 Cheat.,CHAIN,:2,Rep1cht,0,0,0 2980 DATA Repton 3 Cheat.,CHAIN,:2,Rep3cht,0,0,0 2990 DATA Return to Main Menu.,,,,0,0,1 3000 : 3010 DATA Christmas Menu.,3 3020 DATA Snowmen Tunes.,CHAIN,:2,SnowMen,0,0,0 3030 DATA More Christmas Tunes.,CHAIN,:2,XMASrun,0,0,0 3040 DATA Return to Main Menu.,,,,0,0,1 3050 : 3060 DATA ADFS Menu.,1 3070 DATA Return to Main Menu.,,,,0,0,1