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