Interrupts
Please note that, in WindowsNT, changes must be made to the system registry to support IRQ sharing.
The following is excerpted from "Controlling Multiport Serial I/O Cards" provided by Microsoft in the
MSDN library, documentid:mk:@ivt:nt40res/D15/S55FC.HTM, also available in the WindowsNT
Resource Kit.
The Microsoft serial driver can be used to control many dumb multiport serial cards. Dumb indicates
that the control includes no on-board processor. Each port of a multiport card has a separate subkey
under the HKLM\CurrentControlSet\Services\Serial subkey in the registry. In each of these subkeys,
you must add values for
DosDevices, Interrupt, InterruptStatus, PortAddress,
and
PortIndex
because these are not detected by the Hardware Recognizer. (For descriptions and ranges for these
values, see Regentry.hlp, the Registry help file on the WindowsNT Workstation Resource Kit CD.)
For example, if you have a four-port card configured to use address 0xFFF0 with an interrupt of 05, the
values in the Registry are: [assuming that every port is configured to use the same IRQ and that the
addresses are configured to be consecutive and contiguous]
Serial2 Subkey:
Serial4 Subkey:
PortAddress = REG_DWORD 0xFFF0
PortAddress = REG_DWORD 0xFF90
Interrupt = REG_WORD 5
Interrupt = REG_DWORD 5
DosDevices = REG_SZ COM3
DosDevices = REG_SZ COM5
InterruptStatus = REG_DWORD 0xFFF8
InterruptStatus = REG_DWORD 0xFFF8
PortIndex = REG_DWORD 1
PortIndex = REG_DWORD 3
Serial3 Subkey:
Serial5 Subkey:
PortAddress = REG_DWORD 0xFFE0
PortAddress = REG_DWORD 0xFF80
Interrupt = REG_DWORD 5
Interrupt = REG_DWORD 5
DosDevices = REG_SZ COM4
Dos Devices = REG_SZ COM6
InterruptStatus = REG_DWORD 0xFFF8
InterruptStatus = REG_DWORD 0xFFF8
PortIndex = REG_DWORD 2
PortIndex = REG_DWORD 4
As this example shows, the Interrupt Status Register, which indicates which port (s) caused an IRQ, is located
at COM A Base A8.