8-Bit Software Online Conversion
8BS Menu Reader - Listing
10REM > MenRead 1.20
20REM Modified 19-06-96 by JGH for ne
w menus
30:
40DEFFNS="MenRead"
50MODE7
60Uon$=CHR$1+CHR$27+CHR$1+CHR$45+CHR$
1+CHR$1
70Uoff$=CHR$1+CHR$27+CHR$1+CHR$45+CHR
$1+CHR$0
80REPEAT
90MODE7:VDU23;8202;0;0;0;23;2,53;0;0;
0;0;0;
100PRINT'''TAB(4)"
110PRINTTAB(4)"
120PRINT'''" Printout of menu from iss
ue 28 onwards."
130PRINT" Including new menu from is
sue 50"
140PRINT'''TAB(8)" Printer on? Y/N
"
150REPEAT:A$=GET$:UNTILINSTR("YyNn",A$
)
160IF INSTR("Yy",A$):P%=2 ELSE P%=14
170MODE&80:A%=0:E%=0:Y%=0:fs%=(USR&FFD
A)AND&FF
180IFfs%=4:OSCLI"DRIVE 0" ELSE OSCLI"M
OUNT 0"
190T%=0:F%=OPENIN"Menu":IFF%=0:T%=1:F%
=OPENIN"!Boot":PTR#F%=EXT#F%DIV2
200Issue$=FNissue:Date$=FNdate
210VDUP%:IF P%=14 PRINT"Press SHIFT to
scroll text."
220PRINTTAB(8);:IFP%=2:PRINTUon$;
230PRINT "8-Bit Software Issue ";Issue
$;" (";Date$;") ";MID$("HA",3-fs%DIV8);"
DFS Version":IFP%=2:PRINTUoff$;
240PRINTTAB(5);:IFP%=2:PRINTUon$;
250PRINT"Program description.
Type. Program name."
260IFP%=2:PRINTUoff$;
270IFT%=0:PTR#F%=&1300
280REPEAT:PROCmenu:REPEATUNTILBGET#F%=
&D OR EOF#F%
290UNTILEOF#F%:CLOSE#F%:IFP%=2:VDU3
300PRINT'''"Insert next disk and press
a key, or Escape to end";:IFGET
310UNTILFALSE:END
320:
330DEFPROCmenu:REPEATUNTILBGET#F%=&DC
OREOF#F%:REM Find DATA statement
340IFEOF#F%:ENDPROC
350MenTit$=FNgt:Num%=VALFNgt:IFP%=2:PR
INTUon$;
360PRINT'MenTit$:IFP%=2:PRINTUoff$;
370FORL%=1TO Num%:PTR#F%=PTR#F%+5:REM
Move to next line
380Desc$=FNgt:IFT%=0:Act$=FNgt
390Dir$=FNgt:Name$=FNgt:Asc$=FNgt:IFT%
=0:Ttx$=FNgt:Opt%=VALFNgt
400IFDir$<>"":Dir$=Dir$+"."
410IFT%=0:Opt%=VALAsc$+VALTtx$
420IFT%=1:Opt%=VALAsc$:IFOpt%=0:Opt%=-
1-INSTR("MODE3TEXT MODE7TTXT ARCHIARCHIC
HAINBASICLOAD LOAD LIST LIST ",LEFT$(Asc
$,5))DIV10
430IFOpt%>0:NEXT:ENDPROC
440PRINTTAB(5)CHR$(L%+64);": ";Desc$;T
AB(38);MID$("Prog Text Ttxt Arch BasicBa
sicBasic",1-5*Opt%,5);
450PRINTTAB(45);Dir$;Name$
460NEXT:ENDPROC
470:
480DEFFNgt:A$="":REPEATA%=BGET#F%
490IFA%<>&2C AND A%<>&D AND A%>31 AND
A%<127:A$=A$+CHR$A%
500UNTILA%=&2C OR A%=&D:IFLEFT$(A$,1)=
" ":REPEATA$=MID$(A$,2):UNTILLEFT$(A$,1)
<>" "
510=LEFT$(A$,LENA$+(RIGHT$(A$,1)="""")
)
520DEFFNissue:L%=0:REPEAT:IFBGET#F%=&6
C:IFBGET#F%=&24:IFBGET#F%=&3D:IFBGET#F%=
&22:L%=TRUE
530UNTILL% OR T%>0:IFT%=1:REPEATREPEAT
UNTILBGET#F%=&D:PTR#F%=PTR#F%+3:UNTILBGE
T#F%=&DC
540=FNgt
550DEFFNdate:L%=0:REPEAT:IFBGET#F%=&6D
:IFBGET#F%=&24:IFBGET#F%=&3D:IFBGET#F%=&
22:L%=TRUE
560UNTILL% OR T%>0:IFT%=1:PTR#F%=PTR#F
%-1
570=FNgt