                                    DIALM
                         A TELEPHONE DIALING PROGRAM
                                Revision 7.5

                                 Written by
                                Robert Wilcox
                             920 N. Washington St
                             Owosso, MI     48867

   DIALM is a telephone dialing program which was originally written as an
   exercise in programming for the Microsoft or compatible mouse.  (Hence
   the "M" in the name).  It has been extensively rewritten over the years
   and this revision was written using Visual Basic for DOS.
   
   With DIALM you can dial the phone, automatically re-dial busy numbers,
   and keep a log of calls made.  You can also print out the entire phone
   phonebook or an individual phonebook entry.  You can even address an
   envelope!  The log file can also be viewed, edited and printed.
   
   DIALM runs on an IBM PC, XT or AT or compatible computer with at least
   450 Kbytes of free memory.  A mouse is useful but not required.  It
   requires a HAYES or HAYES compatible modem on either port COM1 or
   COM2.  DIALM will run without a modem, but of course dialing will not
   be possible.  This documentation assumes that a phone line is connected
   to your modem's LINE jack and that a telephone instrument is connected
   to the modem's PHONE jack.

                            ================
                            PROGRAM FEATURES
                            ================
   
   DIALING DIRECTORIES
   -------------------
   DIALM uses a disk-based telephone number phonebook file which is
   created and updated from within the program.  The number of entries a
   phonebook can have is limited only be the amount of memory available
   (usually 200 to 300 entries).  Each entry contains a name, the number
   and a 3 line address and a 1 line note or other descriptive string.
   The registered version of DIALM will use as many phonebook files as you
   have room for on your disk and you can easily select the one to be used
   either from the command line when starting the program or from within
   the program.

   Phonebook files can be on any drive or sub-directory.  The program will
   look for phonebook files on the default drive and sub-directory unless 
   otherwise specified (see below).  Other drives and sub-directories can
   be easily selected.
   
   DIALING
   -------
   Numbers to be dialed can be selected from the dialing directory window.
   A number can also be entered from the keyboard.  See SELECTING AND
   DIALING NUMBERS for further instructions.

   FAST TONE DIALING
   -----------------
   For phone lines and modems that support it, a fast mode of tone dialing
   can be selected.

   PREFIXES
   --------
   Ten dialing prefixes (A through J) are stored by the program and are
   created by the user.  For instance, prefix A might be "1-800". The
   number A-555-1212 would then be dialed as 1-800-555-1212.  Prefixes
   allow you to dial numbers longer than will fit in the space provided
   in the dialing directory and make it easier to enter often used area
   codes, etc.

   LOGGING
   -------
   Each call can be logged to a file containing the date, time and length
   of the call and a note which can be entered while the call is in
   progress.  The log file can be viewed, edited or printed from within
   DIALM.  Registered versions of the program will have automatic starting
   of call timing enabled.

   ATTACK (DEMON) DIALING
   ----------------------
   When the number dialed is busy the program will attempt to re-dial it
   after a short pause, up to 20 times.  The pause is adjustable, or
   attack dialing can be disabled (see PROGRAM SETUP).
   
   SPEAKER PHONE MODE
   ------------------
   Placing a semi-colon (;) at the end of a phone number in the phonebook 
   entry will allow the speaker in your modem to remain on after dialing
   is completed.  This feature can be useful for listening to weather
   services, etc.  If the semi-colon is used, busy signals will not be
   detected by the modem and attack dialing will be disabled.  Also you
   must use the HANGUP command to hangup the modem.

                     
                     ==========================
                     PROGRAM FEATURES CONTINUED
                     ==========================

   CALENDAR
   --------
   A calendar of the present month can be selected from the main menu or
   from the logging screen.  The month and year can be advanced or backed
   up by using the correct keys.

   ALARM
   -----
   An alarm can be set up to display a message at a selected time.
   Several alarm sounds are available.

   DATED EVENT
   -----------
   Like an alarm, but can be set for a particular date.

   You can have 1 alarm and 1 event set at the same time.

   If an alarm or event is set when the program ends, the alarm time and
   message is saved and re-loaded when the program is started again.

   RINGING LOG
   -----------
   The program logs each ringing of the telephone.  The log consists of
   the date and time the phone rang and can be viewed in a pop-up window
   and saved to a disk file.

   SCREEN SAVER
   ------------
   The program can blank the screen when there is no mouse or keyboard
   activity for a time you specify in SETUP.  To restore a blanked screen,
   press any keyboard key.

   You can also blank the screen by double-clicking on the "DIALM SPEED
   DIALER" box.

   DAY OF THE YEAR
   ---------------
   Press and hold the mouse button on the date display to see the day of
   the year.

                           =============
                           PROGRAM SETUP
                           =============

   Many of the program's features mentioned above and others can be
   modified by selecting the "SETUP, PROGRAM OPTIONS" menu command
   (ALT+S,P).

   DIALING OPTIONS - TONE or PULSE dialing.
                   FAST dialing (for TONE dialing only).
                   BUSY number redialing.
                   AUTOMATIC Call Timing Start (Registered Version)

   If busy number redial is selected, the maximum number of redials and
   the delay between redials can be set.

   MODEM INIT - a modem initialization string can be specified.  A 
   re-initialization string can be sent upon exiting the program.

   RE-DIAL DELAY - The length of the delay before re-dialing a busy number
   ("attack-dialing") can be selected.

   SCREEN OPTIONS 
     Show Seconds: If checked, the clock display will include seconds.
     (You can also toggle the display of seconds by clicking on the clock 
     display on the main screen).

     View Entry at Start: If checked, the view entry window will be
     visible by default.

     Clear Scrn on Exit: When you check this option, the screen will be
     cleared when you exit the program.  Otherwise the background that is 
     selected under Setup | Control Panel will remain on the screen.

   SCREEN SAVER - If activated, the screen saver delay can be set from 1
   to 30 minutes.

   ALARM OPTION - The alarm can be automatically cleared when it is
   answered.

   ALARM TYPE - One of several alarm sounds can be selected.

   RETURN ADDRESS -  An address stored here is used as the return address
   when addressing envelopes.

   
                        ==================
                        PRINTING UTILITIES
                        ==================

   The phonebook can be printed on a printer connected to LPT1.  You can
   select either a short form (names and numbers only) or a long form
   (names, numbers, addresses and notes) or an address label format
   (names and addresses).

   If a number has been selected, you can print it in either an address
   label format or an envelope addressing format.

   You can view the log file on the screen or print it on the printer.   



                     =======================
                     DIALM MENUS AND SCREENS
                     =======================


   DIALM's main screen contains a menu containing File, Hangup, Setup, and
   Help commands, a list containing the phone book entries, and several
   command buttons.

   Other windows appear at various times.  For instance a dialing window
   pops up when you dial a number.



                         ======================
                         USING DIALM'S COMMANDS
                         ======================

   You can execute commands in DIALM by pressing a button, accessing a
   menu command or double-clicking on a list item.  In some cases you can
   activate a command in more than one way.  For instance, to edit the
   current phonebook entry, you can use the "Edit" command button or the
   "Edit Current Entry" Update menu command.
   
   1 - Command buttons
   -------------------
   A button can be "pressed" by moving the mouse cursor over the button
   and clicking the left mouse button.  Each button has a caption which
   indicates the purpose of the button.  In most cases one of the
   characters in the caption will be highlighted.  The button can be
   accessed by holding down the ALT key while pressing the highlighted
   letter.  For instance, to dial a number you can press ALT+D.  You can
   also use the TAB key to move the focus to the desired button and then
   press ENTER.  In most cases one button on any screen will be the
   "default" button.  It will be automatically selected when the ENTER
   key is pressed unless the focus has been changed with the TAB key.
   Also one button will usually be the "cancel" button and it will be
   executed by pressing the ESC key.

   2 - Menu commands
   -----------------
   These commands appear at the top of a screen.  For instance, on the
   main DIALM screen the menu commands are:

   ┌───────────────────────────────────┐
   │ File  Hangup  Setup  Update  Help │
   └───────────────────────────────────┘
  
   Menu selections can be made with the mouse or keyboard.  To use the
   mouse, place the cursor on the desired menu command and click the left
   button.  To use the keyboard, press the ALT key and access letters for
   each command will be highlighted.  You can press the access letter to
   execute the command or you can use the cursor control (arrow) keys to
   select a command and then press ENTER to execute it.

   Some menu commands have drop-down menus.  For example, choosing the
   Update command will drop down the following sub-menu:

   ┌───────────────────────────────────┐
   │ File  Hangup  Setup  Update  Help │
   └────────────────────┌────────────────────────────────┐
                        │ Edit Current Entry      Ctrl+E │
                        │ Add New Entry           Ctrl+A │
                        │ Copy Current Entry      Ctrl+C │
                        │ Delete Current Entry    Ctrl+D │
                        │ Restore Deleted Entry   Ctrl+R │
                        └────────────────────────────────┘

   You can select from the sub-menu in the same manner described for the
   main menu.  Some commands will have shortcut keys listed to the right
   of the menu item.  You can use the shortcut key instead of opening the
   menu and choosing the command.

   3 - Double-click commands
   -------------------------
   Double-click means to click the mouse button twice in rapid succession.
   Double-clicking has several functions in DIALM.  For instance, double-
   clicking on an entry in the phone list window will dial that number,
   and double-clicking within the view-entry window will select editing 
   of the displayed entry.

   4 - Check boxes
   ---------------
   Check boxes are used to select certain options.  When an option has
   been selected, an "X" will appear in the box:
           
           [X] Fast dialing

   To select or de-select an option, click on the box with the mouse, or
   move to the box with the TAB key and press the spacebar.

   5 - Scroll buttons
   ------------------
   These are used to select a value by clicking and holding the mouse 
   button down on one of the arrows.  When a scroll button has the focus, 
   you can use the cursor control keys to select a value.

   6 - Option buttons
   ------------------
   Option buttons are sometimes called "Radio Buttons" since only one
   option in a group can be selected.  
   
           ( ) Option 1
           (o) Option 2

   To select an option, click on the option with the mouse, or move to
   the option with the TAB key and use an arrow key until the desired
   option is selected.

   7 - Drive select
   ----------------
   To select a drive for reading or saving a phonebook, move to the drive-
   select box and press an arrow key to select the next drive in a
   sequence, or press ALT+down-arrow to open a list of drives.

   8 - Phonebook select
   --------------------
   A phonebook can be selected by moving to the directory box and using
   an arrow key to move to the selected phonebook and pressing ENTER.

   9 - "Hidden" commands
   ---------------------
   Click and hold a mouse button on the date display to get
   "day-of-the-year".
   Click the "DIALM SPEED DIALER" box for a message.
   Double-click the "DIALM SPEED DIALER" box to blank the screen.
   Click the time display to toggle the display of seconds.


                       ===========================
                       MESSAGES ON THE BOTTOM LINE
                       ===========================

   When you move around the screen with the TAB key, a message at the
   bottom of the screen will explain the function of the button that 
   currently has the focus.  Certain errors that occur will also be
   explained on this line.

                            ================
                            INSTALLING DIALM
                            ================

    See the file "INSTALL.DOC".

                            ============== 
                            STARTING DIALM
                            ==============

   If your modem is on COMM port 2, first enter the following SET command:

              SET COMPORT=2[CR]

   (Read the section ENVIRONMENT COMMANDS for more information on
   this.)

   To start DIALM first change to the DIALM subdirectory:

             CD \DIALM[CR]

   Then type:

       DIALM [CR] 
  
   A phonebook file path and name can be entered on the command line.
   If one is entered the program will attempt to use that file as the
   current phonebook.

       DIALM C:\DAT\PHONES [CR]

   This will load in the phonebook file named PHONES.DIR located in the
   "DAT" sub-directory on drive C.

   The size of the phonebook file can be specified on the command line:

       DIALM /SIZE:100

   This would limit the file to 100 entries.  This might be useful when
   using DIALM on computers with limited memory or disk space.

   If you do not use the SIZE parameter, the default is 200 entries.  You
   can experiment with larger sizes if you have plenty of free memory.

   CAUTION:  If you set the file size with this parameter and then access
   a larger file, only part of the file will be read in.  If you should
   then update a phonebook entry, the part of the file not read in will be 
   lost!!!  For safety you should regularly back up your phonebook files.
   
   Be sure to leave a space before each parameter on the command line.


                 =========================================
                 CREATING AND UPDATING DIALING DIRECTORIES
                 =========================================
                            
   Unregistered users of DIALM are limited to using a single phonebook .
   After the program is registered, you can use an unlimited number of
   directories.  To create a new phonebook select "Create New Phonebook"
   from the File menu, or press CTRL-N.  Enter up to 8 characters for the
   name you wish to use for the phonebook.  You do not have to enter the
   file type unless the name you want to use is the same as an existing
   sub-directory, in which case you must add ".DIR" to the filename.  If
   the file doesn't already exist it will be created on the disk and you
   will automatically be put into the ADD ENTRY window.  You will not be
   allowed to save a "blank" entry.  That is, the name field must start
   with a printable (non-blank) character.

   Select "Accept" to add each entry to the phonebook.  When you are done
   adding entries, select "Done" or press ESC to go back to the main menu.
   
   A directory entry can be edited by first selecting it and then
   selecting "Edit current entry" from the update menu or the Edit button
   from the main screen.
   
   In order to delete a directory entry, first select it, then select
   "Delete Current Entry" from the update menu.
   
   A deleted entry can be restored by selecting "Restore Deleted Entry"
   from the directory update menu.  Any of the 10 most recently deleted
   entries can be restored.  An entry can be restored numerous times which
   might be useful for entering several similar directory entries. A
   deleted entry can be restored to a different phonebook from which it
   was deleted.  Just access a new directory with the "Get New Phonebook"
   command, and then restore the entry.

   Entries can be copied to the clipboard by using the "Copy Current
   Entry" update option.  Entries thus saved are available to the
   "Restore Deleted Entry" command just as if they had been deleted.


                     =============================
                     SELECTING AND DIALING NUMBERS
                     =============================

   After numbers have been entered into a phonebook, the entries
   will appear in the phone list window with the first entry highlighted.
   (See "MAIN MENU").  A number can be selected by using the arrow keys to
   move the highlight to the desired entry.  To rapidly move through a
   long list the HOME, END, PAGE UP and PAGE DOWN keys can also be used.
   Pressing a letter key will move to the first entry that begins with
   that letter.  Subsequent pressings of the same letter will advance to
   the next entry beginning with that letter.  Mouse users can place the
   mouse cursor over the desired entry and click the left button.  To dial
   the selected number simply press the ENTER button.

   There are several alternative ways to cause dialing to begin and you
   can use whichever you desire:

       - Double-click the mouse button with the cursor on the desired
         entry
       - Move the mouse cursor to the DIAL button and click the left
         button
       - Press ALT+D (Hold down the ALT key while pressing the D key.

   You can search the phonebook to find a number to dial.  Press the
   "Find" button and you will be asked to type text to search for.  All
   fields of each entry are searched for a match.  If a match is found,
   the entry with the match will be selected (highlighted).  Pressing the
   "Find Next" button or the F3 key will repeat the search.

   Registered users who have more than one phonebook can search all of
   their phonebooks by selecting the "Search all phonebooks" option in
   the FIND dialog box.

   A number to be dialed can also be entered from the keyboard by using
   the "Kybd Dial" button. 

   When dialing begins, the dialing screen will appear. (See DIALM MENUS
   AND SCREENS).  You can cancel dialing at any time by selecting the 
   "Cancel" button or by pressing the ESC key or by clicking the right
   mouse button (while the mouse cursor is on a blank area of the window).
   You should hear the dialtone and the dialing sounds in the modem's
   speaker.  When you hear the ringing sound, pick up your telephone and
   press the "Ringing" button (or press ENTER).  Two new buttons will
   appear labeled "Time Call" and "Note".
   
   If you want to time the call select the "Time Call" button (or press 
   ENTER) when the phone is answered.  Pressing the same button again will
   stop timing the call and a new button labeled "Log" will appear.  You
   can press "Note" to edit a note to be saved in the log.  If you select
   "Log", the call information will be saved to a log file.  If you press
   "Cancel" the call information (but not the note) will be lost.

   If the number is busy and "Busy Number Redial" has been selected, a 
   redialing window will appear showing the time remaining until the
   redial will occur.  From this window you can select immediate redial,
   cancel redial or you can extend the number of redials.

   Redialing the last dialed number can be easily done by using the
   "QDial" button.  If the cursor has been moved off of the previously
   dialed number, the cursor is returned to it and the number is dialed
   again.


                            ================
                            LOGGING FEATURES
                            ================
   
   Information about each outgoing call can be logged to a file.  The 
   information will be the date, time and length of the call plus an
   optional note about the call.  (See "Selecting and Dialing Numbers").
   The file can be edited and printed from within DIALM.  To view the
   log, press the "Call Log" button (ALT+L).  
   
   The date and time of each incoming call will be automatically saved to
   a log file.  To view this log or to add information about a call,
   press the "Ring Log" button (ALT+G).


                           ====================
                           ENVIRONMENT COMMANDS
                           ====================

   Four program parameters can be set up at the DOS level and if set
   DIALM will use these parameters automatically each time the program is
   run.  The SET commands can be placed in your AUTOEXEC.BAT file so they
   will be entered automatically each time the system is booted up.

      1) Modem (COMM) port.
        DIALM will find the modem on either COM1 or COM2 (usually).  If
        your modem is on COM2 you can speed things up by putting the port
        number in the environment.  At the DOS prompt type:

              SET COMPORT=2

      2) Modem baud
        The program communicates with the modem at 1200 baud because that
        seemed to work better for my particular modem.  If your modem
        doesn't work at 1200 baud you can specify another baud (such as
        300 baud) by the following command:

              SET COMPORT=:300

        If you want to specify both the port and the baud, combine the
        commands:

              SET COMPORT=2:300
   
        This program supports only COM1 and COM2 modem ports.

      3)  Directory file
         You can specify a phonebook file to be used by DIALM.  This file
         will be used unless overridden by a command line parameter
         described above.

              SET DIAL=C:\PHONE.DIR

        You should use the correct path and file name to describe your
        file after the '='.  This command will allow you to execute DIALM
        from any location (without first changing to the DIALM directory).

      4)  Subdirectory for configuration and log files
         You can specify where the configuration and log files will be
         kept.

              SET DIALMCFG=C:\LOG\


         If DIALMCFG is not set with this command, the files will be kept
         in the default subdirectory (the subdirectory logged on to when
         DIALM is executed).  You should use this command as well as the
         SET DIAL= command when you want to execute DIALM without first
         changing to the DIALM directory.  When using this command, move
         the DIALM.HLP file to the directory specified by that command.

   If you get the error message OUT OF ENVIRONMENT SPACE, and you are
   using DOS 3.2 or later, put the following line in your CONFIG.SYS
   FILE:

   SHELL=d:\COMMAND.COM /P /E:256

   Where d:\ is the drive and directory where your COMMAND.COM is located.
   (This will probably be C:\ if you have a hard disk or A:\ if you boot
   from a floppy disk.)  The environment space where the SET variables
   are stored will be increased from the default 160 bytes to 256 bytes.

   If you are using DOS 3.1, use /E:16 instead of /E:256.
   
   If you are using DOS earlier than 3.1 the environment space can only be
   increased by patching COMMAND.COM.


                              ======
                              MODEMS
                              ======

   The modem should use the "HAYES AT" commands.  An initialization string
   can be stored in the configuration file and sent to the modem each time
   the program runs.  Here are some common initialization commands:

      AT   Attention - must start the command string.
      E1   Echo all commands.
      Q0   Result codes ON.
      V1   Result codes are verbal rather than numeric.
      X4   Wait for dialtone.  "NO DIALTONE" and "BUSY" results enabled.
      M1   Turn on the modem's speaker.
      L1   Adjust modem's speaker volume.

   These commands will not be exactly the same for all modems.  Please
   consult your modem manual to verify these initialization codes.  If
   your modem issues "NO DIALTONE", "BUSY" and "RINGING" result codes
   they should be enabled so that DIALM can recognize them.
      
   Use of an initialization string will override any switch settings on
   the modem.

   Some switchless modems default to a mode that prevents DIALM from
   recognizing the modem.  The command AT&S0 sent to the modem will
   probably correct this.  This must be done before DIALM is executed.
   The example batch file DIAL.BAT will initialize the modem and then 
   execute DIALM.

   If your modem has non-volatile memory you will probably have to execute
   this only one time.  If it doesn't have non-volatile memory you will
   have to execute it every time you run DIALM.

   Edit the "ECHO AT&S0&C1&D2&W>COM2:" command to match what your modem
   requires.  Consult your modem manual.

   Put the initialization code to the left of the greater-than symbol (>);
   Put COM1: or COM2: after the greater-than symbol depending on which
   port you are using.

       REM  DIAL.BAT
       ECHO OFF
       ECHO AT&S0&C1&D2&W>COM2:
       DIALM %1 %2 %3 %4 %5

                         ==============
                         ERROR MESSAGES
                         ==============

   File not found
   Can't show Help     

      This means DIALM couldn't find the file DIALM.HLP.  If it is in the
      same directory as DIALM.EXE, you must change to that directory
      before running DIALM.  If you use the SET DIALMCFG= command,
      move DIALM.HLP to the directory specified by that command.  Then you
      can run DIALM from any directory.

                              =======
                              SUPPORT
                              =======

   DIALM is distributed as user-supported software.  Registration of the
   program will eliminate the opening screen delay and will add the
   ability to use multiple phonebooks and to automatically start timing
   calls.

   To register DIALM send $24.95.  If you have already registered an
   earlier version at $10.00, send only the upgrade fee of $14.95. Please
   include in your note your name, mailing address, and current version
   number.  A registration form in the file REGISTER.DOC can be used.

   If you would like a copy mailed to you, please add an additional $5,
   and I will send you the most recent version available.  I will send
   your registration key, which you can then use with the File Register 
   command to unlock the program.


   I would be interested in hearing of any problems with the program and
   will attempt to fix them in a later release.

   Address correspondence to:

       Robert Wilcox
       920 N. Washington St
       Owosso, MI   48867-1774

       Tel: 517.725.8531
       Internet: bwilcox@execpc.com
       WWW: http://www.execpc.com/~bwilcox
          (the latest version is available here)
       EXEC-PC bulletin board: (414) 789-4210, Address messages to:
          BOB WILCOX.

                            ======
                            THANKS
                            ======

   Thanks to all who helped in testing DIALM and to those who gave helpful
   suggestions.

                         ==========================
                         WARRANTIES AND LIMITATIONS
                         ==========================

   You are granted permission to freely distribute DIALM in its
   original form, without alteration, so long as this documentation is
   distributed along with it and no fee is charged except for a reasonable
   fee for media and shipping costs.   Please distribute the original
   ZIPped file.

   The runtime module VBDRT10.EXE supplied with this program is copyright
   Microsoft Corp. and is supplied according to provisions of the
   Microsoft License Agreement. 

   I DO NOT WARRANT THAT DIALM IS FIT FOR ANY PARTICULAR USE OR IS
   MERCHANTABLE.  THIS PROGRAM IS NOT WARRANTED TO BE FREE OF BUGS, NOR
   IS IT PROVIDED WITH ANY WARRANTY OF ANY KIND, EITHER EXPRESSED OR
   IMPLIED.  IT IS YOUR RESPONSIBILITY TO DETERMINE WHETHER DIALM
   IS SUITABLE FOR YOU.

   IN NO EVENT SHALL I BE HELD RESPONSIBLE FOR INCIDENTAL, SPECIAL OR
   CONSEQUENTIAL DAMAGES, OR LOST DATA OR PROFITS TO ANY PERSON OR ENTITY
   THAT CAN ARISE OUT OF THE USE OF THIS PROGRAM.
