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 REM Christmas version adapted by J Ripley 90 : 100 D%=30:REM NUMBER OF FLAKES 110 DIMC%(D%):FORL%=0TOD%:C%(L%)=RND(&400)+&7CF0:NEXT 120 REM C%(0)=0:REM REMOVE REM FROM HERE FOR NO SNOW 130 : 140 MODE&7:VDU23;8202;0;0;0; 150 PROCa:PROCb 160 ONERRORVDU3:MODE7:REPORT:PRINT" at line ";ERL:PROCc("FX21"):PROCc("KEY0 LIST "+STR$(ERL)+"|M"):PROCc("FX138,0,128"):PROCd:END 170 REPEATe$=FNf:IFASCe$<>27:PROCg(e$) 180 UNTILASCe$=27:MODE7:PROCd:END 190 : 200 DEFPROCa:*FX4,1 210 *FX225,128 220 *FX229,1 230 ENDPROC 240 DEFPROCd:*FX4 250 *FX225,1 260 *FX229 270 ENDPROC 280 : 290 DEFFNS:IFTOP-PAGE>&2200:PRINT"Too long" 300 ="$.!Boot" 310 DEFPROCb:*FX12 320 v$="MODE3TEXT MODE7TTXT ARCHIARCHICHAINBASICLOAD LOAD LIST LIST " 330 d%=6 340 i%=2 350 p%=3 360 q%=7 370 r%=1 380 s%=2 390 t%=2 400 u%=6 410 v%=5 420 w%=4 430 x%=3 440 y%=5 450 z%=7 460 aa%=7 470 ba%=7 480 : 490 DIMh%256,l%(14):i$=FNj 500 PROCfs("$"):RESTORE:READ n$,m$ 510 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 520 VDU26:CLS:PRINTCHR$(128+i%);" I.D. ";i$;" ";CHR$(144+p%);""; 530 PRINTCHR$(144+p%);"";CHR$(128+r%);" Issue ";LEFT$(n$,2);" ";CHR$(144+p%);""; 540 PRINTCHR$(144+p%);"";CHR$(144+q%);" ࠰ࠠ ";CHR$(144+p%);""; 550 PRINTCHR$(144+p%);"";CHR$(144+q%);" ꡵꠽";CHR$(128+r%);LEFT$(m$,8);CHR$(144+p%);""; 560 PRINTCHR$(144+p%);"";CHR$(144+q%);" ";CHR$(145);" "; 570 FORn%=1TO18:PRINTCHR$(144+p%);"";SPC(36);CHR$(144+p%);"";:NEXT 580 PRINTCHR$(144+p%);""; 590 VDU28,2,22,37,5 600 ENDPROC 610 DEFPROCfs(A$):LOCALA%,Y%,E%,n%:fs%=(USR&FFDA)AND&FF:l$=A$:IFA$="":l$="$.Library":IFfs%=4 ORfs%=65:l$=":0.%" 620 PROCc("LIB "+l$):IFA$="":IFfs%>4:n%=OPENIN("%"):IFn%:CLOSE#n%:l$="%" 630 t3$=l$+".7to3":t7$=l$+".3to7":sc$=l$+".Scroll":ar$=l$+".Archive":ENDPROC 640 : 650 DEFPROCc($h%):LOCALX%,Y% 660 X%=h%:Y%=X%DIV256:CALL&FFF7 670 ENDPROC 680 DEFPROCos(c$):IFLEFT$(c$,1)="*":PROCc(c$):ENDPROC 690 I%=INSTR(c$," "):IFI%:PROCc("KEY0 |@"+MID$(c$,I%+1)+"|M"):*FX138,0,192 700 CHAINc$:ENDPROC 710 DEFFNj=$(PAGE+&2F) 720 DEFFNf:LOCALt$,n%,m$,s$,g%,m% 730 CLS:PROCla(f%):READt$,n% 740 IFn%>14:n%=14 750 PRINTTAB(0,0);CHR$(128+s%);TAB(1+(17.5-(LEN(t$)/2)),0);t$ 760 FORm%=1TOn%:READm$,s$,s$,s$ 770 o%=VALs$:IFo%=0:o%=-1-INSTR(v$,LEFT$(s$,5))DIV10 780 l%(m%)=o%:PRINTTAB(1,1+m%);" ";CHR$(128+t%);CHR$(64+m%);CHR$(128+u%);m$;TAB(35,1+m%);CHR$156;:NEXT 790 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 800 PRINTTAB(0,16);""; 810 PRINTTAB(0,17);CHR$(128+v%);"Press";CHR$129;"f0";CHR$(128+v%);"for help.";CHR$(128+d%); 820 REPEAT:REPEAT*FX21 830 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); 840 REPEATg%=INKEY(0):IF g%=-1PROCx 850 UNTILg%<>-1:IF(g%AND&E0)=&60:g%=g%-32 860 UNTILINSTR(CHR$128+CHR$138+CHR$139+CHR$13+"48OPRSX",CHR$g%)OR(g%>64 ANDg%<=64+n%)OR(g%=27ANDINKEY-1) 870 PRINTTAB(1,1+e%);" "; 880 IFg%=138:e%=e%MODn%+1 890 IFg%=139:e%=e%-1:IFe%=0:e%=n% 900 IFg%>64ANDg%<=64+n%:e%=g%-64 910 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 920 V%=985000000+VALn$*10000+f%*100+e% 930 UNTILINSTR("48OPRSX"+CHR$128+CHR$27+CHR$13,CHR$g%):IFg%=128:PROCma 940 PRINTTAB(5,1+e%);">"; 950 =CHR$(g%)+STR$(e%) 960 : 970 DEFPROCma:LOCALg%:CLS 980 PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 990 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." 1000 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" 1010 PRINTCHR$(128+y%);"4 will display it in 40 columns," 1020 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." 1030 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..."; 1040 REPEAT:*FX21 1050 g%=GET:UNTILg%=27ORg%=128 1060 IFg%=27:ENDPROC 1070 CLS:PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 1080 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" 1090 PRINTCHR$(128+y%)"Return will run/load/list the"'CHR$(128+y%)"program with the default option." 1100 PRINT'CHR$(128+y%);"Pressing SHIFT and ESCAPE together"'CHR$(128+y%);"at the menu will return you to"'CHR$(128+y%);"BASIC." 1110 PRINTTAB(0,16);CHR$(128+z%);"Press ESCAPE to return to the"'CHR$(128+z%);"menu..."; 1120 REPEAT:*FX21 1130 UNTILGET=27:ENDPROC 1140 : 1150 DEFPROCg(e$):IFASCe$=128:ENDPROC 1160 LOCALn%,x$,d$,f$,s$ 1170 PROCla(f%):READd$,n% 1180 FORn%=1TOVAL(MID$(e$,2)) 1190 READx$,d$,f$,s$:NEXT:VDU30,10,152 1200 IFVALs$>99:IFVALs$DIV100=fs%:s$=RIGHT$(s$,2) ELSE IFVALs$>99:s$="0" 1210 o%=VALs$:IFo%>0:f%=o%:e%=1:ENDPROC 1220 IFo%=0 ANDs$="0":ENDPROC 1230 e$=CHR$ASCe$:PROCd:IFd$="%":d$=l$ 1240 REM IFfs%=4 AND MID$(f$,2,1)="/":f$=LEFT$(f$,1)+"."+MID$(f$,3) 1250 REM IFfs%=4 AND x$<>"":d$=x$ 1260 IFfs%=4:f$=LEFT$(f$,7-2*(MID$(f$,2,1)=".")) 1270 IFo%=0:o%=-1-INSTR(v$,LEFT$(s$,5))DIV10 1280 IFo%=-1:PROCu:ENDPROC 1290 IFo%=-2:PROCv:ENDPROC 1300 IFd$<>"":PROCc("DIR "+d$) 1310 IFo%=-3:PROCos(ar$+" -quit $.!Boot|M -e "+f$):ENDPROC 1320 IFo%>-7 ANDo%<-2 ANDe$<>CHR$13:o%=INSTR("XSR",e$)-7 1330 IFo%=-4:CHAINf$ 1340 IFo%=-5:PROCc("KEY0 *LOAD """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1350 IFo%=-6:PROCc("KEY0 LOAD"""+f$+"""|MLIST|F|N|M|O"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1360 IFo%=-7:PROCc("KEY0 *LDPIC """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1370 IFo%=-8:PROCc("KEY0 *RUN """+f$+"""|F|M"):PROCc("FX21"):PROCc("FX138,0,128"):VDU22,7:END 1380 PROCos(s$+" "+f$):END 1390 ENDPROC 1400 : 1410 DEFPROCu 1420 IFd$<>"":f$=d$+"."+f$ 1430 IFe$="4":PROCos(t7$+" "+f$) 1440 PROCos(sc$+" -lp *lp -4 "+t7$+" "+f$+" -quit $.!Boot") 1450 ENDPROC 1460 DEFPROCv 1470 IFd$<>"":f$=d$+"."+f$ 1480 IFe$="8":Z%=0:PROCos(t3$+" "+f$) 1490 IFe$="P":Z%=1:PROCos(t3$+" "+f$) 1500 IFe$<>"O":PROCd:PROCc("KEY0 *Load "+f$+"|MCALL &1904|M"):PROCc("FX138,0,128"):END 1510 CLS:PRINTCHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll up...":?&80=0:?&80=FNya 1520 PRINT'CHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll down...":*FX21 1530 ?&81=FNya:PROCd:PROCc("KEY0 *LOAD "+f$+"|M?&1974=?&80:?&1981=?&81:CALL&1904|F|M"):*FX138,0,128 1540 VDU21:END 1550 ENDPROC 1560 DEFFNya:LOCALA%,B%:A%=&7A 1570 REPEAT:B%=255-((USR&FFF4)AND&FF00)DIV256:UNTILB% ANDB%<>182ANDB%<>?&80 1580 =B% 1590 DEFPROCla(f%):LOCALm$,n%:RESTORE:READm$,m$:IFf%<2:ENDPROC 1600 REPEATREADm$,n%:REPEAT 1610 READm$,m$,m$,m$:n%=n%-1:UNTILn%<1:f%=f%-1:UNTILf%<2:ENDPROC 1620 : 1630 DEFPROCx:IF C%(0)=0 ENDPROC 1640 FORL%=0 TO RND(D%/2)+D%/2 1650 IF?C%(L%)=135:IF?(C%(L%)+1)=42:?(C%(L%)+1)=32:?C%(L%)=32 1660 C%(L%)=C%(L%)+38+RND(3):IF C%(L%)>&7F88 C%(L%)=RND(40)+&7CF0 1670 IF?C%(L%)=32:IF?(C%(L%)+1)=32 ?C%(L%)=135:?(C%(L%)+1)=42 1680 NEXT 1690 ENDPROC 1700 : 1710 : 1720 REM Issue num, Issue Date 1730 DATA 60,18/12/97 1740 : 1750 DATA Magazine Disc Menu,9 1760 DATA About This Disc,:0,Thi1,-2 1770 DATA Editorial,:0,Editori,-2 1780 DATA Program Info Menu,,,2 1790 DATA Messages Menu,,,3 1800 DATA Articles Menu,,,4 1810 DATA Adverts Menu,,,5 1820 DATA Utilities Menu,,,6 1830 DATA Games Tunes And Demos Menu,,,7 1840 DATA 8BS Messaging System,:0,SendMes,-4 1850 : 1860 DATA Program Info,5 1870 DATA Program Info Collection,:0,Doc1,-2 1880 DATA Messaging System Info,:2,MesInf,-2 1890 DATA Year 2000 Fix,:2,y2kinf,-1 1900 DATA Messages Menu,,,3 1910 DATA Return To Main Menu,,,1 1920 : 1930 DATA Messages,9 1940 DATA To You,:0,uu,-2 1950 DATA Comments on Programs,:0,Comment,-2 1960 DATA Help Offered,:0,HelpYou,-2 1970 DATA Help Wanted,:0,HelpMe,-2 1980 DATA General Messages,:0,Gen1,-2 1990 DATA Last Messages 1,:0,Last1,-2 2000 DATA Last Messages 2,:0,Last2,-2 2010 DATA Articles Menu,,,4 2020 DATA Return To Main Menu,,,1 2030 : 2040 DATA Articles Menu,9 2050 DATA Regular Contacts,:0,Contact,-2 2060 DATA Superior Collection 2 Review,:2,Sup2Rev,-1 2070 DATA Master Break Review,:0,MBrkRev,-1 2080 DATA Free Commercial Games!,:2,GrevS,-1 2090 DATA Play it Again Sam 2 Review,:2,Sam2Rev,-1 2100 DATA NTAUS Too,:2,NTAUS2,-1 2110 DATA View Hints,:0,VHints,-1 2120 DATA Adverts Menu,,,5 2130 DATA Return To Main Menu,,,1 2140 : 2150 DATA Adverts Menu,9 2160 DATA 8BS Advert,:2,8BSAD,-1 2170 DATA For Sale,:0,ForSale,-2 2180 DATA Wanted,:0,Wanted,-2 2190 DATA Superior Software Offer,:0,SupSoft,-1 2200 DATA D9F,:2,D9Fad,-1 2210 DATA D5K,:2,D5Kad,-1 2220 DATA D6G,:2,D6Gad,-1 2230 DATA 4WL,:2,4WLad,-1 2240 DATA Return To Main Menu,,,1 2250 : 2260 DATA Utilities Menu,14 2270 DATA 8BS ID Stamper,:2.S,IDSTAMP,-4 2280 DATA Mode 7 Screen Editor,:2.S,MODE7SD,-4 2290 DATA Repeat Last Command,:2.S,Repeat,-8 2300 DATA Sideways Ram Loader,:2.S,Loader,-6 2310 DATA Quick Format ADFS,:2.S,QFADFS,-4 2320 DATA Quick Format DFS,:2.S,QFDFS,-4 2330 DATA Scan Disc ADFS,:2.S,SDADFS,-4 2340 DATA Scan Disc DFS,:2.S,SDDFS,-4 2350 DATA Year 2000 Fix,:2.S,stop,-4 2360 DATA Message Sizer,:2.S,MsgSize,-4 2370 DATA Message File Reader,:2.S,MesgRdr,-4 2380 DATA Print a File,:2.S,Stop,-4 2390 DATA Code Catcher,:0.S,CodeCat,-4 2400 DATA Return To Main Menu,,,1 2410 : 2420 DATA Games Tunes and Demos,8 2430 DATA Red Lamp Poem. PRINTER ON!,:2.S,RedLamp,-4 2440 DATA Diamond Adventure,:2.S,Diamond,-4 2450 DATA LED Demo,:2.S,LEDemo,-4 2460 DATA 8BS Xmas Tree,:2.S,XLoad,-4 2470 DATA Turkey. Poem. PRINTER ON!,:0.S,TurkeyT,-4 2480 DATA Fretting. Poem. PRINTER ON!,:0.S,Frett,-4 2490 DATA 20 Carols,:0.S,20Car,-4 2500 DATA Return To Main Menu,,,1 2510 :