Compucolor.org – Virtual Media

Listing of file='TTONE.BAS;0E' on disk='vmedia/ay-3-8910_programs-sector.ccvf'

100 GOSUB  10000
200 PRINT
210 INPUT  "NUMBER: ";N$
220 GOSUB  11000
230 GOTO  200
10000 REM  *** DEFINE TOUCH-TONE FREQUENCIES ***
10010 REM
10020 DIM  HI(11),LO(11),C(3),R(4)
10030 FC =  2000000.0:REM  CLOCK FREQUENCY FOR AY-3-8910
10040 RESTORE  10000
10050 REM  TOUCH-TONE FREQUENCIES
10060 DATA  697,770,852,941,1209,1336,1477
10070 FOR  I= 1 TO  4:READ  R(I):R(I)= INT (FC/ (16* R(I))+ 0.5):NEXT  I
10080 FOR  I= 1 TO  3:READ  C(I):C(I)= INT (FC/ (16* C(I))+ 0.5):NEXT  I
10090 FOR  I= 0 TO  2
10100    FOR  J= 1 TO  3
10110       HI(I* 3+ J) =  C(J):LO(I* 3+ J) =  R(I+ 1)
10120    NEXT  J
10130 NEXT  I
10140 HI(0)  =  C(2):LO(0)  =  R(4)
10150 HI(10) =  C(1):LO(10) =  R(4)
10160 HI(11) =  C(3):LO(11) =  R(4)
10170 RETURN
11000 REM  *** OUTPUT A NUMBER IN A STRING ***
11010 REM
11020 L =  LEN (N$)
11030 IF  L= 0 THEN  RETURN
11040 FOR  K= 1 TO  L
11050 D$ =  MID$ (N$,K,1)
11055 PRINT  D$;
11060 KY =  ASC (D$)- 48
11070 IF  D$= "*" THEN  KY= 10
11080 IF  D$= "#" THEN  KY= 11
11090 IF  KY< 0 OR  KY> 11 GOTO  11150
11100 GOSUB  15000
11150 NEXT  K
11200 RETURN
15000 REM  *** GENERATE THE TONES ***
15010 REM
15020 OUT  48,7:OUT  49,63
15030 OUT  48,9:OUT  49,0
15040 OUT  48,10:OUT  49,0
15050 OUT  48,3:OUT  49,0
15060 OUT  48,5:OUT  49,0
15070 OUT  48,2:OUT  49,LO(KY)
15080 OUT  48,4:OUT  49,HI(KY)
15085 OUT  48,7:OUT  49,57
15090 OUT 48,9:OUT 49,5
15100 OUT 48,10:OUT 49,3
15110 REM  DEBUGGING ONLY - INPUT"";A$
15120 FOR  I= 1 TO  50:NEXT  I
15130 OUT 48,9:OUT 49,0
15140 OUT 48,10:OUT 49,0
15150 FOR I= 1TO 100:NEXT I
15200 RETURN