[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
COM_SETIRQ()
Changes the interrupt request for a port
------------------------------------------------------------------------------
Syntax
COM_SETIRQ(<nComPort>,<nIRQ|cIRQ>) --> lChanged
Arguments
<nComPort> Designates the port (1 to 4) where the interrupt request
(IRQ) is set.
<nIRQ|cIRQ> Designates the new IRQ number for the selected port.
This parameter can be a decimal or a hexadecimal string and can be from
2 to 15.
Returns
The function returns .T. when the new IRQ has been successfully set.
Description
Unfortunately, there is not a binding standard for serial ports,
particularly for COM3 and COM4.
Each interface card uses an interrupt request line to advise the
interrupt controller that a character has been received. The controller
then passes this information on to the CPU, which calls a service
routine through the corresponding interrupt vector. XT systems have
eight such interrupt lines available. AT systems have more than 16
available interrupt lines, some of which are usually occupied with other
peripherals. The allocation of a new IRQ is no small matter and
requires considerable technical expertise. Determining which IRQ is
available and is not currently in use can usually be done by studying
the configuration of all external devices and the technical
documentation that accompanies your computer system. Typically IRQ's 0
and 1 are used for internal purposes (timer), 2 and 9 for network
adapters, 5 and 7 for the printer, and 6 and 14 for floppies or hard
disks.
Tip: As you will notice from the default setting in the
Introduction to this chapter, it is possible for multiple ports to use
the same IRQ (interrupt sharing). While CA-Clipper Tools functions do
support this process, standard port hardware usually does not. However,
special multiple port cards for this purpose are offered by a variety of
manufacturers.
Notes
. Please notice that the base settings that CA-Clipper Tools
uses for COM1 to COM4 are described in the Introduction to this
chapter.
. COM_SETIRQ() does not test to see if a port is actually
serving the selected IRQ.
Examples
. Set COM3 and COM4 to IRQ 5. This example requires two calls:
? COM_SETIRQ(3, 5) // .T.
? COM_SETIRQ(4, 5) // .T.
. Set port 4 to IRQ 10. IRQ in hex:
? COM_SETIRQ(4, "A") // .T.
. This is an example of an incorrect value for IRQ:
? COM_SETIRQ(2, 0) // Timer tick not allowed .F.
? COM_SETIRQ(3, "10") // This would be decimal 16 .F.
See Also:
COM_SETIO()
COM_GETIRQ()
COM_GETIO()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson