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).
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 RETURNNote: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
