28
SERIES II INTELLIGENT DATA/FAX MODEMS
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 multitask-
ing—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,
on the World Wide Web, or on BBSes 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.