8-Bit Software Online Conversion
:0.$.Menu - Listing
10*TV255,1
20REM 8BS Menu By S.Flintham
30*FX119
40MODE3
50VDU22,7
60VDU23;8202;0;0;0;
70PROCa
80PROCb
90ONERRORVDU3:MODE7:REPORT:PRINT" at
line ";ERL:PROCc("KEY0 LIST "+STR$(ERL)+
"|M"):PROCc("FX138,0,128"):PROCd:END
100REPEAT
110e$=FNf
120IFLEFT$(e$,1)<>CHR$(27)THENPROCg(e$
):*DIR $
130UNTILLEFT$(e$,1)=CHR$(27)
140MODE7
150PROCd
160END
170:
180DEFPROCa
190*FX225,128
200*FX229,1
210*FX4,1
220ENDPROC
230:
240DEFPROCd
250*FX225,1
260*FX229,0
270*FX4,0
280ENDPROC
290:
300DEFPROCb
310DIMh%256
320i$=FNj
330PROCk
340l$="32"
350m$="Jan 1994"
360n$=":0.$.7TO3":REM "$.MAG.7TO3"
370f%=1
380e%=1
390PROCo
400ENDPROC
410:
420DEFFNS
430="Menu"
440:
450DEFPROCk
460i%=3
470p%=2
480q%=5
490r%=6
500s%=3
510t%=1
520u%=6
530v%=6
540w%=4
550x%=3
560y%=2
570z%=3
580aa%=7
590ba%=7
600ENDPROC
610:
620DEFPROCo
630LOCALca%
640VDU26,12
650PRINTCHR$(128+i%);" I.D. ";i$;" ";C
HR$(144+p%);"¶///////%¶/////////////////
¶";
660PRINTCHR$(144+p%);"¶///////////*///
/////";CHR$(128+r%);" Issue ";LEFT$(l
$,2);" ";CHR$(144+p%);"¶";
670PRINTCHR$(144+p%);"¶";CHR$(144+q%);
"jk 74$5 j£`p`pj 0 0p0p`p ";CH
R$(144+p%);"¶";
680PRINTCHR$(144+p%);"¶";CHR$(144+q%);
"jk"!7457 "kjjj$j!545=55j.";CHR$(128+r%
);LEFT$(m$,8);CHR$(144+p%);"¶";
690PRINTCHR$(144+p%);"
""£ £ !£! "£"£" "!££!!!!"£ ";CH
R$(145);" ";
700FORca%=1TO18
710PRINTCHR$(144+p%);"¶";SPC(36);CHR$(
144+p%);"¶";
720NEXT
730PRINTCHR$(144+p%);"¶|||||||||||||||
||||||||||||||||||||||¶";
740VDU28,2,22,37,5
750ENDPROC
760:
770DEFPROCc($h%)
780LOCALX%,Y%
790X%=h%MOD256
800Y%=h%DIV256
810CALL&FFF7
820ENDPROC
830:
840DEFFNj
850LOCALda%,i$
860da%=OPENIN("!Boot")
870IFda%=0THENPROCea("No !Boot file -
unable to read user ID!")
880PTR#da%=EXT#da%-4
890i$=CHR$(BGET#da%)+CHR$(BGET#da%)+CH
R$(BGET#da%)
900CLOSE#da%
910=i$
920:
930DEFPROCea(fa$)
940VDU22,7
950PRINTfa$
960PROCd
970END
980:
990DEFFNf
1000LOCALga%,s$,ha%,ia%,ja$,ka$,ka%
1010REPEAT
1020CLS
1030PROCla(f%)
1040READs$,ha%
1050IFha%>14THENha%=14
1060PRINTTAB(0,0);CHR$(128+s%);TAB(1+(1
7.5-(LEN(s$)/2)),0);s$
1070FORia%=1TOha%
1080READja$,ka$,ka$,ka$,ka%,ka%,ka%
1090PRINTTAB(1,1+ia%);" ";CHR$(128+t%)
;CHR$(64+ia%);CHR$(128+u%);ja$;TAB(35,1+
ia%);CHR$156;
1100NEXT
1110PRINTTAB(1,1+e%);CHR$(128+w%);CHR$1
57;
1120PRINTTAB(0,17);CHR$(128+v%);"Press"
;CHR$129;"f0";CHR$(128+v%);"for help if
necessary...";
1130REPEAT
1140REPEAT
1150*FX21
1160ga%=GET
1170IFga%>=ASC("a")ANDga%<=ASC("z")THEN
ga%=ga%-32
1180UNTILga%=128ORga%=138ORga%=139ORga%
=13OR(ga%>=65ANDga%<=(64+ha%))ORga%=ASC(
"8")ORga%=ASC("O")ORga%=ASC("P")OR(ga%=2
7ANDINKEY(-1))
1190PRINTTAB(1,1+e%);" ";
1200IFga%=138ANDe%<ha%THENe%=e%+1
1210IFga%=139ANDe%>1THENe%=e%-1
1220IFga%>=65ANDga%<=(64+ha%)THENe%=ga%
-64
1230PRINTTAB(1,1+e%);CHR$(128+w%);CHR$1
57;
1240UNTILga%=13ORga%=128ORga%=ASC("P")O
Rga%=ASC("8")ORga%=ASC("O")ORga%=27
1250IFga%=128THENPROCma
1260UNTILga%=13ORga%=ASC("P")ORga%=ASC(
"8")ORga%=ASC("O")ORga%=27
1270=CHR$(ga%)+STR$(e%)
1280:
1290DEFPROCma
1300LOCALga%
1310CLS
1320PRINTTAB(5,0);CHR$(128+x%);"Using t
he 8BS menu system"
1330PRINTTAB(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."
1340PRINT'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"
1350PRINTCHR$(128+y%);"P will print it
out and pressing O"'CHR$(128+y%);"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."
1360PRINTTAB(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...";
1370REPEAT
1380*FX21
1390ga%=GET
1400UNTILga%=27ORga%=128
1410IFga%=27THENENDPROC
1420CLS
1430PRINTTAB(5,0);CHR$(128+x%);"Using t
he 8BS menu system"
1440PRINTTAB(0,2);CHR$(128+y%);"Pressin
g SHIFT and ESCAPE together"'CHR$(128+y%
);"at the menu will return you to"'CHR$(
128+y%);"BASIC."
1450PRINTTAB(0,16);CHR$(128+z%);"Press
ESCAPE to return to the"'CHR$(128+z%);"m
enu...";
1460REPEAT
1470*FX21
1480ga%=GET
1490UNTILga%=27
1500ENDPROC
1510:
1520DEFPROCg(e$)
1530LOCALna%,ka$,oa$,pa$,qa$,ra%,sa%,ta
%
1540PROCla(f%)
1550READka$,ka%
1560FORna%=1TOVAL(MID$(e$,2))
1570READka$,oa$,pa$,qa$,ra%,sa%,ta%
1580NEXT
1590IFta%=0ANDpa$<>""THENPROCc("DIR "+p
a$)
1600IFra%ANDNOTsa%THENPROCua(ASC(LEFT$(
e$,1)),qa$):ENDPROC
1610IFra%ANDsa%THENPROCva(ASC(LEFT$(e$,
1)),qa$):ENDPROC
1620IFta%>0THENf%=ta%:e%=1:ENDPROC
1630PROCd
1640IFLEFT$(oa$,1)="*"THENPROCc(oa$+" "
+qa$):END
1650IFoa$="CHAIN"THENCHAINqa$
1660IFoa$="LOAD"THENPROCc("KEY0 LOAD "+
CHR$(34)+qa$+CHR$(34)+"|MLIST|N|M"):PROC
c("FX21"):PROCc("FX138,0,128"):PROCd:VDU
22,7:END
1670END
1680:
1690DEFPROCua(ga%,qa$)
1700VDU22,3
1710VDU23;8202;0;0;0;
1720*FX21
1730IFga%<>ASC("P")THENPRINT'"Press SHI
FT to scroll or ESCAPE for the menu..."'
:VDU14ELSEPRINT'"Press SPACE when you ar
e ready to print... (Press ESCAPE to qui
t)"':REPEATUNTILGET=32:VDU2
1740ONERRORIFERR=17THENPROCc("FX229,1")
:VDU3,22,7:VDU23;8202;0;0;0;:PROCo:GOTO9
0ELSEVDU3:MODE7:REPORT:PRINT" at line ";
ERL:PROCc("KEY0 LIST "+STR$(ERL)+"|M"):P
ROCc("FX138,0,128"):PROCd:END
1750*FX229,0
1760PROCc("Type "+qa$)
1770*FX229,1
1780ONERRORVDU3:MODE7:REPORT:PRINT" at
line ";ERL:PROCc("KEY0 LIST "+STR$(ERL)+
"|M"):PROCc("FX138,0,128"):PROCd:END
1790IFga%<>ASC("P")THENVDU15ELSEVDU3
1800PRINT'"Press ESCAPE to return to th
e menu...";
1810*FX21
1820REPEATUNTILGET=27
1830VDU22,7
1840VDU23;8202;0;0;0;
1850PROCo
1860ENDPROC
1870:
1880DEFPROCva(ga%,qa$)
1890IFINSTR(qa$,"@")<>0AND(ga%=ASC("P")
ORga%=ASC("8"))THENqa$=FNwa(qa$)
1900IFINSTR(qa$,"@")<>0ANDga%<>ASC("P")
ANDga%<>ASC("8")THENqa$=LEFT$(qa$,INSTR(
qa$,"@")-1)
1910?&80=&C6:?&81=&D6
1920IFga%=ASC("P")THEN$&A00=qa$:Z%=1:CH
AINn$
1930IFga%=ASC("8")THEN$&A00=qa$:Z%=0:CH
AINn$
1940IFga%=ASC("O")THENPROCxa(qa$)
1950PROCc("RUN "+qa$)
1960ENDPROC
1970:
1980DEFFNwa(qa$)
1990LOCALga%
2000CLS
2010PRINTCHR$(128+ba%);"Which part of t
he article? (1/2)";
2020REPEAT
2030*FX21
2040ga%=GET
2050UNTILga%=49ORga%=50
2060IFga%=49THEN=LEFT$(qa$,INSTR(qa$,"@
")-1)
2070=MID$(qa$,INSTR(qa$,"@")+1)
2080:
2090DEFPROCxa(qa$)
2100CLS
2110PRINTCHR$(128+aa%);"Please press th
e key to use to"'CHR$(128+aa%);"scroll u
p..."
2120?&80=0
2130?&80=FNya
2140PRINT'CHR$(128+aa%);"Please press t
he key to use to"'CHR$(128+aa%);"scroll
down..."
2150*FX21
2160?&81=FNya
2170PROCc("KEY0 *LOAD "+qa$+" 1900|M?&1
974=?&80:?&1981=?&81|MCALL&1904|F|M")
2180*FX21
2190VDU21
2200PROCd
2210*FX138,0,128
2220END
2230:
2240DEFFNya
2250LOCALA%,B%
2260REPEAT
2270A%=&7A
2280!&70=USR(&FFF4)
2290B%=255-(?&71)
2300UNTILB%<>0ANDB%<>182ANDB%<>?&80
2310=B%
2320DEFPROCla(f%)
2330IFf%=1THENRESTORE
2340IFf%=2THENRESTORE 2520
2350IFf%=3THENRESTORE 2640
2360IFf%=4THENRESTORE 2770
2370IFf%=5THENRESTORE 2910
2380IFf%=6THENRESTORE 2980
2390IFf%=7THENRESTORE 3070
2400ENDPROC
2410:
2420DATA Main Menu.,8
2430DATA About This Issue.,,,Thi1,-1,-1
,0
2440DATA Program Documentation.,,,ProgD
oc,-1,-1,0
2450DATA Magazine Menu 1.,,,,0,0,2
2460DATA Magazine Menu 2.,,,,0,0,3
2470DATA Utilities Menu 1.,,,,0,0,4
2480DATA Utilities Menu 2.,,,,0,0,5
2490DATA Games/Graphics Menu.,,,,0,0,6
2500DATA ADFS Extra Menu.,,,,0,0,7
2510:
2520DATA Magazine Menu 1.,10
2530DATA Messages and Ads 1.,,,Mes1,-1,
-1,0
2540DATA Messages and Ads 2.,,,Mes2,-1,
-1,0
2550DATA Messages and Ads 3.,,,Mes3,-1,
-1,0
2560DATA Messages and Ads 4.,,,Mes4,-1,
-1,0
2570DATA Messages to You.,,,uu,-1,-1,0
2580DATA The Reactor.,,,Reactor,-1,-1,0
2590DATA OK. You Win Editorial.,,,Uwin,
-1,-1,0
2600DATA Solinet Adverts.,,,:2.SoliAd,-
1,-1,0
2610DATA Magazine Menu 2.,,,,0,0,3
2620DATA Return to Main Menu.,,,,0,0,1
2630:
2640DATA Magazine Menu 2.,11
2650DATA 8BS Messaging System Info.,,,M
esInf,-1,-1,0
2660DATA 8BS Catalogue Summary.,,,CatSu
m,-1,0,0
2670DATA BBC Memory Map Part 1.,,,:2.B.
OSMAP-1,-1,0,0
2680DATA BBC Memory Map Part 2.,,,:2.B.
OSMAP-2,-1,0,0
2690DATA O.S. Calls and Commands.,,,:2.
CallCom,-1,0,0
2700DATA Catalogue Correction.,,,PDavy,
-1,-1,0
2710DATA Computer Cavern Catalogue.,,,:
2.Cavern,-1,-1,0
2720DATA Presenting Programs 8.,,,Pres8
,-1,-1,0
2730DATA Electronics. Part 5.,,,Elec5,-
1,0,0
2740DATA Magazine Menu 1.,,,,0,0,2
2750DATA Return to Main Menu.,,,,0,0,1
2760:
2770DATA Utilities Menu 1.,12
2780DATA 8BS Messaging System. Update.,
CHAIN,:2,SendMes,0,0,0
2790DATA Messaging System. Keystrip.,CH
AIN,:2,MessStr,0,0,0
2800DATA 8BS Menu Printer/Reader.,CHAIN
,:2,MenRead,0,0,0
2810DATA Master Function Keys.,CHAIN,:2
,Key1,0,0,0
2820DATA Counter/Frequency Calculator.,
CHAIN,:2,Counter,0,0,0
2830DATA Catalogue Printer Update.,CHAI
N,:2,CatRd4,0,0,0
2840DATA Hints and Tips Printer/Viewer.
,CHAIN,:2,Reed,0,0,0
2850DATA Wordwise Utility Archive.,CHAI
N,:2,Stop,0,0,0
2860DATA Presenting Programs Example.,C
HAIN,:2,F.Input,0,0,0
2870DATA Wordwrap Experiment.,CHAIN,:2,
TextFmt,0,0,0
2880DATA Utilities Menu 2.,,,,0,0,5
2890DATA Return to Main Menu.,,,,0,0,1
2900:
2910DATA Utilities Menu 2.,5
2920DATA Circles Demo.,CHAIN,:2,Circles
,0,0,0
2930DATA Three Archived Utilities.,CHAI
N,:2,Stop,0,0,0
2940DATA Veroboard Printer.,CHAIN,:2,St
rpBrd,0,0,0
2950DATA Utilities Menu 1.,,,,0,0,4
2960DATA Return to Main Menu.,,,,0,0,1
2970:
2980DATA Games/Graphics Menu.,7
2990DATA Octagram. Brain Teaser.,CHAIN,
:2,OCTALDR,0,0,0
3000DATA Old Dreams Text Adventure.,CHA
IN,:2,OlDream,0,0,0
3010DATA Shopping.,CHAIN,:2,Shoppin,0,0
,0
3020DATA Caterpillar.,CHAIN,:2,CATER,0,
0,0
3030DATA Picture.,CHAIN,:2,Loader,0,0,0
3040DATA One Line Game.,CHAIN,:2,1LnGam
e,0,0,0
3050DATA Return to Main Menu.,,,,0,0,1
3060:
3070DATA ADFS Menu.,1
3080DATA Return to Main Menu.,,,,0,0,1