8-Bit Software Online Conversion
8BS Menu Reader - Listing
10DEFFNS="MenRead"
20ONERROR:VDU3:CLOSE#0:OSCLI"SPOOL":R
EPORT:PRINTERL:END
30A%=0:Y%=0:SYS%=USR&FFDA MOD &100
40REPEAT
50IF SYS%=8:OSCLI"MOUNT 0"
60IF SYS%=4:OSCLI"DR.0":*DIR $
70MODE7
80F%=OPENIN"Menu"
90PRINT'''TAB(2)"
100PRINTTAB(2)"
110PRINT'''" Printout of menu from iss
ue 28 onwards."
120PRINT'''TAB(8)" 1. Printer on.
"
130PRINT'TAB(6)" 2. SPOOL to drive 1
. "
140PRINT'TAB(2)" 3. Append SPOOL to
drive 1. "
150PRINT'TAB(8)" 4. Screen only. "
160REPEAT
170A$=GET$
180UNTILINSTR("1234",A$)
190IF A$="1" P%=2 ELSE P%=3
200IF A$="2":*SPOOL :1.8BSmenu
210IF A$="3":*SPOOLON :1.8BSmenu
220IF A$="4" P%=14
230MODE0
240IF P%=14 PRINT"Press SHIFT to scrol
l text."
250L%=0
260REPEAT
270A%=BGET#F%:IF A%=&6C IF BGET#F%=&24
IF BGET#F%=&3D IF BGET#F%=&22:L%=1
280UNTILL%=1
290Issue$=FNgt
300Issue$=LEFT$(Issue$,LENIssue$-1)
310L%=0
320REPEAT
330A%=BGET#F%:IF A%=&6D IF BGET#F%=&24
IF BGET#F%=&3D IF BGET#F%=&22:L%=1
340UNTILL%=1
350Date$=FNgt
360Date$=LEFT$(Date$,LENDate$-1)
370VDUP%
380VDU1,27,1,45,1,1:REM UNDERLINE ON
390PRINT "8-Bit Software Issue ";Issue
$;" (";Date$;") ";:IF SYS%=4 PRINT"DFS V
ersion"' ELSE PRINT "ADFS Version"'
400VDU1,27,1,45,1,0:REM UNDERLINE OFF
410PRINTTAB(5);
420VDU1,27,1,45,1,1:REM UNDERLINE ON
430PRINT"Program description. (T)elete
xt (A)SCII (P)rogram. Pathname."
440VDU1,27,1,45,1,0:REM UNDERLINE OFF
450PTR#F%=&1300
460REPEAT
470A%=BGET#F%
480UNTIL A%=&DC:REM FIND FIRST DATA ST
ATEMENT
490REPEAT:REM OUTER MENU LOOP
500MenTit$=FNgt
510MenTit$=MID$(MenTit$,INSTR(MenTit$,
" ")+1)
520Head$=FNgt:REM HEADINGS IN MENU
530Q%=VAL Head$
540PROCreadmenu
550REPEATUNTILBGET#F%=&D OR EOF#F%
560IF PTR#F%<>EXT#F%:PTR#F%=PTR#F%+3
570UNTIL EOF#F%
580CLOSE#F%
590VDU3
600*SPOOL
610PRINT'''"INSERT NEXT DISC AND PRESS
A KEY OR PRESS ESCAPE TO END"
620REPEATUNTILGET
630UNTILFALSE
640DEFPROCreadmenu
650VDU1,27,1,45,1,1:REM UNDERLINE ON
660PRINT'MenTit$
670VDU1,27,1,45,1,0:REM UNDERLINE OFF
680FORL%=1TOQ%
690PTR#F%=PTR#F%+5
700Desc$=FNgt
710A$=FNgt
720Name$=FNgt
730IF Name$<>"" Name$=Name$+"."
740Name$=Name$+FNgt
750Ascii$=FNgt
760Ttext$=FNgt
770Menu$=FNgt
780IF Menu$<>"0" NEXT:ENDPROC
790PRINT TAB(5)CHR$(L%+64);".";Desc$;
800PRINT TAB(38);
810IF Ascii$="0" IF Ttext$="0" PRINT"P
";
820IF Ascii$="-1" IF Ttext$="0" PRINT"
A";
830IF Ttext$="-1" IF Ttext$="-1" PRINT
"T";
840PRINTTAB(41);Name$
850NEXT
860ENDPROC
870DEFFNgt
880Temp$=""
890REPEAT
900A%=BGET#F%
910IFA%<>&2C IF A%<>&D IFA%>31 IF A%<1
27 Temp$=Temp$+CHR$A%
920UNTILA%=&2C OR A%=&D
930=Temp$