Listing of file='SOUNDR.BAS;05' on disk='vmedia/taylor_8-sector.ccvf'
10 PLOT 12,15,6,2,3,10,15 15 PRINT "AY-3-8910 SOUND GENERATION SELECTOR PROGRAM" 20 PRINT :PRINT :PRINT TAB( 15)"MAKE THE SOUNDS YOU'VE ALWAYS DREAMED OF." 25 PLOT 27,4:PRINT "RUN RUNLNK":PLOT 27,27 30 CLEAR 200 35 DEF FN L(X)= X- (INT (X/ 256)* 256) 40 DEF FN R(X)= INT (X/ 256) 50 DIM VC(6,3) 60 DATA "TUNE VALUE (0 TO 12 BITS WORTH)? ","SLIDE START VALUE (0 TO 255)? ","SLIDE STOP VALUE ?" 61 DATA "SLIDE INCREMENT? ","NOISE VALUE? (0 TO 31, 0= NONE)? ","VOLUME (TOTAL SHOULD BE < 16)? " 65 FOR X= 0TO 5:READ PR$(X):NEXT 100 PLOT 12 200 REM GET USER PARAMETERS 210 PRINT "WE NOW ASK FOR YOUR SOUND PARAMETER VALUES. IF YOU WANT A VALUE" 215 PRINT "TO BE UNCHANGED, PRESS THE TAB KEY FOLLOWED BY RETURN." 220 PRINT :PRINT 225 INPUT "WHICH VOICE (1,2, OR 3)? ";A 226 IF A< 1OR A> 3THEN 225 230 Y= INT (A):VC(0,Y)= 1 240 PRINT "VOICE"Y:PRINT 250 P= 1:GOSUB 600 260 PRINT "YOUR TONE CAN START AND STOP ANYWHERE OVER A 255 STEP INTERVAL" 262 P= 2:GOSUB 600 264 P= 3:GOSUB 600 270 INPUT "DO YOU WANT A SLIDING TONE? ";YN$ 280 IF YN$= "N"THEN VC(4,Y)= 0:GOTO 290 282 IF YN$< > "Y"THEN 270 284 P= 4:GOSUB 600 290 PRINT "YOU CAN HAVE ONE NOISE VALUE, TOO, ON ANY VOICE." 292 P= 5:GOSUB 600 300 P= 6:GOSUB 600 310 PRINT :INPUT "ANOTHER VOICE? ";YN$ 320 IF YN$= "Y"THEN GOTO 225 322 IF YN$< > "N"THEN 310 330 INPUT "TIME INTERVAL (0 TO 255)? ";TI 340 GOSUB 2000 400 M1= 12* 16* 256+ 36 410 M2= M1+ 13:M3= M2+ 13 420 FOR X= 1TO 3 422 IM= (X- 1)* 13 425 IF VC(0,X)< > 1THEN 525 435 POKE M1+ IM,FN L(VC(1,X)) 436 POKE M1+ 1+ IM,FN R(VC(1,X)) 440 POKE M1+ 2+ IM,VC(2,X) 445 POKE M1+ 3+ IM,VC(3,X) 450 POKE M1+ 4+ IM,FN L(VC(4,X)) 452 POKE M1+ 5+ IM,FN R(VC(4,X)) 455 POKE M1+ 9+ IM,VC(5,X) 460 POKE M1+ 10+ IM,VC(6,X) 470 MM= 255:TM= INT (2^ (X- 1)) 475 IF VC(5,X)< > 0THEN TM= TM+ TM* 8 480 POKE M1+ 12+ IM,TM 500 GOTO 550 525 REM NOT THIS TIME FOR THIS VOICE 526 POKE M1+ 12+ IM,0 527 POKE M1+ 10+ IM,0 550 NEXT 560 Z= CALL (TI* 256) 570 INPUT H 575 IF H= 0THEN 400 580 IF H= 999THEN 100 585 TI= H:GOTO 400 599 END 600 REM PRINT, SOLICIT VALUES 605 PRINT PR$(P- 1)" "; 610 PRINT "CURRENT VALUE ="VC(P,Y);" NEW "; 620 INPUT "";NV$:NV= VAL (NV$) 630 IF NV$= CHR$ (9)THEN RETURN 640 VC(P,Y)= NV:RETURN 1000 FOR X= 1TO 3 1010 PRINT M1+ 13* (X- 1), 1020 FOR Y= 0TO 12 1030 PRINT PEEK (M1+ 13* (X- 1)+ Y); 1040 NEXT :NEXT 1050 RETURN 2000 REM PRINT PARAMS 2010 PLOT 12 2015 PRINT "VOICE 1";TAB( 12)"VOICE 2";TAB( 24)"VOICE 3" 2017 FOR A= 0TO 6 2020 FOR B= 1TO 3 2022 PRINT A; 2025 FOR B= 1TO 3 2030 PRINT VC(A,B);TAB( B* 12); 2040 NEXT :PRINT 2050 NEXT :RETURN