--- title: "Phone Dialer" id: 76556 type: "computer_media" slug: "phone-dialer" url: "http://localhost/computer_media/phone-dialer/" markdown_url: "http://localhost/computer_media/phone-dialer.md" published_at: "2026-11-11T08:02:30+00:00" modified_at: "2026-11-11T08:02:30+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/11/phone-dialer-1.png" excerpt: "Turn a ZX80 into a programmable telephone dialer: pick a name from the menu or type a number, and the program pulses a relay on a home-built circuit." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "ZX80" slug: "zx80" taxonomy: "post_tag" url: "http://localhost/tag/zx80/" model: - name: "Sinclair ZX80" slug: "zx80" taxonomy: "model" url: "http://localhost/model/zx80/" genre: - name: "Interfacing" slug: "interfacing" taxonomy: "genre" url: "http://localhost/type/interfacing/" media_type: "Program" download_url: "https://archive.org/download/timex-sinclair-software-archive/Phone%20Dialer%20%281981%29%28-%29%28ZX80%29%28US%29%28Program%29.zip" mediadate: "1981" images: - url: "http://localhost/wp-content/uploads/2026/11/phone-dialer-1.png" article_media: - id: 19246 title: "Phone Dialer" type: "article" url: "http://localhost/article/phone-dialer/" related_content: - id: 19795 title: "Redesigned Telephone Dialer" type: "article" url: "http://localhost/article/redesigned-telephone-dialer/" media_type_tags: "Interfacing" license: false --- # Phone Dialer The program half of a hardware project. A small circuit (address decoder, a 7475 latch and a relay, shown in the article) responds to POKEs to address 12288, and the program uses it to pulse-dial a telephone the way a rotary dial does: POKE 12288,0 opens the line and POKE 12288,1 closes it, ten times for a 0. RUN shows a menu of up to ten names, each held in a subroutine from line 700 that sets D$ to the description and N$ to the number. Enter a letter to dial that entry, or type a whole number without punctuation. The loops in lines 540, 570 and 600 set the pulse timing and may need larger values for older exchanges. Without the circuit the program still runs, but nothing is dialed. Published in Syntax February 1981 ([Phone Dialer](https://timexsinclair.com/article/phone-dialer/)). ## Source Code ``` 50 POKE 12288,1 100 FOR G=1 TO 10 120 GO SUB 690+G*10 130 PRINT CHR$(G+37);" ";D$ 140 NEXT G 145 CLEAR 150 INPUT N$ 155 CLS 156 LET G=CODE(N$)-37 157 IF G<1 THEN GO TO 400 160 GO SUB 690+G*10 400 GO SUB 500 430 GO TO 100 500 LET N=CODE(N$)-28 505 LET N$=TL$(N$) 510 IF N=-27 THEN RETURN 515 IF N=0 THEN LET N=10 520 FOR P=1 TO N 530 POKE 12288,0 540 FOR S=1 TO 10 550 NEXT S 560 POKE 12288,1 570 FOR S=1 TO 10 580 NEXT S 590 NEXT P 600 FOR S=1 TO 100 610 NEXT S 620 GO TO 500 700 LET D$="UNCLE JIM" 702 LET N$="15553423" 704 RETURN 710 LET D$="DIR. ASSISTANCE" 712 LET N$="411" 714 RETURN 720 LET D$="EMERGENCY" 722 LET N$="911" 724 RETURN 900 LET D$="BLANK" 902 LET N$="" 904 RETURN ```