Malch Silly Counter:
Visitor 1030464
Fight Censorship
 Map   New   Links   FAQ   Photo   Malch   Search 

Data Communications FAQ (Windows Version)

1. Introduction and Purpose

This document is intended to help Microsoft Windows users who have established (or are in the process of establishing) dialup Internet connections using SLIP or PPP. It assumes that those users will want to achieve high speed connections of at least 14,400 bps and, in most cases, 28,800 bps. Many of the following guidelines are also applicable to serially connected ISDN Terminal Adapters such as the Motorola BitSURFR and 3Com Impact.

It is not intended as a comprehensive guide to the Internet. There are many fair to excellent books which already address this need. It does, however, provide some practical advice on the data communications aspects of such a project including the issues associated with the dreaded "Comm Overrun" error.

2. Comm Overruns

Comm Overrun errors are reported by Winsock programs such as Trumpet. They arise when your PC is unable to keep up with the transmitted data. Although your computer will generally recover without intervention, large data blocks will need to be re-transmitted, significantly reducing overall system performance.

Comm Overrun errors are a source of great confusion. If these errors are driving you nuts, don't worry :-) Simply study this document carefully because it almost certainly contains the solution. In fact, you may want to print a hard copy now.

One of the many variables affecting overruns is the system loading so, do not be surprised if you find that their frequency varies depending on what programs are running and how they are being used.

3. Selecting a Modem

You will of course need a modem. There are literally hundreds of makes and models ranging in price from under $100 to more than $1,000.

Modems can be segmented into two broad categories.

Internal modems connect directly to your PC bus whereas external modems connect via one of your PC COMM ports. This difference can be very significant (see discussion of UARTS in the next section).

When using an external modem, be sure to purchase a high quality cable to connect it to the comm port on your computer. Some cheap cables do not support hardware handshaking which is essential for reliable high speed communications. Typically, these cables only provide 3 or 4 conductors rather than the 7 (or more) required. Support for the following RS232 signals is recommended as a minimum:

Other important features to consider when selecting a modem include:

In order to communicate at speeds of up to 14,400 bps, you'll need a modem which supports V.32bis. In order to communicate at speeds of up to 28,800 bps, you'll need a modem which supports V.34.

V.Fast and V.FC were interim and proprietary standards developed so that modem manufacturers could sell 28,800 bps modems whilst the V.34 standard was being developed. The V.Fast and V.FC protocols may be important if you need to establish 28,800 bps connections with sites that do not yet have full V.34. However, V.34 is the protocol of choice for the future and users who are looking for a 28,800 bps modem should focus on that capability.

The author elected to purchase a US Robotics Courier V.Everything External modem and has been very satisfied with it. This device is relatively expensive but, does provide a firmware update capability through FLASH ROM (which may prove convenient in view of the fact that the V.34 standard is relatively new and modem manufacturers are likely to issue updates and corrections over the coming months and years).

Although a number of other manufacturers advertise FLASH ROM features, this frequently does not extend to the "data pump" (an important internal component of the modem). The US Robotics Courier V.Everything does include a capability to update the data pump through FLASH ROM.

Recently, so called, RPI modems have entered the market. These low cost devices perform data compression and error correction in software rather than hardware thereby saving the cost of some additional circuitry. These RPI modems represent, IMHO, a false economy. The software drivers are very buggy and RPI is a highly proprietary protocol.

The author holds similar reservations with respect to the recently launched USR Sportster Winmodem. This device will consume a significant proportion of your CPU horsepower while on-line and it's not compatible with other operating systems (e.g. Linux or Windows NT).


A chip known an a Universal Asynchronous Transmitter and Receiver (UART) is fundamental to serial data communications. In short, this device converts parallel data (e.g. 8 bit bytes) into a serial data stream which can be transmitted over a telephone line.

Internal modems are equipped with their own UARTS. External modems, however, utilize the UART incorporated into your PC's COMM port. If you are using an external modem, it is essential that you understand what type of UART your COMM port is using. If you use an internal modem there's a good chance the device will be equipped with a suitable UART. Nevertheless, you should check to confirm.

You can establish the type of UART installed on your machine by running the MSD.EXE (Microsoft System Diagnostics) utility which should be found in your DOS and/or Windows directories. Run the program and select the PORTS option. Be sure to run MSD in native DOS mode. It can produce incorrect results if run from Windows or in a DOS session under Windows. If MSD reports a 16550A type UART, the chances are that you will be able to run at speeds of up to 28,800 bps. However, if MSD reports a 8250 or 16450 type UART, the chances are that you will not be able to run at speeds above 19,200 bps. If your PC uses the older 8250/16450 UART and you want to run at 28,800 bps, all is not lost. If you have a serial card (or motherboard) with a socketed 8250 or 16450 UART, you can replace the chip with a 16550A. Add-on high speed data communications cards with 16550A (or equivalent) UARTS are also available at your local computer store at prices ranging from $20 to $75 depending upon the number of ports and other features.

5. Transmission Speed

It is important to understand the difference between "line speed" (the speed with which your modem talks to the other modem), and Data Terminal Equipment or "DTE speed" (the speed with which your PC talks to the modem).

Modern modems attempt to compress the data they transmit. When transmitting text, the degree of compression attained can be quite significant - perhaps a factor of 4. However, the modems will not be able to achieve any significant degree of additional compression when transmitting pre-compressed files (e.g. ZIP files). It is, therefore, generally recommended that you set your DTE speed at a value two or four times greater than the actual line speed.

Do not expect V.34 modems to give you a 28,800 bps connection every time. It is very common for users (especially those who have telephone lines connected to older Central Office equipment) to experience 26,400 and even 24,000 bps connections most of the time. Unfortunately, there really isn't very much you can do about it. However, if you are experiencing initial connection speeds of less than 24,000 bps, the chances are that there is a repairable fault on the circuit.

The author is often asked what download speeds users should expect to see reported by programs such as Netscape and ws_ftp. Many variables can influence performance. As well as the modem communications, the performance of the ftp or web server as well as the Internet routing may have a significant influence. However, with a 28,800 bps modem, a server that is not overloaded and good Internet connectivity, you should see 2.7-3.3 KBytes per second when downloading pre-compressed files (e.g. ZIP files). You will see more variability with uncompressed files, in the range 3.0-10.0 KBytes per second.

6. Configuring the System

Assuming that you have an appropriate modem and UART, it's time to configure the system. There are five main aspects:

  1. Configuring the Modem.
  2. Configuring the PC.
  3. Configuring Windows 3.1/3.11.
  4. Configuring Windows 95.
  5. Configuring Windows NT.
  6. Configuring your Communications Applications.

  1. Configuring the Modem

    Most modems are shipped with default configurations which are designed to allow them to operate in the optimum mode. Some changes may be required but, since the options are highly specific to the make and model of modem, you are advised to consult your modem manufacturers documentation. If you suspect a modem configuration problem I strongly suggest you contact your Internet Service Provider or seek out another of their subscribers with a similar or identical modem and compare notes. I have included links to one or two web sites that post recommended init strings in the references section at the end of this document. Alternatively, you might try posting to the NewsGroup comp.dcom.modems.

    However, you should ensure that your modem is configured for Hardware Flow Control and Fixed Serial Port Rate.

    If your telephone company provides a "Call Waiting" service on the line you will be using with your modem, you should (if possible) disable that feature when making data calls unless you want the connection to be terminated. Call Waiting can often be disabled by prefixing the dialed number with a special code. *70 is commonly used but, you should check check the availability and operation of this feature with your local telephone company.

  2. Configuring the PC

    Most PC's have some form of setup program which includes various COMM port options. Typically the parameters include the which ports are enabled together with the IRQ and Base Address for each port. Thankfully, these parameters appear to be almost universally standardized. However, if you suspect problems you should consult your PC manufacturers documentation.

    If possible, configure your modem on COM2 (IRQ3). This port is assigned the highest priority for interrupt processing.

  3. Configuring Windows 3.1/3.11

    Almost all communications programs ignore the Control Panel COMM Port settings. Nevertheless, you may want to configure them properly to avoid any subsequent confusion. Start Control Panel and select the Ports icon. The default setting of Data=8, Parity=None and Stop=1 should be fine. Set the Flow Control option to "Hardware". The Advanced options for IRQ and Base Address should correspond to your PC hardware configuration options. Set the Speed as discussed in the previous section. You may find that the speed you would like to select is not available on the drop down combo. Try typing the value in anyway. If that fails, you can force it by editing your win.ini file.

    Configuring System.ini.

    Next, you must understand which Windows communication driver (comm.drv) is installed on your system. Open up system.ini in the Windows directory and look in the [Boot] Section for the following entry:

    comm.drv = ****.drv

    If ****.drv is set to comm.drv (i.e. the entry reads "comm.drv = comm.drv") the standard Windows comm driver is installed.

    If you are running Windows 3.0 or 3.1 with the standard comm.drv driver, you may need to install a replacement (details below). However, if you are running Windows for Workgroups 3.11 you should be aware that Microsoft improved the driver and it should not be necessary to replace it.

    However, it is quite possible that the standard Windows driver was replaced when you installed a communications software package. You might find that yours is set to one of the following:

    comm.drv = turbocom.drv

    comm.drv = cybercom.drv

    comm.drv = wfxcomm.drv

    Most of these drivers are capable of sustaining V.34, 28,800 bps modem speeds (115,200 DTE speeds). In summary, if you are running Windows 3.0 or 3.1, you will probably need an enhanced comm.drv driver. I highly recommend Cybercom which is freeware. If you are running Windows for Workgroups 3.11, it should not be necessary to change the standard comm.drv and I recommend that you don't.

    Click here to download CyberCom:

    Next we need to examine some other system.ini settings. The optimum values will depend upon which comm.drv you have installed together with other factors (some settings are specific to certain drivers and others will be interpreted differently by different drivers). In general, the following combination of settings is likely to work first time. This example assumes that your modem is installed on COM2.

    In the [386Enh] Section, the following settings are recommended:


    The entry "com2fifo=1" is especially important. This entry turns on the buffering capabilities of your 16550A UART. Note that the entry should read "com2fifo=1" rather then "com2fifo=on" or "com2fifo=yes" - this common mistake stems from erroneous documentation published by Microsoft some time ago.

    The com2buffer=1024 setting should work in most instances. If you are experiencing comm overruns you might try increasing this value. If your system is running without errors, you may want to try reducing this value (default: 128) to optimize your system. You should aim for the smallest possible value necessary to eliminate comm overruns.

    I do not recommend that you adjust the COM2RxTrigger setting from the default setting of 8 (even though some folk may tell you otherwise)

    A Word About Bicomm.drv

    You may find that your system.ini contains the entry:

    comm.drv = bicomm.drv

    If that's the case, bicomm.drv was almost certainly installed during the installation and configuration of a Hewlett Packard Laser Printer (probably a LaserJet 4). Bicomm.drv appears to cause comm overrun problems in some systems. Replacing it with other drivers causes other problems related to printing.

    At least one user has eliminated all of the problems by upgrading their HP Printer drivers from Version 1.00 to Version 1.35. The latest Version (1.50) presumably works too. After this upgrade, cybercomm or wfxcomm should also work correctly without causing printer problems.

    Another user addressed this problem by installing the commercial SuperPrint package by Zenographics. This eliminates the need for bicomm.drv and enabled him to install cybercom without further conflicts.

  4. Configuring Windows 95

    The comm port setup has been dramatically overhauled in Windows 95. It provides full support for 16550 UARTS and there is no requirement to replace the standard Windows 95 comm.drv.

    Windows 95 users with S3 based video cards should note that it is not possible to configure a modem on COM4. You will have to move the modem to a different port.

  5. Configuring Windows NT

    The author has recently transitioned to Windows NT as his primary operating system. A number of common issues are:

    Windows NT 3.51 users with Service Pack 2 or 3 experience serious comm overrun errors. A problem was introduced in the Service Pack 2 update to the ATAPI.SYS driver. If you experience this problem you should either install Service Pack 4 or restore the original version of ATAPI.SYS from the NT 3.51 master disks.

    Windows NT users cannot get the system to recognize the modem hardware correctly. Look for an updated modem.inf file from your modem vendor. Failing that, it's not too hard to manually edit the standard modem.inf file.

    Windows NT 3.51 users with Matrox Millenium video cards experience serious overruns. See the Matrox readme file for a special registry setting that is required.

  6. Configuring Applications

    The options will depend upon the specific application but, in general, stick to the following guidelines:

7. Other UART Problems

Certain newer models of computer (especially PCI local bus Pentium machines) are equipped with SMC 665 i/o controllers. These devices serve the same purpose as the 16550A UART in addition to other functions. Furthermore, the MSD program will report them as a 16550A UART. Unfortunately, there is a problem with this 16550A UART implementation which may result in system "lock-up" or "hang".

This problem is completely unrelated to the comm.drv issues discussed above although they are frequently confused. To establish whether your computer has the SMC 665 controller, you will need to inspect the motherboard. Look for a chip with "SMC" in large lettering and "FDC37C665GT" just below it. If you are unable or unwilling to inspect the motherboard you should check the system documentation of contact the manufacturer. Solutions to this problem are available but depend on the version of Windows (and the comm.drv) you are using.

Both of these files together with a DOS utility and readme's are included in the file available here: (20Kb)

My thanks to Peter J. McKinney ( for much helpful information concerning these issues.

8. Frequent Disconnects

Hopefully, the above information will enable you to establish communications. However, it's possible that you will be plagued by frequent disconnections. You have my sympathies because these problems can be extremely difficult to diagnose and resolve. Unfortunately, every link in the chain is suspect.

You will need to look for "patterns". For example, does the problem occur when communicating with one particular site or many ? Or, is the problem related to one particular host modem ? There may be a software configuration problem, a hardware problem (at either end) or a telephone line quality problem anywhere en route. Here are some tips I've accumulated over the years. If you use an internal modem, ensure that the card is seated firmly. And, if you use an external modem, be sure to use a high quality cable from the PC to the modem and check that it is securely connected.

Ensure that you have the cleanest possible connection from your modem to the telephone company junction box ("inside wiring"). I recommend that you run a direct line from the modem to the Standard Network Interface (SNI - the telephone company junction box). Use good quality cable and route it away from power lines and other sources of electromagnetic interference. Use "Telephone Station Wire" with 24AWG solid conductor (available from Radio Shack) in preference to regular "modular" cable sold in many electrical stores. If absolutely necessary, use shielded cable (available from specialist network suppliers). Try to eliminate as many junction boxes as possible. Where they are unavoidable, ensure the best possible connection (use a soldering iron if possible). Yes, I know several folk who have solved problems by tightening down the connectors.

Do not be too reluctant to blame the telephone company. In my experience, there's at least a 50% probability that the problem lies with the telephone company. The following experiment has solved many problems in the past:

  1. Turn off the television, stereo etc.
  2. Connect a regular telephone handset to the data line.
  3. Pick up the handset, dial 1 (this will silence the dial tone) and listen very carefully.
  4. If you can hear a lot of hiss or, more likely, an occasional "scratching" noise, there is definitely a line problem and you should report it to your telephone company. Unfortunately, a line that sounds "quiet" may still be faulty.

If (when) you call the telephone company, do _not_ let them know that you are a nerd with a modem (it really is an advantage if you can "hear" the problem). Telephone companies _hate_ modems and they will probably give you a standard lecture informing you that they don't guarantee more than 3 bits per hour. Curiously though, you may find more sympathy and responsiveness if you tell them that you have a Fax problem. After all, Fax machines don't contain modems, do they ??? .

Some modems will provide quantitative readouts of signal strength and line quality. Consult your modem manufacturers documentation for details. This can be useful in diagnosing problems (but don't expect the phone company to be very interested in your results).

9. USR Sportster Problems

A number of problems have been reported with the USR Sportster V.34 modem. This is not surprising given the popularity of this device. Over time USR have issued various updates and enhancements.

A ROM, dated 11/30/94, was released to correct some interoperability problems with Rockwell V.FC modems. You can check the date of your Sportster firmware with the ATI7 command.

Subsequently, another problem known as "Spiral Death Syndrome" was identified with Sportsters. The communications link falls back to progressively slower speeds such that a 28,800 connection may actually be running at 9,600 after half an hour or so. The ATI6 command will show the speed of the current (or last) connection.

Be sure that your Sportster is fitted with the ROM dated 4/18/95 (or later) which includes a fix for this problem. Customers who installed this update report significantly faster and more reliable connections. If you have an older Sportster, I urge you to obtain and install the update. I believe the update is still free of charge for registered users.

More recently, USR made available a for-sale upgrade which can enable the Sportster to operate at speeds of up to 33,600 bps. However, you will only observe improvements when the modems at both ends of the connection have been upgrade and you have an extremely clean circuit between them.

The most recent Sportsters (manufactured Spring/Summer 1996) have exhibited a couple of new problems. If you experience long and regular pauses, check the clock speed with the ATI7 command. Devices with a 92 MHz clock speed seem to be effected. You will need to return the device to USR for repair or replacement. In the meantime, you may be able to work around the problem by disabling V.42bis compression and using MNP5. Add the &K0 command to the init string. The author regrets the decision by USR to use a soldered PROM is the latest devices such that new firmware can no longer be field installed.

10. Other Notes

A number of data communications (and other) problems with Windows have been associated with video drivers. There have been many instances of video cards based on the S3 chip causing data loss and dropped characters. The author has experienced this problem with a Number 9 GXE64/Pro video card. Updated drivers are available and you are encouraged to contact your video card manufacturer. Video cards and drivers are a source of many problems - always ensure that you have the latest version.

Other hardware drivers and DOS Terminate and Stay Resident (TSR) programs have also been known to cause comm overruns and other errors. Generally, these problems arise when the program hogs the processor and prevents the processor from servicing the comm port in a timely fashion.

Communications software that utilises INT14 i/o can also cause comm overruns. Check system.ini for the presence of an int14 driver.

Other (rare) sources of overrun problems include bad disk drivers (especially Promise drivers) and BIOS firmware (check for available updates), screensavers (disable them), sound drivers (check for updates) and other problems related to disk activity (disabling smartdrv and/or 32-bit i/o might help).

11. References

The comp.dcom.modems NewsGroup is a wonderful source of information. Other useful sites covering modem and Winsock issues include:

© Copyright Malcolm Hoar 1995-2012
malch at malch dot com