8-Bit Software Online Conversion
Menu From L1X - Listing
10 REM"¶¶¶¶¶¶¶ *************
*****
20 REM"¶¶¶¶¶¶¶ *** MENU
***
30 REM"¶¶¶¶¶¶¶ *** By M.Ushe
r ***
40 REM"¶¶¶¶¶¶¶ *** ( c ) 198
6 ***
50 REM"¶¶¶¶¶¶¶ *** BBC B/B+/
M ***
60 REM"¶¶¶¶¶¶¶ *************
*****
70
80 MODE 1
90 PROC`init
100 PROC`setcolours
110 PROC`setscreen
120 PROC`wording
130 PROC`select
140
150 END
160
170 REM"¶¶¶¶¶¶¶¶ *** PROCEDU
RES ***
180
190 DEF PROC`drawwin(A%,B%,C%,D%,E%)
200 VDU 24,A%-8;B%-4;C%+8;D%+4;18,0,12
8,16,24,A%;B%;C%;D%;18;E%+128,16
210 ENDPROC
220
230 DEF PROC`boxpar(A%,B%,C%,D%,FC%)
240 PROC`drawwin(A%,B%,C%,D%,0)
250 PROC`drawwin(A%+16,B%+16,C%+16,D%+
16,FC%)
260 ENDPROC
270
280 DEF PROC`init
290 READ amount
300 DIM prog$(amount,2)
310 FOR X=1 TO 13
320 READ A$,B$,C$
330 prog$(X,0)=A$
340 prog$(X,1)=B$
350 prog$(X,2)=C$
360 NEXT X
370 *FX4 1
380 VDU 23,1,0;0;0;0;
390 VDU 23,226,0,32,112,168,32,32,0,0
400 VDU 23,227,0,0,32,32,168,112,32,0
410 ENDPROC
420
430 DEF PROC`setcolours
440 READ col1,col2,col3
450 VDU19,1,col1;0;19,2,col2;0;19,3,co
l3;0;
460 ENDPROC
470
480 DEF PROC`setscreen
490 COLOUR 130:CLS
500 FOR LOOP=1 TO 3
510 READ L%,T%,R%,B%,FC%
520 PROC`boxpar(L%,T%,R%,B%,FC%)
530 NEXT LOOP
540 COLOUR 129:COLOUR 3
550 ENDPROC
560
570 DEF PROC`wording
580 READ A$
590 PROC`double(A$,2)
600 COLOUR 0:COLOUR 130
610 COLOUR 131:COLOUR 0
620 FOR I%=0 TO amount
630 PRINTTAB(4,8+I%)prog$(I%,0);
640 NEXT I%
650 COLOUR 129:COLOUR 0
660 READ A$
670 PRINTTAB(8,26)A$;
680 READ A$
690 PRINTTAB(9,28)A$;
700 COLOUR 2
710 PRINTTAB(13,26);CHR$(226)
720 PRINTTAB(19,26);CHR$(227)
730 PRINTTAB(19,28)"< RETURN >"
740 ENDPROC
750
760 DEF PROC`select
770 COLOUR 131:COLOUR 1
780 Y%=9:X%=2
790 REPEAT
800 up%=FALSE:down%=FALSE
810 VDU 31,X%,Y%,62,32
820 COLOUR 1:PRINTprog$(Y%-8,0)
830 a$=GET$
840 IF a$=CHR$&D Y%=Y%-8:GOTO 1060
850 IF a$=CHR$&8B AND Y%>9 up%=TRUE
860 IF a$=CHR$&8A AND Y%<8+amount down
%=TRUE
870 IF up% OR down% VDU 31,X%,Y%,32,32
:COLOUR 0:PRINTprog$(Y%-8,0)
880 IF down% Y%=Y%+1
890 IF up% Y%=Y%-1
900 UNTIL FALSE
910 ENDPROC
920
930 DEF PROC`double(word$,pos)
940 A%=&A:X%=&70:Y%=0
950 PRINTTAB(20-LENword$/2,pos);
960 FOR loop%=1 TO LENword$
970 ?X%=ASCMID$(word$,loop%)
980 CALL &FFF1
990 VDU 23,224,X%?1,X%!1;X%!2;X%!3;X%?
4,23,225,X%?5,X%!5;X%!6;X%!7;X%?8
1000 VDU 224,8,10,225,11
1010 NEXT loop%
1020 ENDPROC
1030
1040 REM"¶¶¶¶¶¶¶¶¶ *** PROGR
AM LOADER ***
1050
1060 name$=prog$(Y%,2)
1070 COLOUR 129:COLOUR 3
1080 VDU 28,6,28,32,26,12
1090 PRINT"Loading."
1100 IF prog$(Y%,1)="M/C" GOTO 1130
1110 IF prog$(Y%,1)="BAS" GOTO 1150
1120
1130 REM *** LOAD M/C FILE ***
1140 *RUN name$
1150 REM *** LOAD BASIC FILE ***
1160 CHAIN name$
1170
1180 REM"¶¶¶¶¶¶¶¶¶ *** DATA
***
1190
1200 DATA 13
1210 DATA "PROGRAM ONE","BAS","NAME"
1220 DATA "PROGRAM TWO","BAS","NAME"
1230 DATA "PROGRAM THREE","M/C","NAME"
1240 DATA "PROGRAM FOUR","BAS","NAME"
1250 DATA "PROGRAM FIVE","M/C","NAME"
1260 DATA "PROGRAM SIX","M/C","NAME"
1270 DATA "PROGRAM SEVEN","M/C","NAME"
1280 DATA "PROGRAM EIGHT","BAS","NAME"
1290 DATA "PROGRAM NINE","BAS","NAME"
1300 DATA "PROGRAM TEN","M/C","NAME"
1310 DATA "PROGRAM ELEVEN","BAS","NAME"
1320 DATA "PROGRAM TWELVE","BAS","NAME"
1330 DATA "PROGRAM THIRTEEN","M/C","NAM
E"
1340 DATA 1,4,7
1350 DATA 175,70,1050,200,1
1360 DATA 50,275,1200,750,3
1370 DATA 175,825,1050,975,1
1380 DATA "T I T L E"
1390 DATA " USE AND TO SELECT"
1400 DATA " AND THEN "