WHY DO I NEED A 16550, 16650, 16750 or 16950 UART?

A 16550 UART is the minimum any modern modem user should use. All of the Byte Runner cards incorporate a 16550 as a minimum, and many even have 16650, 16750 and 16950 UARTs.

The original UART chip shipped with the IBM personal computer was the 8250. This chip was limited to 9600 bps maximum rate. It was replaced with the 16450 which had the same architecture as the 8250 but has a higher maximum bps specification. Both of the chips only have a one byte FIFO/buffer.

The 16550 has a 16-byte FIFO, 16650 has a 32-byte FIFO, 16750 has a 64-byte FIFO and the 16950 has a 128-byte FIFO. When operating under DOS at speeds below 9600 bps the 16450 should provide satisfactory performance. When operating under any Windows or other multitasking operating system, a 16450 will be limited to about 1200 or 2400 bps. Any of todays high-speed modems require more than a 16450 UART can offer even when running under DOS.

A quick look at the performance requirements at high bps rates shows why the 16, 32, 64 or 128 byte FIFO is a necessity. The Microsoft specification for a DOS system requires that interrupts not be disabled for more than 1 millisecond at a time. Some hard disk drives and video controllers violate this specification. 9600 bps will deliver a character approximately every millisecond, so a 1 byte FIFO should be sufficient at this rate on a DOS system which meets the maximum interrupt disable timing. Rates above this may receive a new character before the old one has been fetched, and thus the old character will be lost. This is referred to as an overrun error and results in one or more lost characters. (With error correcting modems, any lost characters will be retransmitted, so you won't see the lost characters, it will just slow the connection.)

A 16 byte FIFO may not sound like much, but it allows up to 16 characters to be received before the computer has to service the interrupt. This increases the maximum bps rate the computer can process reliably from 9600 to 153,000 bps if it has a 1 millisecond interrupt dead time. A 32 byte FIFO increases the maximum rate to over 300,000 bps. A second benefit to having a FIFO is that the computer only has to service about 8 to 12% as many interrupts, allowing more CPU time for updating the screen, or doing other chores. Thus the computer's responses will improve as well.


Most of the Byte Runner boards allow the crystal to be switched to a 4X bps rate. The TC-212-SP series cards will allow the crystal to be switched to an 8X bps rate. A board allowing you to quadruple the clock speed (4X) will allow transmission speeds up to 460,800 bps. Cards which allow you to set them to the 8X setting will allow speeds up to 921,400 bps. Whatever speed is selected in software or by the operating system will result in an actual rate being four or eight times higher. (You also have the option of just doubling the clock rate if you wish).

Please remember that whatever speed you wish to communicate, the peripheral you are hooking up has to support it. For technical specifications on the 16550 UART click here.