Listing of file='FREQ3.BAS;01' on disk='vmedia/multi_peripheral_interface_demo-sector.ccvf'
10 REM *** TRIPLE FREQUENCY GENERATOR *** 15 PLOT 6,6,14,12:PRINT "TRIPLE FREQUENCY GENERATOR":PLOT 6,2,15 20 REM THE CLOCK FREQUENCY FOR THE AY-3-8910 MUST BE 25 REM CORRECT. USUALLY 2.000 MHZ OR 1.78977 MHZ. 30 REM 40 DIM FQ(3),V(3) 45 REM DEFAULT CLOCK FREQUENCY 50 DF= 1.7897725E06:FC= DF 55 REM FOR TESTING ONLY. 60 REM INPUT "CLOCK FREQUENCY FOR AY-3-8910 : ";FC 70 REM IF FC<=0 THEN FC=DF 75 REM SET UP THE I/O PORT ADDRESSES 80 SA= 176:SC= 177:REM INTECOLOR 3650 (USE 48,49 FOR CCII) 82 REM #### NOTE #### DO NOT USE 48 AND 49 ON A 3650 ! 85 OUT SA,7:OUT SC,56:REM CHANNELS 'A,B,C' ONLY 90 OUT SA,6:OUT SC,0:REM SET UP NOISE PERIOD 95 GOSUB 10000 100 PRINT :INPUT "TONE FREQUENCIES (3 OF THEM) : ";FQ(0),FQ(1),FQ(2) 105 IF FQ(0)< = 0OR FQ(1)< = 0OR FQ(2)< = 0THEN END 110 INPUT "SUPERIMPOSE WHITE NOISE ON THE TONES (Y/N) ? ";N$ 115 IF N$< > "Y" GOTO 130 120 INPUT "NOISE PERIOD (0-31): ";NP 125 OUT SA,7:OUT SC,0:OUT SA,6:OUT SC,NP 130 FOR I= 0 TO 2 135 TP = INT (FC/ (16* FQ(I))+ 0.5) 140 PH = INT (TP/ 256) 145 PL = TP- 256* PH 150 OUT SA,2* I:OUT SC,PL 155 OUT SA,2* I+ 1:OUT SC,PH 160 PRINT "TONE ";I+ 1,"HIGH BYTE = ";PH,"LOW BYTE = ";PL 165 NEXT I 170 INPUT "USE ENVELOPE CONTROL (Y/N) ? ";EC$ 180 IF EC$< > "Y" GOTO 800 190 INPUT "ENVELOPE FREQUENCY : ";EF 200 INPUT "ENVELOPE SHAPE/CYCLE CODE (0-15): ";ES 210 INPUT "NUMBER OF CHANNELS FOR CONTROL: ";NC 220 EP = INT (FC/ (256* EF)+ 0.5) 230 EH = INT (EP/ 256) 240 EL = EP- 256* EH 250 V(1) = 15:V(2) = 15:V(3) = 15 260 FOR I= 1 TO NC:V(I) = 16:NEXT I 270 OUT SA,11:OUT SC,EL:OUT SA,12:OUT SC,EH 280 OUT SA,13:OUT SC,ES 290 GOSUB 10030 300 GOTO 850 800 GOSUB 10050 850 REM 870 INPUT "HIT <RETURN> TO STOP ";A$ 880 GOSUB 10000 890 OUT SA,7:OUT SC,56 900 GOTO 100 10000 REM *** STOP SOUND ON ALL CHANNELS *** 10010 REM 10020 V(1) = 0:V(2) = 0:V(3) = 0 10030 OUT SA,8:OUT SC,V(1):OUT SA,9:OUT SC,V(2):OUT SA,10:OUT SC,V(3) 10040 RETURN 10050 REM *** START SOUND ON ALL CHANNELS *** 10060 REM 10070 V(1) = 15:V(2) = 15:V(3) = 15:GOTO 10030