10 DEFUSR=&H156 : SCREEN 1,3,0 : CLS : WIDTH 22 : KEY OFF : COLOR 15,1,1 : LOCATE 0,0 20 DIM P(5) : DIM C(5) 30 P(0)=1 : C(0)=8 40 P(1)=3 : C(1)=13 50 P(2)=5 : C(2)=11 60 P(3)=20 : C(3)=15 70 P(4)=100 : C(4)=3 80 GOSUB 660 90 GOTO 1900 100 M = 5 110 V=RND(-TIME) 120 N$="000001111222334" 130 CLS 140 PRINT USING "-YOU HAVE #### COINS";M;: PRINT "!-"; 150 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 160 PRINT "dddh h h hdkl"; 170 PRINT "eeei i i iemn"; 180 PRINT "eeei i i ieop"; 190 PRINT "fffj j j jfqr"; 200 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 210 PRINT " "; 220 PRINT " "; 230 PRINT " SCORES "; 240 PRINT " "; 250 PRINT " s - s 2 "; 260 PRINT " s - s - s 3 "; 270 PRINT " t - t 6 "; 280 PRINT " t - t - t 9 "; 290 PRINT " u - u 10 "; 300 PRINT " u - u - u 15 "; 310 PRINT " v - v 40 "; 320 PRINT " v - v - v 60 "; 330 PRINT " w - w 200 "; 340 PRINT "JP! w - w - w 500 JP!"; 350 PUT SPRITE 0,(200,15),1,0 360 COLOR 15,1,1 : LOCATE 0,0 : PRINT USING "-YOU HAVE #### COINS";M;: PRINT "!-"; 370 IF STICK(0)=5 OR STICK(1)=5 THEN M = M - 1 : GOTO 390 380 GOTO 370 390 PUT SPRITE 0,(200,15),1,1 400 LOCATE 0,0 : PRINT USING "-YOU HAVE #### COINS";M;: PRINT "!-"; 410 FOR T=1 TO 200:NEXT 420 PUT SPRITE 0,(200,15),1,0 430 R1=VAL(MID$(N$,INT(RND(1)*LEN(N$)+1),1)) 440 R2=VAL(MID$(N$,INT(RND(1)*LEN(N$)+1),1)) 450 R3=VAL(MID$(N$,INT(RND(1)*LEN(N$)+1),1)) 460 PLAY "s10m512l32o5cegcegcegcegceg" 470 T=0 480 PUT SPRITE 1,(72,15),14,(T MOD 2)+2 : PUT SPRITE 2,(112,15),14,(T MOD 2)+2 : PUT SPRITE 3,(152,15),14,(T MOD 2)+2 : T=T+1 : IF PLAY(0)=-1 THEN 480 490 PUT SPRITE 1,(72,15),C(R1),R1+4 500 PLAY "s10m512l32o5dfadfadfadfadfa" 510 T=0 520 PUT SPRITE 2,(112,15),14,(T MOD 2)+2 : PUT SPRITE 3,(152,15),14,(T MOD 2)+2 : T=T+1 : IF PLAY(0)=-1 THEN 520 530 PUT SPRITE 2,(112,15),C(R2),R2+4 540 PLAY "s10m512l32o5egbegbegbegbegb" 550 T=0 560 PUT SPRITE 3,(152,15),14,(T MOD 2)+2 : T=T+1 : IF PLAY(0)=-1 THEN 560 570 PUT SPRITE 3,(152,15),C(R3),R3+4 580 LOCATE 0,7 590 IF (R1=4) AND (R2=4) AND (R3=4) THEN PRINT "JACKPOT! 500 COINS! " : M = M + 500 : PLAY "s10m512l16o6cegl32ceg" : FOR T=1 TO 100: COLOR 15,1,INT(RND(1)*16) : NEXT : GOTO 620 600 IF (R1=R2) AND (R1=R3) THEN PRINT USING "YOU WIN ### COINS! ";P(R1)*3;: PRINT "!" : M = M + P(R1)*3 : PLAY "s10m512l32o6co5aa#o6c" : GOTO 620 610 IF (R1=R2) THEN PRINT USING "YOU WIN ### COINS! ";P(R1)*2;: PRINT "!" : M = M + P(R1)*2 : PLAY "s10m512l32o6co5aa#o6c" : GOTO 620 620 ' IF (R1=0) THEN PRINT USING "YOU WIN ### COINS! ";P(0);: print "!" : M = M + P(0) : GOTO 660 630 IF M=0 THEN 1740 640 IF R1<>R2 THEN PRINT "BETTER LUCK NEXT TRY!" : PLAY "l4o3c" 650 FOR T=1 TO 1500 : NEXT : LOCATE 0,7 : PRINT SPC(22);: GOTO 360 660 S=BASE(9) 670 READ R$: IF R$="*" THEN 870 ELSE VPOKE S,VAL("&H"+R$): S=S+1: GOTO 670 680 ' Col: 1 - Id: 0 - Name: lever 1 690 DATA e3,c1,c5,cd,e3,ff,d5,d5,d5,dd,e3,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff 700 ' Col: 1 - Id: 1 - Name: lever 2 710 DATA ff,ff,ff,ff,ff,e3,dd,d5,d5,d5,ff,e3,c1,c5,cd,e3,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff 720 ' Col: 14 - Id: 2 - Name: mov 1 730 DATA 8,0,8,4a,b,5b,ff,7f,ff,ef,4e,c,44,4,0,0,0,40,8,40,48,69,ec,fd,ff,bf,be,95,94,4,80,0 740 ' Col: 14 - Id: 3 - Name: mov 2 750 DATA ff,ef,4e,c,44,4,0,0,8,0,8,4a,b,5b,ff,7f,ff,bf,be,95,94,4,80,0,0,40,8,40,48,69,ec,fd 760 ' Col: 8 - Id: 4 - Name: cherries 770 DATA 8,7,3,0,3,4,8,10,10,10,54,c6,fe,a2,c2,7c,0,80,c0,5c,ae,16,16,13,10,10,54,c6,fe,a2,c2,7c 780 ' Col: 13 - Id: 5 - Name: strawberry 790 DATA 0,1,4,1e,37,3f,5d,7f,77,7f,5d,7f,77,7e,3f,0,3,c3,f6,8,34,74,66,42,30,f2,e0,c4,88,30,c0,0 800 ' Col: 11 - Id: 6 - Name: beer 810 DATA 3,37,7b,7f,3f,41,50,5a,54,5a,5c,56,59,5f,40,3f,80,e0,f0,f0,e0,d6,93,91,91,91,11,13,16,90,10,e0 820 ' Col: 15 - Id: 7 - Name: coffee 830 DATA 4,4,18,21,21,10,0,ff,ff,ff,ff,df,60,3f,0,1f,20,20,c0,0,0,80,0,90,96,91,91,36,60,c0,0,80 840 ' Col: 3 - Id: 8 - Name: joystick 850 DATA 3,7,7,6,3,0,1,7d,fd,f9,f8,fc,7f,80,ff,7f,80,c0,40,40,80,0,0,7e,7f,33,33,7f,fe,1,ff,fe 860 DATA * 870 SCREEN 2 880 OPEN "GRP:" AS #1 : DRAW"BM0,0" 890 FOR N = 1 TO 3 900 FOR I = 65 TO 96 : PRINT#1,CHR$(1)+CHR$(I); : NEXT I 910 FOR I = 32 TO 255 : PRINT#1,CHR$(I); : NEXT I : NEXT N 920 READ R$ 930 FOR T=0 TO 7 940 IF R$="*" THEN 1730 ELSE N=VAL(R$) 950 READ G$:READ C$ 960 VPOKE BASE(12)+T+(8*N),VAL("&H"+G$) 970 VPOKE BASE(11)+T+(8*N),VAL("&H"+C$) 980 VPOKE BASE(12)+T+(8*(N+256)),VAL("&H"+G$) 990 VPOKE BASE(11)+T+(8*(N+256)),VAL("&H"+C$) 1000 VPOKE BASE(12)+T+(8*(N+512)),VAL("&H"+G$) 1010 VPOKE BASE(11)+T+(8*(N+512)),VAL("&H"+C$) 1020 NEXT 1030 GOTO 920 1040 DATA 33,e,f1,1e,f1,1c,f1,38,a1,30,a1,0,11,c0,81,c0,81 1050 DATA 34,66,f1,66,f1,22,f1,44,a1,0,11,0,11,0,11,0,11 1060 DATA 39,60,f1,60,f1,20,f1,40,a1,0,11,0,11,0,11,0,11 1070 DATA 43,0,11,10,f1,10,f1,7c,a1,10,a1,10,81,0,11,0,11 1080 DATA 44,0,11,0,11,0,11,0,11,60,a1,60,81,20,81,40,81 1090 DATA 45,0,11,0,11,0,11,7e,a1,7e,a1,0,11,0,11,0,11 1100 DATA 46,0,11,0,11,0,11,0,11,0,11,60,81,60,81,0,11 1110 DATA 48,38,f1,4c,f1,c6,f1,c6,a1,c6,a1,64,81,38,81,0,11 1120 DATA 49,18,f1,38,f1,18,f1,18,a1,18,a1,18,81,7e,81,0,11 1130 DATA 50,7c,f1,c6,f1,e,f1,3c,a1,78,a1,e0,81,fe,81,0,11 1140 DATA 51,7e,f1,c,f1,18,f1,3c,a1,6,a1,c6,81,7c,81,0,11 1150 DATA 52,1c,f1,3c,f1,6c,f1,cc,a1,fe,a1,c,81,c,81,0,11 1160 DATA 53,3,1f,c0,f1,fc,f1,6,a1,6,a1,c6,81,7c,81,0,11 1170 DATA 54,3c,f1,60,f1,c0,f1,fc,a1,c6,a1,c6,81,7c,81,0,11 1180 DATA 55,1,1f,c6,f1,c,f1,18,a1,30,a1,30,81,30,81,0,11 1190 DATA 56,78,f1,c4,f1,e4,f1,78,a1,9c,a1,86,81,7c,81,0,11 1200 DATA 57,7c,f1,c6,f1,c6,f1,7e,a1,6,a1,c,81,78,81,0,11 1210 DATA 58,0,11,60,f1,60,f1,0,11,60,a1,60,81,0,11,0,11 1220 DATA 59,0,11,60,f1,60,f1,0,11,60,a1,60,81,20,81,40,81 1230 DATA 61,0,11,0,11,3c,f1,0,11,0,11,3c,81,0,11,0,11 1240 DATA 65,38,f1,6c,f1,c6,f1,c6,71,fe,71,c6,21,c6,21,0,11 1250 DATA 66,3,1f,c6,f1,c6,f1,fc,71,c6,71,c6,21,fc,21,0,11 1260 DATA 67,3c,f1,66,f1,c0,f1,c0,71,c0,71,66,21,3c,21,0,11 1270 DATA 68,7,1f,cc,f1,c6,f1,c6,71,c6,71,cc,21,f8,21,0,11 1280 DATA 69,3,1f,c0,f1,c0,f1,f8,71,c0,71,c0,21,fc,21,0,11 1290 DATA 70,1,1f,c0,f1,c0,f1,fc,71,c0,71,c0,21,c0,21,0,11 1300 DATA 71,3e,f1,60,f1,c0,f1,ce,71,c6,71,66,21,3c,21,0,11 1310 DATA 72,39,1f,c6,f1,c6,f1,fe,71,c6,71,c6,21,c6,21,0,11 1320 DATA 73,7e,f1,18,f1,18,f1,18,71,18,71,18,21,7e,21,0,11 1330 DATA 74,6,f1,6,f1,6,f1,6,71,6,71,c6,21,7c,21,0,11 1340 DATA 75,39,1f,cc,f1,d8,f1,f0,71,f8,71,dc,21,ce,21,0,11 1350 DATA 76,60,f1,60,f1,60,f1,60,71,60,71,60,21,7e,21,0,11 1360 DATA 77,39,1f,ee,f1,fe,f1,fe,71,d6,71,c6,21,c6,21,0,11 1370 DATA 78,39,1f,e6,f1,f6,f1,fe,71,de,71,ce,21,c6,21,0,11 1380 DATA 79,7c,f1,c6,f1,c6,f1,c6,71,c6,71,c6,21,7c,21,0,11 1390 DATA 80,3,1f,c6,f1,c6,f1,c6,71,fc,71,c0,21,c0,21,0,11 1400 DATA 81,7c,f1,c6,f1,c6,f1,c6,71,de,71,cc,21,7a,21,0,11 1410 DATA 82,3,1f,c6,f1,c6,f1,cc,71,f8,71,dc,21,ce,21,0,11 1420 DATA 83,7c,f1,c6,f1,c0,f1,7c,71,6,71,c6,21,7c,21,0,11 1430 DATA 84,7e,f1,18,f1,18,f1,18,71,18,71,18,21,18,21,0,11 1440 DATA 85,39,1f,c6,f1,c6,f1,c6,71,c6,71,c6,21,7c,21,0,11 1450 DATA 86,39,1f,c6,f1,c6,f1,ee,71,7c,71,38,21,10,21,0,11 1460 DATA 87,39,1f,c6,f1,d6,f1,d6,71,fe,71,6c,21,44,21,0,11 1470 DATA 88,39,1f,ee,f1,7c,f1,38,71,7c,71,ee,21,c6,21,0,11 1480 DATA 89,66,f1,66,f1,66,f1,3c,71,18,71,18,21,18,21,0,11 1490 DATA 90,1,1f,e,f1,1c,f1,38,71,70,71,e0,21,fe,21,0,11 1500 DATA 97,0,11,0,11,80,7f,80,47,80,47,0,44,0,11,0,11 1510 DATA 98,0,11,0,11,0,ff,0,77,0,77,0,44,0,11,0,11 1520 DATA 99,0,11,0,11,fe,f7,fe,74,fe,74,0,44,0,11,0,11 1530 DATA 100,0,66,aa,86,0,88,aa,98,0,99,aa,b9,0,bb,aa,fb 1540 DATA 101,0,ff,0,ff,0,ff,0,ff,0,ff,0,ff,0,ff,0,ff 1550 DATA 102,55,fb,0,bb,aa,9b,0,99,aa,89,0,88,aa,68,0,66 1560 DATA 104,3c,41,3c,51,3c,51,3c,71,3c,71,3c,e1,3c,e1,3c,e1 1570 DATA 105,3c,f1,3c,f1,3c,f1,3c,f1,3c,f1,3c,f1,3c,f1,3c,f1 1580 DATA 106,3c,e1,3c,e1,3c,e1,3c,71,3c,71,3c,51,3c,51,3c,41 1590 DATA 107,0,88,0,88,fc,8f,fc,8f,fc,6a,fc,6a,fc,6a,fc,6a 1600 DATA 108,0,66,0,66,f0,a6,f0,a6,f0,86,f0,86,f0,86,f0,86 1610 DATA 109,0,66,0,66,0,ee,0,ee,0,ee,0,ee,0,ee,0,ee 1620 DATA 110,0,66,0,66,0,ee,0,ee,f0,fe,f0,fe,f0,5e,f0,5e 1630 DATA 111,0,ee,0,ee,0,ee,0,ee,0,ee,0,ee,0,88,0,88 1640 DATA 112,f,e5,f0,5e,f0,fe,f0,fe,0,ee,0,ee,0,66,0,66 1650 DATA 113,3,f8,fc,8f,fc,6a,fc,6a,fc,6a,fc,6a,0,66,0,66 1660 DATA 114,f,6a,f0,a6,f0,86,f0,86,f0,86,f0,86,0,66,0,66 1670 DATA 115,38,21,6,21,3e,31,ba,13,44,31,ee,81,ee,81,ee,81 1680 DATA 116,1d,c1,84,12,7c,dc,2a,bd,0,dd,54,bd,7e,d1,18,d1 1690 DATA 117,78,f1,fc,f1,d6,71,6a,17,7a,1a,86,a1,84,a1,78,a1 1700 DATA 118,6f,1b,48,b1,0,11,2,5f,2,1f,2,5f,fc,f1,78,71 1710 DATA 119,38,91,38,81,10,f1,10,f1,14,91,7e,31,7e,2c,7e,c1 1720 DATA * 1730 POKE &HFCAF,1 : RETURN 1740 GOSUB 2160: CLS : K=USR(0) 1750 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 1760 PRINT "-OH NO! YOU'RE BROKE!-"; 1770 PRINT "I'M JOKING.. "; 1780 PRINT 1790 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 1800 PRINT "PLAY AGAIN (Y/N)? "; 1810 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 1820 PLAY "s10m512l32o5ed#dc#c" 1830 A$=INKEY$ 1840 IF A$="Y" OR A$="y" THEN 90 1850 IF A$="N" OR A$="n" THEN 1870 1860 GOTO 1830 1870 PRINT 1880 PRINT " HAVE A NICE DAY!"; 1890 END 1900 GOSUB 2160 : CLS : K=USR(0) : P=0 : ON INTERVAL=5 GOSUB 2210 1910 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 1920 PRINT "THE SLOT-TASTIC "; 1930 PRINT " MSX SLOT MACHINE!"; 1940 PRINT " BY ALBERTO SGAGGERO "; 1950 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 1960 PRINT "TRY YOUR LUCK.. "; 1970 PRINT " ..WITH THIS USELESS.."; 1980 PRINT " ..SLOT MACHINE!"; 1990 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 2000 PLAY "t200s15m768l8o5co4bo5co4ag+afefc4.o3aa+o4cdefgaa+g4.a+aa+gf+ged+ec4.o5cccdco4a+aga2o5co4bo5co4ag+afefc4.o3aa+o4cdefgaa+g4.a+aa+gf+ged+ec4.o5cccdco4a+agf2" 2010 IF PLAY(0)=-1 THEN 2010 2020 PRINT 2030 PRINT " INSTRUCTIONS: "; 2040 PRINT " JOY/KEY DOWN.. "; 2050 PRINT " ..TO PULL THE LEVER! "; 2060 PRINT 2070 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 2080 PRINT "PRESS 'FIRE' OR.. "; 2090 PRINT "..'SPACEBAR' TO START!"; 2100 PRINT " HAVE FUN!"; 2110 PRINT "abbbbbbbbbbbbbbbbbbbbc"; 2120 INTERVAL ON 2130 T$=" 'THE SLOT-TASTIC MSX SLOT MACHINE' WAS PROGRAMMED BY A.SGAGGERO TO PARTAKE IN THE '8-BIT BASIC PROGRAMMING CHALLENGE: SLOT MACHINE SIMULATION' PROMOTED BY THE FACEBOOK GROUP RETRO PROGRAMMERS INSIDE. ENJOY! " 2140 IF STRIG(0)=-1 OR STRIG(1)=-1 THEN BEEP: INTERVAL OFF : GOTO 100 2150 GOTO 2140 2160 PUT SPRITE 0,(-32,-32),1,0 2170 PUT SPRITE 1,(-32,-32),1,0 2180 PUT SPRITE 2,(-32,-32),1,0 2190 PUT SPRITE 3,(-32,-32),1,0 2200 RETURN 2210 P=P+1 : IF P=LEN(T$) THEN P=1 2220 LOCATE 0,20 : PRINT MID$(T$,P,22) 2230 RETURN