--- title: "Tone Dialer" type: "article" slug: "tone-dialer-2" url: "http://localhost/article/tone-dialer-2/" markdown_url: "http://localhost/article/tone-dialer-2.md" published_at: "2022-10-07T12:28:11+00:00" modified_at: "2026-06-21T23:23:53+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "This program for the 2068 uses the SOUND command to dial touch tone numbers. It has a 20 number memory and redial. You must have the mic of the phone next to the 2068 speaker. 5 DIM a$(20,30): DIM b$(20,10) 10 REM TONE DIALER by James DuPuy 10/25/84 11 BORDER 6 12 CLS: PRINT \"…" category: - name: "The RAMTOP" slug: "the-ramtop" taxonomy: "category" url: "http://localhost/category/periodicals/the-ramtop/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Full Text" slug: "fulltext" taxonomy: "post_tag" url: "http://localhost/tag/fulltext/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "James DuPuy" slug: "james-dupuy" taxonomy: "indiv" url: "http://localhost/indiv/james-dupuy/" publication_r: id: 39272 title: "The RAMTOP" type: "periodical" url: "http://localhost/periodical/the-ramtop/" authors: "James DuPuy" issues_articles: - id: 39859 title: "The RAMTOP August 1985" type: "issue" url: "http://localhost/issue/the-ramtop-august-1985/" pages: "12" pubdate: "August 1985" download: "http://localhost/wp-content/uploads/2023/02/dialer.zip" archive_link: false --- This program for the 2068 uses the SOUND command to dial touch tone numbers. It has a 20 number memory and redial. You must have the mic of the phone next to the 2068 speaker. ``` 5 DIM a$(20,30): DIM b$(20,10) 10 REM TONE DIALER by James DuPuy 10/25/84 11 BORDER 6 12 CLS: PRINT " T O N E D I A L E R " 14 PRINT ''"0 - 9,#,* TO DIAL MANUALLY"'"R --- TO REDIAL LAST NUMBER"'"S --- TO STORE A NUMBER"'"M --- TO DIAL FROM MEMORY"'"C --- TO CLEAR REDIAL"'"S AND CAP SHIFT TO SAVE TO TAPE"'" WITH THE NUMBERS IN THE MEMORY"''' 15 LET r$="" 16 POKE 23609,10 20 LET n$=INKEY$: IF n$="" THEN GO TO 20 22 IF n$="m" THEN GO TO 2000 24 IF n$="s" THEN GO TO 3000 26 IF n$="r" THEN GO TO 4000 27 IF n$="c" THEN GO TO 12 28 IF n$="S" THEN GO TO 5000 29 IF n$="*" OR n$="#" THEN GO TO 32 30 IF n$>"9" or n$<"0" THEN GO TO 20 32 PRINT n$;"-"; 35 LET r$=r$+n$ 36 IF n$="#" THEN GO TO 1010 37 IF n$="*" THEN GO TO 1011 38 IF n$="p" THEN PAUSE 0 40 GO TO VAL n$ + 1000 100 SOUND 0,l;1,0;2,h;3,0;7,60;8,15;9,15 105 IF n$="r" or n$="m" THEN PRINT r$(i);"-"; 110 IF INKEY$<>"" THEN GO TO 110 120 PAUSE 5 130 SOUND 8,0;9,0;7,63 134 IF n$="r" or n$="m" THEN RETURN 140 GO TO 20 1000 LET l=127: LET h=82: GO TO 100 1001 LET l=158: LET h=91: GO TO 100 1002 LET l=158: LET h=82: GO TO 100 1003 LET l=158: LET h=75: GO TO 100 1004 LET l=143: LET h=91: GO TO 100 1005 LET l=143: LET h=82: GO TO 100 1006 LET l=143: LET h=75: GO TO 100 1007 LET l=129: LET h=91: GO TO 100 1008 LET l=129: LET h=82: GO TO 100 1009 LET l=129: LET h=75: GO TO 100 1010 LET l=117: LET h=75: GO TO 100 1011 LET l=117: LET h=91: GO TO 100 2000 REM MEMORY DIAL 2005 GO SUB 2010: GO TO 2100 2010 CLS: PRINT "Memory List" 2015 LET v=0 2020 FOR j=1 to 20 2030 PRINT AT j,0;j;"- ";b$(j);" - ";a$(j) 2035 IF a$(j)-" " THEN LET v=v+1 2040 NEXT j 2050 RETURN 2100 IF v=20 then PRINT "No numbers stored yet.": PAUSE 120: GO TO 12 2110 INPUT "Which # to dial? ";Q: IF Q>20 or Q<1 THEN GO TO 2110 2120 IF A$(q)=" " THEN PRINT "No # at ";q: PAUSE 100: GO TO 12 2130 PRINT B$(q);" - "; 2140 LET 4$=A$(q) 2150 GO TO 4005 3000 REM Memory # store 3010 GO SUB 2010 3020 INPUT "Which # to store? ";q: IF q>20 OR q<1 THEN GO TO 3020 3030 PRINT q; 3040 INPUT "Name? "; LINE B$(q): IF b$(q)=" " THEN GO TO 3040 3045 PRINT " - ";b$(q);" - "; 3050 INPUT "Phone #? "; LINE z$: IF LEN z$>30 OR LEN z$<1 THEN GO TO 3050 3055 LET a$(q)=z$ 3060 PRINT a$(q) 3070 INPUT "C-CORRECT, ENT-CONT.";X$: IF X$="c" THEN GO TO 3030 3075 GO SUB 2010: INPUT "ENT-MENU, S- To store a # ";x$: IF x$="s" THEN GO TO 3020 3080 GO TO 12 4000 REM Redial 4002 IF INKEY$<>"" THEN GO TO 4002 4003 PRINT "REDIAL "; 4005 FOR i=1 to LEN r$ 4008 IF r$(i)=" " THEN GO TO 4020 4010 IF r$(i)="#" THEN GO SUB 1010: GO TO 4020 4012 IF r$(i)="*" THEN GO SUB 1011: GO TO 4020 4013 IF r$(i)="p" THEN PAUSE 0: GO TO 4020 4015 GO SUB 1000 + VAL r$(i) 4020 NEXT i 4025 PRINT 4030 GO TO 20 5000 REM Save to tape 5005 CLS: PRINT FLASH 1;"Enter program name. You can only enter up to 10 characters." 5010 INPUT x$; IF LEN x$>10 OR LEN x$<1 THEN GO TO 5010 5015 CLS: PRINT AT 10,12; FLASH 1;"Saving" 5020 SAVE x$ LINE 12 5030 GO TO 12 ```