Listing of file='SOUNDD.BAS;01' on disk='vmedia/multi_peripheral_interface_demo-sector.ccvf'
100 REM ** SOUND DEMO - MODIFIED JULY 19,79 ** 110 REM COPYRIGHT 4-79 120 REM CAP ELECTRONICS 130 REM 140 TM= PEEK (32940)+ PEEK (32941)* 256:POKE 32936,2 150 IF TM> 64* 1024- 4THEN LOAD "PATCH":RUN 160 IF PEEK (TM+ 180)< > 241THEN LOAD "PATCH":RUN 170 DA= TM+ 8:AD= 33283:GOSUB 60000 180 CLEAR 100 190 BD$= "twtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwt" 200 OUT 8,247 210 BL$= " " 220 BV$= "twtwtwtwtwtwtwtwt" 230 P= 100:D= 500:NS= 0:S1= 0:S2= 0 240 CB$= " " 250 DIM CI(11):RESTORE 1030:FOR N= 0TO 11 260 READ CI(N):NEXT 270 REM SOUND EXPERIMENTER 280 PLOT 6,7,12,15 290 GOSUB 720 300 TM= PEEK (32940)+ 256* PEEK (32941)+ 1 310 PRINT " " 320 PLOT 14,3,1,2 330 PRINT " cf tu ab pb nu ab ~| {d {e nu {e pq tu " 340 PLOT 3,1,4 350 PRINT " gd vw vw as lw rs no a| l lw l ab vw " 360 PLOT 3,1,6 370 PRINT " " 380 PLOT 3,1,6,15 390 PRINT " BY CAP ELECTRONICS " 400 POKE TM,50:POKE TM+ 2,15:POKE TM+ 4,0 410 REM SCREEN FILLER 420 GOSUB 1920 430 PLOT 6,0 440 PLOT 6,0,3,1,29:PRINT " ENTER M TO GO BACK TO THE MENU, ENTER Q TO QUIT THIS PLAYING" 450 PLOT 3,3,27,6,0:PRINT BL$ 460 PLOT 3,22,27:PRINT "PRESS YOUR CHOICE - "; 470 OUT 8,255:CH= CALL (2):OUT 8,247 480 CH$= CHR$ (CH) 490 PRINT CH$ 500 REM CHOOSER 510 IF CH$= "Q"THEN GOSUB 620:GOTO 670 520 IF CH$= "M"THEN GOSUB 620:GOTO 700 530 NN= ASC (CH$)- 64 540 IF (NN< 1)OR (NN> 12)THEN X= CALL (0):GOTO 450 550 ON NNGOSUB 1090,1150,1200,1250,1320,1390,1460,1530,1600,1650,1750,1810 560 GOTO 450 570 REM SOUND POKER 580 AD= TM:DA= P:GOSUB 60000 590 AD= TM+ 2:DA= D:GOSUB 60000 600 POKE TM+ 4,NS:POKE TM+ 5,S1:POKE TM+ 6,S2 610 XX= CALL (0):RETURN 620 REM ENDING 630 X= CALL (0) 640 X= 1:Y= 9:H= 22:W= 62:C= 1:GOSUB 60020 650 FOR NN= 1TO 21:XC= CALL (1):NEXT 660 RETURN 670 PLOT 3,22,19,14 680 PLOT 6,0:OUT 8,255 690 PRINT "BYE BYE, COME AGAIN":PLOT 27,11,15:END 700 PLOT 3,22,19,14,6,0 710 PRINT "BACK TO THE MENU":LOAD "MENU":RUN 720 REM BORDER DRAWER 730 PLOT 6,0,12,15 740 GOSUB 860 750 PLOT 6,10,27,24,3,0,0 760 PRINT BD$:PLOT 3,0,8:PRINT BD$:PLOT 3,0,31:PRINT BD$ 770 PLOT 3,0,14:PRINT BD$:PLOT 3,0,20:PRINT BD$ 780 PLOT 3,0,26:PRINT BD$ 790 PLOT 27,10,3,0,0:PRINT BD$ 800 PLOT 3,63,0:PRINT BD$ 810 PLOT 3,16,9:PRINT BV$ 820 PLOT 3,32,9:PRINT BV$:PLOT 3,48,9:PRINT BV$ 830 PLOT 27,24,3,1,1 840 POKE TM,50:POKE TM+ 2,15 850 RETURN 860 L= 0 870 FOR X= 1TO 60STEP 16 880 FOR Y= 9TO 25STEP 6 890 GOSUB 1010:L= L+ 1:NEXT :NEXT 900 L= 0:RESTORE 1040 910 FOR X= 3TO 60STEP 16:FOR Y= 9TO 25STEP 6 920 PLOT 6,CI(L) 930 PLOT 3,X- 1,Y:READ N$:PRINT N$ 940 PLOT 3,X,Y+ 2,14:READ N$:PRINT N$ 950 PLOT 3,X,Y+ 4:READ N$:PRINT N$ 960 PLOT 15 970 IF D8= 1THEN 990 980 L= L+ 1:NEXT :NEXT 990 PLOT 15 1000 D8= 1:RETURN 1010 PLOT 6,CI(L) 1020 FOR N= 0TO 5:PLOT 3,X,Y+ N:PRINT CB$:NEXT :RETURN 1030 DATA 48,6,48,6,48,6,48,6,48,6,48,6 1040 DATA "A","S A U C E R","","E","L I T T L E"," B I R D S","I"," T H E I R","P O L I C E" 1050 DATA "B","L I T T L E"," L A S E R","F"," B I G","B I R D S","J"," O U R" 1060 DATA "P O L I C E","C"," B I G","L A S E R","G","C H I P -","M U N K S","K","R 2 - D 2" 1070 DATA " T A L K","D"," B O M B","" 1080 DATA "H"," P O N G","","L"," B A C H"," T A L K" 1090 REM SAUCER 1100 X= 3:Y= 9:PLOT 6,118:RESTORE 1040:GOSUB 930 1110 P= 250:D= 25:NS= 249:S1= 5:S2= 249 1120 GOSUB 570 1130 X= 3:Y= 9:PLOT 6,48:RESTORE 1040:GOSUB 930 1140 RETURN 1150 REM LITTLE LASER 1160 X= 19:Y= 9:M= 9:PLOT 6,70:GOSUB 2030:GOSUB 930 1170 P= 15:D= 10:NS= 30:S1= 1:S2= 0 1180 FOR NN= 1TO 10:GOSUB 570:NEXT 1190 X= 19:Y= 9:M= 9:PLOT 6,6:GOSUB 2030:GOSUB 930:RETURN 1200 REM BIG LASER 1210 X= 35:Y= 9:M= 18:PLOT 6,118:GOSUB 2030:GOSUB 930 1220 P= 5:D= 5:NS= 100:S1= 2:S2= 0 1230 FOR NN= 1TO 5:GOSUB 570:NEXT 1240 X= 35:Y= 9:M= 18:PLOT 6,48:GOSUB 2030:GOSUB 930:RETURN 1250 REM BOMB 1260 X= 51:Y= 9:M= 27:PLOT 6,70:GOSUB 2030:GOSUB 930 1270 P= 15:D= 15:NS= 150:S1= 1:S2= 0 1280 GOSUB 570 1290 P= 767:D= 5:NS= 20:S1= 129:S2= 127 1300 GOSUB 570 1310 X= 51:Y= 9:M= 27:PLOT 6,6:GOSUB 2030:GOSUB 930:RETURN 1320 REM LITTLE BIRDS 1330 X= 3:Y= 15:M= 3:PLOT 6,70:GOSUB 2030:GOSUB 930 1340 P= 25:D= 5:NS= 20:S1= 255:S2= 0 1350 FOR NN= 1TO 15:GOSUB 570:FOR NX= 1TO (5+ 99* RND (1)):NEXT 1360 NEXT 1370 X= 3:Y= 15:M= 3:PLOT 6,6:GOSUB 2030:GOSUB 930 1380 RETURN 1390 REM BIG BIRDS 1400 X= 19:Y= 15:M= 12:PLOT 6,118:GOSUB 2030:GOSUB 930 1410 P= 40:D= 20:NS= 40:S1= 254:S2= 1 1420 FOR NN= 1TO 10:GOSUB 570:FOR NX= 1TO (5+ 150* RND (1)):NEXT 1430 NEXT 1440 X= 19:Y= 15:M= 12:PLOT 6,48:GOSUB 2030:GOSUB 930 1450 RETURN 1460 REM CHIPMUNKS 1470 X= 35:Y= 15:M= 21:PLOT 6,70:GOSUB 2030:GOSUB 930 1480 P= 30:D= 2:NS= 25:S1= 1:S2= 0 1490 FOR NN= 1TO 10:GOSUB 570:FOR NX= 1TO (5+ 200* RND (1)):NEXT 1500 NEXT 1510 X= 35:Y= 15:M= 21:PLOT 6,6:GOSUB 2030:GOSUB 930 1520 RETURN 1530 REM PONG 1540 X= 51:Y= 15:M= 30:PLOT 6,118:GOSUB 2030:GOSUB 930 1550 FOR NN= 1TO 10:P= 30:D= 25:NS= 0:S1= 0:S2= 0:GOSUB 570 1560 FOR NX= 1TO (100+ 300* RND (1)):NEXT 1570 P= 200:D= 7:NS= 0:S1= 0:S2= 0:GOSUB 570:FOR NX= 1TO (50+ 300* RND (1)):NEXT :NEXT 1580 X= 51:Y= 15:M= 30:PLOT 6,48:GOSUB 2030:GOSUB 930 1590 RETURN 1600 REM THEIR POLICE 1610 X= 3:Y= 21:M= 6:PLOT 6,118:GOSUB 2030:GOSUB 930 1620 FOR NN= 1TO 5:P= 46:D= 15:NS= 30:S1= 5:S2= 251:GOSUB 570 1630 P= 108:D= 7:NS= 45:S1= 10:S2= 246:GOSUB 570:NEXT 1640 X= 3:Y= 21:M= 6:PLOT 6,48:GOSUB 2030:GOSUB 930:RETURN 1650 REM OUR POLICE 1660 X= 19:Y= 21:M= 15:PLOT 6,70:GOSUB 2030:GOSUB 930 1670 NS= 200:FU= 200:FD= 100:D= 15:SU= 255:SD= 1 1680 NS= 100 1690 FOR NN= 1TO 2:POKE TM,200:POKE TM+ 2,D:POKE TM+ 4,NS:POKE TM+ 5,SU 1700 ZX= CALL (0) 1710 POKE TM,FD:POKE TM+ 2,D:POKE TM+ 4,NS:POKE TM+ 5,SD 1720 ZX= CALL (0) 1730 NEXT 1740 X= 19:Y= 21:M= 15:PLOT 6,6:GOSUB 2030:GOSUB 930:RETURN 1750 REM R2-D2 TALK 1760 X= 35:Y= 21:M= 24:PLOT 6,118:GOSUB 2030:GOSUB 930 1770 FOR NN= 1TO 50 1780 POKE TM,(10+ RND (1)* 30):POKE TM+ 2,50 1790 ZX= CALL (0):NEXT 1800 X= 35:Y= 21:M= 24:PLOT 6,48:GOSUB 2030:GOSUB 930:RETURN 1810 REM BACH TALK 1820 X= 51:Y= 21:M= 33:PLOT 6,70:GOSUB 2030:GOSUB 930 1830 FOR NN= 1TO 72STEP 2 1840 IF NN= 37THEN DU= 35:GOSUB 1880:NN= NN+ 2 1850 POKE TM,NO(NN):POKE TM+ 2,NO(NN+ 1) 1860 XZ= CALL (0) 1870 NEXT :GOSUB 1880:GOTO 1900 1880 POKE TM,24:POKE TM+ 1,1:POKE TM+ 2,DU:XZ= CALL (0) 1890 RETURN 1900 X= 51:Y= 21:M= 33:PLOT 6,6:GOSUB 2030:GOSUB 930 1910 RETURN 1920 REM BACH LOADER 1930 RESTORE 1970:DIM NO(74) 1940 TE= 5800:FOR NN= 1TO 74STEP 2 1950 READ NO(NN):READ AD 1960 NO(NN+ 1)= INT (TE* AD/ NO(NN)):NEXT :RETURN 1970 REM BACH DATA 1980 DATA 91,4,103,1,109,1,122,1,138,1,91,4,103,1,109,1 1990 DATA 122,1,138,1,223,1,211,1,187,2,211,2,223,2 2000 DATA 249,2,187,2,223,2,280,2,91,4,103,1,109,1 2010 DATA 122,1,138,1,91,4,103,1,109,1,122,1,138,1,223,1 2020 DATA 211,1,187,2,211,2,223,2,249,2,187,2,280,4 2030 REM 2040 RESTORE 1040:FOR NN= 1TO M:READ A$:NEXT :RETURN 60000 Z1= INT (DA/ 256):Z2= DA- Z1* 256 60010 POKE AD,Z2:N= N+ 1:POKE AD+ 1,Z1:RETURN 60020 REM SCROLLING SUBROUTINE 60030 DA= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 60000 60040 DA= 128- W- W:AD= TM+ 149:GOSUB 60000 60050 POKE TM+ 129,H- 1:POKE TM+ 131,W* (C+ 1) 60060 POKE TM+ 143,35* (1- C):RETURN