10 MODE 7 20 PROCinit 30 PROCscreen 40 PROCinfo 50 PROCinput 60 PROCsearch 70 PROCscore(p%) 80 PROCpause(2) 90 PROCendprog 100 END 110 : 120 DEF PROCscreen 130 PRINTTAB(0,2)banner$ 140 PRINTTAB(11,5)"by" 150 PRINTTAB(5,7)"Ray Thomas (D9U)" 160 PRINTTAB(5,10)"A Programme to" 170 PRINTTAB(4,11)"check a syndicate's" 180 PRINTTAB(5,12)"lottery numbers" 190 PRINTTAB(0,17)CHR$(148);STRING$(39,"|") 200 FOR l%=18 TO 20 210 PRINTTAB(0,l%)CHR$(132);CHR$(157) 220 NEXT 230 FOR l%=4TO16 240 PRINTTAB(27,l%)CHR$(132);CHR$(157) 250 PRINTTAB(0,l%)CHR$(135);CHR$(157) 260 NEXT 270 REM.......... 280 PROClott 290 PROCpause(2) 300 PROCotte 310 PROCdownL(30,18):PROCpause(1) 320 PROCsideL(27,18):PROCpause(1) 330 PROCupL(24,18):PROCpause(1) 340 PROCsideL(21,18):PROCpause(1) 350 PROCdownL(18,18):PROCpause(1) 360 PROCsideL(15,18):PROCpause(1) 370 PROCupL(12,18):PROCpause(1) 380 PROCsideL(10,18):PROCpause(1) 390 PROCdownL(8,18):PROCpause(1) 400 PROCsideL(6,18):PROCpause(1) 410 PROCupL(2,18):PROCpause(1) 420 REM................. 430 PROCtter 440 PROCsideO(30,18):PROCpause(1) 450 PROCupO(27,18):PROCpause(1) 460 PROCsideO(24,18):PROCpause(1) 470 PROCupO(21,18):PROCpause(1) 480 PROCsideO(18,18):PROCpause(1) 490 PROCupO(15,18):PROCpause(1) 500 PROCsideO(12,18):PROCpause(1) 510 PROCupO(10,18):PROCpause(1) 520 PROCupO(7,18):PROCpause(1) 530 REM............. 540 PROCtery 550 PROCdownT(30,18):PROCpause(1) 560 PROCsideT(27,18):PROCpause(1) 570 PROCupT(24,18):PROCpause(1) 580 PROCsideT(21,18):PROCpause(1) 590 PROCdownT(18,18):PROCpause(1) 600 PROCsideT(15,18):PROCpause(1) 610 PROCupT(12,18):PROCpause(1) 620 REM............... 630 PROCery 640 PROCdownT(30,18):PROCpause(1) 650 PROCsideT(27,18):PROCpause(1) 660 PROCupT(24,18):PROCpause(1) 670 PROCsideT(21,18):PROCpause(1) 680 PROCupT(17,18):PROCpause(1) 690 REM............. 700 PROCry 710 PROCdownE(30,18):PROCpause(1) 720 PROCry 730 REMPROCry 740 PROCsideE(26,18):PROCpause(1) 750 PROCupE(22,18):PROCpause(1) 760 REM......... 770 PROCy 780 PROCdownR(30,18):PROCpause(2) 790 PROCsideR(28,18):PROCpause(2) 800 PROCupR(27,18):PROCpause(2) 810 REM............. 820 PROClast 830 PROCupY(33,18):PROCpause(2) 840 PROCdownY(33,18):PROCpause(2) 850 PROCupY(32,18):PROCpause(2) 860 PROCroysbit 870 PROCspace 880 ENDPROC 890 : 900 DEF PROCinfo:CLS 910 PRINTTAB(0,2)banner$ 920 PRINTTAB(3,5)"The names and numbers are held in"'" DATA statements starting at line 3610." 930 PRINTTAB(1,8)"To use the program for your syndicate"'" you will of course have to enter your"'" own names and selections."''" Enter the total number of entries in"'" line 3590." 940 PRINTTAB(1,15)"To check your score enter the winning"'" numbers as indicated and after a short pause the name(s) and score(s) (if any"'" will be displayed." 950 PROCspace:CLS 960 ENDPROC 970 : 980 DEF PROCspace 990 PRINTTAB(0,22)CHR$(132);CHR$(157)" TO CONTINUE PLEASE PRESS SPACE" 1000 *FX15,0 1010 REPEAT UNTIL GET=32 1020 ENDPROC 1030 : 1040 DEF PROCupL(x,y) 1050 PRINTTAB(x,y) " " 1060 PRINTTAB(x,y+1)"" 1070 PRINTTAB(x,y+2)" " 1080 ENDPROC 1090 : 1100 DEF PROCpause(p%) 1110 TIME=0:REPEAT:UNTIL TIME=(p%)*10 1120 ENDPROC 1130 : 1140 DEF PROCsideL(x,y) 1150 PRINTTAB(x,y) " " 1160 PRINTTAB(x,y+1)" " 1170 PRINTTAB(x,y+2)" " 1180 ENDPROC 1190 : 1200 DEF PROCdownL(x,y) 1210 PRINTTAB(x,y) " " 1220 PRINTTAB(x,y+1)" " 1230 PRINTTAB(x,y+2)" " 1240 ENDPROC 1250 : 1260 DEF PROCupO(x,y) 1270 PRINTTAB(x,y) " " 1280 PRINTTAB(x,y+1)"媥 " 1290 PRINTTAB(x,y+2)" " 1300 ENDPROC 1310 : 1320 DEF PROCsideO(x,y) 1330 PRINTTAB(x,y) " " 1340 PRINTTAB(x,y+1)"壣 " 1350 PRINTTAB(x,y+2)" " 1360 ENDPROC 1370 : 1380 DEF PROCupT(x,y) 1390 PRINTTAB(x,y) " " 1400 PRINTTAB(x,y+1)" " 1410 PRINTTAB(x,y+2)" " 1420 ENDPROC 1430 : 1440 DEF PROCdownT(x,y) 1450 PRINTTAB(x,y) " " 1460 PRINTTAB(x,y+1)"索 " 1470 PRINTTAB(x,y+2)" " 1480 ENDPROC 1490 : 1500 DEF PROCsideT(x,y) 1510 PRINTTAB(x,y) " " 1520 PRINTTAB(x,y+1)" " 1530 PRINTTAB(x,y+2)" " 1540 ENDPROC 1550 : 1560 DEF PROCupE(x,y) 1570 PRINTTAB(x,y) " " 1580 PRINTTAB(x,y+1)" " 1590 PRINTTAB(x,y+2)" " 1600 ENDPROC 1610 : 1620 DEF PROCsideE(x,y) 1630 PRINTTAB(x,y) " " 1640 PRINTTAB(x,y+1)" " 1650 PRINTTAB(x,y+2)" " 1660 ENDPROC 1670 : 1680 DEF PROCdownE(x,y) 1690 PRINTTAB(x,y) " " 1700 PRINTTAB(x,y+1)"⦆ " 1710 PRINTTAB(x,y+2)" " 1720 ENDPROC 1730 : 1740 DEF PROCupR(x,y) 1750 PRINTTAB(x,y) " " 1760 PRINTTAB(x,y+1)" " 1770 PRINTTAB(x,y+2)" " 1780 ENDPROC 1790 : 1800 DEF PROCsideR(x,y) 1810 PRINTTAB(x,y) " " 1820 PRINTTAB(x,y+1)" " 1830 PRINTTAB(x,y+2)" " 1840 ENDPROC 1850 : 1860 DEF PROCdownR(x,y) 1870 PRINTTAB(x,y) "" 1880 PRINTTAB(x,y+1)"蘒" 1890 PRINTTAB(x,y+2)" " 1900 ENDPROC 1910 : 1920 DEF PROCupY(x,y) 1930 PRINTTAB(x,y) " " 1940 PRINTTAB(x,y+1)" " 1950 PRINTTAB(x,y+2)" " 1960 ENDPROC 1970 : 1980 DEF PROCsideY(x,y) 1990 PRINTTAB(x,y) " " 2000 PRINTTAB(x,y+1)"尪 " 2010 PRINTTAB(x,y+2)" " 2020 ENDPROC 2030 : 2040 DEF PROCdownY(x,y) 2050 PRINTTAB(x,y) "" 2060 PRINTTAB(x,y+1)"ి" 2070 PRINTTAB(x,y+2)" " 2080 ENDPROC 2090 : 2100 DEFPROClott 2110 PROCdownL(31,14) 2120 PROCsideO(31,11) 2130 PROCdownT(31,8) 2140 PROCsideT(31,5) 2150 ENDPROC 2160 : 2170 DEF PROCotte 2180 PROCupO(31,14) 2190 PROCdownT(31,11) 2200 PROCupT(31,8) 2210 PROCsideE(31,5) 2220 ENDPROC 2230 : 2240 DEF PROCtter 2250 PROCsideT(31,14) 2260 PROCupT(31,11) 2270 PROCdownE(31,8) 2280 PROCsideR(31,5) 2290 ENDPROC 2300 : 2310 DEF PROCtery 2320 PROCdownT(31,14) 2330 PROCsideE(31,11) 2340 PROCdownR(31,8) 2350 PROCsideY(31,5) 2360 ENDPROC 2370 : 2380 DEF PROCery 2390 PROCdownE(31,14) 2400 PROCsideR(31,11) 2410 PROCdownY(31,8) 2420 PROCblank(31,5) 2430 ENDPROC 2440 : 2450 DEF PROCry 2460 PROCdownR(31,14) 2470 PROCsideY(31,11) 2480 PROCblank(31,8) 2490 REMPROCblank(30,5) 2500 ENDPROC 2510 : 2520 DEF PROCy 2530 PROCdownY(31,14) 2540 PROCblank(31,11) 2550 REMPROCblank(31,8) 2560 REMPROCblank(31,5) 2570 ENDPROC 2580 : 2590 DEF PROClast 2600 PROCblank(31,14) 2610 ENDPROC 2620 : 2630 DEF PROCblank(x,y) 2640 PRINTTAB(x,y)STRING$(5," ") 2650 PRINTTAB(x,y+1)STRING$(5," ") 2660 PRINTTAB(x,y+2)STRING$(5," ") 2670 ENDPROC 2680 : 2690 DEF PROCroysbit 2700 PRINTTAB(30,5)"Title " 2710 PRINTTAB(30,6)"Screen" 2720 PRINTTAB(30,7)" by" 2730 PRINTTAB(30,8)" Roy " 2740 PRINTTAB(29,9)"Dickens" 2750 PRINTTAB(30,10)"(20G)" 2760 ENDPROC 2770 : 2780 DEF PROCinit:@%=8 2790 banner$=CHR$(132)+CHR$(157)+" LOTTERY CHECKER" 2800 *FX11 2810 *FX4,1 2820 READ N%:VDU23,1,0;0;0;0; 2830 DIM res$(7),n$(7),ptr%(20),sum%(6),num$(N%),name$(N%),n%(99) 2840 FOR I%=1 TO 7:READ n$(I%):NEXT 2850 FOR I%=1 TO N% 2860 READ name$(I%),num$(I%) 2870 NEXT 2880 ENDPROC 2890 : 2900 DEF PROCinput 2910 PRINTTAB(0,1)banner$ 2920 FOR I%=1 TO 7 2930 REPEAT valid=TRUE 2940 res$=FNgpi(4,10,"Enter "+n$(I%)+" winning no: ",48,57,2) 2950 IF VAL(res$)<1 OR VAL(res$)>49 OR n%(VAL(res$)) valid=0:VDU7 2960 UNTIL valid:n%(VAL(res$))=TRUE 2970 IF LEN(res$)=1 res$="0"+res$ 2980 res$(I%)=res$ 2990 PRINTTAB(1,2)CHR$(131)"You have" 3000 PRINTTAB(1,3)CHR$(131)"entered number..." 3010 PRINTTAB(I%+20,I%+2)CHR$(131)"..."res$ 3020 NEXT:CLS 3030 ENDPROC 3040 : 3050 DEF PROCsearch:VDU23,1,1;0;0;0; 3060 PRINTTAB(0,2)banner$ 3070 PRINTTAB(11,9)"Searching...."TAB(11,14)"Please wait ";:p%=0 3080 FOR I%=1 TO N%:sum%=0 3090 FOR J%=1 TO 6 3100 IF INSTR(num$(I%),res$(J%)) sum%=sum%+1 3110 NEXT 3120 IF sum%>2 p%=p%+1:ptr%(p%)=I%:sum%(p%)=sum% 3130 NEXT:VDU23,1,0;0;0;0;12 3140 ENDPROC 3150 : 3160 DEF PROCheading(n%) 3170 PRINTTAB(7,11-n%/2)"Name"TAB(24,11-n%/2)"Score" 3180 ENDPROC 3190 : 3200 DEF PROCscore(n%) 3210 PRINTTAB(0,2)banner$ 3220 FOR I%=1 TO n%:bonus=0 3230 IF sum%(I%)=5 PROCcheck(ptr%(I%),res$(7)) 3240 IF n%>0 PROCprint(bonus,sum%(I%),ptr%(I%),I%,n%) ELSE PRINTTAB(9,10)"Sorry, there are no"TAB(7,12)"winning lines this week!" 3250 NEXT 3260 ENDPROC 3270 : 3280 DEF PROCcheck(I%,r$) 3290 IF INSTR(num$(I%),r$) bonus=TRUE 3300 ENDPROC 3310 : 3320 DEF PROCprint(b,s%,c%,v%,n%) 3330 LOCAL y%:y%=12-n%/2+v% 3340 PROCheading(n%) 3350 IF b PRINTTAB(6,y%)name$(ptr%(v%))TAB(19,y%)5"+B" ELSE PRINTTAB(6,y%)name$(ptr%(v%))TAB(20,y%)s% 3360 ENDPROC 3370 : 3380 DEF PROCendprog 3390 PRINTTAB(0,22)CHR$(132)+CHR$(157)+CHR$(135)" Press to end "; 3400 REPEAT UNTIL GET=32:CLS 3410 VDU23,1,1;0;0;0;12 3420 *FX12 3430 *FX4,0 3440 ENDPROC 3450 : 3460 DEF FNgpi(x%,y%,prmt$,l%,h%,len%) 3470 LOCAL key%,a$ 3480 PRINTTAB(x%+LEN(prmt$),y%)STRING$(len%,".")TAB(x%,y%)prmt$; 3490 REPEAT 3500 VDU23,1,1;0;0;0; 3510 *FX15,1 3520 key%=GET 3530 VDU23,1,0;0;0;0; 3540 IF key%>=l% AND key%<=h% AND LENa$13 AND key%<>127 VDU7 3550 IF key%=127 AND LEN(a$) VDU8,46,8:a$=LEFT$(a$,LEN(a$)-1) 3560 UNTIL key%=13 AND LEN(a$) 3570 =a$ 3580 : 3590 DATA 96 3600 DATA 1st,2nd,3rd,4th,5th,6th,Bonus 3610 DATA "Allen.L", "05,08,09,12,27,30" 3620 DATA "Bassett.R", "03,07,09,22,27,40" 3630 DATA "Bayes.J", "08,15,17,29,41,44" 3640 DATA "Berrington.V", "02,09,26,36,46,47" 3650 DATA "Bradman.J", "02,08,28,29,40,49" 3660 DATA "Braithwaite.E","02,05,13,18,30,44" 3670 DATA "Briggs.Q", "06,10,13,23,26,42" 3680 DATA "Brownlee.C", "02,13,21,25,33,40" 3690 DATA "Bruce.R", "07,09,13,22,31,45" 3700 DATA "Burkart.D", "09,14,25,31,43,44" 3710 DATA "Butler.S", "03,13,16,23,25,31" 3720 DATA "Cann.E", "06,14,16,24,33,44" 3730 DATA "Chennell.A", "03,06,11,13,20,41" 3740 DATA "Clarke.D", "03,09,11,37,42,45" 3750 DATA "Clavey.C", "13,17,22,26,34,42" 3760 DATA "Cluff.J.M", "05,11,22,34,41,43" 3770 DATA "Coles.J", "09,17,21,33,37,42" 3780 DATA "Cummings.G", "08,19,33,36,39,44" 3790 DATA "Dawson.P", "08,16,22,29,33,38" 3800 DATA "Dillon.D", "06,14,20,34,41,48" 3810 DATA "Dixon.B", "02,12,19,20,22,48" 3820 DATA "Dobson.A", "03,16,18,27,35,49" 3830 DATA "Dopazo.A", "07,10,13,31,37,45" 3840 DATA "Draine.M", "04,17,28,39,40,46" 3850 DATA "Drew.B", "02,14,19,33,37,41" 3860 DATA "Forshaw.K", "12,32,35,41,43,47" 3870 DATA "Frost.R", "07,10,17,26,29,31" 3880 DATA "Gayton.M", "04,14,16,34,37,41" 3890 DATA "Goff.E", "03,07,27,30,35,41" 3900 DATA "Goodes.I", "03,09,10,33,45,47" 3910 DATA "Goodliffe.P", "09,10,22,25,32,48" 3920 DATA "Goodwin.J", "06,10,23,26,34,40" 3930 DATA "Greaves.T", "03,12,14,24,38,41" 3940 DATA "Greenhalf.A", "11,15,18,27,41,43" 3950 DATA "Grout.D", "12,18,22,30,32,35" 3960 DATA "Hale.G", "05,06,09,10,30,33" 3970 DATA "Harry.A", "06,11,14,24,34,43" 3980 DATA "Hathaway.E", "05,06,16,19,20,38" 3990 DATA "Hawks.M", "04,06,11,22,28,37" 4000 DATA "Hinchon.L", "07,09,15,16,45,47" 4010 DATA "Hoban.M", "03,11,12,25,32,46" 4020 DATA "Holloway.J.D", "04,07,08,11,26,27" 4030 DATA "Holly.V", "03,13,26,27,37,38" 4040 DATA "Holyoak.P", "01,06,25,36,42,44" 4050 DATA "Howitt.C", "05,15,18,42,46,48" 4060 DATA "Humphreys.J", "02,12,16,23,26,32" 4070 DATA "Ince.R", "14,20,26,27,29,44" 4080 DATA "Jarrold.B", "10,13,19,34,47,49" 4090 DATA "Jones.S", "04,06,12,32,41,49" 4100 DATA "Kennard.P", "07,11,13,36,42,45" 4110 DATA "Kibble.B", "07,13,18,23,29,37" 4120 DATA "Levett.T", "03,04,17,28,39,47" 4130 DATA "Limmage.S", "02,12,27,35,37,44" 4140 DATA "Lloyd.H", "11,19,21,22,37,44" 4150 DATA "Mansbridge.D", "04,17,26,27,29,36" 4160 DATA "Marchant.H", "05,07,23,32,44,48" 4170 DATA "Mascoll.W", "01,07,22,23,27,31" 4180 DATA "Mehew.C", "04,16,22,28,38,44" 4190 DATA "Mitchell.J", "01,07,13,16,18,26" 4200 DATA "Mistry.V", "04,16,25,26,31,43" 4210 DATA "Moore.A", "05,09,12,28,45,48" 4220 DATA "More.M", "08,14,27,37,42,44" 4230 DATA "Nixon.M", "06,13,14,17,22,26" 4240 DATA "Noble.K", "03,08,14,19,27,31" 4250 DATA "Norman.P", "06,17,22,29,31,45" 4260 DATA "Overton.D", "02,07,15,26,28,30" 4270 DATA "Patel.D", "07,11,19,21,42,46" 4280 DATA "Patel.P", "05,10,11,16,28,45" 4290 DATA "Prowse.P", "19,25,27,33,35,47" 4300 DATA "Queeley.C", "03,13,23,39,41,45" 4310 DATA "Rainbow.S", "04,25,33,37,40,45" 4320 DATA "Redman.D", "10,16,18,27,36,37" 4330 DATA "Robinson.D", "05,21,28,35,44,48" 4340 DATA "Stewart.G", "08,19,23,37,42,48" 4350 DATA "Roxburgh.A", "06,09,17,18,32,49" 4360 DATA "Rugman.M", "02,03,05,17,30,47" 4370 DATA "Rzepka.M", "01,08,14,17,24,47" 4380 DATA "Sacco.E", "05,11,18,38,44,45" 4390 DATA "Saunders.K", "04,08,16,19,34,47" 4400 DATA "Saunders.V", "03,10,24,31,34,37" 4410 DATA "Seber.M", "04,12,13,15,43,44" 4420 DATA "Spaughton.M", "17,24,27,34,42,49" 4430 DATA "Spinks.R", "02,31,33,34,39,43" 4440 DATA "Spowart.A", "11,14,36,41,48,49" 4450 DATA "Stone.R", "04,07,18,33,44,46" 4460 DATA "Thoday.R", "08,18,28,41,44,45" 4470 DATA "Thomas.R", "06,17,23,27,32,49" 4480 DATA "Thornes.G", "07,15,17,27,33,42" 4490 DATA "Tipler.C", "07,26,34,42,44,45" 4500 DATA "Waller.G", "02,26,30,31,40,48" 4510 DATA "Walley.D", "06,10,16,25,31,39" 4520 DATA "Ward.R", "06,13,17,27,42,46" 4530 DATA "Wilmott.D", "08,17,33,37,42,44" 4540 DATA "Woods.P", "03,13,23,32,35,42" 4550 DATA "Wright.B", "04,06,19,34,38,46" 4560 DATA "Holly.S", "05,10,11,27,37,43"