[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
COM_NUM()
Gives the number of the highest available serial interface port
------------------------------------------------------------------------------
Syntax
COM_NUM() --> nMaxCom
Returns
COM_NUM() returns the number of the highest available serial interface
port.
Description
This function returns the number of the serial interface port available.
This is not to say that a return value of 3 necessarily means that ports
1 through 3 are available; for example, COM2 could be missing. Whether
or not a serial port can actually be used can be tested using the
COM_OPEN() or COM_INIT() functions.
Normally the addresses described in the Introduction to this chapter are
scanned for available ports. Scanning can happen over alternate
addresses selected through COM_SETIO().
Important! Four I/O addresses are assigned to ports COM1 - COM4,
internal to the port functions. The COM_NUM() function goes through
these four addresses and tests to see if a port is available there.
This can lead to problems if some other hardware is installed in one of
the address areas. For example, problems like this have been noted in
conjunction with ArcNet network cards, which conflict in the address
area with COM4. The critical address areas are listed in the table
below.
Table 3-6: I/O Addresses for COM1-COM4
------------------------------------------------------------------------
Port I/O Addresses
------------------------------------------------------------------------
COM1 03F8h - 03FFh
COM2 02F8h - 02FFh
COM3 03E8h - 03EFh
COM4 02E8h - 02EFh
------------------------------------------------------------------------
If any kind of hardware is found within this I/O address area, then the
conflicting COM port can be masked. Additionally, using COM_SETIO()
(<nComPort>, 0) the accompanying base address within the internal table
is deleted. You can only mask the conflicting port when COM_NUM() has
not previously been called in the program. If COM_NUM() has been called
in the program, the interface is marked "in use".
Examples
. Determine the number of ports at the standard addresses:
? COM_NUM() // e.g. 4
. Determine the number of ports at unusual addresses:
COM_SETIO(3, "110") // COM3, 110h
COM_SETIO(4, "120") // COM4, 120h
? COM_NUM()
See Also:
COM_SETIO()
COM_OPEN()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson