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.10 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%=2:REM Description 280 i%=5:REM ID 290 p%=2:REM Menu outline 300 q%=7:REM "8-Bit Software" 310 r%=3:REM Date + issue 320 s%=3:REM Menu heading 330 t%=5:REM Letters 340 u%=6:REM Menu items 350 v%=3:REM Help prompt 360 w%=4:REM Selection bar 370 x%=3:REM Help screen title 380 y%=5: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);"-1 ";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 -7 -8 -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 PROCos(s$+" "+f$):END 1290 ENDPROC 1300 : 1310 DEFPROCu 1320 IFd$<>"":f$=d$+"."+f$ 1330 IFe$="4":PROCos(t7$+" "+f$) 1340 PROCos(sc$+" -lp *lp -4 "+t7$+" "+f$+" -quit $.!Boot") 1350 ENDPROC 1360 DEFPROCv 1370 IFd$<>"":f$=d$+"."+f$ 1380 IFe$="8":Z%=0:PROCos(t3$+" "+f$) 1390 IFe$="P":Z%=1:PROCos(t3$+" "+f$) 1400 IFe$<>"O":PROCd:PROCc("KEY0 *Load "+f$+"|MCALL &1904|M"):PROCc("FX138,0,128"):END 1410 CLS:PRINTCHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll up...":?&80=0:?&80=FNya 1420 PRINT'CHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll down...":*FX21 1430 ?&81=FNya:PROCd:PROCc("KEY0 *LOAD "+f$+"|M?&1974=?&80:?&1981=?&81:CALL&1904|F|M"):*FX138,0,128 1440 VDU21:END 1450 ENDPROC 1460 DEFFNya:LOCALA%,B%:A%=&7A 1470 REPEAT:B%=255-((USR&FFF4)AND&FF00)DIV256:UNTILB% ANDB%<>182ANDB%<>?&80 1480 =B% 1490 DEFPROCla(f%):LOCALm$,n%:RESTORE:READm$,m$:IFf%<2:ENDPROC 1500 REPEATREADm$,n%:REPEAT 1510 READm$,m$,m$,m$:n%=n%-1:UNTILn%<1:f%=f%-1:UNTILf%<2:ENDPROC 1520 : 1530 REM Issue num, Issue Date 1540 DATA 57,26/06/97 1550 : 1560 DATA Magazine Disc Menu,8 1570 DATA About This Disc,:0,Thi1,-2 1580 DATA Editorial,:0,Editori,-1 1590 DATA Program Info Menu,,,2 1600 DATA Messages Menu,,,3 1610 DATA Articles Menu 1,,,4 1620 DATA Articles Menu 2,,,5 1630 DATA Adverts Menu,,,6 1640 DATA 8BS Messaging System,:0,SendMes,-4 1650 : 1660 DATA Program Info,7 1670 DATA Program Info Collection,:0,Doc1,-2 1680 DATA Messaging System Info 1,:2,MesInf,-2 1690 DATA Messaging System Info 2,:2,MesInfT,-2 1700 DATA Jterm,:2,JtermIn,-1 1710 DATA D6G Programs,:0,D6GINFO,-1 1720 DATA Messages Menu,,,3 1730 DATA Return To Main Menu,,,1 1740 : 1750 DATA Messages,8 1760 DATA To You,:0,uu,-2 1770 DATA Comments on Programs,:0,Comment,-2 1780 DATA Help Offered,:0,HelpYou,-2 1790 DATA Help Wanted,:0,HelpMe,-2 1800 DATA General Messages,:0,Gen1,-2 1810 DATA Last Messages,:0,Last,-2 1820 DATA Articles Menu,,,4 1830 DATA Return To Main Menu,,,1 1840 : 1850 DATA Articles Menu 1,13 1860 DATA Regular Contacts,:0,Contact,-2 1870 DATA Superior Collection 1 Review,:2,Sup1Rev,-1 1880 DATA SciFi Story Part 2. E2K,:2,SciFi2,-1 1890 DATA Free Commercial Games!,:2,GrevS,-1 1900 DATA Master Technical Info,:2,MasTxt,-1 1910 DATA Acorn World Wide BBS,:2,BBS,-1 1920 DATA Glossary,:2,Glosary,-1 1930 DATA Jterm Review,:2,JtermRe,-1 1940 DATA 6502 Emulator,:2,6502em,-1 1950 DATA Lottery Numbers,:2,LotASC,-1 1960 DATA ADFS Information,:2,ADFS,-1 1970 DATA Articles Menu 2,,,5 1980 DATA Return To Main Menu,,,1 1990 : 2000 DATA Articles Menu 2,4 2010 DATA BBC B+ Information,:2,B+128,-1 2020 DATA Serial FAQ,:2,SerialF,-1 2070 DATA Adverts Menu,,,6 2080 DATA Return To Main Menu,,,1 2090 : 2100 DATA Adverts Menu,8 2110 DATA 8BS Advert,:0,8BSAD,-1 2120 DATA For Sale,:0,ForSale,-2 2130 DATA Wanted,:0,Wanted,-2 2140 DATA Superior Software Offer,:0,SupSoft,-1 2150 DATA ProAction Advert,:2,ProAct,-1 2160 DATA 4WL,:2,4WLad,-1 2170 DATA D6G,:2,D6GAD,-1 2180 DATA Return To Main Menu,,,1 2190 :