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.15 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:REM IFDir$="$":END ELSE CHAIN"$.!Boot" 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 CALL CALL LDPICLDPICSCRLOSCRLO" 270 d%=3:REM Description 280 i%=6:REM ID 290 p%=5:REM Menu outline 300 q%=3:REM "8-Bit Software" 310 r%=7:REM Date + issue 320 s%=6:REM Menu heading 330 t%=3:REM Letters 340 u%=6:REM Menu items 350 v%=3:REM Help prompt 360 w%=4:REM Selection bar 370 x%=5: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):X%=h%:Y%=X%DIV256:i$=FNj:REM *DIR$ 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$):LOCALn%:fs%=FNfs:Dn$=FNgbpbN(5):drv%=(X%?(22+X%?20))AND&FD 560 l$=A$:IFA$="":l$="$.Library":IFfs%=4 ORfs%=&105:l$=":"+STR$drv%+".%" 570 REM Dir$=FNgbpbN(6):IFDir$<>"$":l$="$."+Dir$+MID$(l$,2) 580 Dir$="$":REM PATCH 590 PROCc("LIB "+l$):IFA$="":IFfs%>4:n%=OPENIN("%"):IFn%:CLOSE#n%:l$="%" 600 t3$=l$+".7to3":t7$=l$+".3to7":sc$=l$+".Scroll":ar$=l$+".Archive":ENDPROC 610 DEFFNfs:LOCALA%,Y%,E%:=(USR&FFDA)AND&FF 620 DEFFNgbpbN(A%):X%!1=X%+20:CALL&FFD1:A%=X%+20+((1+X%?20)AND(A%>5)):A%?(1+?A%)=13:=LEFT$($(A%+1),INSTR($(A%+1)+" "," ")-1) 630 : 640 DEFPROCc($h%):LOCALX%,Y% 650 X%=h%:Y%=X%DIV256:CALL&FFF7 660 ENDPROC 670 DEFPROCos(c$):IFASCc$=42 ORc$="":OSCLIc$:ENDPROC ELSE CHAINc$:ENDPROC 680 DEFFNj=$(PAGE+&2F) 690 DEFFNf:LOCALt$,n%,m$,s$,g%,m% 700 CLS:PROCla(f%):READt$,n0% 710 IFn0%>14:n0%=14 720 PRINTTAB(0,0);CHR$(128+s%);TAB(1+(17.5-(LEN(t$)/2)),0);t$ 730 n%=0:m%=n0%:REPEATREADm$,s$,s$,s$ 740 IFVALs$>99:IFVALs$DIV100=fs%:s$=RIGHT$(s$,2) ELSE IFVALs$>99:s$="0":m$="" 750 o%=VALs$:IFo%=0ANDASCs$<>42:o%=-1-INSTR(v$,LEFT$(s$,5))DIV10 760 IFs$<>"0":n%=n%+1:l%(n%)=o%:PRINTTAB(1,1+n%)" "CHR$(128+t%)CHR$(64+n%)CHR$(128+u%)LEFT$(m$,32);TAB(35,1+m%)CHR$156; 770 m%=m%-1:UNTILm%<1:PRINTTAB(0,1+e%);CHR$(128+w%);CHR$157; 780 PRINTTAB(0,17);CHR$(128+v%);"Press";CHR$129;"f0";CHR$(128+v%);"for help.";CHR$(128+d%); 790 REPEAT:REPEAT*FX21 800 PRINTTAB(20,17);:IFl%(e%)>0:PRINT"Another menu ";ELSE PRINTMID$("Runs Code 80 Column Text40 Column TextArchive Basic Program Loads Basic Lists Basic Calls Basic LDPIC Picture ScrLoad Pictr ",-14*l%(e%)+1,14); 810 g%=GET:IF(g%AND&E0)=&60:g%=g%-32 820 UNTILINSTR(CHR$128+CHR$138+CHR$139+CHR$13+"48OPRSX",CHR$g%)OR(g%>64 ANDg%<=64+n%)OR(g%=27ANDINKEY-1) 830 PRINTTAB(1,1+e%);" "; 840 IFg%=138:e%=e%MODn%+1 850 IFg%=139:e%=e%-1:IFe%=0:e%=n% 860 IFg%>64ANDg%<=64+n%:e%=g%-64 870 PRINTTAB(1,1+e%);CHR$(128+w%);CHR$157; 880 V%=985000000+VALn$*10000+f%*100+e% 890 UNTILINSTR("48OPRSX"+CHR$128+CHR$27+CHR$13,CHR$g%):IFg%=128:PROCma 900 PRINTTAB(5,1+e%);">"; 910 =CHR$(g%)+STR$(e%) 920 : 930 DEFPROCma:LOCALg%:CLS 940 PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 950 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." 960 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" 970 PRINTCHR$(128+y%);"4 will display it in 40 columns," 980 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." 990 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..."; 1000 REPEAT:*FX21 1010 g%=GET:UNTILg%=27ORg%=128 1020 IFg%=27:ENDPROC 1030 CLS:PRINTTAB(5,0);CHR$(128+x%);"Using the 8BS menu system" 1040 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" 1050 PRINTCHR$(128+y%)"Return will run/load/list the"'CHR$(128+y%)"program with the default option." 1060 PRINT'CHR$(128+y%);"Pressing SHIFT and ESCAPE together"'CHR$(128+y%);"at the menu will return you to"'CHR$(128+y%);"BASIC." 1070 PRINTTAB(0,16);CHR$(128+z%);"Press ESCAPE to return to the"'CHR$(128+z%);"menu..."; 1080 REPEAT:*FX21 1090 UNTILGET=27:ENDPROC 1100 : 1110 DEFPROCg(e$):IFASCe$=128:ENDPROC 1120 LOCALn%,x$,d$,f$,s$ 1130 PROCla(f%):READd$,n% 1140 FORn%=1TOVAL(MID$(e$,2)) 1150 READx$,d$,f$,s$:IFVALs$>99:IFVALs$DIV100=fs%:s$=RIGHT$(s$,2) ELSE IFVALs$>99:s$="0":n%=n%-1 1160 NEXT:o%=VALs$:IFo%>0:f%=o%:e%=1:ENDPROC 1170 IFo%=0 ANDs$="0":ENDPROC 1180 VDU26,31,0,21:e$=CHR$ASCe$:PROCd:IFd$="%":d$=l$:REM ...152 1190 I%=INSTR(d$,"//"):IFI%:d$=MID$(d$,1+((I%+1)AND(fs%<>4)),I%-1-128*(fs%<>4)) 1200 IFfs%=4 AND MID$(f$,2,1)="/":f$=LEFT$(f$,1)+"."+MID$(f$,3) 1210 IFfs%=4:f$=LEFT$(f$,7-2*(MID$(f$,2,1)=".")) 1220 IFfs%=4:IFLEFT$(d$,1)=":":d$=":"+STR$(drv%ORVALMID$(d$,2))+MID$(d$,3) 1230 IFLEFT$(d$,1)="$":IFDir$<>"$":d$="$."+Dir$+MID$(d$,2) 1240 IFo%=0:o%=INSTR(v$,LEFT$(s$,5)):o%=(-1-o%DIV10)AND(o%>0) 1250 IFo%=-1:PROCu:ENDPROC 1260 IFo%=-2:PROCv:ENDPROC 1270 IFd$<>"":PROCc("Dir "+d$) 1280 IFo%=-3:PROCos(ar$+" -quit $.!Boot|M -e "+f$):ENDPROC 1290 IFo%>-7 ANDo%<-2 ANDe$<>CHR$13:o%=INSTR("XSR",e$)-7 1300 IFo%=-4:CHAINf$ 1310 IFo%=-5:PROCKey("*Load "+f$+"|F|M") 1320 IFo%=-6:PROCKey("LOAD """+f$+"""|MLIST|F|N|M|O") 1330 IFo%=-7:PROCos(f$+" -quit $.!Boot"):END 1340 IFo%=-8:PROCKey("*LdPic "+f$+"|F|M") 1350 IFo%=-9:PROCKey("*ScrLoad "+f$+"|F|M") 1360 I%=INSTR(s$,"//"):IFI%:REPEATOSCLILEFT$(s$,I%-1):s$=MID$(s$,I%+2):I%=INSTR(s$,"//"):UNTILI%=0:IFs$="RUN":RUN 1370 PROCos(s$+" "+f$):END 1380 ENDPROC 1390 : 1400 DEFPROCu 1410 IFd$<>"":f$=d$+"."+f$ 1420 IFe$="4":PROCos(t7$+" "+f$) 1430 PROCos(sc$+" -lp *lp -4 "+t7$+" "+f$+" -quit $.!Boot") 1440 ENDPROC 1450 DEFPROCv 1460 IFd$<>"":f$=d$+"."+f$ 1470 IFe$="8":Z%=0:PROCos(t3$+" "+f$) 1480 IFe$="P":Z%=1:PROCos(t3$+" "+f$) 1490 IFe$<>"O":PROCd:PROCc("Run "+f$):END 1500 CLS:PRINTCHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll up...":?&80=0:?&80=FNya 1510 PRINT'CHR$(128+aa%);"Please press the key to use to"'CHR$(128+aa%);"scroll down...":*FX21 1520 ?&81=FNya:PROCd:PROCKey("*Load "+f$+"|M?&1974=?&80:?&1981=?&81:CALL&1904|F|M"):END 1530 VDU21:END 1540 ENDPROC 1550 DEFPROCKey(A$):PROCc("KEY0 "+A$):PROCc("FX21"):PROCc("FX138,0,192"):VDU22,7:END::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 REM Issue num, Issue Date 1640 DATA 65,17/09/98 1650 : 1660 DATA Magazine Disc Menu,9 1670 DATA About This Disc,:0,Thi1,-2 1680 DATA Editorial,:0,Editori,-2 1690 DATA Program Info Menu,,,2 1700 DATA Messages Menu,,,3 1710 DATA Articles Menu,,,4 1720 DATA Adverts Menu,,,5 1730 DATA Utilities Menu,,,6 1740 DATA Games And Demos Menu,,,7 1750 DATA 8BS Messaging System,%,SendMes,-4 1760 : 1770 DATA Program Info,9 1780 DATA Program Info Collection,:0,Doc1,-2 1790 DATA Messaging System Info,%,MsgInf,-2 1800 DATA 8BS Text Scroller,:2,ScroInf,-1 1810 DATA Read PH Rom,:2,RDMAN,-1 1820 DATA Repeat Command,:2,RPMAN,-1 1830 DATA Universal Packager,:2,UNMAN,-1 1840 DATA Teletext Page Grabber,:2,TXGETPG,-1 1850 DATA Messages Menu,,,3 1860 DATA Return To Main Menu,,,1 1870 : 1880 DATA Messages,7 1890 DATA To You,:0,uu,-2 1900 DATA Comments on Programs,:0,Comment,-2 1910 DATA Help Offered,:0,HelpYou,-2 1920 DATA Help Wanted,:0,HelpMe,-2 1930 DATA General Messages,:0,Gen1,-2 1940 DATA Articles Menu,,,4 1950 DATA Return To Main Menu,,,1 1960 : 1970 DATA Articles Menu,13 1980 DATA Regular Contacts,:0,Contact,-2 1990 DATA Free Commercial Games!,:2,GrevS,-1 2000 DATA 8BS CDrom Problems,:2,8BSCDR,-2 2010 DATA Play it Again Sam 13 Review,:2,PAS13RE,-1 2020 DATA A Round Tuit,:2,tuit,-1 2030 DATA Disc Drives. Mark Usher,:2,DDrives,-1 2040 DATA Twin Kingdom Valley Solution,:2,Twin,-1 2050 DATA Thunderstruck Solution,:2,Thun,-1 2060 DATA Return To Eden Solution,:2,RetEden,-1 2070 DATA Terrormolinos Hints,:2,TerMols,-1 2080 DATA Disc Densities,:2,DisKDen,-1 2090 DATA Adverts Menu,,,5 2100 DATA Return To Main Menu,,,1 2110 : 2120 DATA Adverts Menu,6 2130 DATA 8BS Advert,:0,8BSAD,-1 2140 DATA For Sale,:0,ForSale,-2 2150 DATA Wanted,:0,Wanted,-2 2160 DATA Superior Software Offer,:0,SupSoft,-1 2170 DATA D6G,:2,D6Gad,-1 2180 DATA Return To Main Menu,,,1 2190 : 2200 DATA Utilities Menu,7 2210 DATA 8BS Menu Reader,:2.S,MenRead,-4 2220 DATA Messaging Function Key Strip,:2.S,MsgKeys,-4 2230 DATA Read PH Rom,:2.S,RDPHrom,-4 2240 DATA Repeat Command,:2.S,Repeat,*run 2250 DATA Universal Packager,:2.S,UNIVERS,-4 2260 DATA Teletext Page Grabber,:2.S,Txgetpg,-4 2270 DATA Return To Main Menu,,,1 2280 : 2290 DATA Games and Demos,4 2300 DATA All Lottery Numbers,:2.S,All-Lot,-4 2310 DATA OXO,:2.S,OX,-4 2320 DATA Angel Poem. PRINTER READY!,:2.S,Angel2,-4 2330 DATA Return To Main Menu,,,1 2340 :