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%=6 280 i%=2 290 p%=3 300 q%=7 310 r%=1 320 s%=2 330 t%=2 340 u%=6 350 v%=5 360 w%=4 370 x%=3 380 y%=5 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 1271 IFo%=-7:PROCc("KEY0 *LDPIC """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1272 IFo%=-8:PROCc("KEY0 *RUN """+f$+"""|F|M"):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 59,30/10/97 1550 : 1560 DATA Magazine Disc Menu,9 1570 DATA About This Disc,:0,Thi1,-2 1580 DATA Editorial,:0,Editori,-2 1590 DATA Program Info Menu,,,2 1600 DATA Messages Menu,,,3 1610 DATA Articles Menu,,,4 1620 DATA Adverts Menu,,,5 1630 DATA Utilities Menu,,,6 1640 DATA Games And Demos Menu,,,7 1650 DATA 8BS Messaging System,:0,SendMes,-4 1660 : 1670 DATA Program Info,4 1680 DATA Program Info Collection,:0,Doc1,-2 1690 DATA Messaging System Info,:2,MesInf,-2 1700 DATA Messages Menu,,,3 1710 DATA Return To Main Menu,,,1 1720 : 1730 DATA Messages,8 1740 DATA To You,:0,uu,-2 1750 DATA Comments on Programs,:0,Comment,-2 1760 DATA Help Offered,:0,HelpYou,-2 1770 DATA Help Wanted,:0,HelpMe,-2 1780 DATA General Messages,:0,Gen1,-2 1790 DATA From D5B,:0,FromD5B,-2 1800 DATA Articles Menu,,,4 1810 DATA Return To Main Menu,,,1 1820 : 1830 DATA Articles Menu,12 1840 DATA Regular Contacts,:0,Contact,-2 1850 DATA Thargoid Tale. Part2a,:2,Tale2a,-1 1860 DATA Thargoid Tale. Part2b,:2,Tale2b,-1 1870 DATA Free Commercial Games!,:2,GrevS,-1 1880 DATA Doom,:2,Doom,-1 1890 DATA EDIT Search and Replace,:0,Edit,-1 1900 DATA EBTEL Update,:2,Ebtel,-1 1910 DATA From K2C,:2,FromK2C,-1 1920 DATA Clogger Review,:2,ClogRev,-1 1930 DATA Software Archaeology,:0,SofArch,-1 1940 DATA Adverts Menu,,,5 1950 DATA Return To Main Menu,,,1 1960 : 1970 DATA Adverts Menu,7 1980 DATA 8BS Advert,:0,8BSAD,-1 1990 DATA For Sale,:0,ForSale,-2 2000 DATA Wanted,:0,Wanted,-2 2010 DATA Superior Software Offer,:0,SupSoft,-1 2020 DATA ProAction Advert,:2,ProAct,-1 2030 DATA 4WL,:2,4WLad,-1 2040 DATA Return To Main Menu,,,1 2050 : 2060 DATA Utilities Menu,4 2070 DATA CJR Shift Calculator,:2.S,WorkRo2,-4 2080 DATA Copy Disc Images,:2.S,Extract,-4 2090 DATA Dictionary Utility Demo,:2.S,ScraDic,-4 2100 DATA Return To Main Menu,,,1 2110 : 2120 DATA Games and Demos,8 2130 DATA Pictures From 4WL,:2.S,Loader,-4 2140 DATA Puzzle 2 From D5B,:2.S,Puzl002,-7 2150 DATA Issue 59 Screen,:2.S,Issue59,-7 2160 DATA Lucky Picture,:2.S,Lucky,-7 2170 DATA Picture from NTAU2,:2.S,NTAUSad,-7 2180 DATA Alien Picture 1,:2.S,Alien1,-7 2190 DATA Alien Picture 2,:2.S,Alien2,-7 2200 DATA Return To Main Menu,,,1 2210 :