10 '************************************
20 '****          MACHINES          ****            
30 '****    Version 464-664-6128    ****     
40 '****        JEAN REINGOT        ****
50 '****         Avril 1987         ****
60 '************************************
70 '
80 '    INITIALISATIONS
90 '
100 CLS:DEG:INK 0,13:INK 1,0:INK 2,2:INK 3,6:BORDER 13:PAPER 0
110 DIM f$(15),m$(15),n$(15),h(15)
120 FOR i=1 TO 3:c$(i)=CHR$(15)+CHR$(i):NEXT
130 ap$=" Appuyez sur une touche ":ef$=STRING$(24,32):ef1$=STRING$(14,32)
140 WINDOW#1,4,9,11,15:WINDOW#2,13,28,11,15:WINDOW#3,32,36,11,15:WINDOW#4,35,39,3,4
150 ENV 1,1,15,2,5,-3,4
160 ENV 2,1,15,1,15,-1,2
170 ENV 3,1,15,1,4,-20,2,7,-10,4
180 ENT 1,1,-100,1,5,25,3
190 '
200 '  REDEFINITIONS SYMBOLES
210 '
220 SYMBOL AFTER 180
230 SYMBOL 181,24,126,126,255,255,126,126,24
240 SYMBOL 182,60,66,129,129,129,129,66,60
250 SYMBOL 183,255,255,255,255,255,255,255,255
260 SYMBOL 184,255,129,129,129,129,129,129,255
270 SYMBOL 185,0,0,24,60,60,24
280 SYMBOL 186,0,0,24,36,36,24
290 SYMBOL 187,0,0,60,60,60,60
300 SYMBOL 188,0,0,60,36,36,60
310 SYMBOL 200,0,56,40,40,40,40,56
320 SYMBOL 201,0,8,24,40,8,8,8
330 SYMBOL 202,0,56,40,56,8,16,56
340 SYMBOL 203,0,56,8,48,8,8,56
350 SYMBOL 204,0,8,16,32,40,56,8
360 SYMBOL 205,0,56,32,56,8,8,56
370 SYMBOL 206,0,56,32,32,56,40,56
380 SYMBOL 207,0,56,8,24,8,8,8
390 SYMBOL 208,0,56,40,56,40,40,56
400 SYMBOL 209,0,56,40,56,8,8,56
410 SYMBOL 210,0,46,106,170,42,42,46
420 SYMBOL 211,0,34,102,170,34,34,34
430 SYMBOL 212,0,46,106,174,34,36,46
440 SYMBOL 213,0,46,98,172,34,34,46
450 SYMBOL 214,0,34,100,168,42,46,34
460 SYMBOL 215,0,46,104,174,34,34,46
470 SYMBOL 216,255,128,131,130,131,130,130,255
480 SYMBOL 217,255,1,193,65,193,129,65,255
490 SYMBOL 218,255,128,129,128,128,128,128,255
500 SYMBOL 219,255,1,193,129,129,129,1,255
510 SYMBOL 220,255,128,129,129,129,129,128,255
520 SYMBOL 221,255,1,193,1,1,193,1,255
530 SYMBOL 222,255,128,156,144,144,156,128,255
540 SYMBOL 223,255,1,57,17,17,17,1,255
550 SYMBOL 224,255,128,129,129,129,129,128,255
560 SYMBOL 225,255,1,193,1,129,1,1,255
570 SYMBOL 226,255,128,156,144,152,144,128,255
580 SYMBOL 227,255,1,57,17,17,17,1,255
590 SYMBOL 228,255,128,156,144,152,144,128,255
600 SYMBOL 229,255,1,57,33,33,57,1,255
610 SYMBOL 230,255,128,187,162,178,163,128,255
620 SYMBOL 231,255,1,157,9,9,137,1,255
630 SYMBOL 232,255,128,129,130,131,130,128,255
640 SYMBOL 233,255,1,129,65,193,65,1,255
650 SYMBOL 234,255,128,140,146,158,146,128,255
660 SYMBOL 235,255,1,57,17,17,17,1,255
670 SYMBOL 236,255,128,140,146,158,146,128,255
680 SYMBOL 237,255,1,57,33,33,57,1,255
690 SYMBOL 238,255,128,153,165,189,165,128,255
700 SYMBOL 239,255,1,221,9,9,201,1,255
710 SYMBOL 240,255,128,140,146,158,146,128,255
720 SYMBOL 241,255,1,57,33,49,33,1,255
730 SYMBOL 242,255,128,153,165,189,165,128,255
740 SYMBOL 243,255,1,221,9,137,9,1,255
750 SYMBOL 244,255,128,153,165,189,165,128,255
760 SYMBOL 245,255,1,221,17,145,29,1,255
770 SYMBOL 246,255,128,184,144,150,150,128,255
780 SYMBOL 247,255,1,9,13,169,233,1,255
790 SYMBOL 248,0,4,6,255,255,6,4
800 '
810 '  ASSEMBLAGE SYMBOLES
820 '
830 FOR i=0 TO 1:FOR j=0 TO 1:FOR k=0 TO 1:FOR l=0 TO 1:f$(i*8+j*4+k*2+l)=c$(k+2)+CHR$(181+l*4+j*2+i):NEXT:NEXT:NEXT:NEXT
840 FOR i=0 TO 15:n$(i)=c$(1)+CHR$(200+i):NEXT
850 FOR i=0 TO 15:m$(i)=c$(1)+CHR$(216+i*2)+CHR$(217+i*2):NEXT
860 FOR i=0 TO 7:READ no$(i):NEXT
870 GOSUB 2820
880 '
890 '  MENU 1
900 '
910 BORDER 12:PEN 2:LOCATE 19,4:PRINT "MENU":PEN 1:GOSUB 2660:LOCATE 7,7:PRINT "DEMONSTRATION........... 0"
920 LOCATE 7,10:PRINT "EXERCICES NIVEAU 1...... 1"
930 LOCATE 7,13:PRINT "EXERCICES NIVEAU 2.......2"
940 LOCATE 7,16:PRINT "CHAINE DE MACHINES.......3"
950 LOCATE 14,21:PEN 3:PRINT "VOTRE CHOIX ?"
960 R$=INKEY$:IF r$="" THEN 960
970 r=VAL(r$):IF r>3 OR r<0 THEN PRINT CHR$(7):GOTO 960
980 CLS:ON r+1 GOSUB 1030,1480,1930,2050
990 CLS:GOTO 910
1000 '
1010 '  DEMONSTRATION
1020 '
1030 GOSUB 2660:BORDER 25
1040 PEN 3:LOCATE 3,2:PRINT "On dispose de 8 figures":LOCATE 5,3:PRINT "numerotees de 0 a 7":PEN 1
1050 FOR i=0 TO 1:FOR j=0 TO 1:FOR k=0 TO 1
1060 v=k+j*2+i*4:va=6+v*2
1070 LOCATE 4,va:PRINT v;+" "+CHR$(255)+" "+no$(i+2)+" "+no$(j+4)+" "+no$(k+6)+" "+CHR$(255)+" "+f$(v):PEN 1
1080 NEXT:NEXT:NEXT
1090 SOUND 1,63,10,15,1:SOUND 1,47,63,15,1
1100 LOCATE 15,24:PRINT ap$:CALL &BB18:CLS
1110 GOSUB 2660:LOCATE 3,2:PRINT "On dispose de 8 Machines":LOCATE 5,3:PRINT "numerotees de 0 a 7"
1120 FOR i=0 TO 7:PEN 2:LOCATE 2,7+i*2:PRINT i;SPC(31);CHR$(255)+" "+m$(i):NEXT
1130 LOCATE 5,7:PRINT "ne change RIEN ................"
1140 LOCATE 5,9:PRINT "change la TAILLE .............."
1150 LOCATE 5,11:PRINT "change la COULEUR ............."
1160 LOCATE 5,13:PRINT "change la COULEUR et la TAILLE."
1170 LOCATE 5,15:PRINT "change la FORME ..............."
1180 LOCATE 5,17:PRINT "change la FORME et la TAILLE .."
1190 LOCATE 5,19:PRINT "change la FORME et la COULEUR ."
1200 LOCATE 5,21:PRINT "change FORME,COULEUR et TAILLE "
1210 SOUND 1,47,10,15,1:SOUND 1,63,15,15,1
1220 LOCATE 15,24:PRINT ap$:CALL &BB18:CLS
1230 GOSUB 2660:BORDER 23:a=15
1240 LOCATE 2,2:PRINT " Exemples ":GOSUB 2670
1250 FOR i=1 TO 5:RANDOMIZE TIME
1260 GOSUB 1410
1270 ORIGIN 288,176:h(2)=INT(RND*8):z=h(2):GOSUB 2340
1280 GOSUB 1420
1290 z=h(1) XOR h(2):c=(z OR 5) 2:t=8-(z OR 6):ORIGIN 544,200:GOSUB 2320
1300 GOSUB 1430:GOSUB 1440
1310 NEXT i
1320 GOSUB 2660:BORDER 22:LOCATE 2,2:PRINT" Autres exemples "
1330 FOR i=1 TO 5:RANDOMIZE TIME
1340 GOSUB 1410
1350 h(2)=INT(RND*8):z=h(2):c=(z OR 5) 2:t=8-(z OR 6):ORIGIN 544,200:GOSUB 2320
1360 GOSUB 1420
1370 z=h(1) XOR h(2):ORIGIN 288,176:GOSUB 2340
1380 GOSUB 1430:GOSUB 1440
1390 NEXT i
1400 RETURN
1410 h(1)=INT(RND*8):z=h(1):c=(z OR 5) 2:t=8-(z OR 6):ORIGIN 96,200:GOSUB 2320:RETURN
1420 FOR j=1 TO 80:SOUND 12,800+j*2,4,15,3,1:SOUND 33,240-j*3,2,15,1:NEXT:RETURN
1430 LOCATE 14,24:PRINT ap$:RETURN
1440 SOUND 1,63,10,15,1:SOUND 1,47,10,15,3:CALL &BB18:CLS#1:CLS#2:CLS#3:LOCATE 14,24:PRINT ef$:RETURN
1450 '
1460 ' PROGRAMME PRINCIPAL
1470 '
1480 GOSUB 2660:PEN 3:LOCATE 16,3:PRINT "NIVEAU:";r:FOR i=1 TO 8:PEN 2:LOCATE 2,3+i*2:PRINT i;"   Exercice No:";i;"  ";(i+1) 2;CHR$(255);" machine":NEXT
1490 FOR i=3 TO 8:LOCATE 37,3+i*2:PRINT "s":NEXT
1500 PEN 3:LOCATE 10,21:PRINT "Votre choix ? (de 1 a 8)"
1510 PEN 1:LOCATE 3,24:PRINT " ENTER  pour valider ou continuer"
1520 ch$=INKEY$:IF ch$="" THEN 1520
1530 ch=VAL(ch$):IF ch>8 OR ch<1 THEN PRINT CHR$(7):GOTO 1520
1540 CLS:a=15:BORDER 15+ch
1550 GOSUB 2660:GOSUB 2670:GOSUB 2720:GOSUB 2770
1560 PEN 3:LOCATE 15,24:PRINT ch:sc=0:n=0:BORDER ch+10
1570 FOR x=1 TO 10
1580 CLS#4
1590 FOR i=1 TO (ch+3) 2
1600 h(i)=INT(RND*8*r)
1610 NEXT i
1620 ORIGIN 96,200:z=h(1):c=(z OR 13) 7+1:t=16-(z OR 14):GOSUB 2320
1630 IF ch/2<>ch 2 THEN k=(ch+1) 2-1:fl=1 ELSE k=(ch-2)/2:fl=2
1640 ON fl GOSUB 1750,1810
1650 ON fl GOSUB 1880,1890
1660 INPUT#4,w
1670 FOR i=1 TO 50:SOUND 1,420*fl-i*2,3,15,1:SOUND 1,0,3,0:NEXT
1680 IF fl=1 THEN CLS #3 ELSE LOCATE #2,2,3:PRINT #2,CHR$(32)
1690 ON fl GOSUB 1790,1870
1700 z=h(1) XOR h(2) XOR h(3) XOR h(4) XOR h(5):IF z=w THEN GOSUB 1730 ELSE GOSUB 1740
1710 n=n+1:PEN 2:LOCATE 36,24:PRINT n:CALL &BB18:CLS #1:CLS #2:CLS #3
1720 NEXT x
1730 LOCATE #4,1,1:PRINT #4," OUI ":sc=sc+1:LOCATE 28,24:PEN 2:PRINT sc:SOUND 1,60,20,15,1:SOUND 1,47,20,15,1:SOUND 1,40,40,15,1:RETURN
1740 LOCATE #4,1,1:PRINT#4," NON ":SOUND 3,430,60,15,,,INT(RND*20)+1:RETURN
1750 FOR i=0 TO k
1760 ORIGIN 288-32*(i*2-k),176:z=h(i+2):GOSUB 2340
1770 NEXT i
1780 RETURN
1790 z=w
1800 ORIGIN 544,200:c=(z OR 13) 7+1:t=16-(z OR 14):GOSUB 2320:RETURN
1810 z=h(2):GOSUB 1800
1820 IF ch=2 THEN RETURN
1830 FOR i=0 TO k-1
1840 ORIGIN 288-32*(i*2-k),176:z=h(i+3):GOSUB 2340
1850 NEXT i
1860 RETURN
1870 ORIGIN 288-32*((ch-2)/2),176:z=w:GOSUB 2340:RETURN
1880 FOR i=1 TO 50:LOCATE #3,3,3:PEN #3,i MOD 2:SOUND 1,200-i*2,3,15,1:PRINT #3,CHR$(63):NEXT:PEN #3,1:LOCATE #3,3,3:PRINT #3,CHR$(63): RETURN
1890 FOR i=1 TO 50:LOCATE #2,2,3:PEN #2,i MOD 2:SOUND 1,830-i*2,3,15,1:PRINT #2,CHR$(63):NEXT:PEN #2,1:LOCATE #2,2,3:PRINT #2,CHR$(63):RETURN
1900 '
1910 '  PRESENTATION NIVEAU 2
1920 '
1930 CLS:GOSUB 2660:PEN 3:LOCATE 16,3:PRINT "NIVEAU 2":PEN 1
1940 LOCATE 4,6:PRINT "On ajoute une quatrieme propriete"
1950 LOCATE 10,8:PRINT "aux figures: l'ASPECT"
1960 LOCATE 9,10:PRINT "Elles peuvent donc etre":LOCATE 12,12:PEN 2:PRINT "VIDES ou PLEINES"
1970 PEN 1:LOCATE 6,14:PRINT "On dispose donc maintenant de:"
1980 PEN 2:LOCATE 7,16:PRINT "16 FIGURES et de 16 MACHINES"
1990 PEN 1:LOCATE 10,18:PRINT "numerotees de 0 a 15."
2000 LOCATE 14,24:PRINT ap$
2010 CALL &BB18:CLS:GOTO 1480
2020 '
2030 '   CHAINE DE MACHINES
2040 '
2050 GOSUB 2660:BORDER 17:LOCATE 12,5:PEN 3:PRINT "CHAINE DE MACHINES"
2060 LOCATE 3,8:PEN 1:PRINT "Il faut taper le numero de la figure":LOCATE 10,10:PRINT"qui sort de la machine."
2070 LOCATE 3,12:PEN 2:PRINT"Choisissez la longueur de la chaine"
2080 LOCATE 16,15:PEN 1:PRINT "<De 1 a 5>"
2090 r$=INKEY$:IF r$="" THEN 2090
2100 R1=VAL(R$):IF R1>5 OR r1<1 THEN PRINT CHR$(7):GOTO 2090 ELSE CLS
2110 GOSUB 2660
2120 PLOT 0,326:DRAW 640,326:PLOT 0,48:DRAW 640,48:PLOT 536,400:DRAW 536,326:PLOT 256,0:DRAW 256,48:PLOT 418,0:DRAW 418,48
2130 LOCATE 18,24:PRINT "FORCE:";r1:LOCATE 28,24:PRINT "POINTS:"
2140 SC=0:h=TIME
2150 r=2:GOSUB 2770
2160 h(0)=INT(RND*16)
2170 FOR k=0 TO r1-1
2180 ORIGIN 32,296-k*52:z=h(0):c=(z OR 13) 7+1:t=16-(z OR 14):GOSUB 2320
2190 FOR i=0 TO 4:h(i+1)=INT(RND*16):z=h(i+1):ORIGIN 56+i*112,272-k*52:GOSUB 2340
2200 LOCATE 2,24:INPUT "Figure No:";w
2210 z=h(0) XOR h(i+1):IF z=w THEN LOCATE 36,3:SOUND 1,63,20,15,3:PRINT "OUI":ORIGIN 32+(I+1)*112,296-k*52:c=(z OR 13) 7+1:t=16-(z OR 14):GOSUB 2320:sc=sc+1:LOCATE 35,24:PRINT sc:H(0)=Z:LOCATE 2,24:PRINT EF1$:GOTO 2230 
2220 SOUND 1,430,20,15,,,20:CLS:GOTO 2110
2230 NEXT:h(0)=z:NEXT
2240 h=(TIME-h)/300:LOCATE 35,2:PRINT "TEMPS":LOCATE 35,3:PRINT USING "###.#";h:LOCATE 36,4:PRINT "sec"
2250 SOUND 1,60,10,15,1:SOUND 3,47,10,15,2:SOUND 1,30,20,15,3
2260 LOCATE 2,24:PEN 1:PRINT"Une autre (O/N)
2270 r$=INKEY$:IF r$="" THEN 2270
2280 IF r$="o" OR r$="O" THEN CLS:GOTO 2050 ELSE RETURN
2290 ' 
2300 '   DESSINS FIGURES-MACHINES
2310 '
2320 ON z+1 GOSUB 2360,2360,2360,2360,2380,2380,2380,2380,2370,2370,2370,2370,2390,2390,2390,2390
2330 RETURN
2340 ON z+1 GOSUB 2400,2410,2420,2430,2440,2450,2460,2470,2480,2490,2500,2510,2520,2530,2540,2550
2350 RETURN
2360 FOR j=-a*t TO a*t STEP 2:PLOT -SQR((a*t)^2-j^2),j,c:DRAW SQR((a*t)^2-j^2),j:NEXT:RETURN
2370 PLOT a*t,0,c:FOR g=0 TO 360 STEP 10:DRAW a*t*COS(g),a*t*SIN(g):NEXT:RETURN
2380 FOR j=-a*t TO a*t STEP 2:PLOT j,-a*t,c:DRAW j,a*t:NEXT:RETURN
2390 PLOT -a*t,-a*t,c:DRAW a*t,-a*t:DRAW a*t,a*t:DRAW -a*t,a*t:DRAW -a*t,-a*t:RETURN
2400 GOSUB 2620:PLOT 24,16:DRAW 24,32:DRAW 40,32:DRAW 40,24:DRAW 24,24:DRAW 32,24:DRAW 40,16:PLOT 26,16:DRAW 26,30:DRAW 38,30:DRAW 38,26:DRAW 26,26:DRAW 38,16:RETURN
2410 GOSUB 2620:PLOT 32,16:GOSUB 2610:RETURN
2420 GOSUB 2620:PLOT 38,32:GOSUB 2600:RETURN
2430 GOSUB 2620:PLOT 24,32:GOSUB 2600:PLOT 44,16:GOSUB 2610:RETURN
2440 GOSUB 2620:PLOT 24,16:GOSUB 2590:RETURN
2450 GOSUB 2620:PLOT 16,16:GOSUB 2590:PLOT 44,16:GOSUB 2610:RETURN
2460 GOSUB 2620:PLOT 16,16:GOSUB 2590:PLOT 50,32:GOSUB 2600:RETURN
2470 GOSUB 2620:PLOT 6,16:GOSUB 2590:PLOT 37,32:GOSUB 2600:PLOT 48,16:GOSUB 2610:RETURN
2480 GOSUB 2620:PLOT 24,16:GOSUB 2580:RETURN
2490 GOSUB 2620:PLOT 14,16:GOSUB 2580:PLOT 40,16:GOSUB 2610:RETURN
2500 GOSUB 2620:PLOT 14,16:GOSUB 2580:PLOT 48,32:GOSUB 2600:RETURN
2510 GOSUB 2620:PLOT 6,16:GOSUB 2580:PLOT 38,32:GOSUB 2600:PLOT 49,16:GOSUB 2610:RETURN
2520 GOSUB 2620:PLOT 12,16:GOSUB 2580:PLOT 40,16:GOSUB 2590:RETURN
2530 GOSUB 2620:PLOT 6,16:GOSUB 2580:PLOT 24,16:GOSUB 2590:PLOT 48,16:GOSUB 2610:RETURN
2540 GOSUB 2620:PLOT 6,16:GOSUB 2580:PLOT 24,16:GOSUB 2590:PLOT 56,32:GOSUB 2600:RETURN
2550 GOSUB 2620:PLOT 16,14:DRAW 16,32:PLOT 14,14:DRAW 14,32:PLOT 8,32:DRAW 24,32:PLOT 8,30:DRAW 24,30:PLOT 22,14:DRAW 22,24:DRAW 32,24:DRAW 32,14:DRAW 22,14:PLOT 24,16:DRAW 24,22:DRAW 30,22:DRAW 30,16:DRAW 24,16
2560 PLOT 38,24:DRAW 38,14:DRAW 48,14:DRAW 48,24:DRAW 46,24:DRAW 46,16:DRAW 40,16:DRAW 40,24:PLOT 54,14:DRAW 54,32:DRAW 56,32:DRAW 56,14:PLOT 54,28:DRAW 58,28:PLOT 54,26:DRAW 58,26
2570 RETURN
2580 DRAWR 8,16:DRAWR 8,-16:PLOTR -14,4:DRAWR 12,0:PLOTR -12,-4:DRAWR 6,14:DRAWR 6,-14:PLOTR -8,6:DRAWR 4,0:RETURN
2590 DRAWR 0,16:DRAWR 14,0:PLOTR -14,-7:DRAWR 8,0:DRAWR 0,2:DRAWR -6,0:PLOTR 0,-10:DRAWR 0,14:DRAWR 12,0:RETURN
2600 DRAWR -12,0:DRAWR 0,-16:DRAWR 12,0:PLOTR 0,2:DRAWR -10,0:DRAWR 0,12:DRAWR 10,0:RETURN
2610 DRAWR 0,16:PLOTR 2,-16:DRAWR 0,16:PLOTR -8,0:DRAWR 14,0:PLOTR 0,-2:DRAWR -14,0:RETURN
2620 PLOT 0,0,1:DRAW 64,0:DRAW 64,48:DRAW 0,48:DRAW 0,0:PLOT 2,2:DRAW 62,2:DRAW 62,46:DRAW 2,46:DRAW 2,2:RETURN
2630 '
2640 ' SOUS-PROGRAMMES CADRES
2650 '
2660 ORIGIN 0,0:DRAW 639,0,1:DRAW 639,399:DRAW 0,399:DRAW 0,0:PLOT 2,2:DRAW 637,2:DRAW 637,397:DRAW 2,397:DRAW 2,2:RETURN
2670 PEN 1:LOCATE 4,9:PRINT "ENTREE       MACHINES       SORTIE"
2680 ORIGIN 40,144:GOSUB 2710
2690 ORIGIN 184,144:DRAW 272,0:DRAW 272,136:DRAW 0,136:DRAW 0,0:PLOT 0,108:DRAW 272,108
2700 ORIGIN 488,144:GOSUB 2710:RETURN
2710 DRAW 112,0,1:DRAW 112,136:DRAW 0,136:DRAW 0,0:PLOT 0,108:DRAW 112,108:RETURN
2720 ORIGIN 0,0:PLOT 0,44,1:DRAW 639,44:PLOT 0,124:DRAW 639,124:PLOT 0,314:DRAW 639,314:PLOT 536,400:DRAW 536,314
2730 LOCATE 3,20:PRINT "MACHINES":FOR i=0 TO 7:LOCATE 15+i*3,19:PRINT m$(i):SOUND 1,127-i*10,10,15,1:LOCATE 16+i*3,20:PRINT n$(i):NEXT
2740 IF r=2 THEN FOR i=8 TO 15:LOCATE -9+i*3,21:PRINT m$(i):LOCATE -8+i*3,22:PRINT n$(i):NEXT
2750 PEN 1:LOCATE 3,24:PRINT "EXERCICE No:        SCORE:    SUR:"
2760 RETURN
2770 FOR i=0 TO r*8-1:ORIGIN 24+i*32*(3-r),370:z=i:c=(z OR 13) 7+1:t=16-(z OR 14):a=8:GOSUB 2320:SOUND 1,120-i*5,10,15,1:NEXT
2780 PEN 1:FOR i=0 TO r*8-1:LOCATE 2+i*2*(3-r),4:PRINT n$(i);:SOUND 1,120-i*5,10,15,1:NEXT:RETURN
2790 '
2800 '   PRESENTATION
2810 '
2820 p$(1)="1000100110001100100101010010111100110"
2830 p$(2)="1000101001010010100101010010100001001"
2840 p$(3)="1101101001010000100101011010100001000"
2850 p$(4)="1010101111010000111101010110111000110"
2860 p$(5)="1000101001010000100101010010100000001"
2870 p$(6)="1000101001010010100101010010100001001"
2880 p$(7)="1000101001001100100101010010111100110"
2890 INK 1,26:ORIGIN 0,0:INK 2,1:INK 3,3
2900 DIM p(7,37)
2910 FOR i=1 TO 7
2920 FOR j=1 TO 37
2930 p(i,j)=VAL(MID$(p$(i),j,1))
2940 NEXT:NEXT
2950 FOR s=0 TO 1
2960 FOR i=1 TO 7
2970 FOR j=1 TO 37
2980 h=INT(RND*8)*2+(1-s)
2990 SOUND 33,430+i*12,2,15,s,s,10
3000 LOCATE 19,24:PRINT f$(h)
3010 SOUND 12,60+i*6,2,15,s,s
3020 IF p(i,j)=1 THEN PLOT 300,32,1:DRAW 16*j,391-(i+s*8)*16:LOCATE j,i+s*8:PRINT f$(h):PLOT 300,32:DRAW 16*j,391-(i+s*8)*16,0 ELSE GOTO 3030
3030 NEXT j
3040 NEXT i
3050 INK 2,2:INK 3,6:INK 1,24
3060 NEXT s
3070 INK 1,0:LOCATE 19,24:PRINT CHR$(32)
3080 PEN 1:FOR i=0 TO 6:FOR j=1 TO 37:SOUND 57,850-j*20,5,9+i,2,1:SOUND 58,120+J*20,5,9+I,1,1:SOUND 60,1200-i*75,2,15,2,1:LOCATE j,17+i:IF MID$(p$(i+1),j,1)="1" THEN PRINT CHR$(143)
3090 NEXT:NEXT
3100 FOR i=1 TO 300:INK 1,INT(RND*26)+1:INK 2,INT(RND*26)+1:INK 3,INT(RND*26)+1:SOUND 12,340-i,3,15,1:SOUND 33,600+i*2,2,14,1:NEXT
3110 INK 1,0:INK 2,2:INK 3,6
3120 FOR h=0 TO 1000:NEXT:CLS
3130 RETURN
3140 DATA "Plein ","Vide  ","Disque","Carre ","Bleu  ","Rouge ","Grand ","Petit "