Doc. # 1-0000149
Date Updated 07-27-2005 Date Created 07-27-2000
Document Type Knowledge Base Related OS
Related Product PCL-746+/ PCL-846/ PCL-847/ PCL-849/ PCL-858
How to use vector address of ICOM cards?
Solution:
Communication cards with more than 4 ports usually support IRQ sharing in order to avoid the lack of IRQ provided by the system. As you know, when something is received from comm port, it can generate an interrupt to inform the system, but several comm ports share one IRQ under IRQ sharing mode, it is necessary to distinguish which comm port generates this interrupt. Here are two ways for your information: A. Poll each comm port: Because we don't know which comm port generates this interrupt, the easy way to distinguish is to poll each port's register directly in ISR ( Interrupt Service Routine ), just like Win95. As you know, Win95 can support IRQ sharing function, it just uses this way to distinguish which comm port receives data or message. B. Poll interrupt status register ( vector address ): Usually, interrupt status register just occupies 1 byte space and one bit is for one port, the following list can give you an overview about interrupt status register: Interrupt status register Comm port Bit 0 Port1 Bit 1 Port2 Bit 2 Port3 Bit 3 Port4 Bit 4 Port5 Bit 5 Port6 Bit 6 Port7 Bit 7 Port8 When certain comm port receives data and generates an interrupt, the corresponding bit of interrupt status register will be changed from 0 to 1. What we need to do is to poll interrupt status register instead of each port's register. Compare with A, polling interrupt status register is convenient and saves time. WinNT just adopts this way.