Q83449: Windows 3.1 Serial Communications Q & A Part 1
Article: Q83449
Product(s): Microsoft Windows 95.x Retail Product
Version(s): WINDOWS:3.1
Operating System(s):
Keyword(s):
Last Modified: 09-JAN-2000
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Windows 3.1
-------------------------------------------------------------------------------
SUMMARY
=======
This article contains specific questions and answers regarding the Microsoft
Windows operating system version 3.1.
MORE INFORMATION
================
1. Q. How does Windows 3.1 improve serial communications over Windows 3.0?
A. Most of the serial communications problems experienced by users of Windows
3.0 were corrected in Windows 3.1. The following is a summary of the
changes:
a. COM port addresses and IRQs are configurable in the Control Panel. Windows
3.0 uses preset address values for serial ports. Windows 3.1 allows any
port address and IRQ. This corrects problems using ports COM3 and COM4
(Windows 3.0 uses non-standard default values).
NOTE: If the communication settings in Terminal do not match those
specified in Control Panel, Terminal's settings take precedence. The
Advanced port settings, however, affect all applications including
Terminal. Therefore, if you experiencing problems when using Terminal,
verify the I/O base address and IRQ settings in Control Panel.
b. Faster bit rates. Windows-based applications can now set speeds higher
than 19.2 kilobits per second (Kbps) and up to 57.6 Kbps. Contact the
application manufacturer for an update to support this new feature.
c. Reduced system overhead. Windows 3.1 is fine tuned for better overall
performance, including faster throughput and fewer errors during serial
communications. A new driver interface allows Windows to pass data in
blocks to the driver, rather than one character at a time. See the Windows
3.1 Device Development Kit (DDK) for details.
d. 16550 UART support for Windows-based applications. This is described in
detail below.
e. EnableCommNotification API. Windows-based applications can register to be
notified by a window message when serial port events occur, rather than
performing constant polling. (Constant polling reduces overall system
performance.)
f. Serial ports on the same IRQ can be used in rotation. On most personal
computers, serial ports that use the same IRQ cannot be used
simultaneously; however, Windows 3.0 sometimes prevented them from being
used in rotation, one after another. This problem was corrected in Windows
3.1.
g. Full duplex improvements. Some users experienced lockups during
full-duplex transfers at fast bit rates with Windows 3.0. These problems
were corrected in Windows 3.1.
2. Q. How many serial ports does Windows support?
A. The Windows 3.1 communications driver provides access to standard MS-DOS
serial ports (COM1, COM2, COM3, and COM4). Third- party serial adapters with
more than four ports can be used in Windows with special drivers available
from their manufacturers. Windows allows a maximum of nine serial ports
(COM1-COM9).
3. Q. What base addresses and IRQs does Windows use for serial ports?
A. Windows must know the base I/O addresses and interrupt request lines (IRQs)
of the serial ports on a personal computer. Windows determines this as
follows:
a. Windows looks in the BIOS data area (40:0) first for port base addresses.
Most personal computers specify address values here for built-in COM
ports, but not for add-in adapters. If Windows finds an address here, it
uses this, rather than any other defaults or settings.
b. Serial ports commonly use the following base I/O address and IRQ values:
Port Address IRQ
---- ------- ---
COM1 * 03F8 4
COM2 02F8 3
COM3 03E8 4
COM3(PS/2)3220 3
COM4 02E8 3
*If the BIOS data area specifies the COM1 address as 02F8, Windows uses
IRQ3 instead of IRQ4.
c. Control Panel Ports Advanced dialog box. The addresses and IRQs of ports
can be identified, although they are not specified, in the BIOS data area.
Addresses and IRQs are modified by opening the Control Panel, choosing the
Ports icon, and selecting the Advanced button. Here you can set the
COMxBase and COMxIRQ values in the [386Enh] section of SYSTEM.INI file.
IRQ values 8-15 are allowable entries. Setting the port address in this
dialog box does not override a BIOS data area value.
For more information on COMxBase and other SYSTEM.INI file switches, refer
to the SYSINI.WRI file in the WINDOWS directory.
4. Q. Windows 3.0 did not recognize the COM3 and the COM4 ports. The COM3Base
and COM4Base settings in SYSTEM.INI have been changed; however, this has not
helped. Is this problem fixed in Windows 3.1?
A. Yes. The problem in Windows 3.0 is that the communications driver
(COMM.DRV) and virtual communications device (VCD) weren't using the same
values. Now, both modules use the specified values. The SYSTEM.INI file
should no longer be modified manually. Instead, use the Advanced dialog box
in the Control Panel (accessed through the Ports icon). These settings apply
to both standard and 386 enhanced modes.
5. Q. When can the same IRQ be used for different serial ports?
A. In general, two devices should not be used simultaneously with the same
IRQ. For example, if COM1 and COM3 ports both use IRQ4 (the common value),
problems arise if a serial mouse is on COM1 and a modem is on COM3.
Some personal computers and serial port adapters support IRQ sharing (the
ability to have multiple ports using the same IRQ). This is common on
MicroChannel (MCA) bus architecture computers, such as IBM PS/2s and some
EISA bus computers. Windows 3.1 fully supports IRQ sharing serial adapters.
To use them correctly, be sure that the IRQ values have been set correctly in
the Advanced dialog box. Also, if the computer does not have MCA or EISA
architecture, the setting "COMIrqSharing=TRUE" must be set in the [386Enh]
section of the SYSTEM.INI file. For more information on COMIrqSharing and
other SYSTEM.INI switches, refer to the SYSINI.WRI file in the WINDOWS
directory.
6. Q. Problems occur when using COM4. What's wrong?
A. Check the settings in the Advanced dialog box in the Control Panel
(accessed through the Ports icon) to make sure that Windows knows the correct
port address value and IRQ settings for the COM4 port. The address for COM4
is not usually specified in the BIOS data area of most computers because it
is not a standard port.
Many serial adapters use a COM4 default base address of 02E8. Unfortunately,
this address value conflicts with some peripherals, including 8514/A video
adapters and certain network adapters. To work around this problem,
reconfigure one of the peripheral adapters to use a different address. If the
COM4 address is changed, be sure to reset the address value for COM4 in the
Advanced dialog box.
7. Q. What is "device contention"?
A. As a multitasking operating system, Windows must handle simultaneous
requests for devices, such as COM ports, from different applications. "Device
contention" refers to the rules Windows uses to determine how applications
receive control of a device. The 386 Enhanced dialog of the Control Panel
allows the specification of how COM ports are allocated to applications.
The Always Warn option means that Windows displays a dialog box asking whether
or not an MS-DOS application should receive control of a COM port that it
detects may be currently in use by another application.
The Never Warn option means that Windows always provides COM port access to
MS-DOS applications, even if it detects that this port may currently be in
use by another application.
The Idle (in sec.) option means that Windows displays a dialog asking whether
or not an MS-DOS application should receive control of a COM port that it
detects was in use as recently as the number of seconds specified. Otherwise,
Windows provides COM port access without a warning.
8. Q. With Windows 3.0, use of different serial ports on the same IRQ in
rotation was not possible. Was this problem corrected in Windows 3.1?
A. Yes. Serial ports that use the same IRQ (for example, COM1/3 on IRQ4 and
COM2/4 on IRQ3) may be used one after the other, but not at the same time
(unless the serial adapter supports IRQ sharing). However, some MS-DOS
communication applications may leave a serial port in a state that prevents
Windows from using its IRQ for other ports. The "stuck" communication IRQ may
be reset by opening and closing the original COM port with a Windows
communication application, such as Terminal.
Additional query words: 3.10 COMMQ&A winfest
======================================================================
Keywords :
Technology : kbWin3xSearch kbZNotKeyword3 kbWin310
Version : WINDOWS:3.1
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.