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.15
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:REM I
FDir$="$":END ELSE CHAIN"$.!Boot"
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 CALL CALL L
DPICLDPICSCRLOSCRLO"
270d%=3:REM Description
280i%=6:REM ID
290p%=5:REM Menu outline
300q%=6:REM "8-Bit Software"
310r%=7:REM Date + issue
320s%=6:REM Menu heading
330t%=2:REM Letters
340u%=6:REM Menu items
350v%=3:REM Help prompt
360w%=4:REM Selection bar
370x%=5: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):X%=h%:Y%=X%DIV256:i
$=FNj:REM *DIR$
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$):LOCALn%:fs%=FNfs:Dn$=
FNgbpbN(5):drv%=(X%?(22+X%?20))AND&FD
560l$=A$:IFA$="":l$="$.Library":IFfs%=
4 ORfs%=&105:l$=":"+STR$drv%+".%"
570REM Dir$=FNgbpbN(6):IFDir$<>"$":l$=
"$."+Dir$+MID$(l$,2)
580Dir$="$":REM PATCH
590PROCc("LIB "+l$):IFA$="":IFfs%>4:n%
=OPENIN("%"):IFn%:CLOSE#n%:l$="%"
600t3$=l$+".7to3":t7$=l$+".3to7":sc$=l
$+".Scroll":ar$=l$+".Archive":ENDPROC
610DEFFNfs:LOCALA%,Y%,E%:=(USR&FFDA)AN
D&FF
620DEFFNgbpbN(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:
640DEFPROCc($h%):LOCALX%,Y%
650X%=h%:Y%=X%DIV256:CALL&FFF7
660ENDPROC
670DEFPROCos(c$):IFASCc$=42 ORc$="":OS
CLIc$:ENDPROC ELSE CHAINc$:ENDPROC
680DEFFNj=$(PAGE+&2F)
690DEFFNf:LOCALt$,n%,m$,s$,g%,m%
700CLS:PROCla(f%):READt$,n0%
710IFn0%>14:n0%=14
720PRINTTAB(0,0);CHR$(128+s%);TAB(1+(1
7.5-(LEN(t$)/2)),0);t$
730n%=0:m%=n0%:REPEATREADm$,s$,s$,s$
740IFVALs$>99:IFVALs$DIV100=fs%:s$=RIG
HT$(s$,2) ELSE IFVALs$>99:s$="0":m$=""
750o%=VALs$:IFo%=0ANDASCs$<>42:o%=-1-I
NSTR(v$,LEFT$(s$,5))DIV10
760IFs$<>"0":n%=n%+1:l%(n%)=o%:PRINTTA
B(1,1+n%)" "CHR$(128+t%)CHR$(64+n%)CHR$
(128+u%)LEFT$(m$,32);TAB(35,1+m%)CHR$156
;
770m%=m%-1:UNTILm%<1:PRINTTAB(0,1+e%);
CHR$(128+w%);CHR$157;
780PRINTTAB(0,17);CHR$(128+v%);"Press"
;CHR$129;"f0";CHR$(128+v%);"for help.";C
HR$(128+d%);
790REPEAT:REPEAT*FX21
800PRINTTAB(20,17);:IFl%(e%)>0:PRINT"A
nother menu ";ELSE PRINTMID$("Runs Code
80 Column Text40 Column TextArchive
Basic Program Loads Basic Lists
Basic Calls Basic LDPIC Picture Scr
Load Pictr ",-14*l%(e%)+1,14);
810g%=GET:IF(g%AND&E0)=&60:g%=g%-32
820UNTILINSTR(CHR$128+CHR$138+CHR$139+
CHR$13+"48OPRSX",CHR$g%)OR(g%>64 ANDg%<=
64+n%)OR(g%=27ANDINKEY-1)
830PRINTTAB(1,1+e%);" ";
840IFg%=138:e%=e%MODn%+1
850IFg%=139:e%=e%-1:IFe%=0:e%=n%
860IFg%>64ANDg%<=64+n%:e%=g%-64
870PRINTTAB(1,1+e%);CHR$(128+w%);CHR$1
57;
880V%=985000000+VALn$*10000+f%*100+e%
890UNTILINSTR("48OPRSX"+CHR$128+CHR$27
+CHR$13,CHR$g%):IFg%=128:PROCma
900PRINTTAB(5,1+e%);">";
910=CHR$(g%)+STR$(e%)
920:
930DEFPROCma:LOCALg%:CLS
940PRINTTAB(5,0);CHR$(128+x%);"Using t
he 8BS menu system"
950PRINTTAB(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."
960PRINT'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"
970PRINTCHR$(128+y%);"4 will display i
t in 40 columns,"
980PRINTCHR$(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."
990PRINTTAB(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...";
1000REPEAT:*FX21
1010g%=GET:UNTILg%=27ORg%=128
1020IFg%=27:ENDPROC
1030CLS:PRINTTAB(5,0);CHR$(128+x%);"Usi
ng the 8BS menu system"
1040PRINTTAB(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"
1050PRINTCHR$(128+y%)"Return will run/l
oad/list the"'CHR$(128+y%)"program with
the default option."
1060PRINT'CHR$(128+y%);"Pressing SHIFT
and ESCAPE together"'CHR$(128+y%);"at th
e menu will return you to"'CHR$(128+y%);
"BASIC."
1070PRINTTAB(0,16);CHR$(128+z%);"Press
ESCAPE to return to the"'CHR$(128+z%);"m
enu...";
1080REPEAT:*FX21
1090UNTILGET=27:ENDPROC
1100:
1110DEFPROCg(e$):IFASCe$=128:ENDPROC
1120LOCALn%,x$,d$,f$,s$
1130PROCla(f%):READd$,n%
1140FORn%=1TOVAL(MID$(e$,2))
1150READx$,d$,f$,s$:IFVALs$>99:IFVALs$D
IV100=fs%:s$=RIGHT$(s$,2) ELSE IFVALs$>9
9:s$="0":n%=n%-1
1160NEXT:o%=VALs$:IFo%>0:f%=o%:e%=1:END
PROC
1170IFo%=0 ANDs$="0":ENDPROC
1180VDU26,31,0,21:e$=CHR$ASCe$:PROCd:IF
d$="%":d$=l$:REM ...152
1190I%=INSTR(d$,"//"):IFI%:d$=MID$(d$,1
+((I%+1)AND(fs%<>4)),I%-1-128*(fs%<>4))
1200IFfs%=4 AND MID$(f$,2,1)="/":f$=LEF
T$(f$,1)+"."+MID$(f$,3)
1210IFfs%=4:f$=LEFT$(f$,7-2*(MID$(f$,2,
1)="."))
1220IFfs%=4:IFLEFT$(d$,1)=":":d$=":"+ST
R$(drv%ORVALMID$(d$,2))+MID$(d$,3)
1230IFLEFT$(d$,1)="$":IFDir$<>"$":d$="$
."+Dir$+MID$(d$,2)
1240IFo%=0:o%=INSTR(v$,LEFT$(s$,5)):o%=
(-1-o%DIV10)AND(o%>0)
1250IFo%=-1:PROCu:ENDPROC
1260IFo%=-2:PROCv:ENDPROC
1270IFd$<>"":PROCc("Dir "+d$)
1280IFo%=-3:PROCos(ar$+" -quit $.!Boot|
M -e "+f$):ENDPROC
1290IFo%>-7 ANDo%<-2 ANDe$<>CHR$13:o%=I
NSTR("XSR",e$)-7
1300IFo%=-4:CHAINf$
1310IFo%=-5:PROCKey("*Load "+f$+"|F|M")
1320IFo%=-6:PROCKey("LOAD """+f$+"""|ML
IST|F|N|M|O")
1330IFo%=-7:PROCos(f$+" -quit $.!Boot")
:END
1340IFo%=-8:PROCKey("*LdPic "+f$+"|F|M"
)
1350IFo%=-9:PROCKey("*ScrLoad "+f$+"|F|
M")
1360I%=INSTR(s$,"//"):IFI%:REPEATOSCLIL
EFT$(s$,I%-1):s$=MID$(s$,I%+2):I%=INSTR(
s$,"//"):UNTILI%=0:IFs$="RUN":RUN
1370PROCos(s$+" "+f$):END
1380ENDPROC
1390:
1400DEFPROCu
1410IFd$<>"":f$=d$+"."+f$
1420IFe$="4":PROCos(t7$+" "+f$)
1430PROCos(sc$+" -lp *lp -4 "+t7$+" "+f
$+" -quit $.!Boot")
1440ENDPROC
1450DEFPROCv
1460IFd$<>"":f$=d$+"."+f$
1470IFe$="8":Z%=0:PROCos(t3$+" "+f$)
1480IFe$="P":Z%=1:PROCos(t3$+" "+f$)
1490IFe$<>"O":PROCd:PROCc("Run "+f$):EN
D
1500CLS:PRINTCHR$(128+aa%);"Please pres
s the key to use to"'CHR$(128+aa%);"scro
ll up...":?&80=0:?&80=FNya
1510PRINT'CHR$(128+aa%);"Please press t
he 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
1530VDU21:END
1540ENDPROC
1550DEFPROCKey(A$):PROCc("KEY0 "+A$):PR
OCc("FX21"):PROCc("FX138,0,192"):VDU22,7
:END::ENDPROC
1560DEFFNya:LOCALA%,B%:A%=&7A
1570REPEAT:B%=255-((USR&FFF4)AND&FF00)D
IV256:UNTILB% ANDB%<>182ANDB%<>?&80
1580=B%
1590DEFPROCla(f%):LOCALm$,n%:RESTORE:RE
ADm$,m$:IFf%<2:ENDPROC
1600REPEATREADm$,n%:REPEAT
1610READm$,m$,m$,m$:n%=n%-1:UNTILn%<1:f
%=f%-1:UNTILf%<2:ENDPROC
1620:
1630REM Issue num, Issue Date
1640DATA 66,29/10/98
1650:
1660DATA Magazine Disc Menu,8
1670DATA About This Disc,:0,Thi1,-2
1680DATA Editorial,:0,Editori,-2
1690DATA Program Info Menu,,,2
1700DATA Messages Menu,,,3
1710DATA Articles Menu,,,4
1720DATA Adverts Menu,,,5
1730DATA Games And Demos Menu,,,6
1740DATA 8BS Messaging System,%,SendMes
,-4
1750:
1760DATA Program Info,4
1770DATA Program Info Collection,:0,Doc
1,-2
1780DATA Messaging System Info,%,MsgInf
,-2
1790DATA Messages Menu,,,3
1800DATA Return To Main Menu,,,1
1810:
1820DATA Messages,7
1830DATA To You,:0,uu,-2
1840DATA Comments on Programs,:0,Commen
t,-2
1850DATA Help Offered,:0,HelpYou,-2
1860DATA Help Wanted,:0,HelpMe,-2
1870DATA General Messages,:0,Gen1,-2
1880DATA Articles Menu,,,4
1890DATA Return To Main Menu,,,1
1900:
1910DATA Articles Menu,14
1920DATA Regular Contacts,:0,Contact,-2
1930DATA History of 8BS Part 4,:0,8BSHi
s4,-1
1940DATA Dungeon Adventure Soution,:2,D
ungeon,-1
1950DATA Games Hints,:2,Hints,-1
1960DATA Emerald Isle Solution,:2,EmIsl
So,-1
1970DATA Bored of The Rings Solution,:2
,Boresol,-1
1980DATA S.Hanson Interview,:0,intsh,-1
1990DATA A.Stephens Interview,:0,intas,
-1
2000DATA Superior Softography,:0,Softog
,-1
2010DATA Play it Again Sam 11 Review,:0
,PAS11re,-1
2020DATA Play it Again Sam 14 Review,:2
,PAS14re,-1
2030DATA Games on The BBC,:0,Games,-1
2040DATA Adverts Menu,,,5
2050DATA Return To Main Menu,,,1
2060:
2070DATA Adverts Menu,7
2080DATA 8BS Advert,:0,8BSAD,-1
2090DATA For Sale,:0,ForSale,-2
2100DATA Wanted,:0,Wanted,-2
2110DATA Superior Software Offer,:0,Sup
Soft,-1
2120DATA K8G,:2,K8Gad,-1
2130DATA D5K,:2,D5Kad,-1
2140DATA Return To Main Menu,,,1
2150:
2160DATA Games and Demos,5
2170DATA Repton Screens,:2.S,Stop,-4
2180DATA Bubble Bobble,:2.B,Bubble1,-4
2190DATA Honesty. Poem,:2.S,Honesty,-4
2200DATA Points of View. Poem,:2.S,Poin
tOv,-4
2210DATA Return To Main Menu,,,1
2220: