Serial Ports in Vintage PCs
CONTEXT: The IBM 5150 (IBM PC) and IBM 5155 (Portable PC) and IBM 5160 (IBM XT) and IBM 5170 (IBM AT)
The term 'serial port' is very generic. The vast vast majority of serial ports found in vintage PCs use the interface type RS-232C.
The text on this web page is confined to that type of serial port.
Identification
At the hardware level, each serial port uses a block of eight I/O addresses, and is identified by the base address of the block.
For example, a serial port that resides at addresses 3F8 hex to 3FF hex, is simply referred to as a serial port at 3F8.
Discovery
When the PC is powered on, the Power-On Self Test (POST) searches for serial ports at 3F8 and 2F8 (in that order), and as it finds serial ports, places the port's base address into a dedicated area in the BIOS Data Area (see here).
When DOS then loads, DOS notes the ports recorded in the BIOS Data Area, and assigns labels to them of COM1 and COM2 (see here).
Potential anomaly
Even though DOS allows for your vintage PC only having one serial port, with that port at 2F8, what you may discover is:
* DOS refers to that port as COM1 (see here).
* Some programs refer to that port as COM2.
This happens because such programs (usually terminal programs) bypass DOS, and consider any port at 3F8 as COM1 and consider any port at 2F8 as COM2.
To prevent this anomaly, if there is only one serial port in your vintage PC, ensure it sits at 3F8.
Connectors
The serial port card supplied by IBM in the 5150 and 5160, the 'IBM Asynchronous Adapter', uses a male 25-pin DB connector (DB25).
In the IBM 5170, IBM supplied a card that provided both a serial port and a parallel port. The connector for the serial port on that card is a male 9-pin DE connector (DE9).
Connector photos here.
Note that male DB25 and DE9 connectors were also used for purposes other than serial ports.
Testing a serial port in DOS
There is DOS based diagnostic software that can test serial (COM) ports. One example is CheckIt. Another is SERTEST.
Be aware that the diagnostic software alone cannot fully check out a serial port. A full test also requires the use of a loopback plug. Click here for more information about loopback tests.