10 REM*Basic 20 REMCHAIN"$.!Boot" 30 *Exec 40 REM *** 50 REM First three lines MUST NOT be edited 60 REM 8BS Menu, S.Flintham. 70 REM Modified by J.Ripley, C.J.Richardson, J.G.Harston, V2.11 80 MODE&87:VDU23;8202;0;0;0; 90 PROCa:PROCb 100 ONERRORVDU3:MODE7:REPORT:PRINT" at line ";ERL:PROCc("FX21"):PROCc("KEY0 LIST "+STR$(ERL)+"|M"):PROCc("FX138,0,128"):PROCd:END 110 REPEATe$=FNf:IFASCe$<>27:PROCg(e$) 120 UNTILASCe$=27:MODE7:PROCd:END 130 : 140 DEFPROCa:*FX4,1 150 *FX225,128 160 *FX229,1 170 ENDPROC 180 DEFPROCd:*FX4 190 *FX225,1 200 *FX229 210 ENDPROC 220 : 230 DEFFNS:IFTOP-PAGE>&2200:PRINT"Too long" 240 ="$.!Boot" 250 DEFPROCb:*FX12 260 v$="MODE3TEXT MODE7TTXT ARCHIARCHICHAINBASICLOAD LOAD LIST LIST " 270 d%=4 280 i%=7 290 p%=1 300 q%=3 310 r%=5 320 s%=6 330 t%=2 340 u%=3 350 v%=5 360 w%=4 370 x%=2 380 y%=4 390 z%=7 400 aa%=7 410 ba%=7 420 : 430 DIMh%256,l%(14):i$=FNj 440 PROCfs("$"):RESTORE:READ n$,m$ 450 IFLEFT$(STR$(V%),5)="985"+n$:f%=VAL(MID$(STR$(V%),6,2)):e%=VAL(MID$(STR$(V%),8,2)) ELSE f%=1:e%=1 460 VDU26:CLS:PRINTCHR$(128+i%);" I.D. ";i$;" ";CHR$(144+p%);"ÿ¯¯¯¯¯¯¯¥ÿ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ÿ"; 470 PRINTCHR$(144+p%);"ÿ¯¯¯¯¯¯¯¯¯¯¯ª¯¯¯¯¯¯¯¯";CHR$(128+r%);" Issue ";LEFT$(n$,2);" ";CHR$(144+p%);"ÿ"; 480 PRINTCHR$(144+p%);"ÿ";CHR$(144+q%);"¶£Ž ·éšè° ¶© °à€ôà à ° °à    ";CHR$(144+p%);"ÿ"; 490 PRINTCHR$(144+p%);"ÿ";CHR$(144+q%);"¶£Ž¡·éêê  ²éêê꡵êèêàîê œ¡";CHR$(128+r%);LEFT$(m$,8);CHR$(144+p%);"ÿ"; 500 PRINTCHR$(144+p%);"";CHR$(144+q%);"¢£ £¡¢ ¡ ¢¡ ¡¢ ¢ ¡¡ £¢ ¢¡   ";CHR$(145);" "; 510 FORn%=1TO18:PRINTCHR$(144+p%);"ÿ";SPC(36);CHR$(144+p%);"ÿ";:NEXT 520 PRINTCHR$(144+p%);"ÿüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÿ"; 530 VDU28,2,22,37,5 540 ENDPROC 550 DEFPROCfs(A$):LOCALA%,Y%,E%,n%:fs%=(USR&FFDA)AND&FF:l$=A$:IFA$="":l$="$.Library":IFfs%=4 ORfs%=65:l$=":0.%" 560 PROCc("LIB "+l$):IFA$="":IFfs%>4:n%=OPENIN("%"):IFn%:CLOSE#n%:l$="%" 570 t3$=l$+".7to3":t7$=l$+".3to7":sc$=l$+".Scroll":ar$=l$+".Archive":ENDPROC 580 : 590 DEFPROCc($h%):LOCALX%,Y% 600 X%=h%:Y%=X%DIV256:CALL&FFF7 610 ENDPROC 620 DEFPROCos(c$):IFLEFT$(c$,1)="*":PROCc(c$):ENDPROC 630 I%=INSTR(c$," "):IFI%:PROCc("KEY0 |@"+MID$(c$,I%+1)+"|M"):*FX138,0,192 640 CHAINc$:ENDPROC 650 DEFFNj=$(PAGE+&2F) 660 DEFFNf:LOCALt$,n%,m$,s$,g%,m% 670 CLS:PROCla(f%):READt$,n% 680 IFn%>14:n%=14 690 PRINTTAB(0,0);CHR$(128+s%);TAB(1+(17.5-(LEN(t$)/2)),0);t$ 700 FORm%=1TOn%:READm$,s$,s$,s$ 710 o%=VALs$:IFo%=0:o%=-1-INSTR(v$,LEFT$(s$,5))DIV10 720 l%(m%)=o%:PRINTTAB(1,1+m%);" ";CHR$(128+t%);CHR$(64+m%);CHR$(128+u%);m$;TAB(35,1+m%);CHR$156;:NEXT 730 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 740 PRINTTAB(0,17);CHR$(128+v%);"Press";CHR$129;"f0";CHR$(128+v%);"for help.";CHR$(128+d%); 750 REPEAT:REPEAT*FX21 760 PRINTTAB(20,17);:IFl%(e%)>0:PRINT"Another menu ";ELSE PRINTMID$("Runs Code 80 Column Text40 Column TextArchive Basic Program Loads BASIC Lists Basic Uses LDPIC *RUN -9 ",-14*l%(e%)+1,14); 770 g%=GET:IF(g%AND&E0)=&60:g%=g%-32 780 UNTILINSTR(CHR$128+CHR$138+CHR$139+CHR$13+"48OPRSX",CHR$g%)OR(g%>64 ANDg%<=64+n%)OR(g%=27ANDINKEY-1) 790 PRINTTAB(1,1+e%);" "; 800 IFg%=138:e%=e%MODn%+1 810 IFg%=139:e%=e%-1:IFe%=0:e%=n% 820 IFg%>64ANDg%<=64+n%:e%=g%-64 830 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 840 V%=985000000+VALn$*10000+f%*100+e% 850 UNTILINSTR("48OPRSX"+CHR$128+CHR$27+CHR$13,CHR$g%):IFg%=128:PROCma 860 PRINTTAB(5,1+e%);">"; 870 =CHR$(g%)+STR$(e%) 880 : 890 DEFPROCma:LOCALg%:CLS 900 PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 910 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." 920 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" 930 PRINTCHR$(128+y%);"4 will display it in 40 columns," 940 PRINTCHR$(128+y%);"P will print it out and pressing"'CHR$(128+y%);"O will allow you to view it in"'CHR$(128+y%);"teletext mode with your own choice"'CHR$(128+y%);"of scrolling keys." 950 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..."; 960 REPEAT:*FX21 970 g%=GET:UNTILg%=27ORg%=128 980 IFg%=27:ENDPROC 990 CLS:PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 1000 PRINTTAB(0,2)CHR$(128+y%)"If it is a Basic program, pressing"'CHR$(128+y%)"R will run it, S will load it, and"'CHR$(128+y%)"X will load and list it. Pressing" 1010 PRINTCHR$(128+y%)"Return will run/load/list the"'CHR$(128+y%)"program with the default option." 1020 PRINT'CHR$(128+y%);"Pressing SHIFT and ESCAPE together"'CHR$(128+y%);"at the menu will return you to"'CHR$(128+y%);"BASIC." 1030 PRINTTAB(0,16);CHR$(128+z%);"Press ESCAPE to return to the"'CHR$(128+z%);"menu..."; 1040 REPEAT:*FX21 1050 UNTILGET=27:ENDPROC 1060 : 1070 DEFPROCg(e$):IFASCe$=128:ENDPROC 1080 LOCALn%,x$,d$,f$,s$ 1090 PROCla(f%):READd$,n% 1100 FORn%=1TOVAL(MID$(e$,2)) 1110 READx$,d$,f$,s$:NEXT:VDU30,10,152 1120 IFVALs$>99:IFVALs$DIV100=fs%:s$=RIGHT$(s$,2) ELSE IFVALs$>99:s$="0" 1130 o%=VALs$:IFo%>0:f%=o%:e%=1:ENDPROC 1140 IFo%=0 ANDs$="0":ENDPROC 1150 e$=CHR$ASCe$:PROCd:IFd$="%":d$=l$ 1160 REM IFfs%=4 AND MID$(f$,2,1)="/":f$=LEFT$(f$,1)+"."+MID$(f$,3) 1170 REM IFfs%=4 AND x$<>"":d$=x$ 1180 IFfs%=4:f$=LEFT$(f$,7-2*(MID$(f$,2,1)=".")) 1190 IFo%=0:o%=-1-INSTR(v$,LEFT$(s$,5))DIV10 1200 IFo%=-1:PROCu:ENDPROC 1210 IFo%=-2:PROCv:ENDPROC 1220 IFd$<>"":PROCc("DIR "+d$) 1230 IFo%=-3:PROCos(ar$+" -quit $.!Boot|M -e "+f$):ENDPROC 1240 IFo%>-7 ANDo%<-2 ANDe$<>CHR$13:o%=INSTR("XSR",e$)-7 1250 IFo%=-4:CHAINf$ 1260 IFo%=-5:PROCc("KEY0 *LOAD """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1270 IFo%=-6:PROCc("KEY0 LOAD"""+f$+"""|MLIST|F|N|M|O"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1280 IFo%=-7:PROCc("KEY0 *LDPIC """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1290 IFo%=-8:PROCc("KEY0 *RUN """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1300 PROCos(s$+" "+f$):END 1310 ENDPROC 1320 : 1330 DEFPROCu 1340 IFd$<>"":f$=d$+"."+f$ 1350 IFe$="4":PROCos(t7$+" "+f$) 1360 PROCos(sc$+" -lp *lp -4 "+t7$+" "+f$+" -quit $.!Boot") 1370 ENDPROC 1380 DEFPROCv 1390 IFd$<>"":f$=d$+"."+f$ 1400 IFe$="8":Z%=0:PROCos(t3$+" "+f$) 1410 IFe$="P":Z%=1:PROCos(t3$+" "+f$) 1420 IFe$<>"O":PROCd:PROCc("KEY0 *Load "+f$+"|MCALL &1904|M"):PROCc("FX138,0,128"):END 1430 CLS:PRINTCHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll up...":?&80=0:?&80=FNya 1440 PRINT'CHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll down...":*FX21 1450 ?&81=FNya:PROCd:PROCc("KEY0 *LOAD "+f$+"|M?&1974=?&80:?&1981=?&81:CALL&1904|F|M"):*FX138,0,128 1460 VDU21:END 1470 ENDPROC 1480 DEFFNya:LOCALA%,B%:A%=&7A 1490 REPEAT:B%=255-((USR&FFF4)AND&FF00)DIV256:UNTILB% ANDB%<>182ANDB%<>?&80 1500 =B% 1510 DEFPROCla(f%):LOCALm$,n%:RESTORE:READm$,m$:IFf%<2:ENDPROC 1520 REPEATREADm$,n%:REPEAT 1530 READm$,m$,m$,m$:n%=n%-1:UNTILn%<1:f%=f%-1:UNTILf%<2:ENDPROC 1540 : 1550 REM Issue num, Issue Date 1560 DATA 61,05/02/98 1570 : 1580 DATA Magazine Disc Menu,9 1590 DATA About This Disc,:0,Thi1,-2 1600 DATA Editorial,:0,Editori,-2 1610 DATA Program Info Menu,,,2 1620 DATA Messages Menu,,,3 1630 DATA Articles Menu,,,4 1640 DATA Adverts Menu,,,5 1650 DATA Utilities Menu,,,6 1660 DATA Games And Demos Menu,,,7 1670 DATA 8BS Messaging System,:0,SendMes,-4 1680 : 1690 DATA Program Info,5 1700 DATA Program Info Collection,:0,Doc1,-2 1710 DATA Messaging System Info,:2,MesInf,-2 1720 DATA Font Definition Info,:2,DefInf,-1 1730 DATA Messages Menu,,,3 1740 DATA Return To Main Menu,,,1 1750 : 1760 DATA Messages,7 1770 DATA To You,:0,uu,-2 1780 DATA Comments on Programs,:0,Comment,-2 1790 DATA Help Offered,:0,HelpYou,-2 1800 DATA Help Wanted,:0,HelpMe,-2 1810 DATA General Messages,:0,Gen1,-2 1820 DATA Articles Menu,,,4 1830 DATA Return To Main Menu,,,1 1840 : 1850 DATA Articles Menu,13 1860 DATA Regular Contacts,:0,Contact,-2 1870 DATA Free Commercial Games!,:2,GrevS,-1 1880 DATA Play it Again Sam 1 Review,:2,PAS1Rev,-1 1890 DATA Play it Again Sam 3 Review,:2,PAS3Rev,-1 1900 DATA Play it Again Sam 4 Review,:2,PAS4Rev,-1 1910 DATA Play it Again Sam 5 Review,:0,PAS5Rev,-1 1920 DATA Struggling With My BBC,:2,ModelB,-1 1930 DATA PC PSU,:2,PCPSU,-1 1940 DATA Master Configuration,:0,MastCon,-1 1950 DATA ADFS Technical Info,:2,adfsTEC,-1 1960 DATA View Hints,:2,ViewHnt,-1 1970 DATA ViewStore Hints,:2,VstoHin,-1 1980 DATA Return To Main Menu,,,1 1990 : 2000 DATA Adverts Menu,8 2010 DATA 8BS Advert,:2,8BSAD,-1 2020 DATA For Sale,:0,ForSale,-2 2030 DATA Wanted,:0,Wanted,-2 2040 DATA D6G,:2,D6GAD,-1 2050 DATA 4WL,:2,4WLAD,-1 2060 DATA Superior Software Offer,:0,SupSoft,-1 2070 DATA Extra Special Offer!,:0,SupX,-1 2080 DATA Return To Main Menu,,,1 2090 : 2100 DATA Utilities Menu,11 2110 DATA Font Save/Load,:0,Stop,-4 2120 DATA Font Definition Program,:2.S,DefChar,-4 2130 DATA Edword Keystrip,:2.S,EDWkeys,-4 2140 DATA Interword Keystrip,:2.S,InterKe,-4 2150 DATA EDIT Keystrip,:2.S,EditKey,-4 2160 DATA ABZ Keystrip,:2.S,TelKeys,-4 2170 DATA 8BS Keystrip,:2.S,MesgKey,-4 2180 DATA Disc Image Manipulation,:0,Stop,-4 2190 DATA TNC Driver MASTER ONLY,:2.S,TncDvr,-4 2200 DATA Read/Write Sheila,:0,Stop,-4 2210 DATA Return To Main Menu,,,1 2220 : 2230 DATA Games and Demos,4 2240 DATA Seth,:2.S,Seth,-4 2250 DATA Knights Tour,:2.S,Knights,-4 2260 DATA Coal Man Poem. PRINTER!,:0.S,CoalMan,-4 2270 DATA Return To Main Menu,,,1 2280 :