10 ' ***************************
20 ' * Programme et routine de *
30 ' *  LAMBERT CHRISTOPHE     *
40 ' *    mis en memoire       *
50 ' *      par XavSnap        *
60 ' ***************************
70 '
80 ON BREAK GOSUB 3350
85 ' Mise en place de la routine LM
90 GOSUB 1900
100 ' --------------------------
110 ' Premiere Page explications
120 ' --------------------------
130 INK 0,1:INK 1,16:INK 3,1,16:SPEED INK 25,25
140 PAPER 0:PEN 1:BORDER 1:MODE 1:INK 2,14
150 PRINT:PRINT"La fonction ";CHR$(34);:PEN 2:PRINT"PAINT";
160 PEN 1: PRINT CHR$(34);" n'existe Pas sur"
170 PRINT:PRINT"votre AMSTRAD ?"
180 PRINT:PRINT"Peu importe, la routine suivante va"
190 PRINT:PRINT"remedier a ce probleme ..."
200 PRINT:PRINT
210 PRINT:PRINT"Pour l'appeler, il suffit de faire:"
220 PRINT:PRINT CHR$(34);:PEN 2:PRINT"PLOT X,Y,Z:CALL &AA50,W";
230 PEN 1:PRINT CHR$(34);" avec X,Y"
240 PRINT:PRINT"un point de la forme a peindre, Z la"
250 PRINT:PRINT"couleur dans laquelle vous desirez la"
260 PRINT:PRINT"colorier et W la couleur de sa frontiere"
270 GOSUB 1770
280 ' --------------------------
290 ' Deuxieme Page explications
300 ' --------------------------
310 CLS :PRINT:PEN 3:SOUND 1,100,20,7
320 PRINT  "           MAIS ATTENTION !!":PEN 1
330 PRINT:PRINT"Prenez garde de ne' laisser aucune"
340 PRINT:PRINT"ouverture sous peine de voir l'ecran"
350 PRINT:PRINT"de votre AMSTRAD se colorier entierement"
360 PRINT:PRINT
370 PRINT:PRINT"Si cela arrivait, sachez qu'il vous"
380 PRINT:PRINT"reste une solution: la touche ";CHR$(34);
390 PEN 2:PRINT"DEL";:PEN 1:PRINT CHR$(34);" qui"
400 PRINT:PRINT"arrete le desastre."
410 GOSUB 1770
420 ' ---------------------
430 ' Exemple d'application
440 ' ---------------------
450 CLS:WINDOW#0,1,40,1,12:INK 1,24:PRINT"Voici un exemple:"
460 PRINT:PRINT"Dessinons un cercle..."
470 DEG:INK 2,6
480 FOR f=0 TO 360 STEP 2
490 PLOT 320+50*COS(f),100+50*SIN(f),2
500 NEXT f
510 FOR f=1 TO 2000:NEXT f
520 PRINT: PRINT"Nous voulons le colorier avec la couleur"
530 PRINT"en cours numero 1."
540 PRINT:PRINT"Pour cela nous colorions un de ses"
550 PRINT:PRINT"points dans celle-ci, en faisant:"
560 PRINT:PEN 3:PRINT"              PLOT 308,100,1":PEN 1
570 FOR f=1 TO 5000:NEXT
580 PLOT 300,100,1
590 PRINT:PRINT"Puis appelons notre routine en faisant:"
600 PRINT:PEN 3:PRINT"              CALL &AA50,2":PEN 1
610 PRINT:PRINT" (2 est la couleur de la frontiere)"
620 FOR f=1 TO 5000:NEXT
630 PRINT:PRINT:PRINT"              Et c'est Parti..."
640 CALL &AA50,2
650 FOR f=1 TO 3000:NEXT
660 ' -----------------------
670 ' Debut pgm demonstration
680 ' -----------------------
690 MODE 1:PRINT:PRINT"Voici maintenant une demonstration"
700 PRINT:PRINT"des possibilites de cette routine..."
710 GOSUB 1770
720 MODE 0:INK 6,0
730 FOR f=0 TO 360 STEP 2.25
740 x=50*COS(f):y=50*SIN(f)
750 PLOT 295+x,175+y,6:PLOT 295+x,225+y,6
760 PLOT 345+x,175+y,6:PLOT 345+x,225+y,6
770 NEXT
780 PLOT 320,50:DRAWR 150,150
790 DRAWR -150,150:DRAWR -150,-150:DRAWR 150,-150
800 PLOT 328,200,1:CALL &AA50,6
810 INK 2,11:PLOT 340,180,2:CALL &AA50,6
820 PLOT 308,180:CALL &AA50,6
830 PLOT 340,220:CALL &AA50,6
840 PLOT 300,220:CALL &AA50,6
850 INK 3,6:PLOT 350,200,3:CALL &AA50,6
860 PLOT 290,200:CALL &AA50,6
870 PLOT 320,170:CALL &AA50,6
880 PLOT 320,230:CALL &AA50,6
890 INK 4,9:PLOT 360,240,4:CALL &AA50,6
900 PLOT 360,160:CALL &AA50,6
910 PLOT 280,160:CALL &AA50,6
920 PLOT 280,240:CALL &AA50,6
930 INK 5,15:PLOT 320,70,5:CALL &AA50,6
940 FOR f=0 TO 90 STEP 0.75
950 x=150*COS(f):y=150*SIN(f)
960 PLOT 320+x,200+y,6:PLOT 320-x,200-y
970 PLOT 320+x,200-y:PLOT 320-x,200+y
980 NEXT
990 INK 7,4:PLOT 400,280,7:CALL &AA50,6
1000 PLOT 400,120:CALL &AA50,6
1010 PLOT 240,120:CALL &AA50,6
1020 PLOT 240,280:CALL &AA50,6
1030 INK 0,13:BORDER 3:FOR f=1 TO 5000:NEXT
1040 INK 2,2:INK 3,9:BORDER 9:PAPER 3:MODE 1:CLS
1050 PLOT 120,4,2:FOR f=1 TO 13 STEP 2
1060 DRAWR 0,392:DRAWR 0,-392:PLOTR f*4,0
1070 NEXT
1080 FOR f=13 TO 1 STEP -2
1090 DRAWR 0,392:DRAWR 0,-392:PLOTR f*4,0
1100 NEXT:DRAWR 0,392
1110 PLOT 120,4:FOR f=1 TO 13 STEP 2
1120 DRAWR 392,0:DRAWR -392,0:PLOTR 0,f*4
1130 NEXT
1140 FOR f=13 TO 1 STEP -2
1150 DRAWR 392,0:DRAWR -392,0:PLOTR 0,f*4
1160 NEXT:DRAWR 392,0
1170 a=0:INK 0,13,0:INK 1,0,13:SPEED INK 100,100
1180 PLOT 122,6,1:FOR g=1 TO 13 STEP 2
1190 GOSUB 1790:PLOTR -388,4*g:NEXT
1200 FOR g=13 TO 3 STEP -2
1210 GOSUB 1790:PLOTR -388,4*g:NEXT
1220 GOSUB 1790
1230 FOR f=1 TO 5000:NEXT:BORDER 1:INK 0,1
1240 PAPER 0:MODE 0
1250 INK 1,0:PLOT 0,0,1:a=640:WHILE a>10
1260 DRAWR a,0:DRAWR 0,a/1.6:DRAWR -a,0:DRAWR 0,-a/1.6
1270 a=a-16:PLOTR 8,8:WEND:PLOT XPOS,YPOS,0
1280 a=0:b=15:c=4:d=6:w=2:GOSUB 1860
1290 INK 10,26:FOR f=6 TO 316 STEP 8
1300 PLOT 320,f,w:CALL &AA50,1
1310 w=w+1:IF w=6 THEN w=2
1320 NEXT
1330 FOR f=1 TO 10000:NEXT:a=REMAIN(0)
1340 '   -------------
1350 '   DESSIN de FIN
1360 '   -------------
1370 BORDER 0:INK 1,0:INK 0,0:INK 2,17:INK 3,8:INK 4,4
1380 MODE 0:PLOT 100,100,1:DRAWR 0,200:DRAWR 130,0 
1390 DRAWR 0,-30:DRAWR -100,0:DRAWR 0,-50:DRAWR 60,0:DRAWR 0,-30
1400 DRAWR -60,0:DRAWR 0,-92:DRAWR -30,0:PLOT 306,100:DRAWR 0,200
1410 DRAWR 30,0:DRAWR 0,-200:DRAWR -30,0:PLOT 410,100:DRAWR 0,200
1420 DRAWR 30,0:DRAWR 70,-140:DRAWR 0,140:DRAWR 30,0:DRAWR 0,-200
1430 DRAWR -30,0:DRAWR -70,140:DRAWR 0,-140:DRAWR -30,0
1440 PLOT 306,100:DRAWR 0,200:DRAWR 30,0:DRAWR 0,-200:DRAWR -30,O
1450 PLOT 410,100:DRAWR 0,200:DRAWR 30,0:DRAWR 70,-140:DRAWR 0,140:DRAWR 30,0:DRAWR 0,-200:DRAWR -30,0:DRAWR -70,140:DRAWR 0,-140:DRAWR -30,O
1460 PLOT 100,300,0:DRAWR 20,20:DRAWR 130,0:DRAWR -20,-20
1470 PLOTR 20,20:DRAWR 0,-30:DRAWR 20,-20
1480 PLOT 130,220:DRAWR 20,20:DRAWR 60,0:DRAWR -20,-20
1490 PLOTR 20,20:DRAWR 0,-30:DRAWR 20,-20
1500 PLOT 150,240:DRAWR 0,30
1510 PLOT 130,98:DRAWR 20,20:DRAWR 0,70
1520 PLOT 306,300:DRAWR 20,20:DRAWR 30,0:DRAWR -20,-20
1530 PLOTR 20,20:DRAWR 0,-200:DRAWR -20,-20
1540 PLOT 410,300:DRAWR 20,20:DRAWR 30,0:DRAWR -20,-20
1550 PLOTR 20,20:DRAWR 50,-94:PLOTR 0,74:DRAWR 20,20
1560 DRAWR 30,0:DRAWR -20,-20:PLOTR 20,20:DRAWR 0,-200
1570 DRAWR -20,-20:PLOT 440,100:DRAWR 20,20:DRAWR 0,80
1580 PLOT 110,110,2:CALL &AA50,1:PLOT 320,200:CALL &AA50,1
1590 PLOT 420,110:CALL &AA50,1:PLOT 130,305,3:CALL &AA50,1 :PLOT 190,230:CALL &AA50,1
1600 PLOT 320,305:CALL &AA50,l:PLOT 430,305:CALL &AA50,1
1610 PLOT 530,305:CALL &AA50,1:PLOT 140,130,4:CALL &AA50,1
1620 PLOT 140,240:CALL &AA50,1:PLOT 240,290:CALL &AA50,1
1630 PLOT 200,210:CALL &AA50,1:PLOT 340,240:CALL &AA50,1
1640 PLOT 450,120:CALL &AA50,1:PLOT 450,300:CALL &AA50,1
1650 PLOT 550,200:CALL &AA50,1
1660 LOCATE 1,23:INK 6,15:PEN 6:PRINT"Voulez-vous faire":PRINT"une sauvegarde O/N ?"
1670 a$=LOWER$(INKEY$):IF a$<>"o" AND a$<>"n" THEN 1670
1680 BORDER 1:INK 0,1:INK 1,24:PEN 1:MODE 1
1690 IF a$="n" THEN BORDER 13:INK 1,0:INK 0,13:MODE 2:END
1700 PRINT:PRINT:PRINT"SAUVEGARDE:" :PRINT
1710 PRINT"1 Du Programme complet":PRINT
1720 PRINT"2 De la routine seule":PRINT
1730 PRINT:PRINT:PRINT
1740 a$=INKEY$:IF a$<>"1" AND a$<>"2" THEN 1740
1750 IF a$="1" THEN SPEED WRITE 1: SAVE"PAINT DEMO":MODE 0:GOTO 1660
1760 IF a$="2" THEN SPEED WRITE 1: SAVE"PAINT CODE",b,&AA50,258:MODE 0:GOTO 1660
1770 LOCATE 7,25:PEN 3:PRINT"PRESSEZ LA BARRE D'ESPACE":PEN 1
1780 a$=INKEY$:IF a$<>" " THEN 1780 ELSE RETURN
1790 a=NOT a:GOSUB 1840:FOR f=1 TO 13 STEP 2
1800 PLOTR 4*f,0,ABS(a):GOSUB 1840:NEXT
1810 FOR f=13 TO 3 STEP -2
1820 PLOTR 4*f,0,ABS(a):GOSUB 1840:NEXT
1830 RETURN
1840 a=NOT a:w=XPOS:y=YPOS:CALL &AA50,2
1850 PLOT w,y: RETURN
1860 INK 2,a:INK 3,b:INK 4,c:INK 5,d:AFTER 4 GOSUB 1870:RETURN
1870 INK 2,d:INK 3,a:INK 4,b:INK 5,c:AFTER 4 GOSUB 1880:RETURN
1880 INK 2,c:INK 3,d:INK 4,a:INK 5,b:AFTER 4 GOSUB 1890:RETURN
1890 INK 2,b:INK 3,c:INK 4,d:INK 5,a:AFTER 4 GOSUB 1860:RETURN
1900 ' ***************************
1910 ' MISE EN PLACE DE LA ROUTINE
1920 ' ***************************
1930 '
1940 MEMORY &AA4F:FOR F=0 TO 257:READ A$
##1940 MEMORY &7FFF:FOR F=0 TO 257:READ A$
1950 POKE &AA50+F,VAL("&"+LEFT$(A$,2)):NEXT
##1955 SAVE"CODE",B,&AA50,258
1960 RETURN
1970 ' ***************************
1980 ' * CODES DE LA ROUTINE
1990 ' ***************************
2000 '
2010 DATA CD,11,BC,32,54,AB,DD,7E,00
2040 DATA 32,2B,AB,2A,2E,B3,ED,5B,2C,B3
2070 DATA CD,23,AB,32,2E,AB,DD,21,52,AB
2100 DATA AF,32,53,AB,CD,30,AB,CB,2D
2140 DATA CB,25,CD,23,AB,28,08,CD,30,AB
2180 DATA 7A,FE,FF,20,F3,CD,41,AB,AF,32,52,AB
2240 DATA E5,D5,CD,EA,BB,D1,E1,3A,F4,B4,E6,80
2310 DATA 20,7F,7C,B5,28,30,D5,E5,2B,2B
2390 DATA CD,F0,BB,E1,D1,CD,2A,AB,20,06
2440 DATA DD,CB,00,86,18,13,DD,CB,00,46
2470 DATA 20,0D,DD,CB,00,C6,D5,2B,2B,E5
2530 DATA 23,23,DD,34,01,7C,3D,20,05,7D
2600 DATA FE,8E,28,27,D5,E5,23,23
2660 DATA CD,F0,BB,E1,D1,CD,2A,AB,20,06
2710 DATA DD,CB,00,BE,18,13,DD,CB,00,7E
2740 DATA 20,0D,DD,CB,00,FE,D5,23,23,E5
2800 DATA 2B,2B,DD,34,01,CD,41,AB,7A,FE,02
2860 DATA 20,05,7B,FE,80,30,05,CD,23,AB
2910 DATA 20,85,DD,7E,01,A7,C8,E1,D1,DD,35,01
2980 DATA CD,23,AB,28,F1,C3,78,AA,DD,7E,01
3020 DATA A7,C8,E1,E1,3D,18,FA,D5,E5,CD,F0,BB
3110 DATA E1,D1,FE,00,C8,FE,00,C9,3A,54,AB
3180 DATA FE,02,28,08,FE,01,28,03,CD,3E,AB
3230 DATA 1B,1B,C9,3A,54,AB,FE,02,28,08,FE,01
3300 DATA 28,03,CD,4F,AB,13,13,C9
3350 BORDER 13:INK 1,0:INK 0,13:PAPER 0:PEN 1:MODE 2