
Technical Description
Sealevel Systems VERSA COMM+4.PCI Page 6
Technical Description
The VERSA COMM+4.PCI utilizes the 16C554 UART. This chip features
programmable baud rate, data format, interrupt control and a 16-byte input and
output FIFO, and is functionally 4 16C550 UARTs. The 16C654 UART is also
available on this card, which has a 64-byte FIFO as opposed to the 16-byte
FIFO available in the 16C554.
Interrupts
A good description of an interrupt and its importance to the IBM PC can be
found in the book ‘Peter Norton’s Inside the PC, Premier Edition’:
“ One of the key things that makes a computer different from any other kind of
man-made machine is that computers have the capability to respond to the
unpredictable variety of work that comes to them. The key to this capability is a
feature known as interrupts. The interrupt feature enables the computer to
suspend whatever it is doing and switch to something else in response to an
interruption, such as the press of a key on the keyboard.”
A good analogy of a PC interrupt would be the phone ringing. The phone ‘bell’
is a request for us to stop what we are currently doing and take up another task
(speak to the person on the other end of the line). This is the same process the
PC uses to alert the CPU that a task must be preformed. The CPU upon
receiving an interrupt makes a record of what the processor was doing at the
time and stores this information on the ‘stack’; this allows the processor to
resume its predefined duties after the interrupt is handled, exactly where it left
off. Every main sub-system in the PC has it’s own interrupt, frequently called
an IRQ (short for Interrupt ReQuest). The following IRQ table will define the
system IRQs as well as show typically free IRQs.
In these early days of PCs Sealevel Systems decided that the ability to share
IRQs was an important feature for any add-in I/O card. Consider that in the IBM
XT the available IRQs were IRQ0 through IRQ7. Of these interrupts only IRQ2-
5 and IRQ7 were actually available for use. This made the IRQ a very valuable
system resource. To make the maximum use of these system resources
Sealevel Systems devised an IRQ sharing circuit that allowed more than one
port to use a selected IRQ. This worked fine as a hardware solution but
presented the software designer with a challenge to identify the source of the
interrupt. The software designer frequently used a technique referred to as
‘round robin polling’. This method required the interrupt service routine to
‘poll’ or interrogate each UART as to its interrupt pending status. This method
of polling was sufficient for use with slower speed communications, but as
modems increased their through put abilities this method of servicing shared
IRQs became inefficient.