Listing of file='KALSOU.BAS;01' on disk='vmedia/soundware_II-sector.ccvf'
100 REM K KALEIDOSCOPE BY PATRICK LEABO 101 POKE 32940,255:POKE 32941,159:CLEAR 1000 102 POKE 33283,7:POKE 33284,160 105 LOAD "NEWML5.DAT;1" 107 DIM MT(25),DT(25) 110 TM= PEEK (32940)+ PEEK (32941)* 256+ 1 120 POKE TM,50:POKE TM+ 1,0 130 POKE 33278,255 150 PLOT 6,4,12,15,27,11 155 PLOT 27,24 200 PLOT 12 210 PLOT 6,1,12 220 A= 31:B= 15:X1= 16:Y1= 8 225 A= INT (RND (1)* 20+ 29):B= INT (RND (1)* 10+ 14) 230 RESTORE 250 240 FOR N= 0TO 7:READ DX(N):READ DY(N):NEXT 250 DATA 1,0,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1 252 FOR N= 0TO 7:READ NT(N) 253 DU(N)= INT (8000/ NT(N)) 254 NEXT 255 DATA 77,68,60,57,51,45,39,37 256 FOR N= 0TO 24:READ MT(N):DT(N)= INT (8000/ MT(N)):NEXT 258 DATA 154,146,138,130,122,115,109,103,97,91,86,81,77,72,68,64,60,57,54,51,48,45,42,39,37 259 PLOT 12 260 REM SQUARES 290 FOR NN= 1TO 50 300 DI= INT (8* RND (1)) 310 IF RND (1)< .25THEN CC= INT (100* RND (1)):PLOT 6,CC:GOSUB 800 315 GOSUB 700 320 FOR N= 1TO INT (RND (1)* 8) 330 X1= X1+ DX(DI):Y1= Y1+ DY(DI) 340 IF X1< 0THEN X1= A:GOTO 360 350 IF X1> ATHEN X1= 0 360 IF Y1< 0THEN Y1= B:GOTO 380 370 IF Y1> BTHEN Y1= 0 380 X2= 63- X1:Y2= 31- Y1 390 PLOT 3,X1,Y1:PRINT "`"; 400 PLOT 3,X1,Y2:PRINT "`"; 410 PLOT 3,X2,Y1:PRINT "`"; 420 PLOT 3,X2,Y2:PRINT "`"; 425 PLOT 8:PRINT 430 NEXT :NEXT 435 REM VECTORS 440 FOR CC= 0TO 12:GOSUB 900:NEXT 442 CC= INT (63* RND (1)) 445 IF RND (1)= .5THEN CC= 1 446 IF RND (1)> .5THEN CC= CCAND 15 447 MA= CCAND 56 450 PLOT 6,CC,12:CC= CCAND 15 452 IF CC> 12THEN CC= 12 455 GOSUB 1000 500 A= INT (RND (1)* 50+ 60):B= INT (RND (1)* 50+ 60):GOSUB 600 505 FOR N= 1TO 50 510 X1= X3:X2= X4:Y1= Y3:Y2= Y4:GOSUB 600 515 DI= INT ((X3/ A)* 8):GOSUB 1000 520 PLOT 2,253,X1,Y1,242,X3,Y3,255 530 PLOT 2,253,X1,Y2,242,X3,Y4,255 540 PLOT 2,253,X2,Y1,242,X4,Y3,255 550 PLOT 2,253,X2,Y2,242,X4,Y4,255 560 IF RND (1)< .25THEN CC= INT (8* RND (1)):GOSUB 900:PLOT 6,CCOR MA 570 IF RND (1)< .1THEN PLOT 31 580 NEXT 585 FOR CC= 0TO 12:GOSUB 900:NEXT 595 CC= INT (63* RND (1)):GOTO 200 599 REM SOUNDS 600 X3= INT (A* RND (1)):Y3= INT (B* RND (1)):X4= 127- X3:Y4= 127- Y3:RETURN 700 IF PEEK (33278)< > 255THEN LOAD "MENU":RUN 710 POKE TM,NT(DI):POKE TM+ 2,DU(DI):X= CALL (0):RETURN 800 OK= OK+ 1:IF OK> 2THEN OK= 0 801 ON OKGOTO 830,842 802 NS= 4:GOSUB 850 804 NS= 0:GOSUB 850:NS= 2:GOSUB 850 805 NS= 4:GOSUB 850:NS= 7:GOSUB 850 825 RETURN 830 NS= 1:GOSUB 850:NS= 3:GOSUB 850 833 NS= 4:GOSUB 850:NS= 6:GOSUB 850 840 RETURN 842 NS= 0:GOSUB 850:NS= 3:GOSUB 850 844 NS= 5:GOSUB 850:NS= 7:GOSUB 850:RETURN 850 IF PEEK (33278)< > 255THEN LOAD "MENU":RUN 860 POKE TM,NT(NS):POKE TM+ 2,DU(NS):X= CALL (0):RETURN 900 REM MORE SOUNDS 910 NS= 0+ CC:GOSUB 950 915 NS= 4+ CC:GOSUB 950 920 NS= 7+ CC:GOSUB 950 925 NS= 12+ CC:GOSUB 950 930 RETURN 950 IF PEEK (33278)< > 255THEN LOAD "MENU":RUN 960 POKE TM,MT(NS):POKE TM+ 2,DT(NS):X= CALL (0):RETURN 1000 ON DI+ 1GOTO 1010,1010,1030,1030,1050,1050,1080,1080 1010 NS= 0+ CC:GOSUB 950:RETURN 1020 NS= 2+ CC:GOSUB 950:RETURN 1030 NS= 4+ CC:GOSUB 950:RETURN 1040 NS= 5+ CC:GOSUB 950:RETURN 1050 NS= 7+ CC:GOSUB 950:RETURN 1060 NS= 9+ CC:GOSUB 950:RETURN 1070 NS= 11+ CC:GOSUB 950:RETURN 1080 NS= 12+ CC:GOSUB 950:RETURN