Executive Telephone Dialer
by
Ira and Arnold Goldklang


Introduction

	During the past four years, while receiving 80-Micro there have been several articles on telephone dialers.
All have basically the same circuit, an external relay in parallel with the tape relay of the TRS-80 Model I/III.
This relay is usually powered by a nine volt battery.  All these devices have done is dial the telephone, plainly and
simply.

	The difference in our dialer is the software.  Our dialer program offers about 20 different functions, which
are useful to almost everybody. A brief summary of the features before we get down to explaining all of them is as
follows.  The dialer program has room in memory for 10 names and numbers to be stored, recalled, or edited, and one
memory for the current number.  There is also disk I/O with 5 possible files of 10 names and numbers.  On long
distance calls, the computer (after dialing the number) will display the time calling, current time, and the state to
which you are calling.  When you are finished with the phone call, you hit the <ENTER> key and the computer will
disconnect you, and re-display the 2 times, and then go back to main menu.

	Now down to the "nitty gritty", when the program is first run it will ask you what is the number you want
dialed.  If you just want to proceed to the menu hit the <ENTER> key, otherwise type in the number to be dialed.  The
computer will decode letters (provided they are on the phone) and turn them into numbers.

In the beginning....

	At the beginning of the program (after the credits) the computer will ask you 'Number to dial'.  You repond
with the number that you wish to dial immediately.  If you do not wish to dial a number immediately, and would rather
wait to access the disk files, hit the <ENTER> key and the program will proceed into the main menu.  Note:  If you
have left CL$ at its default value, CL$="Y", then if the number you type in is long distance (>=10 digits) the clock
will start when dialing is completed.

The main menu

The following is an explanation of each of the functions in the main menu:

         <H>ang-Up:	When you hit the 'H' key (upper or lower case) the computer will disconnect you and the party
			which you are talking to.  The only restriction is that in order for this function to work,
			you will have had to have made the call, if you did not you will have to use the 'C' function
			(described later).

          <R>edial:	This function will re-dial the number in current memory.

     <S>tart Again:	This will begin the program over again from the beginning.

            <B>oth:	This function will Hang-Up the phone and then redial the number in current memory.

   <T>otal Restart:	This will Hang-Up the phone and then re run the program

     <L>ist number:	This function will list the number in current memory for viewing.

        <O>perator:	This will dial the operator WITHOUT losing any information (including current memory). Note:
			When hanging up from this function it is recommended that you use the 'C' function because
			operators can be slow about disconnecting a phone call with them.

     <E>dit number:	This function will edit the number in current memory.  You will see the number, arrows, and
			digits (1-11) corresponding to the numbers in the phone number.  You may choose the digit
			(position) you wish to edit.  The computer will then display the number, and ask you for the
			new number.

            <Q>uit:	This will return you to basic READY

   <P>ut in memory:	This function will allow you to place 1-10 numbers and names in memory.  After you have told
			the computer how many phone numbers you want to store, you will then proceed to enter the
			phone numbers.  After all the numbers have been entered, you will then be asked for a SHORT
			description (IE: Name) for each number.

 <G>et from memory:	This will allow you to get the numbers that have been stored in the computers memory (either
			by the 'P' function, or by disk I/O).  All you have to do is choose what number you want
			dialed by the number next to the description (see 'P' for details).  Depending on whether
			Auto dial is enabled (see 'D' for details) the call will immediately be dialed. To abort this
			function enter 0 as the number of the person to dial.

     <M>emory list:	This function is similar to the 'L' function, except it lists all the number(s) in memory,
			not just the one in current memory.

         <C>ut off:	This will disconnect you and the other party no matter who called.  The reason for this
			function is that if the other person didn't hang up, the phone company needs about 1/2 a
			minute of the other party having hung up before disconnecting.  This function will wait the
			required amount of time.....Just be patient.

<#> Numbers in Mem:	This will display the amount of numbers in each slot of memory (current, 10 stored).  This is
			useful if you have any long distance calls or out of country calls that you would like to
			identify.

  <K>lock/No Klock:	This is a toggle which, when enabled, will display the time called, time now, and the state
			you are calling.  When disabled none of the above information will be displayed.  Note: This
			function will only show results when a long distance call is made (10 or more digits)

 <X>-Chain dialing:	This is an interesting function.  It will allow you to examine the disk files one-by-one, and
			choose the numbers that you want to dial.  It will then dial them in order, identifying the
			person who is being called at that moment.

			The computer will get the information from disk file number 1, and then display the names and
			all you have to do is type in the number you want to dial.  It will then redisplay the menu,
			and you can type in another number.  This will continue until one of two things happen.  1)
			You type a 0 which will cause the computer to look for the next file, or 2) You type a -1
			which will cause the computer to dial all the numbers (in order).  When you are done with one
			call, hit <ENTER> and the computer will hang up, and dial the next one, while displaying the
			persons name who is being called.  If the computer cannot find a file, it will offer you 3
			choices.  1)Hit <ENTER> to go back to the first file.  2)Hit <SPACE> to abort.  3)Hit <CLEAR>
			to proceed with the dialing.

    <D>ial/No Dial:	This is also a toggle function.  When enabled, if you get a number from memory, it will dial
			it immediately.  If it is disabled it will place the number in current memory, and you will
			be required to use the 'R'edial function to dial the chosen number.

      <F>ix memory:	This is an editing function for the 10 memories.  You may change 1) Name, 2) Number, or 3)
			Both, depending on what you want to change.

  <A>rea code comp:	This function will compute the state corresponding to the area code that you are prompted to
			input.  If there is no state for that area code then the computer will reply (None).

    <I>nput/Output:	This function asks you whether you want to input or output.  After you have decided whether
			you want to get information from the diskette, or place information on it you will be asked
			what file area.  It is recommended that you choose consecutive files because chain dialing
			will not work properly otherwise.

Line numbers

If you would like to understand what is actually making your computer do all of this, or you want to enhance this
program, a list of the routines and their line numbers is in Figure 1.


Main Variable Explanation

Figure 2 is an explanation of the most commonly used variables in this program.  This list will enable you to better
understand the workings of the program, and will make it easier on you to modify the program for your needs.

The Circuit

Figure 3 is the schematic of the dialer circuit.  It is a simple circuit and does not require the cutting of wires
nor does it put a heavy current on the contacts of the tape relay.  The diode across the coil is used to prevent any
arcing that might take place due to the collapsing magnetic field of the coil. The normally closed contacts of the
relay are used so that the phone can be used when the computer is off line.  The connection to the telephone line is
made simply by putting the contacts in series with the telephone line.  This can be done several   ways.  Some
suggestions: 1) Open the phone and disconnect one wire from the block inside the phone.  Connect one side of the
relay to that connection and the other side of the relay to the wire you just removed.  2)If you have a small
telephone box near your computer you might open that and follow the same procedure as described above.
CAUTION: DO NOT REMOVE THE SPADE LUG FROM THE TELEPHONE WIRE YOU TAKE OFF INSIDE THE PHONE.

It is made of special wire and will unravel and this will create problems when you remove the dialer.

The dialer can be tested without taking the phone off the hook and in this way you can see if you have any errors
in the typed in program.

Parts List:

Below is the list of parts suggested for this project:

   1) A 9 Volt battery for the power source

   2) A mini box and perforated board to mount the circuit.

   3) A low voltage relay either single throw single pole or a relay with multiple contacts can be used.

   4) A sub-miniature female jack to fit the remote plug of the tape cable.

   5) A diode to connect across the relay either a 1N914 or 1N4001 or something in that class.

      Good luck in building this project and have a good time using the dialer.
