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