User manual
8. Serial Controller
78
PROGRAMMABLE REGISTERS
Six registers are available for initializing and controlling each serial channel. The
following table "Serial Controller Register Addressing" shows the I/O port addressing for
the COM1 registers. The remaining serial channels are located as follows:
COM2: 2F8-2FFh
COM3: 2E0-2E7h
COM4: 2E8-2EFh
The topics that follow illustrate the 16-bit divisor latch, baud rate divisors, and the six
programmable registers for each serial channel.
Serial Controller Register Addressing
Address Register Operation
03F8h (DIV=0) Receive Buffer Read
03F8h (DIV=0) Transmit Buffer Write
03F8h (DIV=1) Divisor Latch LSB Read/Write
03F9h (DIV=0) Interrupt Control Read/Write
03F9h (DIV=1) Divisor Latch MSB Read/Write
03FAh Interrupt Status Read
03FBh Line Control Read/Write
03FCh Modem Control Read/Write
03FDh Line Status Read
03FEh Modem Status Read
03FFh Reserved
Baud Rate Divisors
The "Divisor Latch LSB" and "Divisor Latch MSB" figures that follow illustrate the 16-bit
divisor latch. The "Baud Rate Divisors" table lists the divisors for popular baud rates. It
also includes the percent error based on the difference between the exact divisor for a
specified baud rate and the divisor obtainable with a 16-bit integer format. To guarantee
proper operation, the percent error should never be greater than four.