S/SC Demonstration Program This program demonstrates many of the capabilities of the S/SC--simultaneous speech and sound, music generation, complex sound effects, use of commands and sound registers, and so on. 10 REM ************************ 20 REM **** DEMO PROGRAM **** 30 REM ** FOR SPEECH/SOUND **** 40 REM ** CARTRIDGE *** 50 REM ************************ 60 REM ************************ 70 CLEAR 512 80 X=&HFF00:Y=&HFF7E:Z=&HFF7D 90 DIM P$(8) 100 REM 110 REM SETUP 120 REM 130 POKE Z,1:POKEZ,0 140 POKE X+1,52:POKE X+3,63 150 POKE X+35,60 160 REM 170 REM 180 REM DEFINE SPEECH STRINGS 190 REM 200 GOSUB 2890 210 REM 220 REM 230 REM LOAD SPEECH STRINGS 240 REM 250 PRINT "LOADING SPEECH" 260 FOR C=1TO8 270 GOSUB 3360 280 NEXT C 290 REM 300 REM 310 REM LOAD SOUNDS 320 REM 330 PRINT "LOADING SOUND" 340 FOR C=1 TO 6 350 GOSUB 3490 360 NEXT C 370 REM 390 REM EXECUTE DEMO 400 REM 410 PRINT "DEMONSTRATING" 420 REM 430 REM LOAD BASE TIMER 440 REM 450 GOSUB 3170 460 POKE Y,&H8F 470 GOSUB 3170 480 POKE Y,60 490 GOSUB 3170 500 REM 510 REM 520 REM EXEC SPEECH BUFFER 0 530 REM 540 POKE Y,208 550 GOSUB 3230 560 GOSUB 3030 570 GOSUB 3170 580 REM 590 REM 600 REM EXEC SPEECH BUFFER 1 610 REM 620 POKE Y,209 630 GOSUB 3030 640 GOSUB 3170 650 REM 660 REM 670 REM EXEC SPEECH BUFFER 4 680 REM 690 POKE Y,212 700 GOSUB 3300 710 GOSUB 3030 720 GOSUB 3170 730 REM 740 REM 750 REM EXEC SOUND BUFFER 0 760 REM 770 POKE Y,216 780 GOSUB 3230 790 GOSUB 3100 800 GOSUB 3170 810 REM 820 REM 830 REM EXEC SPEECH BUFFER 5 840 REM 850 POKE Y,213 860 GOSUB 3230 870 GOSUB 3030 880 GOSUB 3170 890 REM 900 REM 910 REM EXEC SOUND BUFFER 1 920 REM 930 POKE Y,217 940 GOSUB 3230 950 GOSUB 3100 960 GOSUB 3170 970 REM 980 REM 990 REM EXEC SPEECH BUFFER 2 1000 REM 1010 POKE Y,210 1020 GOSUB 3030 1030 GOSUB 3170 1040 REM 1050 REM 1060 REM EXEC SPEECH BUFFER 4 1070 REM 1080 POKE Y, 212 1090 GOSUB 3230 1100 GOSUB 3030 1110 GOSUB 3170 1120 REM 1130 REM 1140 REM EXEC REG STR BUFFER 3 1150 REM 1160 POKE Y,251 1170 GOSUB 3230 1180 GOSUB 3100 1190 GOSUB 3170 1200 REM 1210 REM 1220 REM EXEC REG STR BUFFER 4 1240 POKE Y, 252 1250 GOSUB 3230 1260 GOSUB 3100 1270 GOSUB 3170 1280 REM 1290 REM 1300 REM EXEC REG STR BUFFER 3 1310 REM 1320 POKE Y, 251 1330 GOSUB 3230 1340 GOSUB 3100 1350 GOSUB 3170 1360 REM 1370 REM 1380 REM EXEC REG STR BUFFER 5 1390 REM 1400 POKE Y,253 1410 GOSUB 3230 1420 GOSUB 3100 1430 GOSUB 3170 1440 REM 1450 REM 1460 REM EXEC REG STR BUFFER 3 1470 REM 1480 POKE Y,251 1490 GOSUB 3230 1500 GOSUB 3100 1510 GOSUB 3170 1520 REM 1530 REM 1540 REM STOP ALL SOUND 1550 REM 1560 POKE Y,207 1570 GOSUB 3170 1580 REM 1590 REM 1600 REM EXEC SPEECH BUFFER 3 1610 REM 1620 POKE Y,211 1630 GOSUB 3230 1640 GOSUB 3230 1650 GOSUB 3230 1660 GOSUB 3030 1670 GOSUB 3170 1680 REM 1690 REM 1700 REM EXEC SOUND BUFFER 2 1710 REM 1720 POKE Y, 218 1730 GOSUB 3100 1740 GOSUB 3170 1750 REM 1760 REM 1770 REM EXEC SPEECH BUFFER 7 1780 REM 1790 POKE Y,215 1800 GOSUB 3170 1810 REM 1820 REM 1830 REM EXEC REG STR BUFFER 1840 REM 1850 POKE Y,251 1860 GOSUB 3100 1870 GOSUB 3170 1880 REM 1890 REM 1900 REM EXEC REG STR BUFFER 4 1910 REM 1920 POKE Y,252 1930 GOSUB 3100 1940 GOSUB 3170 1950 REM 1960 REM 1970 REM EXEC REG STR BUFFER 3 1980 REM 1990 POKE Y,251 2000 GOSUB 3100 2010 GOSUB 3170 2020 REM 2030 REM 2040 REM EXEC REG STR BUFFER 5 2050 REM 2060 POKE Y,253 2070 GOSUB 3100 2080 GOSUB 3170 2090 REM 2100 REM 2110 REM EXEC REG STR BUFFER 3 2120 REM 2130 POKE Y,251 2140 GOSUB 3100 2150 GOSUB 3170 2160 REM 2170 REM 2180 REM STOP ALL SOUND 2190 REM 2200 POKE Y,207 2210 GOSUB 3170 2220 REM 2230 REM 2240 REM EXEC SPEECH BUFFER 6 2250 REM 2260 POKE Y,214 2270 REM 2280 REM 2290 END 2300 REM 2310 REM TUNE 1 2320 REM COMMAND MODE SOUND 2340 DATA 11,0,214,6,0,0,0,6 2350 DATA 11,1,29,4,11,1,46,4 2360 DATA 11,1,29,4,11,1,13,12 2370 DATA 11,1,29,6,0,0,0,18 2380 DATA 11,0,226,6,0,0,0,6 2390 DATA 11,0,214,6,0,0,0,0 2400 REM 2410 REM 2420 REM TUNE 2 2430 REM COMMAND MODE SOUND 2440 REM 2450 DATA 11,0,214,6,0,0,0,0 2460 DATA 11,0,214,12,0,0,0,0 2470 DATA 11,0,214,12,0,0,0,0 2480 DATA 11,1,13,6,0,0,0,0 2490 DATA 11,0,254,12,0,0,0,0 2500 DATA 11,1,64,6,0,0,0,0 2510 REM 2520 REM 2530 REM GUNSHOT 2540 REM COMMAND MODE NOISE 2550 REM WITH ENVELOPE 2560 REM 2570 DATA 159,15,15,191,15,15 2580 DATA 223,15,15,98,0,14,5 2590 DATA 0,0,0,0 2600 REM 2610 REM 2620 REM C CHORD 2630 REM DIRECT REGISTER SOUND 2640 REM 2650 DATA 0,172,1,1,2,83,3,1 2660 DATA 4,29,5,1,6,0,7,56 2670 DATA 8,9,9,9,10,9,11,0 2680 DATA 12,0,13,0 2690 REM 2700 REM 2710 REM F CHORD 2720 REM DIRECT REGISTER SOUND 2740 DATA 0,172,1,1,2,64,3,1 2750 DATA 4,254,5,0,6,0,7,56 2760 DATA 8,9,9,9,10,9,11,0 2770 DATA 12,0,13,0 2780 REM 2790 REM 2800 REM G CHORD 2810 REM DIRECT REGISTER SOUND 2820 REM 2830 DATA 0,197,1,1,2,125,3,1 2840 DATA 4,29,5,1,6,0,7,56 2850 DATA 8,9,9,9,10,9,11,0 2860 DATA 12,0,13,0 2870 REM 2880 REM 2890 REM STRINGS 2900 REM TEXT-TO-SPEECH 2910 REM 2920 P$(1)="HELLO...I AM THE COLOR COMPUTER SOUND AND SPEECH CARTRIDGE." 2930 P$(2)="I CAN NOT ONLY TALK...I CAN ALSO PLAY MELODIES." 2940 P$(3)="I CAN PLAY CORDS." 2950 P$(4)="I CAN MAKE SOUND EFFECTS...LIKE THIS GUNSHOT." 2960 P$(5)="LIKE THIS." 2970 P$(6)="AND THIS." 2980 P$(7)="I HOPE YOU WILL ENJOY USING ME." 2990 P$(8)="I CAN PLAY CORDS WHILE SPEAKEYNG." 3000 RETURN 3010 REM 3020 REM 3030 REM SHEECH* CHECK 3040 REM 3050 FORQ=1TO800:NEXT Q 3060 IF (PEEK(Y) AND 64) = 0 THEN 3060 3070 RETURN 3080 REM 3090 REM 3100 REM SOUND* CHECK 3110 REM 3120 FORQ=1TO700:NEXT Q 3130 IF (PEEK(Y) AND 32) = 0 THEN 3130 3140 RETURN 3150 REM 3160 REM 3170 REM BUSY* CHECK 3180 REM 3190 IF (PEEK(Y) AND 128) = 0 THEN 3190 3200 RETURN 3210 REM 3220 REM 3230 REM SHORT DELAY 3240 REM 3250 GOSUB 3170 3260 FOR Q = 1 TO 800:NEXT Q 3270 RETURN 3280 REM 3290 REM 3300 REM LONG DELAY 3310 REM 3320 FOR Q=1 TO 6000:NEXT Q 3330 RETURN 3340 REM 3350 REM 3360 REM LOAD A STRING 3370 REM 3380 GOSUB 3170 3390 POKE Y,143+C 3400 FOR I=1 TO LEN(P$(C)) 3410 GOSUB 3170 3420 POKE Y, ASC(MID$(P$(C),I,1)) 3430 NEXT I 3440 GOSUB 3170 3450 POKE Y,13 3460 RETURN 3470 REM 3480 REM 3490 REM LOAD A SOUND 3500 REM 3510 IF C>2 THEN 3560 3520 K=48 3530 GOSUB 3170 3540 POKE Y,151+C 3550 GOTO 3600 3560 IF C=3 THEN K=17:GOTO 3530 3570 K=28 3580 GOSUB 3170 3590 POKE Y, 183+C 3600 FOR I=1 TO K 3610 READ D 3620 GOSUB 3170 3630 POKE Y,D 3640 NEXT I 3650 GOSUB 3170 3660 POKE Y,255 3670 RETURN 3680 REM 3690 REM |