29
Chapter 3 - Software Configuration
3.2.2 The 16550 UART and Windows 3.1
Windows 3.1 may cause a loss of data when communicating at high speed, even with a 16550 UART
installed. Because Windows is multitasking—it switches between several programs running at the
same time—it can make the serial port wait briefly while Windows performs other tasks. Meanwhile,
incoming data can be lost. The older 8250A and 16450 UARTs can store data in a one-byte first in-
first out (FIFO) buffer (a memory area in the UART in which the first bit in is the first out), but once
the buffer is full, the data is lost. The 16550 has a 16-byte FIFO buffer, which accounts for much of its
high speed. However, in Windows 3.1, the 16550’s FIFO buffer is disabled by default. To enable the
buffer, use Notepad to open the SYSTEM.INI file in your Windows directory, and add the following
line to the [386Enh] section:
COMnFIFO=1
where n is the number of the COM port the 16550 is installed on. For example, if the 16550 is
installed on COM2, the line should be:
COM2FIFO=1
After you save SYSTEM.INI you must restart Windows for the change to take effect.
However, there is another problem when the FIFO buffer is enabled: Windows cannot recognize the
COM port because of a bug in the Windows 3.1 serial port driver, COMM.DRV. The only way around
this problem is to replace the COMM.DRV file in the WINDOWS\SYSTEM directory with another
driver. Several drivers are available commercially or on BBSs that will solve this problem. A freeware
driver called CyberCom is available as CYBERC.ZIP on CompuServe in the IBM Communications
Forum, Library 0. CyberCom will enable Windows communications at speeds up to 115,200 bps if
you have a 16550 UART installed.
3.3 Configuring Your Software
Communications software must be configured to work with your modem, your computer, and the
remote system it is calling. Fortunately, most communications programs make the process easy by
providing a default initialization string for your modem as well as defaults for most of the other
required parameters.
3.3.1 Configuring Software for Your Modem
Because remote computers may have different connection requirements such as speed, number of
bits, parity, log-on sequences, etc., communications software is typically configured by sessions,
each session having a unique configuration for a given connection (e.g., to a BBS or commercial on-
line service). Most communications programs, however, have a separate modem configuration menu
because modem configurations rarely change from session to session.
The most important configuration is the modem initialization string. This is a sequence of commands
the software uses to configure the modem when the communications software is loaded or when a
session begins. Always begin the initialization string with the ATtention command AT, then follow it
with the modem reset command, &F. Issuing a reset command before other commands ensures that
you are starting with a known state.
The rest of the commands in the initialization string depend on the capabilities of the modem and
what you want it to do. Some older communications programs require you to create the initialization
string by yourself. Most modern communications programs, however, provide you with a ready-made
initialization string that is automatically selected when you choose your modem model from a list. It is
a poor idea to use an initialization string intended for another modem, especially one from another
manufacturer, because modem capabilities and command implementations vary from modem to
modem. However, if your MultiModem does not appear on a modem list, you may use the
MultiModemII initialization string.