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%=3:REM Description 280 i%=6:REM ID 290 p%=5:REM Menu outline 300 q%=6:REM "8-Bit Software" 310 r%=3:REM Date + issue 320 s%=6:REM Menu heading 330 t%=7:REM Letters 340 u%=6:REM Menu items 350 v%=2:REM Help prompt 360 w%=4:REM Selection bar 370 x%=3:REM Help screen title 380 y%=2:REM Help screen text 390 z%=7:REM Help screen prompt 400 aa%=7:REM Scroll screen text 410 ba%=7:REM Unused 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 64,02/07/98 1570 : 1580 DATA Magazine Disc Menu,10 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 1,,,4 1640 DATA Articles Menu 2,,,5 1650 DATA Adverts Menu,,,6 1660 DATA Utilities Menu,,,7 1670 DATA Games Tunes And Demos Menu,,,8 1680 DATA 8BS Messaging System,:0,SendMes,-4 1690 : 1700 DATA Program Info,6 1710 DATA Program Info Collection,:0,Doc1,-2 1720 DATA Messaging System Info,:2,MesInf,-2 1730 DATA Rom Filing System Header,:2,RFSMAN,-1 1740 DATA Fix DNFS,:2,FixDNFS,-1 1750 DATA Messages Menu,,,3 1760 DATA Return To Main Menu,,,1 1770 : 1780 DATA Messages,7 1790 DATA To You,:0,uu,-2 1800 DATA Comments on Programs,:0,Comment,-2 1810 DATA Help Offered,:0,HelpYou,-2 1820 DATA Help Wanted,:0,HelpMe,-2 1830 DATA General Messages,:0,Gen1,-2 1840 DATA Articles Menu 1,,,4 1850 DATA Return To Main Menu,,,1 1860 : 1870 DATA Articles Menu 1,13 1880 DATA Regular Contacts,:0,Contact,-2 1890 DATA Free Commercial Games!,:2,GrevS,-1 1900 DATA Programming Viewstore. Part 2,:2,Views2,-1 1910 DATA Play it Again Sam 12 Review,:2,pas12re,-1 1920 DATA Play it Again Sam 15 Review,:2,pas15re,-1 1930 DATA Play it Again Sam 16 Review,:2,PAS16RE,-1 1940 DATA Play it Again Sam 17 Review,:2,PAS17RE,-1 1950 DATA Acornsoft Hits Vol.1 Review,:2,AHV1Rev,-1 1960 DATA Spycat Solution,:2,SpyCSol,-1 1970 DATA The Hobbit Solution,:2,Hobbit,-1 1980 DATA Big Volts,:0,BigVolt,-1 1990 DATA Articles Menu 2,,,5 2000 DATA Return To Main Menu,,,1 2010 : 2020 DATA Articles Menu 2,5 2030 DATA 8BS Membership,:0,Memb,-1 2040 DATA 8BS TBI Totals,:0,TBItot,-1 2050 DATA 8BS TBI Top 200,:0,Top200,-1 2060 DATA Adverts Menu,,,6 2070 DATA Return To Main Menu,,,1 2080 : 2090 DATA Adverts Menu,8 2100 DATA 8BS Advert,:0,8BSAD,-1 2110 DATA For Sale,:0,ForSale,-2 2120 DATA Wanted,:0,Wanted,-2 2130 DATA Superior Software Offer,:0,SupSoft,-1 2140 DATA J.Battersby,:2,BatAd,-1 2150 DATA Master Cartridges!,:2,Cart,-1 2160 DATA D6G,:2,D6Gad,-1 2170 DATA Return To Main Menu,,,1 2180 : 2190 DATA Utilities Menu,7 2200 DATA Xterm Update,:2.S,Xterm,-4 2210 DATA Backup Update,:2.S,Backup,-4 2220 DATA SRSAVE,:2.S,Stop,-4 2230 DATA Customise DNFS,:2.S,Stop,-4 2240 DATA RFS Header,:2.S,RFSHEAD,-4 2250 DATA JPEG Reader,:2.S,JPEGGER,-4 2260 DATA Return To Main Menu,,,1 2270 : 2280 DATA Games Tunes and Demos,4 2290 DATA Stuart McConnachie Demo,:2.S,Demo,-8 2300 DATA Driver. Poem. PRINTER READY!,:2.S,DRIVER,-4 2310 DATA Graveyard Adventure,:2.S,GraveYd,-8 2320 DATA Return To Main Menu,,,1 2330 :