Listing of file='FREQ3.BAS;01' on disk='vmedia/ay-3-8910_programs-sector.ccvf'
10 REM *** TRIPLE FREQUENCY GENERATOR *** 15 REM 20 REM THE CLOCK FREQUENCY FOR THE AY-3-8910 MUST BE 25 REM ENTERED. 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 55 REM 60 INPUT "CLOCK FREQUENCY FOR AY-3-8910 : ";FC 70 IF FC< = 0 THEN FC= DF 75 REM 80 OUT 48,7:OUT 49,56:REM CHANNELS 'A,B,C' ONLY 85 OUT 48,6:OUT 49,0:REM SET UP NOISE PERIOD 90 GOSUB 10000 100 INPUT "TONE FREQUENCIES : ";FQ(0),FQ(1),FQ(2) 105 IF FQ(0)= 0 OR FQ(1)= 0 OR FQ(2)= 0 THEN END 110 INPUT "NOISE ? ";N$ 115 IF N$< > "Y" GOTO 130 120 INPUT "NOISE PERIOD (0-31): ";NP 125 OUT 48,7:OUT 49,0:OUT 48,6:OUT 49,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 48,2* I:OUT 49,PL 155 OUT 48,2* I+ 1:OUT 49,PH 160 PRINT "TONE ";I+ 1,"HIGH BYTE = ";PH,"LOW BYTE = ";PL 165 NEXT I 170 INPUT "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 48,11:OUT 49,EL:OUT 48,12:OUT 49,EH 280 OUT 48,13:OUT 49,ES 290 GOSUB 10030 300 GOTO 850 800 GOSUB 10050 850 REM 870 INPUT "HIT <RETURN> TO STOP ";A$ 880 GOSUB 10000 890 OUT 48,7:OUT 49,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 48,8:OUT 49,V(1):OUT 48,9:OUT 49,V(2):OUT 48,10:OUT 49,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