Configuring COM Port Speed in Windows 3.11

In Microsoft Windows 3.11, serial communications port speeds and transmission parameters were managed centrally through the Ports applet located within the Control Panel. This interface allowed users to establish default hardware communication rates—such as baud rate, data bits, parity, and flow control—which Windows wrote directly to its core configuration files and passed to the serial communications driver (COMM.DRV) to control physical UART hardware.

Accessing Port Settings in Control Panel

To configure serial port settings in Windows 3.11, users opened the Main program group in Program Manager, launched the Control Panel, and selected the Ports icon.

The Ports dialog presented a list of available communications ports, typically displaying COM1 through COM4. Selecting a port and clicking the Settings button opened the configuration window for that specific interface.

Configurable Communication Parameters

The Settings dialog provided drop-down menus for standard RS-232 serial parameters:

  • Baud Rate (Bits Per Second): Windows 3.11 offered preset speeds typically ranging from 110 bps up to 19,200 bps by default. Higher speeds, such as 38,400 bps, 57,600 bps, or 115,200 bps, could be selected if supported by third-party drivers or updated serial hardware.
  • Data Bits: Allowed selection between 4, 5, 6, 7, or 8 bits (with 8 bits being the standard for modem and file transfer use).
  • Parity: Options included Even, Odd, None, Mark, or Space.
  • Stop Bits: Options included 1, 1.5, or 2.
  • Flow Control: Users could choose between Xon/Xoff (software flow control), Hardware (RTS/CTS), or None.

An Advanced button allowed configuration of the hardware interrupt request line (IRQ) and the base I/O port address. This was essential for resolving hardware conflicts, particularly between COM1/COM3 and COM2/COM4, which traditionally shared IRQ4 and IRQ3 on standard PC architecture.

Under-the-Hood Management: WIN.INI and SYSTEM.INI

When a user saved port settings in the Control Panel, Windows 3.11 updated system initialization files to persist the changes across reboots:

  1. WIN.INI: The port configuration string was written to the [Ports] section. A typical entry appeared as:

    [Ports]
    COM1:=9600,n,8,1,x
    COM2:=2400,n,8,1,p

    This string recorded the baud rate, parity, data bits, stop bits, and handshaking method.

  2. SYSTEM.INI: Advanced hardware settings, such as IRQ assignments, base memory addresses, and FIFO buffer controls for the 16550A UART chip, were stored in the [386Enh] section using keys like COM1Base, COM1Irq, and COM1Buffer.

Application Overrides and Driver Interaction

The values defined in the Control Panel served as the global system defaults for Windows-based serial communications. When an application opened a COM port, the Windows communications driver (COMM.DRV) initialized the UART using these stored values.

However, telecommunications software (such as the bundled Terminal app, Procomm Plus, or dial-up networking components) could override these defaults at runtime by calling the Windows 3.11 Communications API. Unless an application explicitly requested a different speed or format, the settings established in the Control Panel remained the active hardware operating parameters.