8-Bit Software Online Conversion
                
             
        
        
    
:2.$.MenRead - Listing
    
       50DEFFNS="MenRead"                   
   60MODE7                              
   70Uon$=CHR$1+CHR$27+CHR$1+CHR$45+CHR$
1+CHR$1                                 
   80Uoff$=CHR$1+CHR$27+CHR$1+CHR$45+CHR
$1+CHR$0                                
   90REPEAT                             
  100MODE7:VDU23;8202;0;0;0;23;2,53;0;0;
0;0;0;                                  
  110PRINT'''TAB(4)"    
                                        
  120PRINTTAB(4)"     
                                        
  130PRINT'''" Printout of menu from iss
ue 28 onwards."                         
  140PRINT"   Including new menu from is
sue 50"                                 
  150PRINT'''TAB(8)"   Printer on? Y/N  
 "                                      
  160REPEAT:A$=GET$:UNTILINSTR("YyNn",A$
)                                       
  170IFINSTR("Yy",A$):P%=2ELSEP%=14     
  180in%=0:out%=0:A%=0:E%=0:Y%=0:fs%=(US
R&FFDA)AND&FF                           
  190IFfs%=4:OSCLI"DRIVE 0"ELSEOSCLI"MOU
NT 0"                                   
  200PRINT'TAB(6)"   Output to file? Y/N
   "                                    
  210REPEAT:A$=GET$:UNTILINSTR("YyNn",A$
)                                       
  220IFINSTR("Yy",A$):INPUT'TAB(6)" Outp
ut filename: "F$:out%=OPENOUT(F$):P%=0  
  230MODE&80:ONERROR:REPORT:PROCClose:PR
INT:END                                 
  240T%=0:in%=OPENIN"Menu":IFin%=0:T%=1:
in%=OPENIN"!Boot":PTR#in%=EXT#in%DIV2   
  250Issue$=FNissue:Date$=FNdate        
  260VDUP%:IFP%=14PRINT"Press SHIFT to s
croll text."                            
  270A%=FNfx(199,out%):PRINTTAB(8);:IFP%
=2:PRINTUon$;                           
  280PRINT"8-Bit Software Issue ";Issue$
;" (";Date$;") ";MID$("HA",3-fs%DIV8);"D
FS Version";FNcr;:IFP%=2:PRINTUoff$;    
  290PRINTTAB(5);:IFP%=2:PRINTUon$;     
  300PRINT"Program description.         
    Type.   Program name."FNcr;         
  310IFP%=2:PRINTUoff$;                 
  320IFT%=0:PTR#in%=&1300               
  330REPEAT:PROCmenu:REPEATUNTILBGET#in%
=&DOREOF#in%                            
  340UNTILEOF#in%:CLOSE#in%:in%=0:IFP%=2
:VDU3                                   
  350IFout%:CLOSE#out%:out%=0:A%=FNfx(19
9,0)                                    
  360PRINT'''"Insert next disk and press
 a key, or Escape to end";:IFGET        
  370UNTILFALSE:END                     
  390DEFPROCmenu:REPEATUNTILBGET#in%=&DC
OREOF#in%                               
  400IFEOF#in%:ENDPROC                  
  410MenTit$=FNgt:Num%=VALFNgt:IFP%=2:PR
INTUon$;                                
  420PRINTFNcr;MenTit$;FNcr;:IFP%=2:PRIN
TUoff$;                                 
  430FORL%=1TONum%:PTR#in%=PTR#in%+5    
  440Desc$=FNgt:IFT%=0:Act$=FNgt        
  450Dir$=FNgt:Name$=FNgt:Asc$=FNgt:IFT%
=0:Ttx$=FNgt:Opt%=VALFNgt               
  460IFDir$<>"":Dir$=Dir$+"."           
  470IFT%=0:Opt%=VALAsc$+VALTtx$        
  480IFT%=1:Opt%=VALAsc$:IFOpt%=0:Opt%=-
1-INSTR("MODE3TEXT MODE7TTXT ARCHIARCHIC
HAINBASICLOAD LOAD LIST LIST ",LEFT$(Asc
$,5))DIV10                              
  490IFOpt%>0:NEXT:ENDPROC              
  500PRINTTAB(5)CHR$(L%+64);": ";Desc$;T
AB(38);MID$("Prog Text Ttxt Arch BasicBa
sicBasic",1-5*Opt%,5);                  
  510PRINTTAB(45);Dir$;Name$;FNcr;      
  520NEXT:ENDPROC                       
  540DEFFNgt:A$="":REPEATA%=BGET#in%    
  550IFA%<>&2CANDA%<>&DANDA%>31ANDA%<127
:A$=A$+CHR$A%                           
  560UNTILA%=&2CORA%=&D:IFLEFT$(A$,1)=" 
":REPEATA$=MID$(A$,2):UNTILLEFT$(A$,1)<>
" "                                     
  570=LEFT$(A$,LENA$+(RIGHT$(A$,1)="""")
)                                       
  580DEFFNissue:L%=0:REPEAT:IFBGET#in%=&
6C:IFBGET#in%=&24:IFBGET#in%=&3D:IFBGET#
in%=&22:L%=TRUE                         
  590UNTILL%ORT%>0:IFT%=1:REPEATREPEATUN
TILBGET#in%=&D:PTR#in%=PTR#in%+3:UNTILBG
ET#in%=&DC                              
  600=FNgt                              
  610DEFFNdate:L%=0:REPEAT:IFBGET#in%=&6
D:IFBGET#in%=&24:IFBGET#in%=&3D:IFBGET#i
n%=&22:L%=TRUE                          
  620UNTILL%ORT%>0:IFT%=1:PTR#in%=PTR#in
%-1                                     
  630DEFFNcr:PRINTCHR$13;:A%=FNfx(199,0)
:PRINT:A%=FNfx(199,out%):=""            
  640=FNgt                              
  650DEFFNfx(A%,X%):LOCALY%:Y%=X%DIV256:
=((USR&FFF4)AND&FFFF00)DIV256           
  660DEFPROCClose:IFout%:A%=out%:out%=0:
CLOSE#A%                                
  670IFin%:A%=in%:in%=0:CLOSE#A%        
  680ENDPROC