               __________________________________________________
                                     T H E 
                                   M O D E M
                                  D O C T O R
                               Version 4.0S / 4.0R
                         Hank Volpe copyr. 1989,1990,1991
                                 P.O. Box 43214
                               Baltimore MD 21236      
               __________________________________________________

         Section 1.
         What's new in Version 4.0 .................................3
         Forward ...................................................5
         Introduction...............................................6
         Section 2. Starting MDR....................................8 
         Section 3. First Time Setup................................9
            A. Test Modem/Uart.....................................10
            B. Uart Tests .........................................12
            C. Return to main menu ................................13
         Section 4. The Main Menu..................................14
            4.01 Hot-Key Selection ................................14
            4.1  Login In Comm ports ..............................14
            4.11 What do IRQ's and Comm ports do?..................15
            4.12 Port assignments and their meanings...............15
            4.13 Testing Defective Ports...........................17
            4.2  Regs .............................................17
            4.30 Handshaking tests ................................25
            4.31 Carrier Tests ....................................26
            4.31 Modem Driver modules..............................26
            4.32 Types of Carrier Tests............................27
            4.33 AT Instruction Set tests..........................27
            4.34 Uart or Dumb Modem Tests..........................29
            4.35 Error Messages....................................29
            4.36 IRQ Failures .....................................30
            4.4  Loopback Tests ...................................30
            4.41 Loopback test error messages......................32
            4.5  Options Mode .....................................32
            4.51 Interactive Mode .................................33
            4.52 View Current stats ...............................33
            4.53 Print Current stats ..............................33
            4.54 Reset Current status .............................33
            4.6  Setup Mode .......................................34
            4.7  Exit Program .....................................35
         Section 5.Error messages and their meanings...............35
            5.1  General Errors/Warnings...........................36
            5.2  Setup Mode diagnostics............................37
            5.3  Uart Diagnostics .................................40
            5.4  Report Generator messages.........................40
            5.5  Static Handshaking messages.......................41




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page2
            5.6  Carrier & dynamic messages........................42
            5.7  General program warnings .........................43
         Section 6. Special Modes and Information .................47
            6.1  Using Modem Drivers ..............................47
            6.11 External Modem Drivers ...........................48
            6.2 Using the Command Line switch /s ..................49
            6.3 Using the Hot-Keys ................................51
            6.4 Logging in defective ports.........................52
            6.5 What tests cannot do ..............................53
            6.6 Quirks with some modems ...........................53
         Section 7. Benefits of Registration ......................54
           


All of the documentation text contained in this file is copyrighted 1989-
1991 by Hank Volpe. This file is the technical reference manual that
accompanies the Modem Doctor. This manual has been written for the expert
user who would like to have background information on how the Modem Doctor
conducts its various tests. It also catalogs the many error messages and
their meanings, explains some of the mnemonics used in testing, and
contains a brief history of the different versions of the program.
Distribution of this text without the Modem Doctor shareware version and
its support files, or distribution of the Modem Doctor shareware version
is prohibited by the author.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page3
                  -------------------------------------------
                    What's New in Modem Doctor Version 4.0
                  -------------------------------------------

For those of you familiar with Modem Doctor, here is a brief look at the
improved and added features of version 4.0. If you are new to Modem
Doctor, take a look at the users manual file (MDRFIRST.TXT) that
accompanies your Modem Doctor package.

Some of the improved and added features of Modem Doctor 4.0 include;
1) Expanded on-line help. Each menu section has help available from the 
     main menu or by pressing ALT-H.

2) Expanded use of hot keys -
   a) Alt-F is now a force micro on/off line toggle.
   b) Alt-B changes baud.
   c) Alt-H selects help (as noted above).
All of these keys operate, even inside of menu selections.

3) Improved Menu system -
   a) Selection Bar remembers your last selection.
   b) Escape or left-right arrows quit a selection menu.

4) New Alert-Bar functions point out setup or assignment errors.

5) New Diagnostics and enhancement of some previous diagnostics
     a) Setup Mode
             1) Maximum Baud rate  is now 56k.
             2) Confirms Uart Dlab register sets to the correct
                baud rate.
             3) Expanded Error message explanations.
             4) Checksum test of Modem microprocessor memory.
             5) Addition of a Color Selection Mode
                - You can use default colors, monochrome shades
                  or save a color setup to a file (MDR.CFG).

     b) Options Mode (formerly Manual Mode) expanded to include a report
        generator which keeps track of which diagnostics have been run
        and how successful they have been. You can use this menu to;
             1) View current statistics.
             2) Reset them to zero.
             3) Print them to a file or a printer.

     c) Loopback tests
             1) Speed of Digital test improved for tri-state uarts
                to equal speed of 8250's.
             2) Auto-detection of IRQ failures.






  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page4
     d) Carrier tests
             1) Auto detection of carrier fallback to a slower baud rate
                (important for fixed-DTE modems).
             2) Auto detection of IRQ failures.
             3) Addition of Several new modems for comprehensive carrier
                tests.
             4) Future file capability. Modem Drivers can be accessed from
                an external file which makes it possible to update support
                for new or custom modems without updating to a new version
                of software. Any future use of this (with the exception of
                custom-created drivers) will be at no cost.


     e) Login
             1) Checks for proper DOS assigned COM1 and COM2 addresses,
                prompts user for correction if desired.

     f) Regs
             1) Addition of several handshaking tests to make sure that
                modems and computers are communicating properly. You can
                set your modem to use this handshaking for the tests or
                to use its current default settings;

                a) DTR/DSR & RTS/CTS - This test checks that handshaking
                   signals are implemented between the modem and the
                   Uart.

                b) Dynamic RTS/CTS - The RTS signal to the modem is
                    dropped and characters are sent in a simulated carrier
                    connection. If the modem works properly, it will not
                    send any characters back to the Uart until the RTS
                    line is raised again.

                c) Dynamic Xon/Xoff - This works like the RTS/CTS test
                   except it uses the Xon/Xoff ascii characters as its
                   control mechanism.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page5

Forward
-------
        
Welcome to the Modem Doctor. This documentation along with the program is
a good source of information about how Uarts and Serial Ports work with
Modems in your Personal Computer.
         
There are two versions of the Modem Doctor; The shareware version 4.0S and
the registered Version 4.0R. There are some differences between the two.
Both however are full-functioned diagnostics tools. The differences
between the  two are as follows;
         
         Version 4.0S supports COM1 through COM4 
         Version 4.0R supports COM1 through COM8
         
         Version 4.0S supports speeds to 2400 bps
         Version 4.0R supports speeds to 56,000 bps
         
     Version 4.0S does not include Manual Log-in of Comm ports, the
     Digital or the Analog Loopback testing, or any of the dynamic
     handshaking tests supported in version 4.0R, or the /s or /x 
     command-line modes of operation.
         
This documentation covers both versions, however the feature differences
above are provided for your reference.
          
This manual is provided as a technical reference for advanced users or for
those wishing to get more background information on tests. For first time
users I would suggest reading the Getting started Manual text file
MDRFIRST.TXT, which is a little more basic in its approach.

I sincerely hope that you take a good look at the program and the
documentation. The Modem Doctor is about as complete a diagnostic tool you
can find for your serial port and modem. A complete program history
follows the documentation. The Modem Doctor versions 2.2 and 3.0 were
received very well nationally and internationally, Version 4.0 now adds
more tests, more user features and more flexibility for you to use. Thanks
to those that have registered and have made the Modem Doctor a viable
package for all of us that sincerely enjoy using modems.
         
If you are using the shareware version and wish to order, please use the
Order form included with this package or see Section 7, Benefits of
registration at the end of this documentation.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page6

Section 1. Introduction - 
------------------------- 
The Modem Doctor is a professional diagnostic tool designed to work with
IBM-PC's and compatibles. There are two versions of the Modem Doctor, the
shareware version and the registered version. The registered version of
the Modem Doctor contains complete diagnostics for 8250-B, 8250-A, 16450,
16550, 16550A(x), and compatible Uarts, RS-232 data lines, and carrier
tests. Some of the many diagnostic features of the registered version are; 
             
 **  Support for COM 1 through COM 8 using system IRQ's 3,4,5 or 7.
 **  Baud Rates from 300 to 56000 !! NEW !!!
 **  Support for Courier HST/Dual Standard/V.32 Modems [+],
     Hayes 1200, 2400, Ultra and V9600 series Modems [+*].

 **  Auto-detection of modems that use &T0 diagnostics      
 **  Auto log-in of COMM ports 1 - 4 to DOS for use by other programs.
 **  Manual log-in of up to 8 COMM ports for non-standard hardware,
     including those with defective Uarts (on manual selection). 

 **  On-screen display of all 8250 /16450/ 16550 Uart registers.
 **  On-screen display of modem S-Registers.
 **  Full Diagnostic tests of Uart and RS-232 Channels including;
       -- ALL Uart registers.
       -- ALL RS-232 handshaking Signals.
       -- 8259 Interrupt Controller mask registers 
       -- Digital loopback Uart tests including chips with Tri-stated 
          OUT2 signals.
       -- Analog loopback data tests.

  **  Full diagnostic checks of "AT" instruction set modems;
       -- Carrier tests on both originate and answer frequencies.
       -- Carrier test interface for "dumb" modems or data channels.       
       -- Modem microprocessor command channel diagnostics.
       -- Support for high speed modems.           
       -- Support for modems that use the alternate &T0 self test mode. 
       -- Dynamic simulated on-line testing of RTS/CTS and XON/XOFF 
          handshaking.
       -- Static DTR/DSR and RTS/CTS uart handshaking tests.
          
  **  Interactive Mode with 4K communications buffer for;    
      -- TTY mode interactive communications over serial port or modem 
          while on-line.
      -- Custom designed tests...help menu included.
      -- On-line "Hot-key" viewing of 8250 Uart registers.

  **  Hot-Keys for selecting the baud rate, and to force a modem
          microprocessor test mode. 

  **  User Selection of modem drivers. Like printer drivers, these
          software modules add more selections and more test capability to
          The Modem Doctor. 



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page7

  **  Ability to use external modem drivers. External modem drivers
          make it possible to add special modems that might not use
          standard AT conventions to the Modem Doctor without you having
          to update to a new version of the program !! NEW !!

  **  Built in report generator that displays the results of all tests run
          on all serial ports and modems. Report can be printed at any
          time and reset at any time by the user. !! NEW !!

  **  Status bar that continuously displays the port, speed,
          microprocessor status, and modem driver selections.

  **  User defined Colors for all screens !! NEW !!
  **  Compatibility with mouse drivers. !! NEW !!
  **  Command Line Mode interface for setting up a modem to an
          initialization string contained in a user created file;
     -- A small text file contains the port (and optional address), the
     speed, and the string to send to the modem. Any text editor can
     create the file at any time!

  **  Automatic detection of incorrect Com1 and Com2 port assignments,
      IRQ assignment errors, missing IRQ signals, and missing handshake
      signals.
         
The Modem Doctor and all of its documentation is copyrighted by Hank
Volpe. The shareware version of this program may be distributed on
bulletin board systems or in public domain libraries as long as a fee is
not charged for its duplication or acquisition (except for BBS systems
that charge a user fee for system access). If you are a shareware
distributor and have received permission to distribute past versions of
the Modem Doctor, you are granted permission also for version 4.0 as long
as you follow the same guidelines for distribution as before. Under 
no conditions can anyone accept payment for the Modem Doctor but Hank
Volpe or agents authorized for resale by Hank Volpe. The Modem Doctor is
distributed on as "as-is" basis, with no warranties for usefulness or
suitability expressed or implied. Users of the shareware version are
granted a limited license to use this program for a trial period only.    
Please let your conscience be your guide as to what you believe has been a
fair trial period, for without the support of users who have registered,
the Modem Doctor would not be the product that it is today.


The Modem Doctor is a very flexible package for both the new user and for
the experienced technician. The focus of this manual is to give you a
technical reference regarding how the Modem Doctor works, what is the
meaning of error messages you may encounter, and how the tests are



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page8
constructed to operate between your PC and your modem. First time users or
those unfamiliar with how the Modem Doctor operates should read the file
MDRFIRST.TXT. MDRFIRST explains how to start and use the Modem Doctor, how
the pulldowns operate, and how to use the menu and control system.      

Section 2. Starting MDR     
------------------------     
The Modem Doctor has been designed to work with PC-Type serial ports and
"AT" instruction set (so called Hayes compatible[++]) modems. The Modem
Doctor requires at least 1 serial port to operate. MDR is written to run
under MS or PC DOS 2.2 or higher, and will work with any standard display
adaptor in normal text mode. The program requires at least 200K of program
memory space. When MDR is started, it will use the last text mode that the
display adaptor was in before the Modem Doctor started. If you have
created a custom color file (see Options mode), your screen colors will be
displayed as you selected them. If not, default colors will be loaded
depending on the mode you are currently in (Color or Black /White). 
Modem Doctor starts just like any other program. From the dos prompt, type
MDR. There are however several command line switches you might need to use
from time to time.

The /B switch
-------------
Code has been included to work with hardware-incompatible display adapters
as long as they are at least IBM-PC Bios compatible. For most computers,
this is not necessary and will slow down screen displays, plus it will
change the appearance of the input windows. The reason for using this
switch is (for example), if you wish to route the output of the program
through a voice synthesizer or operate it under a program that requires
all screen writes to go through your Bios. If you wish to use this bios
compatible mode instead of direct display writes, start the program using
the Bios switch ;   MDR /B 
         
The /S switch
--------------
Registered versions 4.0 and higher also can be run to quickly program and
setup a Modem. To use this mode start the program with the setup switch ;
MDR /S (see Section 3). 

The /X switch
--------------
Registered versions 4.0 and higher have the ability to swap the
communication pointers for COM1 and COM2 in memory. To use this mode, type
MDR /X. Com1's pointer will be swapped to COM2 (and visa versa).  You can 
specify any one of the 4 comm ports used by dos by typing;

MDR /X [port] [port], 
where each [port] is a different comm port..ie to swap Com1 and Com3, type 
MDR /X 1 3. MDR /X without port numbers flips com1 and com2 by default. This 
condition is not permament. To flip these again, just type MDR /X  or if you 
used comm numbers, type MDR /X [port] [port]. The reason for this command 
line switch is for convienence and also


  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                      Page9
to make it easier for technicians to swap port assignments
without having to change port jumpers. This mode is not generally useful
except when you believe you have addresses set incorrectly or if you wish
to use a serial device that is normally Com2 as Com1 (such as a serial
printer) from a high-level language that does not support 2 comm ports.
These changes are temporary. Permanent fixes can only be done in these
cases if you physically change the addresses on your serial card.
         

Section 3. First Time Setup     
---------------------------     
The first time you start the Modem Doctor, it will begin several system
checks. These checks are not repeated until you start the program over
again from the Dos prompt. First, the Modem Doctor checks to see what
hardware is available and reports its results to you. Displayed on the
bottom line is the serial number unique to each copy (registered version).
If incorrect COMM addresses are detected or if swapped addresses are
detected, an Alert-bar will be displayed, warning you that a non-standard
assignment was detected, and you are asked if you wish to have this fixed
for testing purposes only.    
         
Next, you are instructed to pick from a list of valid Comm ports. The only
ports that are listed are valid ports that MDR found when it first
started. The registered version allows you to add ports that are not
"standard" ports, (check the section on Login). Use the arrow keys to find
your selection, and then press return to select.
         
A window now opens showing you valid Comm port speeds. Select a speed from
this menu. Please note, don't select a speed faster than your modem can
handle. The reason for faster speeds is so communication links can also be
tested.  Use the arrow keys and press return to make your selection.
         
At this point you are in the options menu. If you select "Test Modem", a
series of commands and tests will be performed. Please check to make sure
the modem is on line and running. If you select "Test Uart Hardware", only
the Uart will be tested. The modem will not be setup. This selection is
useful only if you wish to test an RS-232 line or a "dumb" modem.
Selection 3 aborts to the main menu. (NOTE: Version 4.0 includes "hot-
keys" to force the Modem Doctor to believe you are using a modem with a
microprocessor and for changing the baud rate. Read Section 4 on the menu
system for more details).       


       



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page10
 
A. Test Modem/ Uart     
  ---------------------
                    Preliminary Diagnostic Checks of Hardware 
                   ----------------------------------------- 
                       A 16550AN Uart has been detected  
                  Confirmed Uart setup to proper baud rate

                        Testing Modem Microprocessor
                         ---------------------------- 
                   Modem Microprocessor Command Bus Active  
                   Modem reports a 9600 bps Modem installed 
                     Modem Microprocessor Memory is OK

                 Modem Microprocessor Accepts Setup Commands  
                        Modem Microprocessor ON-LINE  

                    Modem - Uart Status appears correct 
                         Press any key to continue        
        
         
The preceding page shows you the results of a normal test with a modem. 
The first step tests the uart to modem hardware. If any connection errors
are discovered, they are reported to the screen. If no errors are
detected, the Modem Doctor will check to see what type of uart is
installed. There are differences between the different types of uarts, and
the Modem Doctor uses this test to determine how to test the uart and what
registers to display to the screen. Next, the uart is set to the desired
baud rate, and the uart speed register is queried to make sure it did set
up properly. Next, the modem command bus is tested and if its compatible,
the modem ID information is queried from the modem microprocessor. The
Modem Doctor then issues a command that forces the modem to run a checksum
of its ram or rom memory. If your modem returns an OK, then the Modem
Doctor assumes your modem passed properly. If an error is returned, you
will receive an error message stating that the modem reported a rom/ram
check failure.  Finally, the modem is setup for diagnostics. Note: These
setup strings do not overwrite any non-volatile storage. 

If your modem setup properly, all the uart registers and the First 16
Modem S registers are displayed. This display is not shown the next time
you log in a Comm port unless you press the space bar. If the modem does
not respond to certain parts of the tests, error messages are reported. 
          

                         Testing Modem Microprocessor
                         ---------------------------- 
                Modem Microprocessor Command Mode Not Detected 
                         Software Reset Initiated      
         
This message is displayed if the modem did not respond the first time for
a query to its status. This could happen for any number of reasons,
including that the modem was still on-line and not in the command mode. A
soft-reset is performed, which essentially tries to wake the processor up. 




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page11


        No Response...resetting Modem Microprocessor ...attempt #1
        No Response...resetting Modem Microprocessor ...attempt #2
        No Response...resetting Modem Microprocessor ...attempt #3
         
After 3 soft-resets, the Modem Doctor assumes that the modem is jammed and
needs a hardware reset. A hardware reset is the program equivalent of
turning the modem on and off again. This is the only way to reset some
internal modems  that get "jammed" when the computer is first turned on. 
Clearing a "jam" usually takes no more than 2 attempts.   


              Trying Hardware reset of the Modem Microprocessor
         
The Hardware reset is performed, and again the modem microprocessor is
strobed for its status.  
         
                        Software Reset Initiated
         
After a hardware reset, a soft reset is performed again, attempting to
wake the processor up. If this fails, the  following message is displayed; 
         
              Modem Microprocessor Did Not Accept Setup Commands 
              Trying a Hardware reset of the Modem Microprocessor
         

After one more attempt at waking the modem up, the Modem Doctor assumes
that the modem is not compatible  and based on the status given it by the
Uart, it will report if the device is off or not connected.  
         
          WARNING..This unit does not have a Compatible Modem attached
         
          WARNING..The Modem Device appears to be off or not connected





         
The registers are now displayed for diagnostic tests, and a conclusion
based on the status of the registers is displayed. There are many reasons
why the modem/uart could fail. See the error code section for details. If
the Uart is fine, but the modem is not compatible, the program will tell
you that the Uart hardware tests ok and display this in a window to the
right of the register display.        



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page12

Note: The reason for testing the modem command set so extensively is so
there can be no doubt about the modem accepting commands. You can force
The Modem Doctor to believe it has a modem with a compatible
microprocessor by using the hot-key Alt-F. See Section 4 about Menu system
commands.
         
B. Uart Tests     
---------------     
The uart test is performed every time either the modem or the uart test is
selected. Essentially, the uart test programs all of the registers of the
uart and looks to see that the correct values have been placed in them. If
any one of the registers fails to set, the Modem Doctor will display all
of the registers and a diagnostic message. After that, it looks to see
that an RS-232 loop is active. If not, it displays an error message saying
that the loop is either disconnected or a register in the uart is
defective. If all checks well, the type of uart chip that is installed is
returned. The type of uart chip is important for the way the Modem Doctor
will test and display the uart. Essentially there are 3 types it can
detect;      
         
8250-B
This is the original uart installed in many PC's and serial port add-on
cards.      
         
16450/8250-A
This is an upgraded uart that fixes a bug in the interrupt enable register
of the 8250-B and also tri-stated the OUT2 pin of the chip during
loopbacks. It also adds a scratch-pad register as the highest register.
This register is tested by the Modem Doctor but not displayed because it
never has what you would consider as a "correct" setting. The 16450 is   
used primarily in 80286 (AT) systems.

16550
This chip is essentially a faster 16450. However, it cannot be used in a
FIFO buffering mode, but it does allow for a programmer to use multiple
DMA channels and thus increase throughput on an AT or higher class
computer system.      
     

    
16550A(x)
This chip is a faster 16450 with a built in transmit and receive FIFO
buffer. It also allows multiple DMA channel access. You should see this
chip in your 80386 or RISC type machine. You should also consider
installing this chip if you do any serious communications at 9600 bps or
higher while you are multi-tasking. Whenever a 16450,16550 or 16550AN is
displayed, different diagnostics and/or different register mnemonics are
displayed. The 16550AN's ability to enable and disable FIFO mode is also



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page13
tested. In any case and with any uart, each register is checked for proper
values. If anyone of them fail, a window will open and display a possible
cause for the problem. 
         


                   Preliminary Diagnostic Checks of Hardware 
                   ----------------------------------------- 
                          Testing Uart Hardware Only  
                          -------------------------- 
                        A 8250-B Uart has been detected 
                      Modem - Uart Status appears correct
         
The first time through these tests, the registers will display for
diagnostics. Unlike the modem tests, only the uart registers are
displayed. From then on, if the test results are correct, you will be
prompted if you wish to have the registers displayed. If a test fails at
any time, you will always see the registers displayed along with an        
appropriate diagnostic message.        



         
C. Return to main menu     
----------------------     
Selecting this returns you to the main menu, this allows you to change an
entry made in error without having to wait for the diagnostic checks to
fail. In any event, after any of these tests have been run, you will then
enter the Modem Doctor's Main Menu.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page14
4.0 The Main Menu
------------------

4.01 Hot-Key selection 
----------------------  
In addition to these menu selections, there are three hot-keys that are
active at nearly all times in the Modem Doctor. The ALT-B combination can
be used to change the baud rate from the main menu, from inside pulldowns
and Manual test section. A window will pop-up and you can pick your
desired serial port speed. This can save a lot of time when you wish to
test a modem at various speeds. Using the Setup / Test Modem & Uart
mode is the safest way (because it verifies the modem microprocessor
accepts commands properly at the selected speed), however if you use the
ALT-B command, you will take a short-cut that can help you when testing
your modem. 
       
The next hot-key is ALT-F, or FORCE Micro on-line. Actually, there is no
"force" involved. By pressing this key, you make the Modem Doctor believe
there is a AT Instruction set compatible modem attached. This can be handy
for troubleshooting a modem that doesn't work properly at certain speeds
or under certain conditions.  The Setup Test Modem & Uart section will not
allow any AT Instruction set Carrier tests on modems that it cannot
properly setup. The ALT-F combination bypasses this and allows such
testing. When you press ALT-F, you will notice the Status Bar will say
that a modem microprocessor is on-line.  Version 4.0 now allows this key
to be operated as a toggle between on-line and off-line. This key is
active inside of any menu at any time.

The last hot-key is the ALT-H for help. This key will give you varying
levels of help. From the main menu, it gives a terse help just like
pressing the down arrow key does. Inside of a pulldown, it gives you
expanded help, just as selecting the appropriate help section of the
pulldown also does.

4.1 Login In Comm ports     
-----------------------     
When you select this menu, you are offered these choices                   

 Let me Auto Detect COMM ports  
 You Manually Enter COMM ports  
 Help with these tests  (the same as pressing ALT-H)
 Return To Main Menu       

Option 1 repeats what the Modem Doctor does when you first begin to run
the program. Option 2 allows you to enter a "non" standard port address
and assign one of the two Interrupt lines to use with the Uart. Option 3 



gives you an expanded, on-line help description of these tests. Option 4
returns to the main menu.      




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page15

4.11 What do IRQ's and COMM Ports do ? 
---------------------------------------      
Each time a character is received by a modem, it has to get the attention
of the computer by raising an interrupt request line (IRQ). PC-type
computers have 8 of these lines, AT-type (ISA bus), MCA and EISA computers
have at least 16. The 8259 Interrupt controller chip handles these
requests for attention. By design, COM1 uses IRQ4 and COM2 uses IRQ3. IRQ7
is assigned to a printer, IRQ5 to the Hard Drives. It is possible to use
COM1 and COM2 or COM3 and COM4 at the same  time, but you cannot use COM1
and COM3 or COM2 and COM4 at the same time because these share IRQ lines.
If you needed to use 3 or more COMM ports at the same time, you would need
to use another IRQ line. The best bets are IRQ7 and IRQ5, because they may
be available when you need them. IRQ7 is really only needed by programs
that use printer interrupts (background type spoolers for example). IRQ5
is used by fixed disks. It may or may not cause a conflict if you use this
IRQ line with your modem. PC type computers are quite limited because they
only have 8 IRQ lines and most are reserved. AT type computers have 16 IRQ
lines. 

A good tip would be to consult your hardware manual to find out if you can
or can't use these other IRQ's. However, if you do not need to use 3 or
more COMM ports at one time, then it is best to stick to the reserved IRQ4
and IRQ3 for all of your activity. 
         
         
4.12 Port assignments and their meaning 
---------------------------------------  
Like IRQ lines, certain port addresses were reserved to work with the PC's
external hardware devices. Two of these were reserved by all
manufacturers; 3F8 (HEX) and 2F8 (HEX).  Although only two COMM ports were
supported by the original ROM-BIOS, there are two additional port memory
locations available for use by MS-DOS and PC-DOS applications. These
reserved port addresses are 3E8 (HEX) and 2E8 (HEX). Most internal modems
come with these 4 ports as selections along with several IRQ line
combinations.  There is a "quirk" in the way that the ROM-BIOS logs in
these ports. If the Power on self-tests (POST) do not find a 3F8 serial
port but they do find a 2F8, then the 2F8 serial port is mistakenly 
assigned to COM1. To add to this, the reserved IRQ line for COM1 is IRQ4.
But this serial Port of 2F8 is using COM2's  address, which means it needs
IRQ3 instead of IRQ4. So, if you are trying to use Basic, Pascal, or DOS
for COM1 operations, the serial port or modem will not be able to work.
The general rule thus is "No COM1 without COM2". 


The Modem Doctor when it is run will detect this log-in problem and
display an "alert-bar" with a message to you that points out this error.
You can then elect to correct this for the purposes of testing. Remember
though, you can only fix these addresses permanently by changing the
settings on your serial port or internal modem. You can run Modem Doctor
with the /X switch to fix this problem at boot time until you do change
the address settings permanently. The addresses for PC's are standardized
in order for communication programs to properly work. As stated above, the
industry standards are;      
         
         COMM 1  3F8   COMM 2  2F8    COMM 3  3E8    COMM 4 2E8
         IRQ4          IRQ3           IRQ4           IRQ3      



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page16
         
         COMM 5  3F8   COMM 6  2F8    COMM 7  3E8    COMM 8  2E8
         IRQ7          IRQ7           IRQ5           IRQ5      
         
         
The port addresses for serial ports (1-4) are held in a reserved area of
memory. The "base port" of each of these uarts is saved in a distinct
area. When you first start the Modem Doctor, the program checks these
locations to see if there are any Comm ports already logged in by Dos. If
not, a search is conducted for the PC's default Comm 1 and Comm 2 port
values and these are logged in. Next, a search is performed for the other
industry standard Comm ports. Some PC's already log these in, however
IBM-PC's and those that mimic exactly their ROM-BIOS routines do not log
in a COMM 3 or a COMM 4. The Modem doctor does log these in, and as a side
benefit, these stay logged in until the next warm or cold boot is 
performed on your computer. Why would Dos not log in a port? Well, some
multi-tasking programs overwrite this area to prevent "swapping" of
communication programs and it is possible that they might not be properly
restored on exit. Next, a search is made for the custom comm ports 5-8.
These ports are not held in DOS at all, but are held in program memory by
the Modem Doctor after a user logs the port in using the Manual log-in
mode (see below). If one of these ports is found, it will be added to the
comm port option menu for you to use when you test the modem.  The reason
for the custom ports is to help users who are using non-standard interrupt
lines (IRQ7,IRQ5). Unlike the Dos logged-in ports, these assignments
disappear when the Modem Doctor is exited. The Modem Doctor follows the
accepted arraignment of these comm Port /IRQ line pairings. However, you
do have full control at all times over all port addresses and IRQ
assignments and can change them using the Manual Login mode.  

As far as the 2 Options presented by the Login Mode, option 2 is the only 
real option available. Please use it with caution. The only need for this
option is for logging in a comm port that does not use any of the listed
industry standards as its base port address or IRQ line assignments.
Consult your serial port or Modem's user manual to make sure you enter the


exact port address and select the correct Interrupt line to use with it.
Otherwise the Modem Doctor will not recognize or be able to test any
device hooked to this port. Protection is included in this routine to keep
someone from accidentally entering a port that is used by the system
board, display adapters, or fixed disk adaptor. Entering any of these
values, or an error, will result in the display;

                 "WARNING...RESERVED port...RETRY ENTRY"      
After running option 1 or 2 , you must tell the Modem Doctor which comm
port you wish to use so that testing can begin. Pressing the ESCAPE key or
pressing a left or right arrow key works the same as Option # 3 and
returns you to the main menu.              




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page17
4.13 Testing defective Ports 
----------------------------  
Whenever the Modem Doctor checks to see if a port is working properly, it
checks the status of several registers. If a uart appears "dead", the
Modem Doctor will tell you that the port was not "found". You can use the
Manual mode and override this determination. This allows you to test a
defective port to find out what is wrong. If you tell the Modem Doctor for
example to use serial Port 2F8 as COM2  and you do not have a COM2, the
message "COM2 not Found" will be returned with an option "Override [Y/N]
?". Answering "Y" will force the login of this port.  Certainly there is
no benefit to testing a non-existent port, but a port that is defective
may not be logged-in. So, you now have the option to test this defective
port hardware to pinpoint a problem. Combined with the register display
and diagnostics, you will most likely be able to pin-point any uart
problem quickly and easily. 
         
4.2 Regs     
-------------      
The register display section can be an invaluable diagnostic tool. What
this does is "poll" all of the status registers of the uart, and the
interrupt controller to tell you exactly what is going on.  When you use
the setup mode, the Modem Doctor checks all of these registers for correct 
information. If something wrong is discovered, a warning is displayed on
the screen telling you what the Modem Doctor believes is wrong. Many
different error conditions are checked, see the error code section for a
listing. Each register contains a Mnemonic for each one of the data bits.  
Bits that are a logic low ( = 0) are displayed in low intensity, those
that are a logic high (= 1) are displayed in high intensity. On a color
monitor, this is easy to see. On a Mono Monitor, make sure you have the 
brightness and contrast controls properly adjusted to see the difference
between the two status conditions.  (Note: Version 4 allows you to pick
your own custom colors, however, it will still alternate between high
intensity and low intensity shades of the colors you select for the uart
register displays).



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page18
      
         
-[ Line Control Register ]----------      
|  DLB STB STP EPS PEN STB WS1 WS0  |     
------------------------------------      
This register controls many of the setup characteristics of your uart and
how it behaves to your PC. This register is responsible for setting baud
rate, setting break code transmission, parity, and the length of the
serial stream  word. 
         
DLB    Divisor Latch          Used to access the baud rate registers.      
                              Should be low for all displays.
         
STB    Set Break              If high, the modem transmits a
                              break signal, should be low normally.      

STP    Stick Parity           Should be low normally    
EPS    Even Parity select     High = even parity..should be low normally   
PEN    Parity Enable          Enable parity checks, should be low normally

STB    Stop Bits              Number of stop bits, should be low normally  
                              to indicate 1 stop bit character only.

WS1    Word Length Select 1     
WS0    Word Length Select 0   These two bits are used to determine the     
                              serial data word length. Both should be high 
                              normally to indicate a length of 8 bits.
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page19
         

-[ Line Status Register ]----------- 
|      TSE THE BI  FE  PE  OE  DR   |      
 ___________________________________      
         
The line status register reports error conditions that might have occurred
between the PC and the Uart.      

TSE    TX Shift Register      A high indicates that all characters         
                              sent to the Uart were transmitted.  Should
                              be High Normally.      

THE    TX Holding Register    A high indicates that the Uart can now       
       Empty                  accept a new character from the PC. Should 
                              be high normally. 

BI     Break Interrupt        A high indicates that a break signal was     
                              received. Should be low normally.      

FE     Framing Error          A high indicates that a serial data train 
                              did not have a proper stop bit. Should be
                              low normally.   

PE     Parity Error           A high indicates that the received serial    
                              data's parity did not match what the uart
                              was programmed to receive. Should be low     
                              normally.     

OE     Overrun Error          A high indicates that a character in the     
                              receive buffer was not read by the PC in     
                              time, and another character overwrote and
                              destroyed it. Should be low normally. 

DR     Data Ready             A High indicates that a character has been   
                              received and is ready to be read by  the PC  
                              from the receiver buffer. Should be low
                              normally for these test, but can vary while  
                              data is coming in from the modem. 
         
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page20


-[ Modem Control Register ]---------
|              LP  OT2 OT1 RTS DTR  |     
------------------------------------       
         
The Modem Control register handles all of the interfacing between the    
Uart and the modem. Only 5 signals are needed for this level of control.   
 
         
LP     LOOP                   A high indicates that the loopback digital   
                              diagnostic has been activated. This feature  
                              only works with 8250 uarts or those that are 
                              100% compatible. This is used in the digital 
                              loopback test. 

OT2    OUT 2                  A high enables the uart to generate
                              interrupts. A low disables interrupts. This
                              should always be high for testing purposes.  
   
OT1    OUT 1                  On 100% compatible modems, a high on this 
                              pin will perform a hardware reset of the
                              modem in some compatible designs. Normally
                              this is a low.

RTS    Request to Send        A Handshaking signal that is used by some    
                              modems to enable data transfer between the
                              modem and the Uart. Should be high for
                              testing purposes.

DTR    Data Terminal Ready    A Handshaking signal that is used by some    
                              modems to enable data transfer between the
                              modem and the uart. Should be high for       
                              testing purposes.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page21
                 

-[ Modem Status Register ]----------      
|  RLS RI  DSR CTS DRD TER DDR DCS  |     
------------------------------------      
The Modem Status Register returns the status of the control signals sent
by the modem to the Uart.      
         
RLS    Received Line Detect   A high indicates that a carrier has been     
                              received by the modem. When the Analog
                              tests are run, this should be high. If it is 
                              not, it is still possible that the modem
                              is ok, however the cable from the modem to   
                              the uart (for externals only) might not have
                              a complete circuit due to faulty wiring of   
                              the RS-232 cable. This signal is very
                              important for some communications programs   
                              to operate properly.      



RI     Ring Indicator         A high indicates that the modem detected a   
                              ringing signal on the phone line. 

DSR    Data Set Ready         This is part of the DTR/DSR Handshaking pair 
                              that is used by some modems to control the   
                              flow of data. Normally be a high. 

CTS    Clear to Send          This is part of the RTS/CTS Handshaking pair 
                              that is used by some modems to control the
                              flow of data. Should normally be a high.

DRD    Delta Received         Line Signal Detect. A high indicates that 
                              the Received Line Signal has changed state.
                              Some communications programs use this also 
                              as an indication that a carrier was detected
                              by the modem. 
TER    Trailing Edge
         Indicator            A high indicates that the Ring Indicator     
                              changed state. Some communications programs  
                              use this as an indication that the phone as  
                              rung.      

DDR    Delta Data Set Ready   Indicates that the DSR signal has changed    
                              state.      

DCS    Delta Clear to Send    Indicates that the CTS signal has changed    
                              state. 
         
         




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page22

If a 8250-B / 16450 or 8250A Uart was detected, the following is
displayed;      
       
-[ Interrupt ID Register ]----------
|                      ID1 ID0 ITP  |     
------------------------------------       
         
The Interrupt ID Register is used to tell the CPU what kind of interrupt
occurred.      

ID0    Interrupt Bit 2     
ID1    Interrupt Bit 1        These two signals are a binary code which 
                              can be read by the CPU to tell what kind of  
                              interrupt occurred. Both bits high indicates
                              an error occurred or a break interrupt was
                              received.  Bit 2 high and Bit 1 low
                              indicates that data is ready to be read by
                              the CPU. Bit 1 high and bit 2 low indicates
                              that a ring signal or carrier signal was
                              received. For testing purposes, only the
                              Data ready mode is used. 

ITP    Interrupt Pending      A Low indicates that an interrupt has
                              occurred. For testing purposes, this should
                              always be high if data was successfully read
                              by the Modem Doctor. If it is not, then an
                              interrupt did occur but the CPU did not
                              respond. Suspect a problem with an interrupt
                              controller chip or the uart interrupt
                              generating capability. If a 16550 or
                              16550A(x) chip was detected, the register
                              selection uses the enhanced register
                              display.             
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page23


If a 16550A(x) was detected, the appearance of the Interrupt ID register
changes and the following is displayed;

-[ Interrupt ID Register ]----------
| FEM FEL          ID2 ID1 ID0 ITP  |     
------------------------------------   
FEM   FIFO Enable MSB         This is the most significant bit of the FIFO
                              register. It should be high on both the
                              16550 and 16550AN if the FIFO buffering is
                              enabled. Normal Modem Doctor status shows
                              this as a logic low (unless testing is
                              performed).  

FEL   FIFO Enable LSB         This is the least significant bit of the
                              FIFO Register. It should be a high on the
                              16550A(x) only! The 16550 always displays
                              this bit low. Again, the normal Modem Doctor
                              status will show this as a logic low (unless
                              testing is performed).

ID2   FIFO Timeout            This signal is raise high by a 16550A(x) to
                              indicate that it is holding characters for
                              the CPU to read, but it is less than what
                              the CPU has requested to be interrupted for.
                              The FIFO buffer can be as deep as 14
                              characters. If only 8 have come in, the CPU
                              will not be interrupted. The 16550A(x) is
                              programmed to interrupt after a period of
                              time has gone by during which no characters
                              were received in order to force the CPU to
                              get what it is currently storing. Normal
                              operation should keep this line low, if it
                              is high at any time there is a problem with
                              the uart.  
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page24

         
-[ Interrupt Enable Register ]------      
|                  ESI ELI ETI ERI  |     
------------------------------------      
         
The Interrupt Enable register is programmed to allow certain types of    
interrupts to occur.      

ESI    Enable Status          A high causes the uart to generate an
                              interrupt whenever RI or RSD signals in the
                              Modem Status register go high. Should be low
                              for testing.

ELI    Enable Line            A high causes the uart to generate an 
                              Interrupt whenever an error or break
                              interrupt is detected in the Line Status
                              Register. Should be low for testing.

ETI    Enable Transmitter     A high causes the uart to generate a holding 
                              register interrupt whenever the THE signal 
                              of the empty interrupt line status register
                              goes high. Should be low for testing.        
                              

ERI    Enable Receive Data    A high causes the uart to generate an ready  
                              interrupt whenever data is ready to be read
                              by the CPU. The DR line of the line status 
                              register going to a high state generates
                              this  condition. This signal should be high
                              for testing purposes, since it is the only
                              interrupt needed by the Modem Doctor.  

-[ Interrupt Mask Register ]--------      
|  IQ7 IQ6 IQ5 IQ4 IQ3 IQ2 IQ1 IQ0  |     
------------------------------------      
The interrupt mask register is contained on the 8259 priority interrupt
controller on your computer's motherboard. Each one of these hardware
interrupts corresponds to an external device.      

IQ7   Printer Interrupt (can be used by Custom COM5 or COM6)
IQ6   Floppy Disk Interrupt     
IQ5   Hard Drive interrupt (can be used by Custom COM7 or COM8)
IQ4   COM1 Interrupt (also COM3)     
IQ3   COM2 Interrupt (also COM4)     
IQ2   reserved by IBM (Gateway to second 8259 on AT's)     
IQ1   Keyboard Interrupt     
IQ0   Timer Interrupt      
         
         

Under Normal Conditions, IQ0,IQ1 and IQ6 should be lit, along with IQ4 if
testing COM1 (or COM3)  or IQ3 if testing COM2 (or COM4). In addition,
other lines could be lit depending on your computer. The only line the
Modem Doctor looks for is the IQ4 or IQ3 lines (depending on which serial
port you are testing).   



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page25


4.30 Handshaking tests
----------------------
Just like a handshake between friends, the Modem Doctor tests to see that
your computer uart and the modem are properly exchanging handshaking for
data communication. There are 4 tests for proper operation. Two of them
are static (meaning that the control lines between the computer and modem
are raised and lowered), and two of them are dynamic (meaning that the
modem is placed in a self-connect mode and data is sent to the modem).

Static tests are accomplished by lowering the DTR line to the modem . The
modem, if configured to current accepted standards, should respond by
dropping a control line that inputs the modem control register of your
uart as the DSR status line. Raising the DTR line should make the DSR line
active again. If the DSR line stays high, this is ok for most 2400 bps and
lower modems. If the DSR line is low and never goes high, this might
interfere with some communication programs that require a solid DTR/DSR
handshake. If you see this condition, check your modem cable with the
Modem Doctor and an analog loopback plug. If all is ok, then your modem
needs to have its configuration changed. See your owners manual for
details

The static RTS/CTS tests are conducted the same way, however this
handshake pair is important for high-speed modem users primarily. High-
speed modems use this signalling system to tell each other when they can
or cannot send data. For example, when storing data to a hard drive, the
computer is tied-up for a while. Any characters coming in from the modem
might be lost. So, your communication package will lower the RTS line to
the modem while a disk write is underway. In kind, the Modem will drop a
CTS status when it cannot receive any more data. If you have a high-speed
modem and use data compression, this handshaking pair is usually essential
for proper operation.

The static tests above are designed to show that your cabling to the modem
is proper, but they cannot test if your modem microprocessor will act
properly on this handshaking information. The dynamic tests force your
modem to self-connect. Next the RTS (or DTR) lines are dropped (depending
on which test is run). Then 20 characters are sent to the modem. If the
modem is properly using handshaking, no characters will be sent back to
the computer. If any characters are received, then your modem ignored the
handshake request. In most cases, if the static tests passed but the
dynamic failed, it means your modem needs to be setup for testing. 

The Modem Doctor offers you the choice of programming your modem to test
its ability to handshake. Using this mode requires that you have selected
the proper modem driver from the Carrier mode before hand, otherwise
incorrect commands will be sent to your modem. If you know you have the
right driver, then you can go ahead and see if your modem is set properly
or not.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page26


None of the commands sent to the modem are permanently stored in the
modem. If the Modem Doctor enables handshaking and it works, but your
setup in the modem does not work, then you have to reprogram the modem
yourself. You can use the Interactive terminal mode to do this if you wish
without leaving the Modem Doctor.

         
4.31 Carrier Tests     
-----------------  
The carrier test section is used to test your modem's ability to detect a
carrier, demodulate signals on the originate frequency and answer
frequency, and to properly control the RLS (Received Line Signal) and CD
(carrier detect) modem status/control lines. All of these are essential
elements for good data communication.  When you select carrier tests, a
pulldown menu is displayed. Option 1 prompts you to run the carrier tests.
Option 2 offers you the chance to select a custom modem driver. Option 3
allows you to return to the main menu (pressing ESCAPE or a left/right
arrow key also does the same thing as option 3).  
         
4.31 Modem Driver Modules    
--------------------------  
Although your AT instruction set modem is based on a defacto standard
developed by Hayes, there are several "supersets" of this instruction set
for various modems. Currently, the  Modem Doctor supports 5 different
software Modem Drivers for testing; Generic Compatible, &T0 instruction
set, Hayes V9600, Hayes Ultra 9600, and  Courier HST/V.32. When the Modem
Doctor is running the setup mode, it queries the microprocessor for its
type identification. Based on this information, a modem driver is selected
for use. Basically, all 2400 bps and lower modems are assigned the Generic
Driver, and all 9600 and higher modems are assigned the Courier HST/V.32
driver. The &T0 instruction set modems are tested in a different manner
with a different set of instructions. Previous versions of the Modem
Doctor would automatically switch to the &T0 instruction set if the modem
was a 2400 bps modem and if it failed to properly detect a carrier during
testing. This function is still  built into the Modem Doctor, but you can 
optionally select the &T0 driver yourself before beginning your testing in
order to speed things up. Auto-selection added about 10 seconds a pass
that can now be eliminated.  If you desire to select the &T0 set for your
modem instead of letting  the Modem Doctor do it for you. NOTE: Don't 

select this instruction set unless you know for sure that your modem is
100% instruction set compatible with the Hayes 2400 or 2400B. Hayes 1200
bps and lower, and almost all other 2400 bps and lower modems use the
Generic Driver. You will find that 99% of all modems will work properly
with this  assignment, in fact, if you disable all data compression and
Fixed link assignments from any high speed modem (including the 

Courier's), the generic driver will test these modems properly also! This
allows people with high-speed modems that are not supported currently to
use the Modem Doctor for testing. If you have a high-speed modem that is
not supported, you can use a Combination of the Manual mode and the
Generic Modem Driver to test these modems also.  



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page27


All of the modem drivers used by the Modem Doctor are built into the
program, however version 4.0 has the ability to recognize an external
driver file. If the Modem Doctor finds and external driver file when it
starts, it uses those command instead of the built-in drivers. What
purpose is there in external drivers? Well, first off, if a new modem
command set is adopted, or a bug is discovered in one of the built-in
modems, you will be able to receive a free driver file from any bbs or by
mail. This means that your copy of the Modem Doctor can stay current for
some time to come. The second reason for external drivers is to allow you,
if you desire, to have us custom design a modem driver for a particular
modem. These drivers would be designed at a modest charge and would be for
your use only. In any case, external drivers insure your investment in the
Modem Doctor.


4.32 Types of Carrier Tests  
-----------------------------     
The carrier tests are designed to test your modem under actual use
conditions (minus a telephone line). Your modem uses two different
frequency bands for communication. These are the originate and answer
frequencies. AT Compatible modems can select these under command of the
Modem Doctor via the appropriate Modem Driver module. So called "Dumb"
Modems have front-panel switches that you must use to properly test the
modem. The Modem Doctor supports both types of tests, one of which is
automatically selected by the Modem Doctor depending on the hardware it
detects.  
         
4.33 AT Instruction Set Tests 
-----------------------------     
If you selected the Test Modem/Uart option from the setup menu and a Modem
with a compatible microprocessor was detected, or if you have forced the
Modem Doctor to use the AT instruction set tests via the hot-key ALT-F,
the Modem Doctor will test the originate and answer frequencies of your
modem automatically. Before running this test, make sure you have
disconnected the modem from the telephone line, because the modem will go 
off-hook and sometimes the  dial-tone will interfere with testing. If you
press ESCAPE in this menu, you return to the main menu. Any other key
continues. You will be prompted to enter a "Loop Count". If you select a
count of 1, you will be able to hear the connecting tones on your speaker.
If you select a count greater than 1, then the speaker is turned off. 
After you make your selection, two windows will open on your screen. One
contains data that is being sent to the modem, the other data that has
been received by the modem. All of the characters from binary 0 to binary
255 are transmitted. Some of these will look strange because they are
characters of the extended character set. The Modem Doctor takes a great
deal of care in preserving the normal condition of your modem before
testing, and sends all the character strings necessary to test without
disturbing any non-volatile memory settings. If you have an external
modem, you will see the data being sent and acknowledged before testing
begins. While it is setting up, the Modem Doctor tells you what is going
on, including that the modem is reset, that commands are being sent, and
that it is waiting for a carrier. The Modem Doctor waits up to 15 seconds



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page28

for either the word CONNECT or the RLS signal to go active. If this does
not happen, the Modem Doctor switches to the &T0 command set that is used
by Hayes 2400's and several other clones. This test is just as valid as a
full carrier test for these types of modems, and verifies both the modem
and the uart signal paths as does the traditional carrier test. If you
switch to this mode, you will be informed via the screen and the message
"CARRIER NOT DETECTED" will be displayed. Also, if you have an external
modem, you might see the "modem ready" light flashing throughout this
test. If you selected the &T0 instruction set yourself from the Modem
Driver selection menu, then the &T0 set will be used exclusively. This
selection is mainly a convenience for some users (because the
auto-detection method takes a little longer), however it will not test any
other kind of modem properly. 

If you are unsure, let the Modem Doctor figure it out for you. Note, if
you select more than 1 itineration and change you mind, press ESCAPE
anytime during the test. At the next available loop-repeat time the Modem
Doctor will abort testing and give you your current status.  
        




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page29
 
4.34 Uart or Dumb Modem Tests 
----------------------------- 
This test works the same as the AT instruction set modem test with two
main exceptions. First, Your modem must be able to generate a carrier on
its own on the answer and originate frequencies. Most external "dumb" 
modems have front panel switches for this function. Most are marked as AL
(for Analog Loopback). If your modem can generate this, answer yes  and
follow the prompts on the screen. All testing is performed as above,
except you setup the modem instead of the Modem Doctor using its modem
driver software.  Whenever the Modem Doctor is working with the micro in
the "Off-line" mode, the dumb mode tests are used. You are prompted if
your modem can generate a carrier. Answer yes to start the testing. You
are then told to place your modem in the analog loop mode and force the
carrier detect on. Most dumb modems will light the CD light on the front
panel of the modem when you press the AL switch. This CD light sends a RLS
(Received  Line Signal) status word to the uart. The Modem Doctor looks
for this before it will allow testing in this dumb mode. If your modem
cannot generate a carrier indication, you can still test an analog
loopback using the loopback function in the registered version and select
the analog loopback tests (this is explained later in the documentation).  
         
4.35 Error Messages 
-------------------     
If A RLS (Received Line Detect) signal is not received before testing
begins, this indicates that either a carrier is not being generated (or
properly received in self test) by the modem, or an RS-232 Cable to an
external modem is improperly wired. Although RS-232 loops will work fine
without an RLS signal being wired, there is no way for the Modem Doctor to
detect on a dumb modem if a carrier was generated. On a AT instruction set
modem, the Modem Doctor alternately looks for the word "CONNECT" to be
sent from the modem if there is no RLS signal available. If you wish your
all of your communications programs to work properly, you should get a
cable with this signal wired. If an error is detected during the analog
test, the error counter is incremented. There are two error counters; one
is used for the originate mode, and the other for the answer mode. If you
receive an error, it could be due to a problem with a uart or a modem at a
certain baud rate. Try testing at other baud rates to determine if the
errors repeat. Also errors could occur on only the originate or the answer
frequency. This is more prevalent at higher baud rates. Finally, make sure
that the modem was disconnected from the phone line before testing. The
dial-tone interferes with some modems. One other possibility exists, that
there could be a problem with a cable or interrupts not properly being
generated or properly handled by the CPU. Run the digital/loopback tests
and if the problem repeats, you might have a bad uart or motherboard
problem. Although it is unlikely, if power is removed from the modem or a
cable falls off (or who knows what else), the Modem Doctor waits a
pre-determined period of time for an interrupt to occur. If none is
detected, the warning "Modem Queue Failure" or "Modem Receiver Failure" 





  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page30

will be displayed in one of the windows. These might also be displayed if
the modem never acknowledged a character being transmitted, or never sent
one back. Again, the only conditions that would cause this would be a
cable being removed between the modem and the uart, the power being
removed to the modem, or the modem "blowing up" via some unnatural means
during the test. If the RLS (Received Line Signal) is constantly active
from the modem, the Modem Doctor will tell you that you might have a
problem with a cable or the modem and that the test results might not be
valid. Reason for this is that the Modem Doctor never did detect a carrier
because the uart said it was already there. This can be traced in nearly
all cases to the modem. Change the setting of the modem to let the carrier 
Detect (CD) act normally. It should never be set to be forced on for a PC.
If so, not only the Modem Doctor, but other communications programs will 
not operate properly. 


4.36 IRQ Failures
-----------------
The Modem Doctor will allow you to test a modem that might not have a
proper IRQ assignment. Such errors in jumper settings on your serial cards
or internal modems are tough to trace. If you see this error message
displayed, it means that your modem is receiving signals properly, but it
cannot communicate back to the computer over normal interrupt assignments.
This normally results from using an IRQ line reserved for one comm port
with another. See the section above about IRQ's if you get this error, and
use the table above as a guide to how to correct your problem.

IRQ failures will be displayed in the setup mode, the Regs Quick Uart
Diagnostics mode, the Analog Loopback mode and the Carrier Tests mode.

4.4 Loopback Tests     
-------------------      
The loopback tests were designed for two purposes. First, to test an
RS-232 loop including cables that are properly terminated with a loopback
plug, and second, to run a digital loopback test on 8250 and 100%
compatible uarts. Additionally, the analog portion of this test can be
used to test a dumb modem that does not generate a CD (carrier detect)
signal when the AL switch is thrown on the front panel. Selecting loopback
and pressing return fetches this menu;      
         
         -[  Loopback Tests  ]-----------      
         | Analog Loopback using a PLUG  |     
         | Digital Loopback 8250 UartS   |     
         | Loopback Plug Technical Data  |     
         |     Return To Main Menu       |      
         --------------------------------       
         




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page31

Analog loopback tests require that you attach a Loopback plug either to
the back of the Comm port connector on your computer, or at the end of a
RS-232 Cable. This test is designed for external modems, however you could
run this on an internal modem as a test of the command channel's ability   
to receive characters. Caution should be used on internal modems, for some
will fail this test. If this happens, don't be concerned. However this
test should NEVER fail with a loopback plug, unless you were trying to
drive the line at an excessive rate. Remember, the faster the data rate,
the shorter the lines should be, and the faster the computer should be to
handle it. With a loopback plug on the back of the serial port, speeds of
56000 bps should run fine even on a slower PC (as long as it is not multi-
tasking). If you experience problems at 56000 but not at 19200,  chances
are your hardware is fine (if you are using an 8250-B). In extensive
testing with PC's at 4.77 mhz, the original 8250-B performed flawlessly at
56000 bps. Dumb modems can use this test also (as explained above and in
the section carrier tests). Digital loopback tests require that you have 
an 8250-B, 8250A,16450, 16550,  16550A(x) or other 100% compatible uart in
your system. These uart's have built-in diagnostics. If you are using a PC
compatible internal modem or a PC compatible serial card, then you will
definitely have a compatible uart installed.  

There is a design difference between the 8250-B and other compatible chips
in this series. Some of the differences were explained above, but the
important difference for the loopback test is the way the different uarts
will respond.  The 8250-B allowed its OUT2 signal to become active during
loopback testing. The OUT2 signal is used by PC compatible machines to
gate the interrupt signal off of the serial board (or internal modem).
Later designs (8250A, 16450, 16550,16550AN) tri-stated this line. As a
result, the self-test diagnostics will not allow the interrupt signal to
gate off the board and interrupt the CPU. This would cause all digital
loopback tests on these improved chips to fail. The Modem Doctor handles
this by a brute-force read of the uarts. By sampling the Interrupt ID
register, the presence of an interrupt is detected, then the receiver
buffer register is read. This method is not as efficient as a true
interrupt-driven test would be, but it is accurate. The Uart does generate
the ID for an interrupt, the character is pulled out of the uart. In
version 4.0, the speed of this routine was significantly enhanced so that
it runs approximately at the same speed as a true interrupt driven 8250-B.

When running this test on an 8250-B, you will see the true speed of the
interrupt handling and processing. On others, you  will see the
brute-force method. Each is an accurate test of the uart and valid at any
baud rate selected. If this test does not run, but yet the analog test and
all other tests  run fine, it means that you do not have a compatible uart 
installed.  Some uarts that are not 8250's have a problem entering this
mode properly.  If the test does not start, do not be alarmed, because 




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page32


only 8250 and true compatibles will pass this test. However this test will
NEVER start and then fail unless you do have a hardware problem. You
should never pick up a character error using this test. If you do, you
have a bad uart or  CPU motherboard problem. Both tests open up windows
(like the analog test) and send and receive characters to the uart. If you
wish to know how to build a loopback plug, select the Loopback Plug
technical data section. Pressing ESCAPE or the left/right arrows is the
same as Option 4 and returns you to the main menu.  

      
4.41 Loopback Test Error messages         
---------------------------------           
Essentially the error messages for these tests are simple. In the loopback
test mode, if a character is received incorrectly, the error counter is
advanced and a report is issued at the end. If the analog or digital tests
fail to receive or transmit characters, the messages will explain that
either the transmit queue, the receive queue failed, or that the uart did
not respond to the tests. The last message may be displayed if you have a
non-compatible uart. If the uart fails to setup properly for the digital
loopback test (does not program its registers properly), a warning is    
displayed that there is an error in one of the registers. The message will
explain what is wrong and what it expects.  Also, if you are using the
wrong IRQ line for your comm port, you will receive an IRQ failure error.
See the warning message section for more details.                    


4.5 Options Mode
---------------------              
The options mode allows you access to the built-in 4k communications
terminal (Interactive Mode), and the report generator features. 




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page33

4.51 Interactive Mode
----------------------
As well written as the Modem Doctor is, there exists the possibility that
a modem or a system might not be compatible with the diagnostics. The
manual section allows you to send your own string commands to the modem,
read back data, and in fact you could use this as a mini-communications
program.  If you select this mode, a window opens with the banner
Interactive Mode. At the Bottom are listed the "Hot-Keys" you can use;

      ALT-B   This opens a window for you to change the baud rate.         
       Note: if you are on-line with a service this might cause an         
       error between the computer and the modem. Off-line conditions       
       should work properly. 
         
      ALT-C   Clears the screen. This only clears the window of data, and  
       leaves all your prompts.   
         
      ALT-R   This displays the Uart registers...handy for real-time       
       troubleshooting of RS-232 loops.      
         
      ALT-H   Help..this displays the basic AT Command set instructions 
       that  you could use to control your modem. Note that this is only a 
       basic set. Some modems have many extensions to this, so for         
       advanced work, consult your owners manual.      
         
      ALT-X   Exits the interactive mode and returns to the main menu.     

4.52 View Current Statistics
----------------------------
Whenever you log-in a comm port for testing, the Modem Doctor keeps tabs
on how many tests were run, the baud rates that were tested, and how many
errors you accumulated. You can view these statistics by using this
selection. These results are also displayed whenever you quit the Modem
Doctor.

4.53 Print Current Statistics
-----------------------------
If you wish a hard-copy of your test results, just select this option. You
will be able to send this to any one of the printers the modem doctor
finds available or to a file called MDR.RPT.


4.54 Reset Current Statistics
-----------------------------
Use this mode to reset all test results back to zero at any time.     




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page34

4.6 Setup Mode     
--------------      

The setup mode consists of 2 sections. The first, the setup modem section
was covered above. Use this to change the serial port under test, the baud
rate, and the type of test to be run.        

The second section allows you to select the colors that you wish to work
with while using the Modem Doctor. You can select default colors,
Monochrome (black and white), or create your own custom colors.

If you are using a color monitor, you can use window selections to pick
the colors you like and optionally save them to a file (MDR.CFG). If you
save them, then as long as this file exists, the Modem Doctor will use
those colors in place of the default ones. To return to default, either
erase the MDR.CFG file, or select default colors and save it to disk.

When you enter the color selection mode, you will be presented with three
different windows that will allow you to make legal color selections.
    
[ Mdr Color Selection Screen ]
Select from this menu the color of normal window and error backgrounds
Background
Black 
Blue  
Green 
Cyan 
Red 
Magenta 
Brown 
Gray 



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page35

Select from this menu the color of all window foregrounds & sliding bars
foreground colors;
Darkgray 
Lightblue 
Lightgreen 
Lightcyan 
Lightred 
Lightmagenta
Yellow 
White 

If you select two colors the same (or different intensities that are the
same), the Modem Doctor will tell you your selections are invalid. After
you have made your choices, you will be presented with a window that
allows you to save your choices to a file, use the choices without saving
or reselect. If you save them to a file, a file MDR.CFG is created or 
updated. When Modem Doctor loads the next time, it will use these colors
again.


4.7 Exit Program     
----------------     
This is the only way to exit the Modem Doctor. This is necessary because
the interrupt tables and controllers of your PC must be  returned to their
original state in order to avoid problems after you  use the Modem Doctor. 
Pressing Control-C or Control-Break during the Modem Doctor will         
cause one of two things to happen. First, it will ignore what you have
done if it is critical that the program not be interrupted, or second, if
it is at all possible to exit without damage, a window will open telling
you that you can Control-Break abort if you wish..answer yes or no. You
can Control-Break during all tests and at times from menus. If you choose
to quit, the Modem Doctor cleans things up properly and exits to Dos.
Please remember this is just an emergency way of doing an exit. Use the
Exit function from  the main menu as the correct way to end the program.
         
    
5.0 Error Messages and their Meanings     
-------------------------------------     
The Modem Doctor, if presented with an error, will make a diagnosis of the
problem. In most cases, this should be enough for you to figure out what
is wrong and go on from there to correct it.      
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page36

General Program Errors or Warnings
----------------------------------
1)   ABORT PROGRAM Control Break Key pressed..Aborting Program Run. 
     Do you wish to abort? [Y/N] : 
     - This means you have pressed the Control Break Key sometime during
     the program run. The Modem Doctor, unlike most programs, does not
     drop to dos with a Control-Break without cleaning up after itself.
     Answering Yes will clean up and stop the program. Answering no keeps
     the program running at the spot you left off at.

     If you answer Yes, you will see this message;
     Flushing Buffers.......Restoring Comm Port and Interrupt Vectors
     Program Aborted..all vectors restore.

2)   You Must SETUP a COMM PORT first....Press any key to continue 
     - If you do not select at least 1 comm port when the program first
     starts running, you cannot run any tests. This message explains why.

3)   Exchanging COM1 and COM2 Base Addresses in Memory
     COM1 Address was    %x   COM2 Address was    %x
     COM1 Address now is %x   COM2 Address now is %x
     Run MDR /X again to exchange again, these changes are gone when you
     reboot!
     - This messages is displayed when Modem Doctor is run in the exchange
     mode (MDR /x).

4)   Sorry...but I cant find a modem to use... Use Login Feature to
     Manually Log in a comm port.
     - The Modem Doctor needs at least 1 comm port installed at a
     conventional port address to run. If none are available, you have to
     use the manual login mode to start testing. You should never see this
     error message with a computer unless it has no serial ports
     whatsoever.

5)   Resetting modem to your default settings...please wait
     - Whenever you exit Modem Doctor and a microprocessor-based modem was
     detected, it will clean up after itself and restore your modem to
     initial settings. Uart only tests do not display this message.

6)   Your foreground color equals  background..please retry
7)   Your foreground low intensity equals background, please retry
     - These messages are displayed when you make color selection choices
     that would not be proper for the type of display monitor you are
     using.

8)   Warning..I could not create the MDR.CFG file. No colors saved to disk
     - Modem Doctor could not save the file to disk, perhaps there is no
     more space on the disk or the disk is write-protected.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page37
9)   Warning..I could not read the MDR.CFG file. No colors read to disk
     - You asked Modem Doctor to load the color configuration, however
     there was none found on your disk or in the current working
     directory.


Setup Mode Diagnostics
-----------------------
1)   No Response...resetting modem microprocessor ...attempt #%d
     - The Modem Doctor tried sending a simple AT command to your modem
     but it did not respond with a valid answer.

2)   Modem microprocessor command mode not detected
     - The Modem did not respond to a valid, simple AT command either
     because it is on-line, jammed, or not completely compatible.

3)   Modem microprocessor command bus active
     - The Modem Doctor received a correct response from the modem and
     placed it into the command mode.

4)   Software reset initiated
     - A software reset clears all test registers and resets the modem.

5)   Modem microprocessor memory tests OK
     - The Modem Doctor instructed your modem to run a self-test of its
     RAM/ROM contents. It responded successfully.

6)   Modem microprocessor memory may have a problem
     - The Modem Doctor instructed your modem to run a self-test of its
     RAM/ROM contents and did not receive the proper response. Your modem
     may or may not have a problem depending on the results of all the
     rest of the testing. If all other tests are ok, chances are your
     modem might have a memory problem. If other tests fail, it could be
     because your modem is not completely compatible.

7)   Modem ID reports a 1200 bps modem installed
     Modem ID reports a 2400 bps modem installed
     Modem reports a 9600 bps modem installed
     Modem reports a 9600 /1440 bps modem installed
     - All of these messages are based on receiving correct product codes
     from your modem. Some modem manufacturers however do not place valid
     product codes in their modems, so it is possible that you might see
     the Modem Doctor give you the incorrect type of modem. This does not
     affect testing, however it does affect the type of Modem Driver that
     is automatically selected. You can override automatic selections from
     the Carrier Menu by selecting the proper driver for your modem.

8)   No modem ID received...using Generic driver
     - No product code was received, so defaults are being used.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page38

9)   Modem microprocessor accepts setup commands
     Modem microprocessor did not accept setup commands
     - The Modem Doctor sends setup commands for all of its tests to your
     modem. If they were not received properly, you get an error message.

10)  An 8250-B Uart has been detected
     A 16450 / 8250A Uart has been detected
     A 16550AN/AF/AFN Buffered Uart has been detected
     A 16550 Non-buffered Uart has been detected
     - The Modem Doctor programs uarts differently depending on the type
     and the test running. This will tell you what type of uart chip you
     have installed in your serial port.
     

11)  Modem Control Register reading show that either the LOOP, OUT2, DTR
     RTS did not set properly to test. OUT2 and DTR are essential for
     proper-functioning communications. LOOP is necessary for the digital
     test to run.
     -Either the Modem Control Register is bad, or their is a problem with
     the serial port or modem.

12)  Modem Status Register readings show that there is no status coming
     back from the modem to the Uart. Neither RTS/CTS or DTR/DSR Pairs are
     active. Most comm programs can work without RTS/CTS, but DTR/DSR are
     needed by most. RTS/CTS are needed by most hi-speed modems for
     handshaking.
     -Your external cable may be wired wrong, or if this is an external
     modem, check that the cable is plugged in and that the modem is
     turned on.

13)  Line Control Register readings show that the word length selected is
     incorrect or you have a parity error. WS1 and WS0 should both be on
     indicating that 8 bit words are to be used. All other readings should
     be low. Parity errors could happen once but not every time. 
     -If either persists, then the Uart is defective or communications to
     the Uart are suspect.


14)  Line Status Register readings show a problem. The Tx Holding register
     THE and the Tx Shift register TSE should be the only active signals.
     No other signals should be active. If either TSE or THE are not
     active then the Uart is not resetting properly. Uart is suspect. If
     any other signal is high, and TSE/THE are both active, then you have
     a data overrun or framing error. 
     -If this repeats, you should then suspect the Uart or connections to
     the Uart from the computer.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page39

15)  Modem Control Register readings show that either DTR,RTS or OT2
     signals are not set properly. DTR & RTS are needed by most comm
     programs. OT2 is essential for interrupts to occur. 
     - Uart is suspect or the interface to the Uart from the computer bus.

16)  Interrupt ID Register readings show that an interrupt is pending when
     none should be. This can be caused by a modem being turned on and off
     as testing was conducted or if data was waiting to be read by a prior
     running application, or you are not using the correct IRQ line.
     -If this does not clear when you display the registers again, then
     the Uart is suspect or connections to the Uart from the computer, or
     you are using the wrong IRQ line for this comm port assignment.


17)  Interrupt Enable Register readings show that ERI Enable Receiver ints
     is not set properly. As a result, you might not get proper
     recognition of any interrupts being generated when a character is
     received. 
     -Suspect the Uart or connections to the Uart from the computer bus.

18)  Interrupt Controller has not responded to setting the IRQ4 line. This
     problem is on the system board of your computer. Run your computer
     diagnostics program to locate the error.
     -Normally IRQ4 is used for COM1 you might have a usage conflict.

19)  Interrupt Controller has not responded to setting the IRQ3 line. This
     problem is on the system board of your computer. Run your computer
     diagnostics program to locate the error.
     -Normally IRQ3 is used by COM2 you might have a usage conflict.

20)  Interrupt Controller has not responded to setting the IRQ7 line. This
     problem is on the system board of your computer. Run your computer
     diagnostics program to locate the error.
     -Normally IRQ7 is used by the printer you might have a usage
     conflict.

21)  Interrupt Controller has not responded to setting the IRQ5 line. This
     problem is on the system board of your computer. Run your computer
     diagnostics program to locate the error.
     -Normally IRQ5 is used by the Hard Drive Controller you might have a
     usage conflict.

22)  WARNING...This COMM PORT MODEM STATUS & ID REGISTERS ARE DEFECTIVE
     - This is a severe error. It means that one or more of the uart
     registers are defective. This could also be caused by logging in a
     non-existent comm port in the manual mode. You should never see this
     message displayed in an auto-detected mode unless your uart is
     definitely defective.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page40
Uart diagnostics
-----------------
1)   Confirmed Uart setup to proper baud rate
     - The uart Dlab (divisor latch) settings are polled to make sure they
     match what the Modem Doctor intended. If not, you see the following
     displayed;
     ERROR..Uart did not set to desired baud rate
     (you should not see this message unless the divisor latch in your
     uart is defective).

2)   Trying a hardware reset of the modem microprocessor
     - None of the attention commands or soft-resets to the modem have
     worked to place the modem microprocessor on-line. A hardware reset
     simulates turning the power on and off to the modem and uart.

3)   WARNING...This unit does not have a compatible modem attached
     - After many tests and hardware/software resets, the Modem Doctor
     finally deduces it cannot work with this modem because it is not
     compatible. If you have a compatible modem, then you might have
     selected the wrong baud rate to work with, or you forgot to turn the
     external modem on. If there is a hardware problem, the next screen
     you will receive will be the uart diagnostics pointing out the
     problem. 

4)   Modem microprocessor ON-LINE
     - The Modem Doctor successfully communicated to the modem
     microprocessor.

5)   Testing Uart hardware only
     - You are running uart-only tests.

6)   WARNING...The Modem Device appears to be off or not connected
     - No status is being received from the modem indicating it is on. If
     it is on, you might have a bad cable. If you are testing a uart that
     is hooked up to a serial mouse, then you will always see this message
     displayed, for a serial mouse does not use traditional uart status.

Report Generator Messages
--------------------------

1)   You selected to clear the report stats.This means that any errors
     found will not be reported in a final report format. 
     Are you sure [Y/N]: ? 
     - All report statistics will be cleared if you respond Yes.

2)   Send to file MDR.RPT 
     Send to printer LPT1:
     Send to printer LPT2:
     Send to printer LPT3:
     Do not Print /Return
     - The printed form of your report can be sent to any one of 3 dos
     printers (if the Modem Doctor detects they are installed) or to a
     file called MDR.RPT.
     
3)   Print Buffer full or Printer off-line
     - If the Modem Doctor cannot communicate with the printer, it is
     either receiving a busy signal from the printer (which clears when
     the busy signal is lifted) or the printer is off-line.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page41

Static DTR/DSR   RTS/CTS  Handshaking tests
-------------------------------------------

1)   Lowering DTR Signal..waiting for DSR to follow
     DSR did not follow DTR dropping or is set as a permanent ON
     DSR followed DTR drop...normal for all devices
     DSR did not follow DTR raising..possible cable or modem setup problem
     DSR followed DTR raise or is set as a permanent ON
     - The DTR/DSR tests work by lowering the DTR (Data terminal ready)
     signal from the computer to the modem. If the modem uses this type of
     handshaking, it should respond by lowering its signal that is picked
     up in the uart modem status register as a DSR (Data set ready)
     signal. If not, then either the modem is not set up properly
     according to standard handshaking protocol or you have a bad cable. 
     Please note, a failure to follow DTR/DSR handshaking might keep some
     communication programs from working with your modem. If you get an
     error, consult your modem manual or have the Modem Doctor test your
     cable to an external modem with a loopback plug.
     
2)   Lowering RTS signal..waiting for CTS to follow
     Dropping RTS Signal to modem
     Modem is using RTS/CTS Handshaking properly
     Modem is not using RTS/CTS Handshake hold
     Raising RTS line    
     CTS did not follow RTS dropping...usually normal for modems
     CTS followed RTS drop...usually normal for serial devices
     CTS did not follow RTS raising...you could have a cable problem
     CTS followed RTS raise or is set as a permanent ON
     - Like DTR/DSR, RTS/CTS handshaking tests check that if the computer
     lowers its RTS (Ready to send) line, that the modem responds in kind
     and that the CTS (Clear to send) status is echoed to the uart modem
     status register. This signal is not as important as the DTR/DSR,



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page42
     however if you have a high speed modem, this test should pass to
     insure proper high-speed transfers.


Carrier and Dynamic tests
---------------------------
1)   Sending Carrier Test info to modem
     - Commands to self-connect are beings sent to your modem.

2)   T1 Loopback commands sent waiting 5 seconds till start of test
     - The alternate &T0/&T1 instruction set is being used for self tests.

3)   Carrier Detected...waiting 5 seconds to the start of the test
     - The RLS (Received line signal) went to an active state or the Modem
     Doctor received the words CONNECT from the modem during self-testing.
     The 5 second delay is necessary to allow some modems to settle down
     for proper reception of characters during self-tests.

4)   Using &T1 Loopback command set to modem for this test
     - If you selected the Generic driver and the Modem Doctor failed to
     connect, it uses this &T0/&T1 instruction set automatically for its
     testing. 

5)   Sending 20 Characters to the modem
     - All Dynamic DTR/DSR and RTS/CTS tests force the modem to self
     connect. Next either the DTR or RTS lines are dropped, and 20
     characters are sent to the modem. If no characters are received back
     to the computer from the modem, then the Modem Doctor reports that
     the dynamic handshaking works. If a character is received, then it
     means that type of dynamic handshaking does not work.

6)   Sending Xoff Signal to modem
     - An ASCII character that tells the modem NOT to send data has been
     transmitted to the modem for dynamic Xon/Xoff testing.

7)   Modem is using Xon/Xoff Handshaking properly
     - 20 characters were sent to the modem, and it properly did not send
     anything back to the computer.

8)   Modem is not using Xon/Xoff Handshake hold
     - 20 characters were sent to the modem, but it send them back to the
     computer, indicating it did not recognize the dynamic Xon/Xoff
     handshake test. Normally most modems do not need this handshake.

9)   Sending Xon Signal to the modem
     - This restores the modem to proper operation and clears its internal
     data buffers.



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page43


10)  Warning...I can't test this modem because there is no RTS/CTS
     signals. If this is an external modem, you may not have a proper
     cable or the modem is off. If you have an internal, you might have a
     port conflict or a configuration switch set improperly.
     - Most times this message is due to an improperly wired cable or a
     improper configuration of some modem switches. See your modem manual
     for setup, or use a loopback plug and the Analog loopback mode to
     test the cable.

11)  Setting up the modem for the Originate Mode Carrier Test..please wait
     Setting up the modem for the Answer Mode Carrier Test.....please wait
          -Self tests commands are being sent to your modem for the
          different connect modes and frequencies.

General program warnings
------------------------
1)   Note...you hit the Escape Key during testing. This means the results
     of this test is inconclusive. You should run these tests again
     without escaping for a valid performance check.
     - You can press escape during nearly all tests that the Modem Doctor
     runs (except during crucial communication modes between the modem and
     computer, in which case as soon as this communication is completed,
     the Modem Doctor will escape with this warning.

2)   INTERRUPT FAILURE Warning
     Note...No interrupts were detected or generated during testing. This
     could be due to a failure of your serial port to generate interrupts
     or you have selected an IRQ line or Comm assignment in error on the
     serial card or in a custom assignment from the Login menu manual
     mode. Check your settings and if all is ok, suspect the Uart or
     serial port card.
     - This warning can be received anytime that the Modem Doctor tries to
     talk to a modem or a uart (in analog loopback test). The most common
     cause of this problem is an incorrect jumper or comm port assignment
     on your modem or serial port. See the section on IRQ's and their
     meanings to select the proper IRQ line for your port.

3)   Fixed Rate Advisory
     Note...I had to lower the baud rate to match the connect rate. What
     this means is that you are using a high speed modem with a fixed link
     rate in a variable rate mode. You might want to check your DTE/DCE
     settings in your modem Nram if this is not desired.    
     - Most high-speed modems keep the link between the computer and the
     modem running at a fixed rate, while the connection between the modem
     and the remote modem (bbs or service) operates at another rate. This
     method allows data compression and greater throughput (characters per
     second) to be received by the computer. If you have a high-speed 



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page44
     modem, check your settings. It is recommended you run in the fixed
     link rate whenever possible so you can gain all the benefits of data
     compression with the new data protocols.

4)   Failure Report 
     RLS (Received Line Signal Detect) indicates that a carrier has not
     been received by the UART. Check modem or connector wiring 
     - This is an advisory that you might have a cable wired incorrectly
     between your computer and external modem or that your modem does not
     raise the RLS signal. This is only critical if your communication
     programs never display the words "ON-LINE".

5)   Modem not responding to the Analog originate test
     - Modem never went into the self-test mode. 

6)   Carrier Not Detected..5 Sec Sync Delay till start of Answer test    
     Modem not responding for Analog answer test
     - A carrier should have been received by the RLS signal or the words
     CONNECT from the modem, if not, the &T0/&T1 instructions are sent and
     the test is performed. If the modem does not respond to this test,
     then the last message is displayed indicating a problem getting the
     modem to self-test itself.

7)   RLS Warning
     The Received Line Signal of your modem stayed active throughout the
     testing. Some modems have a jumper or switch that should be set to
     carrier is active only when a signal is detected. Check your manual
     to change this setting so the Modem Doctor and comm programs will
     work properly. Check your modem to make sure that Carrier isn't
     forced high 

8)   NOTE.Carrier (RLS Line) active, it should not be..test may not be
     valid.
     - The RLS signal was always active. This means the Modem Doctor
     cannot figure out if the modem ever entered the self-test mode. Also,
     your communications program probably will always display the "ON-
     LINE" status. Unfortunately, this type of situation is the default
     setting from the factory of most 2400 bps modems. It can be
     reprogrammed by a simple setup command. See your modem manual for
     instructions.

9)   SET YOUR MODEM TO ORIGINATE CARRIER FREQUENCY...PRESS TO CONTINUE
     SET YOUR MODEM TO ANSWER CARRIER FREQUENCY...PRESS TO CONTINUE
     - Dumb modem tests require you to flip switches on your modem.
     Usually this is the AL button. After you do this, the Modem Doctor
     should see a carrier and continue proper testing.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page45

10)  Loopback Transmit Error
     Loopback Queue Failure
     ESCAPE KEY PRESSED....ABORTING ALL LOOPBACK TESTS
     UART Control Lines set...waiting 2 seconds for CTS Handshake
     NO CTS Handshake Detected .Continuing test even though plug/line
     maybe bad
     Loopback Queue Failure 
     UART not responding using Analog Loopback Plug mode
     No Loopback Plug or General Failure of the Hardware
     Analog Loopback Test passed without any errors
     - If the analog loopback did not return characters or generate an
     interrupt, then the uart may have been tested without a loopback plug
     attached or there is a failure of the uart. If all was ok, a passed
     message is displayed.

11)  Loopback Transmit Error
     UART not responding to the Digital Loopback test
     UART Registers did not set for Loop back test 
     UART Digital Test passed without any errors
     - If no characters were received, then either the uart you are
     working with is not 100% 8250-B compatible or defective. If
     everything was ok, a passed message is displayed.

12)  Warning, Comm Port 1 is using Com Port 2's address.You should
     reconfigure your Serial Card to the correct Address.
     Otherwise,Communication programs won't properly operate.

13)  Warning, Comm Port 2 is using Com Port 1's address.
     Do you want me to correct this for testing purposes only? [Y/N]: 
     - These error messages are received if the Modem Doctor found a Com2
     reserved address as Com1, or visa versa. Many PC owners that do not
     have built-in serial ports make the mistake of assigning a Com2
     address without having a Com1 installed. The ROM-BIOS cannot correct
     this problem or even detect it. The Modem Doctor does and will point
     out the error to you.

14)  Flopping COM1/COM2 pointers in Memory only. Note..this is only valid
     till the next warmboot of your system. You must change your serial
     card settings to keep this permanent. Note...tests may not work
     properly because of this error
     - This message is displayed either in the exchange mode or when the
     Modem Doctor is asked to fix the problem of addresses in memory for
     testing only.

15)  Logging out incorrect COM1 for testing purposes.
     Logging out incorrect COM2 for testing purposes.
     - If you decide not to fix a problem, the incorrect assignment is
     logged out of Dos and your choices for testing.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page46


16)  ALL Available COMM ports are in use...Press to Return
     - If 4 comm ports (shareware) or 8 comm ports (registered) are
     already in use, you cannot add any more in the auto-login mode to the
     Modem Doctor. Use the manual mode to override your choices for
     testing comm ports higher than 8.

17)  Comm (x) Not Found ... override ? :
     - You told the Modem Doctor in manual mode that a port existed with a
     certain base port address. It was not found. If you override, this
     address is logged in for testing. This allows you to test a defective
     uart chip that might not be recognized by dos or the Modem Doctor as
     valid.

18)  Sorry...your Modem.dat file has an invalid Comm port
     Sorry...I cannot find Modemdr.dat file in this directory
     
     WARNING...RESERVED PORT ADDRESS in Mdr.dat file
     correct address in hex must be between [ ]..ie [2F8]

     Sorry...your Modem.dat file has an invalid Speed..using 300 baud

     Modem Did not respond to setup string..run the Modem Doctor to check
     your modem.

     Programming according to file Mdr.dat
     Modem Responded to setup string and is ready for use

     - Running Modem Doctor in the setup (/s) mode, the file MDR.DAT is
     queried for the proper comm port, address, speed and setup string. If
     any of this is invalid, one of the messages above is received. If it
     is valid you receive the message that Modem Doctor is programming
     according to the Mdr.dat file.





  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page47

Section 6. Special Modes and Information     
---------------------------------------- 
The Modem Doctor supports a wide range of "AT" instruction set modems.
There are however "supersets" of instructions that manufacturers have used
to enhance the capability of their modems. Although there is some
structure  in this area, not all commands intermix between different
brands and lines of modems. This situation is analogous to PC computer
printers, and it  calls for a similar approach. The Modem Doctor now
supports the use of "Modem Drivers" to meet these special needs. 
Additionally, due to the increase in computers using the ISA bus, there
are more interrupt lines free to be used by modem manufacturers. For test
purposes, you can use IRQ3,4,5,7 for your hardware testing. Using the
special /S switch, you can send initialization codes to your modem from a
batch file or other command-line need to setup the modem for use. Finally,
to add some flexibility to the Modem Doctor's diagnostics,  some special
"Hot-keys" have been added. These have been discussed  above in an
operational sense, however in this section you will get some idea of how
these can help you speed up testing and test defective or non-compatible
hardware.   
         
6.1 Using Modem Drivers 
-----------------------  
Most Modem's today are built on the original "AT" instruction set that was
developed by Hayes Micromodems in their 1200B series. This driver, named
the Generic Driver in the Modem Doctor, is used exclusively if the modem
returns an ID indicating it is a 300,1200 or 2400 bps modem. Also,       
if the modem does not return an ID, this Generic Driver is used.  The
Generic Driver can be used to test nearly all modems, however there are
some 2400 bps modems that were  built using the command structure that
Hayes Micromodems put into their 2400B line. These modems used an "&" for
some  modem setup and command functions. The Modem Doctor has a driver for
these modems called the "&T0/&T1" driver. Using this driver, the Modem
Doctor can perform a simulated  carrier test. During your testing of this
type of modem, you will notice the MB (Modem Busy) light flashing on your  
external modem. This driver (and all others) is user selectable, however
the Modem Doctor will automatically switch to it when performing the
carrier tests if the Modem was detected to be a 2400 bps modem.  The last
driver currently supported is for US Robotics Courier HST and HST
Dual/Standard V.32 Modems. The Modem Doctor recognizes these modems upon
initial testing and sets up its test parameters a certain way to
compensate for their Carrier self test limitations. 
        
Because of the trellis-encoded Async/modulation of the USR HST Mode, the
maximum Carrier test Baud rate is 2400 bps (see the USR Manual for this
info). To work around this, the Modem Doctor Programs these modems to use
a fixed DTE/DCE  Rate with the &B1 Parameter, allowing communications to
and  from the modem at speeds up to 19200 bps. When working in the V.32 



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page48

mode however, the Carrier test (and all loopback tests ) can be performed
at 9600 since the modulation is symmetrical again. Also when the selected
baud rate is higher than 2400 bps, the MNP Protocol switch is set to &M0,
otherwise if there was an error, the Modem would try to correct it instead
of passing the error on to the Modem Doctor. None of these changes is
saved to the non-volatile ROM,  so you should not experience a problem.
However, the V.32 and Dual Standard Modems might experience a problem if
register S13 is not set to 1. This is the default from the factory and
insures that the modem will be reset when the DTR line is dropped. If you
are experiencing a problem, use the interactive mode and type S13=001.
This change is not permanent. If you are using a USR Dual Standard Modem,
then the Modem Doctor will test whatever mode is active via the B switch.
If the current Modem setting is B0, then the V.32 mode will be tested, if
B1 is set, then the HST mode will be tested. You can change this setting
to whatever you wish by using the Interactive mode, type ATZ, then type
ATB0 &W or ATB1 &W. This has to be written to the firmware in order to
stay valid throughout all the testing, but the ATZ  command before a save
will always recall your settings,  insuring you have only changed the one
parameter. Please note, this is included for advanced users and is one of
the reasons for the interactive mode. It is not necessary for you to do
this to test your modem unless you wish to. For more information, see   
the section regarding "Quirks". As mentioned above, all of the Modem
Drivers are self- selecting, but can be user-selected. The status line of
your screen will display the current Port assignment, the current Baud
rate, the status of the Microprocessor, and the current modem driver being
used. Select carrier test from the main menu and move the bar to "Select
Modem Commands". You will be given a choice of the available drivers.
After you select, the status line will be updated, and you can either
start the test or return to the main menu.  The reason for modem drivers
is to allow more individualized testing of a particular type of modem, and
to allow for more modems to added to the list of specially supported
modems.

6.11 External Modem Drivers
---------------------------
Supported starting with version 4.0 is the ability to read a specially
created external modem driver file. This file makes it possible to handle
any future changes in modems by simply releasing a new driver file. When
the Modem Doctor first begins, it looks in the default directory for the
existence of this driver file. If it exists, a valid checksum is performed
to see that it is indeed a modem driver. If so, this external set of
commands is inserted in place of the internally contained modem drivers.
As of the initial release of 4.0, there are no external driver files in
circulation. Driver files will be released under 2 conditions; first, if a
bug is detected in any of the driver routines, a shareware driver file
will be released on the bulletin boards at no cost. Registered users will
be mailed at no cost the updated driver file. Second, if a registered user
would like a custom modem driver file written, we will create one at 



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page49


minimal charge as long as proper documentation for the type of modem is
submitted. If you wish to have an interface written, please contact us for
pricing and appropriate  information that we will need to do this for you.

         
         
6.2 Using the Command Line Mode switch /S 
----------------------------------------  
There can be special occasions where you need to initialize and test a
modem before another program can be run. The Modem Doctor now supports a
method to do this. Using the command line switch /S, you can instruct the
Modem Doctor to "wake-up" a Modem and send an initialization string to it.

Although similar to our product Comset, it offers some additional
flexibility but does not allow the serial port only setup that Comset
does.   To use this special mode, you need to have a companion file named
MDR.DAT that you create  with any ASCII text editor that follows this
format;  

     1) All information must start on the first space on each line         
     and can consist of up to 3 lines. Line 1 and Line 2 are      
     required.  
         
     2) Line 1 = Port Number 1 through 8 and an optional port address in
     [] ( For settings greater than Port 4, this address is required).
            
     3) Line 2 = the Baud Rate you wish to use (300-56000 or 3-560 are
     acceptable).  
 

        
     4) Line 3 = the initialization string you wish to send. This string
     must start with AT and can be up to 80 characters long. If no string
     is included in the file, or if it does not begin with the letters AT,
     then ATZ is automatically sent to the modem.   
         
     Example..to setup Port 2 to 19200 and set S7 to 255;  
     Make a file called MDR.DAT that looks like this;        

         2 [2F8]<--note for Port 1-4 unless it is non-standard [2F8] 
                   is not needed   
         192   
         AT S7= 255  
     Next, start the Modem Doctor by typing  MDR /S. As long as the
     MDR.DAT file is in the current working directory, these commands will



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page50
     be sent. If not, you will get an error message stating that MDR.DAT
     could not be found.  



     Why not have the Modem Doctor search all directories for the file?
     Well, the reason is so that you can put MDR.EXE in a Dos path but
     have individualized setup MDR.DAT files in different subdirectories
     for different programming needs. Instead of constantly changing the
     file, make different ones and call MDR.EXE. It will only use the
     MDR.DAT file in the current working directory.
         
     After the initialization string is sent, the Modem Doctor will wait
     up to 10 seconds for the word "OK" to return from  the modem. If it
     does not, you will get a message saying the modem failed to setup. In
     either case, whatever your modem sent to the Modem Doctor will be
     displayed. If you see the word "ERROR", that was sent from the modem,
     it probably means that your initialization string was not correct. No
     message returning could indicate a problem with the modem, or an
     invalid baud rate. When it finishes executing, the Modem Doctor
     returns an errorlevel to the calling program. An errorlevel of 0 is
     normal, an errorlevel of 99 indicates a failure. You can use these
     errorlevels to control batch processes if you wish to.  

     Also, this mode of the Modem Doctor uses bios screen writes, so all
     of the information displayed can be redirected to a printer, a file,
     or whatever other DOS device you wish.  Example...to send the output
     of this test to a file called Test.txt...  

          MDR /S  > TEST.TXT or    MDR /S >> TEST.TXT (if you wish to
          append an existing Test.txt file.  

If the Modem Doctor setup was successful, the modem's DTR and RTS lines
stay active, if not, they are dropped.  If you need more specialized
command-line modes of operation, you might consider Comset. Comset allows
Serial Ports and Modems to be setup at various rates and under various
conditions. Registered Modem Doctor users get a 15% discount! You can 
find Comset on most BBS's as COMSET7.ZIP.   






  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page51



    
6.3 Using the Hot-Keys 
----------------------  
Hot-Keys are combinations of the ALT key plus a letter. The Modem Doctor
adds several of these Hot-keys to make it easier to test  modems at
different baud rates and to  circumvent some of the error checking that
the program performs under normal circumstances.  
         
ALT-B Change Baud rate - 
If you are testing a system that you suspect has a problem, it is best to
use the setup mode when changing the baud rate. The Setup mode will test
all the registers, and the modem microprocessor (if selected) and assure
you that all the hardware is communicating properly at each baud rate.
However, if you feel a system is running fine, using the ALT-B from the
main menu can save time when running tests at different baud rates. Press
ALT-B  and select the baud rate (taking care not to select a rate higher
that what your modem is rated for if you are doing modem tests). ALT-B
works from the main menu, and from inside the Manual interactive mode.   
         
ALT-C Clear Screen - 
This key is only active inside of the Manual interactive mode and is used
to clear the text window of any characters.  
         
         
ALT-F Force Microprocessor on-line - 
The Modem Doctor has many tests built-in to verify the working condition
of a microprocessor-based modem and will not allow a modem to be tested in
the "AT" instruction set mode if it has not properly addressed and setup a
modem microprocessor. Using the ALT-F combination forces the Modem Doctor
to perform tests as if it had properly setup a modem. This feature should
be used with care, however  its primary benefit is to help you test a
malfunctioning modem to see exactly what commands it will respond to.
Pressing ALT-F also updates the status bar to indicate that the modem
microprocessor is on-line (which may or may not be the case after this
command was issued). Version 4.0 of Modem Doctor makes this hot-key a
toggle, so pressing 1 time will change the on-line status. Pressing again
returns it back to normal.

ALT-H Help -
You can press this key at any time to get help on a topic or general help
depending on if you are in a menu or at the main menu selection bar.

ALT-R Register Display - 
This is only active inside of the Manual interactive mode and is used to
display the status of all Uart registers on the screen for diagnostic
purposes.  
         



  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page52


ALT-X Exit Mode - 
This is only active inside of the Manual interactive mode and is used to
exit this mode. 

Control -Break
--------------
This allows an immediate exit from anywhere permissible inside the Modem
Doctor, however it offers you a choice to clean up or to continue. You
should not use this mode, it is better to exit via the Main menu
selection.
         

6.4 Logging in Defective Ports 
------------------------------  
If a serial port Uart is defective, the Modem Doctor will refuse to log it
in for testing. This is necessary because there is no way for it to know
what ports are defective and what are non-existent. However in Version
4.0, you can now log-in a defective chip for testing. The procedure to do
so is explained above under Manual Login. The reason for doing so however
might not have been apparent. If any register of a serial port is
defective, it might not function properly. Logging in this defective port
will give you the full benefit of the Uart and Serial port diagnostics.
Error messages will be displayed, in most cases there will be multiple
error messages. There are two possible causes of a defective port; the
Uart chip and the Serial Port address system. If it is a chip, simply
replacing the chip fixes the problem. If it is a serial port instead, then
the same problem will repeat. How do you approach this? Well for starters,
check that the strapping on your serial port board matches the correct
COMM port assignment (ie strapped for COM1 for COM1..etc). Next, if there
is user selectable IRQ assignments, make sure it again matches the COMM
port assignment (IRQ4 for COM1/3, IRQ3 for COM2/4, IRQ5 for COM7/8, IRQ7
for COM6/7). If all this is set properly, then you can suspect the chip,
but also the Serial Port hardware that gates the address of the chip to
the computer. Finally, if you get warnings about status, but the chip logs
in, then  you might just have a bad cable from the computer to the modem
(NOTE: The Modem Doctor does not consider this an error but simply
displays a warning and allows the Uart to be logged-in for use).       
         




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page53


6.5 What tests cannot Do     
------------------------     
Although I tried to be extremely thorough in my tests, there are
somethings that tests just cannot do or pinpoint. If you are having
problems with excessive line-noise, you might have a bad connection
between your modem and your telephone wiring in the house. Another
possibility, although remote, is that your modem does not offer the
correct input impedance to the telephone line. This can cause poor  
connections. The problem is with the electronic design of the modem, and
again, it is more prevalent in inexpensive modems. Also, tests cannot
check that the communications program you are using is set up correctly.
At times,  installing a communications package can be very challenging for
a novice user. Tests also cannot check the wiring in your serial Cable.
The Modem Doctor will tell you if a handshaking pair is missing, but it
cant tell you why. It could be because the Uart is bad, but more than
likely, your RS-232 Cable doesn't carry all of the handshaking signals to
or from the external modem or serial device. This can be important if you
are using a high-speed modem. Most High-speed modems will drop the CTS
line when their communication buffers are full. Previous Modems ignored 
the RTS/CTS signals and instead used the DTR/DCE pair. What this means is
that if you buy a new modem, it might not work with the older-cable (yet
at the same time the older modem will work..which might lead you to
believe that you have a defective modem).      
         
6.6 Quirks with Some Modems     
---------------------------      
Carrier tests - 
Some Modems have two "AT" instruction sets, usually referred to as
Compatible and Enhanced. If your modem does not perform a carrier test at
speeds below 4800, then this is usually the case. Some modems provide a
dip-switch or a toggle switch to select either mode. Setting your modem to
the Standard Compatible Mode should get rid of your problems below 4800
bps. Also, make sure you select the Generic Compatible Modem Driver unless
you are sure your modem matches the modem's that have special drivers
written especially for their use. At speeds above 4800 bps, the Modem
Doctor is only compatible with USR V.32, Dual Standards (V.32 and HST) and
HST brand of modems, Hayes V9600 and Ultra 9600, and Courier 2400 modems.
If you wish to test another brand of modem that is not compatible, simply
turn off any modem-hardware error correcting using the Manual mode and
following the information in your modem users manual. Then select the
Generic Modem Driver and you should be able to test your modem properly.
Finally, if only one of the tests (Originate or Answer) runs and NO      
CARRIER is displayed for the other, the problem lies with the Enhanced
Command settings of your modem. Hayes Modems use &T1 through &T8 commands
for their 2400 and also have other special switches. The &T0 command set
is tried by this version of the Modem Doctor automatically, however there 





  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page54
is no compensation for any other type of modems that use non-standard
commands. Again for the sake of compatibility with the widest range of
modems at speeds below 4800, this cannot be corrected for in this version.
Considering the vast numbers of "AT" compatible modems in the marketplace,
these two exceptions are minor and will not affect most users. Finally,
users of 8250 compatible Uarts that do not support the Digital (Chip)
Loopback will get an error. This should be of no concern.  However if the
test runs for a while, then fails, it could indicate a problem with your
Uart. This is explained in the pull-down window in the program. The Modem
Doctor has been tested on about 25 Modems from Major Manufacturers and on
a variety of Clones and Compatibles (plus the "Real Thing"). It is
possible that a certain combination of hardware still might give problems,
however if you are a registered user, I will find a way to make it work.  

         
         
Section 7. Benefits of Registration     
------------------------------------      
Thank you for your registration. The Current Registered Version # of the
Modem Doctor is 4.0R. All Registered Users are entitled to free
Maintenance updates and these will be reflected by changes in the decimal
fraction number..ie  4.01, 4.02. Also, if a new super-duper version comes
out (5.X or 6.X), all registered users will be able to update for only $7
(plus shipping,handling and tax where applicable). Currently registered
users of version 2 and 3 can update for $5 (plus shipping, handling and
tax where applicable). If you have trouble with the Modem Doctor, or
questions, feel free to call or write. When doing either you will need to
have the Version Number, your serial number,  and in some cases the Module
Identification Number. The Version number is displayed when you first
start the program along with the serial Number. The Module Identification
numbers can be displayed at any time from the main menu after you pass the
initial setup mode. Simply type a # sign, and all of the modules that make
up the Modem Doctor will display their version numbers on the screen.
Right now, all Modules have identical version numbers from program to
program, but in the future, there could be custom modules for registered
users, so in this case the Module ID could become important. You can reach
us with your questions at 410-256-5767 or write to ;
                                Hank Volpe
                               PO Box 43214
                             Baltimore MD 21236
         
               Thanks again for registering the Modem Doctor.

You can always download the latest shareware version and other communication 
utilities from the Modem Doctor BBS at 410-256-3631 (300/1200/2400/9600 HST 
[soon V.32bis]). Also, if you write your questions on the BBS, you will get a 
faster response than if you had written via the mail. 





  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page55

Notes -     [+] References to USR /Courier/Dual Standard/HST
                     Copyrighted by US Robotics     
         
         [++] References to AT Instruction Set ,Smartmodem,Hayes
              Copyrighted by Hayes Inc.
         
         References to MNP refer to An error free protocol 
         Copyrighted by Microcom Inc.     

        References to dos, microsoft, copyrighted by IBM or Microsoft
        References to 8250B or other uarts are copyrighted by a 
        variety of manufacturers including (but not limited to ) 
            Intel, National Semiconductor.
  
         
         
Disclaimer -  
It is not the intent of the author to recommend any brand of modem over
another nor to infringe on the copyrights of the manufacturers by
mentioning their products. A modem fits a need, and whatever one works for 
you is the one you should have. As time goes on, more modems will be added
to the list of "special enhanced " tests. The modems mentioned are done so
only because of the popularity they enjoy and for no other reason. All
programming of modems for testing is done with simple character strings,
similar to any type of data that can be sent to a modem or a serial port.
Any modem, whether AT compatible or not, can be handled by the Modem
Doctor with special software drivers. These software drivers will be
distributed free of charge as needed for general use. Custom drivers
created by Hank Volpe for particular clients however will require a fee
for handling and programming time.




  The Modem Doctor Ver 4.0 copyr 1989,1990,1991 Hank Volpe     Tech Reference
                                     Page56

Modem Doctor History
       
         Ver 4.0 -  New tests added for dynamic handshaking and static 
                    handshaking. New report generator features, new
                    exchange mode. Higher baud rates, cleaner windows that
                    grow to meet commands. Recognition of mouse inputs via
                    a compatible mouse driver. Expansion of internal modem
                    drivers and ability to read external modem drivers.
                    Improved brute-force reading for faster digital
                    loopback tests. Automatic aborting of modem tests when
                    IRQ failures are detected. New advisories for fixed-
                    link rate, IRQ failures, wrong comm port assignments,
                    swapped comm port assignments. Addition of custom
                    color selections, pulldown windows that stay when
                    left-right arrow keys are moved. Updating of 16550 AN
                    support for resetting and clearing buffers.
                    Replacement of all internal comm drivers with new dos
                    independent routines. Correction of many (and
                    hopefully all) spelling errors.

         Ver 3.0 - New tests added for 16450/16550/16550AN Uarts.
                   Improved Control-Abort handling, Regs command now 
                   performs a full diagnostic call when activated. 
                   Hot-Keys added (Force Micro, Baud Rate Select). 
                   Modem Driver software added to program, Status Bar 
                   added to program. Support for IRQ 3,4,5,7 added 
                   via COM1 through COM8 log-ins. Speed increased to 
                   38.4KB. /S Command line option added for setup of 
                   a modem including batch file errorlevel support. 
                   Escape key functionality added to Carrier Tests 
                   and the loopback tests.
                                      
         Ver 2.2 - Corrects a bug in Ver 2.1 Communication routines
                   that caused some modems to lock-out because they 
                   were waiting for two carriage returns to begin. 
                   Also it added 4 diagnostic Uart tests
         
         Ver 2.1 - This version was a Beta test. A Beta tester 
                   accidentally uploaded this to several boards. 
                   Please remove all Ver 2.1S software that you may 
                   find.
         
         Ver 2.0 - This version also was a Beta test with support
                   for COM1-2 and 2400 bps maximum
         
         Ver 1.0 - First test version
