10REM¶*Basic
20REM¶CHAIN"$.!Boot"
30*Exec
40REM ***
50REM First three lines MUST NOT be e
dited
60REM 8BS Menu, S.Flintham.
70REM Modified by J.Ripley, C.J.Richa
rdson, J.G.Harston, V2.11
80MODE&87:VDU23;8202;0;0;0;
90PROCa:PROCb
100ONERRORVDU3:MODE7:REPORT:PRINT" at
line ";ERL:PROCc("FX21"):PROCc("KEY0 LIS
T "+STR$(ERL)+"|M"):PROCc("FX138,0,128")
:PROCd:END
110REPEATe$=FNf:IFASCe$<>27:PROCg(e$)
120UNTILASCe$=27:MODE7:PROCd:END
130:
140DEFPROCa:*FX4,1
150*FX225,128
160*FX229,1
170ENDPROC
180DEFPROCd:*FX4
190*FX225,1
200*FX229
210ENDPROC
220:
230DEFFNS:IFTOP-PAGE>&2200:PRINT"Too l
ong"
240="$.!Boot"
250DEFPROCb:*FX12
260v$="MODE3TEXT MODE7TTXT ARCHIARCHIC
HAINBASICLOAD LOAD LIST LIST "
270d%=3:REM Description
280i%=6:REM ID
290p%=5:REM Menu outline
300q%=6:REM "8-Bit Software"
310r%=3:REM Date + issue
320s%=6:REM Menu heading
330t%=7:REM Letters
340u%=6:REM Menu items
350v%=2:REM Help prompt
360w%=4:REM Selection bar
370x%=3:REM Help screen title
380y%=2:REM Help screen text
390z%=7:REM Help screen prompt
400aa%=7:REM Scroll screen text
410ba%=7:REM Unused
420:
430DIMh%256,l%(14):i$=FNj
440PROCfs("$"):RESTORE:READ n$,m$
450IFLEFT$(STR$(V%),5)="985"+n$:f%=VAL
(MID$(STR$(V%),6,2)):e%=VAL(MID$(STR$(V%
),8,2)) ELSE f%=1:e%=1
460VDU26:CLS:PRINTCHR$(128+i%);" I.D.
";i$;" ";CHR$(144+p%);"¶///////%¶///////
//////////¶";
470PRINTCHR$(144+p%);"¶///////////*///
/////";CHR$(128+r%);" Issue ";LEFT$(n
$,2);" ";CHR$(144+p%);"¶";
480PRINTCHR$(144+p%);"¶";CHR$(144+q%);
"6£4 7i(h0 6) 0`$t` ` 0 0` ";CH
R$(144+p%);"¶";
490PRINTCHR$(144+p%);"¶";CHR$(144+q%);
"6£4!7ijj 2ijjj!5jhj`nj =!";CHR$(128+r%
);LEFT$(m$,8);CHR$(144+p%);"¶";
500PRINTCHR$(144+p%);"""£ £!" ! "! !" " !! £" "! ";CH
R$(145);" ";
510FORn%=1TO18:PRINTCHR$(144+p%);"¶";S
PC(36);CHR$(144+p%);"¶";:NEXT
520PRINTCHR$(144+p%);"¶|||||||||||||||
||||||||||||||||||||||¶";
530VDU28,2,22,37,5
540ENDPROC
550DEFPROCfs(A$):LOCALA%,Y%,E%,n%:fs%=
(USR&FFDA)AND&FF:l$=A$:IFA$="":l$="$.Lib
rary":IFfs%=4 ORfs%=65:l$=":0.%"
560PROCc("LIB "+l$):IFA$="":IFfs%>4:n%
=OPENIN("%"):IFn%:CLOSE#n%:l$="%"
570t3$=l$+".7to3":t7$=l$+".3to7":sc$=l
$+".Scroll":ar$=l$+".Archive":ENDPROC
580:
590DEFPROCc($h%):LOCALX%,Y%
600X%=h%:Y%=X%DIV256:CALL&FFF7
610ENDPROC
620DEFPROCos(c$):IFLEFT$(c$,1)="*":PRO
Cc(c$):ENDPROC
630I%=INSTR(c$," "):IFI%:PROCc("KEY0 |
@"+MID$(c$,I%+1)+"|M"):*FX138,0,192
640CHAINc$:ENDPROC
650DEFFNj=$(PAGE+&2F)
660DEFFNf:LOCALt$,n%,m$,s$,g%,m%
670CLS:PROCla(f%):READt$,n%
680IFn%>14:n%=14
690PRINTTAB(0,0);CHR$(128+s%);TAB(1+(1
7.5-(LEN(t$)/2)),0);t$
700FORm%=1TOn%:READm$,s$,s$,s$
710o%=VALs$:IFo%=0:o%=-1-INSTR(v$,LEFT
$(s$,5))DIV10
720l%(m%)=o%:PRINTTAB(1,1+m%);" ";CHR
$(128+t%);CHR$(64+m%);CHR$(128+u%);m$;TA
B(35,1+m%);CHR$156;:NEXT
730PRINTTAB(1,1+e%);CHR$(128+w%);CHR$1
57;
740PRINTTAB(0,17);CHR$(128+v%);"Press"
;CHR$129;"f0";CHR$(128+v%);"for help.";C
HR$(128+d%);
750REPEAT:REPEAT*FX21
760PRINTTAB(20,17);:IFl%(e%)>0:PRINT"A
nother 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);
770g%=GET:IF(g%AND&E0)=&60:g%=g%-32
780UNTILINSTR(CHR$128+CHR$138+CHR$139+
CHR$13+"48OPRSX",CHR$g%)OR(g%>64 ANDg%<=
64+n%)OR(g%=27ANDINKEY-1)
790PRINTTAB(1,1+e%);" ";
800IFg%=138:e%=e%MODn%+1
810IFg%=139:e%=e%-1:IFe%=0:e%=n%
820IFg%>64ANDg%<=64+n%:e%=g%-64
830PRINTTAB(1,1+e%);CHR$(128+w%);CHR$1
57;
840V%=985000000+VALn$*10000+f%*100+e%
850UNTILINSTR("48OPRSX"+CHR$128+CHR$27
+CHR$13,CHR$g%):IFg%=128:PROCma
860PRINTTAB(5,1+e%);">";
870=CHR$(g%)+STR$(e%)
880:
890DEFPROCma:LOCALg%:CLS
900PRINTTAB(5,0);CHR$(128+x%);"Using t
he 8BS menu system"
910PRINTTAB(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 opt
ion to";CHR$(128+y%);"position it immedi
ately."
920PRINT'CHR$(128+y%);"Press RETURN to
load or view the"'CHR$(128+y%);"highlig
hted program/article. If it"'CHR$(128+y%
);"is an article, pressing 8 will"'CHR$(
128+y%);"display it in 80 columns. Press
ing"
930PRINTCHR$(128+y%);"4 will display i
t in 40 columns,"
940PRINTCHR$(128+y%);"P will print it
out and pressing"'CHR$(128+y%);"O will a
llow you to view it in"'CHR$(128+y%);"te
letext mode with your own choice"'CHR$(1
28+y%);"of scrolling keys."
950PRINTTAB(0,16);CHR$(128+z%);"Press"
;CHR$(129);"f0";CHR$(128+z%);"for more h
elp or ESCAPE"'CHR$(128+z%);"to return t
o the menu...";
960REPEAT:*FX21
970g%=GET:UNTILg%=27ORg%=128
980IFg%=27:ENDPROC
990CLS:PRINTTAB(5,0);CHR$(128+x%);"Usi
ng the 8BS menu system"
1000PRINTTAB(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. Pressi
ng"
1010PRINTCHR$(128+y%)"Return will run/l
oad/list the"'CHR$(128+y%)"program with
the default option."
1020PRINT'CHR$(128+y%);"Pressing SHIFT
and ESCAPE together"'CHR$(128+y%);"at th
e menu will return you to"'CHR$(128+y%);
"BASIC."
1030PRINTTAB(0,16);CHR$(128+z%);"Press
ESCAPE to return to the"'CHR$(128+z%);"m
enu...";
1040REPEAT:*FX21
1050UNTILGET=27:ENDPROC
1060:
1070DEFPROCg(e$):IFASCe$=128:ENDPROC
1080LOCALn%,x$,d$,f$,s$
1090PROCla(f%):READd$,n%
1100FORn%=1TOVAL(MID$(e$,2))
1110READx$,d$,f$,s$:NEXT:VDU30,10,152
1120IFVALs$>99:IFVALs$DIV100=fs%:s$=RIG
HT$(s$,2) ELSE IFVALs$>99:s$="0"
1130o%=VALs$:IFo%>0:f%=o%:e%=1:ENDPROC
1140IFo%=0 ANDs$="0":ENDPROC
1150e$=CHR$ASCe$:PROCd:IFd$="%":d$=l$
1160REM IFfs%=4 AND MID$(f$,2,1)="/":f$
=LEFT$(f$,1)+"."+MID$(f$,3)
1170REM IFfs%=4 AND x$<>"":d$=x$
1180IFfs%=4:f$=LEFT$(f$,7-2*(MID$(f$,2,
1)="."))
1190IFo%=0:o%=-1-INSTR(v$,LEFT$(s$,5))D
IV10
1200IFo%=-1:PROCu:ENDPROC
1210IFo%=-2:PROCv:ENDPROC
1220IFd$<>"":PROCc("DIR "+d$)
1230IFo%=-3:PROCos(ar$+" -quit $.!Boot|
M -e "+f$):ENDPROC
1240IFo%>-7 ANDo%<-2 ANDe$<>CHR$13:o%=I
NSTR("XSR",e$)-7
1250IFo%=-4:CHAINf$
1260IFo%=-5:PROCc("KEY0 *LOAD """+f$+""
"|F|M"):PROCc("FX21"):PROCc("FX138,0,128
"):VDU22,7:END
1270IFo%=-6:PROCc("KEY0 LOAD"""+f$+"""|
MLIST|F|N|M|O"):PROCc("FX21"):PROCc("FX1
38,0,128"):VDU22,7:END
1280IFo%=-7:PROCc("KEY0 *LDPIC """+f$+"
""|F|M"):PROCc("FX21"):PROCc("FX138,0,12
8"):VDU22,7:END
1290IFo%=-8:PROCc("KEY0 *RUN """+f$+"""
|F|M"):PROCc("FX21"):PROCc("FX138,0,128"
):VDU22,7:END
1300PROCos(s$+" "+f$):END
1310ENDPROC
1320:
1330DEFPROCu
1340IFd$<>"":f$=d$+"."+f$
1350IFe$="4":PROCos(t7$+" "+f$)
1360PROCos(sc$+" -lp *lp -4 "+t7$+" "+f
$+" -quit $.!Boot")
1370ENDPROC
1380DEFPROCv
1390IFd$<>"":f$=d$+"."+f$
1400IFe$="8":Z%=0:PROCos(t3$+" "+f$)
1410IFe$="P":Z%=1:PROCos(t3$+" "+f$)
1420IFe$<>"O":PROCd:PROCc("KEY0 *Load "
+f$+"|MCALL &1904|M"):PROCc("FX138,0,128
"):END
1430CLS:PRINTCHR$(128+aa%);"Please pres
s the key to use to"'CHR$(128+aa%);"scro
ll up...":?&80=0:?&80=FNya
1440PRINT'CHR$(128+aa%);"Please press t
he 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
1460VDU21:END
1470ENDPROC
1480DEFFNya:LOCALA%,B%:A%=&7A
1490REPEAT:B%=255-((USR&FFF4)AND&FF00)D
IV256:UNTILB% ANDB%<>182ANDB%<>?&80
1500=B%
1510DEFPROCla(f%):LOCALm$,n%:RESTORE:RE
ADm$,m$:IFf%<2:ENDPROC
1520REPEATREADm$,n%:REPEAT
1530READm$,m$,m$,m$:n%=n%-1:UNTILn%<1:f
%=f%-1:UNTILf%<2:ENDPROC
1540:
1550REM Issue num, Issue Date
1560DATA 64,02/07/98
1570:
1580DATA Magazine Disc Menu,10
1590DATA About This Disc,:0,Thi1,-2
1600DATA Editorial,:0,Editori,-2
1610DATA Program Info Menu,,,2
1620DATA Messages Menu,,,3
1630DATA Articles Menu 1,,,4
1640DATA Articles Menu 2,,,5
1650DATA Adverts Menu,,,6
1660DATA Utilities Menu,,,7
1670DATA Games Tunes And Demos Menu,,,8
1680DATA 8BS Messaging System,:0,SendMe
s,-4
1690:
1700DATA Program Info,6
1710DATA Program Info Collection,:0,Doc
1,-2
1720DATA Messaging System Info,:2,MesIn
f,-2
1730DATA Rom Filing System Header,:2,RF
SMAN,-1
1740DATA Fix DNFS,:2,FixDNFS,-1
1750DATA Messages Menu,,,3
1760DATA Return To Main Menu,,,1
1770:
1780DATA Messages,7
1790DATA To You,:0,uu,-2
1800DATA Comments on Programs,:0,Commen
t,-2
1810DATA Help Offered,:0,HelpYou,-2
1820DATA Help Wanted,:0,HelpMe,-2
1830DATA General Messages,:0,Gen1,-2
1840DATA Articles Menu 1,,,4
1850DATA Return To Main Menu,,,1
1860:
1870DATA Articles Menu 1,13
1880DATA Regular Contacts,:0,Contact,-2
1890DATA Free Commercial Games!,:2,Grev
S,-1
1900DATA Programming Viewstore. Part 2,
:2,Views2,-1
1910DATA Play it Again Sam 12 Review,:2
,pas12re,-1
1920DATA Play it Again Sam 15 Review,:2
,pas15re,-1
1930DATA Play it Again Sam 16 Review,:2
,PAS16RE,-1
1940DATA Play it Again Sam 17 Review,:2
,PAS17RE,-1
1950DATA Acornsoft Hits Vol.1 Review,:2
,AHV1Rev,-1
1960DATA Spycat Solution,:2,SpyCSol,-1
1970DATA The Hobbit Solution,:2,Hobbit,
-1
1980DATA Big Volts,:0,BigVolt,-1
1990DATA Articles Menu 2,,,5
2000DATA Return To Main Menu,,,1
2010:
2020DATA Articles Menu 2,5
2030DATA 8BS Membership,:0,Memb,-1
2040DATA 8BS TBI Totals,:0,TBItot,-1
2050DATA 8BS TBI Top 200,:0,Top200,-1
2060DATA Adverts Menu,,,6
2070DATA Return To Main Menu,,,1
2080:
2090DATA Adverts Menu,8
2100DATA 8BS Advert,:0,8BSAD,-1
2110DATA For Sale,:0,ForSale,-2
2120DATA Wanted,:0,Wanted,-2
2130DATA Superior Software Offer,:0,Sup
Soft,-1
2140DATA J.Battersby,:2,BatAd,-1
2150DATA Master Cartridges!,:2,Cart,-1
2160DATA D6G,:2,D6Gad,-1
2170DATA Return To Main Menu,,,1
2180:
2190DATA Utilities Menu,7
2200DATA Xterm Update,:2.S,Xterm,-4
2210DATA Backup Update,:2.S,Backup,-4
2220DATA SRSAVE,:2.S,Stop,-4
2230DATA Customise DNFS,:2.S,Stop,-4
2240DATA RFS Header,:2.S,RFSHEAD,-4
2250DATA JPEG Reader,:2.S,JPEGGER,-4
2260DATA Return To Main Menu,,,1
2270:
2280DATA Games Tunes and Demos,4
2290DATA Stuart McConnachie Demo,:2.S,D
emo,-8
2300DATA Driver. Poem. PRINTER READY!,:
2.S,DRIVER,-4
2310DATA Graveyard Adventure,:2.S,Grave
Yd,-8
2320DATA Return To Main Menu,,,1
2330: