COM is the original, yet still common, name of the serial port interface on IBM PC-compatible computers. It might not only refer to physical ports, but also to virtual ports, such as ports created by bluetooth or USB-to-Serial adapters.
Most PC-compatible systems in the 1980s and 1990s had one or two ports, with communication interfaces defined like this:
- COM1: I/O port 0x3F8, IRQ 4
- COM2: I/O port 0x2F8, IRQ 3
- COM3: I/O port 0x3E8, IRQ 4
- COM4: I/O port 0x2E8, IRQ 3
As of 2007, most systems ship with one or no physical COM ports.
The COM ports are interfaced by an integrated circuit such as 16550 UART. This IC has seven internal 8-bit registers which hold information and configuration data about which data is to be sent or was received, the baud rate, interrupt configuration and more. In the case of COM1, these registers can be accessed by writing to or reading from the I/O addresses 0x3F8 to 0x3FF.
If the CPU, for example, wants to send information out on COM1, it writes to I/O port 0x3F8, as this I/O port is "connected" to the UART IC register which holds the information that is to be sent out.
Full article ▸