Technical Help
Product Updates
Online Registration

COMM-DRV/LIB $189.95

COMM-DRV/LIB by WCSC is simply the best and fastest serial communication library and DLLs on the market. The serial communication libraries support Windows XP, Windows 2000, Windows Me, Windows 98, Windows 95, Windows NT, Windows 3.x, and MS-DOS.

  COMM-DRV/LIB Includes

  • A set of serial communication libraries that link directly into the developer's C/C++, QuickBasic, and Assembly Language application with full source code.
  • A set of high level Hayes compatible modem and serial control and information communication libraries that link directly into the developer's C/C++, QuickBasic, and Assembly Language application with full source code.
  • A set of state driven Xmodem, Ymodem, and Zmodem(w/crash recovery) file transfer communication libraries that link directly into the developer's C/C++, QuickBasic, and Assembly Language applications with full source code.
  • A set of serial communication DLLs, high level Hayes compatible modem and serial control and information communication DLLs, and state driven Xmodem, Ymodem, & Zmodem DLLs that may be dynamically linked to any Windows application that is capable of calling the Windows API (e.g., Microsoft ACCESS, or Visual Basic).
  • An extensive set of examples for using the COMM-DRV libraries, & DLLs. Included are example C/C++, Visual Basic, Access, QuickBasic, Professional Basic, and other projects.

Major Features

  • Support ALL compilers and tools that can call 16 bit or 32 bit DLLs.
  • Built-in hardware and software handshaking for flow control (DTR/DSR, RTS/CTS, XON/XOFF).
  • One API to learn. Same for Windows XP, Windows 2000, Windows NT, Windows Me, Windows 98, Windows 3.x, & MS-DOS.
  • Any number of ports may be active at the same time.
  • Adjustable communication buffers of any size.
  • Remap baud rates logically. Modify baud rate divisor for non-standard baud rates.
  • Supports all non-intelligent and several well known intelligent multiport cards(Digiboard, Arnet, Boca Research, GTEK, etc.).
  • Only library that really allows you to combine different multiport cards in one PC.
  • Extensive statistics on every port(bytes lost, sent, received, errors, etc.).
  • Asynchronously call user's C or assembly functions on any serial communication or timed event (receive, transmit, modem, or status change interrupt event, buffer count events, specific character reception, error events, and much more).
  • Support for all memory models compatible with Microsoft and Borland C/C++ compilers, and many other compilers.
  • Automatic UART type detection; 16650, 16550 support (including FIFO).
  • Nondestructive reading of data (read ahead).
  • Support baud rates in excess of 115,200 baud, with the ability to use today's high-powered communications devices.
  • State-driven file transfer libraries allow Xmodem, Ymodem, and Zmodem file transfers on multiple ports at the same time.
  • Completely port re-entrant, allowing it to be time-sliced.
  • Send data & modify modem signals from within user interrupt(callback) functions. Essential in writing multidrop communication applications or applications requiring fast response to the reception of special packets or characters.
  • Supports Network INT14H modem pools, any INT14H server, or INT14H driver.
  • Supports WIN32 and WIN16 applications.
  • On line help.


COMM-DRV/Lib includes very easy to navigate electronic documentation. RS232 communications functions are easy to find and are hyperlinked to related functions. serial communciations documentation for c/c++ library


COMM-DRV/LIB API(Partial List)

High Level Functions

  • BytesInReceiveBuffer()Returns the number of bytes in the receive buffer.
  • BytesInTransmitBuffer() Returns the number of bytes in the transmit buffer.
  • CdrvCheckTime() Determine if time expired form a previous call to CdrvSetTime().
  • CdrvCrc16() Returns the 16bit CRC of a packet.
  • CdrvCrc32() Returns the 32bit CRC of a packet.
  • CdrvDelay() Delay specified time.
  • CdrvGetPcb() Returns a pointer to the port's PCB.
  • CdrvSetTime() Sets a timer to a specified delay. Expiration is tested by CdrvCheckTime().
  • CdrvSetTimeoutFunction() Sets the address of a function that gets called when Delay() or CdrvCheckTime() is called.
  • CdrvSetTimerResolution() Sets the timer resolution used by CdrvSetTime() and Delay().
  • CloseComPort() Close the communication port.
  • DtrOff() Turns DTR off.
  • DtrOn() Turns DTR on.
  • FlushReceiveBuffer() Discards the contents of the receive buffer.
  • FlushTransmitBuffer() Discards the contents of the transmit buffer.
  • GetByte() Gets a byte from the receive buffer.
  • GetPaceTime() Get the current inter-character pace time.
  • GetPacket() Gets a packet from receive buffer.
  • GetString() Gets a carriage return, line feed, or null terminated string from receive buffer.
  • GetTimeout() Get the current timeout value.
  • InitializePort() Initializes the serial port(Allocate buffers, cardtype, etc.).
  • IsBreak() Returns true if a break signal was detected.
  • IsCarrierDetect() Returns true if carrier detected.
  • IsCts() Returns true if CTS signal high.
  • IsDsr() Returns true if DSR signal high.
  • IsFramingError() Returns true if a framing error occurred.
  • IsInputOverrun() Returns true if the COMM-DRV receive buffer was overrun.
  • IsOverrunError() Returns true if the UART receive register was overrun.
  • IsParityError() Returns true if a parity error occurred.
  • IsPortAvailable() Determine if a particular port is in use.
  • IsReceiveBufferEmpty() Returns true if receive buffer is empty.
  • IsRing() Returns true if ring detected.
  • IsTransmitBufferEmpty() Returns true if transmit buffer is empty.
  • OpenComPort() Open standard COM ports under Windows. Physical port information etc. are not required.
  • PeekChar() Returns the next character from receive buffer non-destructively.
  • PutByte() Queues a byte for transmission.
  • PutPacket() Queues a packet for transmission.
  • PutString() Outputs a null terminated string.
  • ReceiveBufferSize() Returns the receive buffer size.
  • RtsOff() Turns RTS off.
  • RtsOn() Turns RTS on.
  • SendBreak() Sends a break signal.
  • SetBaud() Sets new baud rate.
  • SetCallbackFunction() Easy to use method that effects a callback to have a user's standard C function when the specified event occurs.
  • SetCustomBaud() Maps a custom baud rate to one of the standard COMM-DRV baud constants.
  • SetFlowControlCharacters() Sets characters used for flow control.
  • SetFlowControlThreshold() Sets high and low receive buffer thresholds.
  • SetPaceTime() Sets the current inter-character pace time.
  • SetPortCharacteristics() Set line control parameters(baudrate, length, parity,etc.).
  • SetTimeout() Sets the current transmit/receive timeouts.
  • SpaceInReceiveBuffer() Returns space unused in receive buffer.
  • SpaceInTransmitBuffer() Returns space unused in transmit buffer.
  • TransmitBufferSize() Returns transmit buffer size.
  • UnInitializePort() Undo the effects of InitializePort() (unhook vectors. release memory, etc.).
  • WaitFor() Outputs a string and waits for a matching response.
  • WaitForData()
  • WaitForDataPeek()
  • WaitForDataClearString()
  • WaitForDataSetString()
  • WaitForPeek() Non-destructive WaitFor().
  • WaitForPeekTable() Outputs a string and non-destructively waits for a matching response to a table of strings.
  • WaitForTable() Destructive WaitForPeekTable().

Modem Functions

  • Dial() Dials using the modem with the Hayes command set.
  • ModemAnswerMode() Puts modem in answer mode.
  • ModemAttention() Puts modem in command state.
  • ModemConnect() Returns true if modem connection attained.
  • ModemGetCarrierSpeed() Returns carrier speed.
  • ModemGetConnectSpeed() Returns connect speed.
  • ModemHangup() Hangup modem connection.
  • ModemInit() Set modem initialization string.
  • ModemModifyString() Modify modem string.

File Transfer Functions

  • cdrvxfer_files() Transmit or receive file(s) with specified protocol to completion.
  • cdrvxfer_getfiles() Receive file(s) with specified protocol. Must be called several times till transfer complete.
  • cdrvxfer_sendfiles() Transmit file(s) with specified protocol. Must be called several times till transfer complete.
  • cdrvxfer_sfiles() Transmit or receive file(s) with specified protocol to completion(additional features).
  • FileTransferDialog() Enables an automatic dialog to be displayed on some of the file transfer functions.
  • SetXferParameters() Set file transfer parameters.
  • TransferFiles() Transfer files.

Low Level Functions

  • ser_rs232_block() Set timeouts on character reception & trasmission.
  • ser_rs232_cleanup() Uninstalls a port. 
  • ser_rs232_del_t_event() Deletes a timed event.
  • ser_rs232_dtr_off() Turns the DTR signal off.
  • ser_rs232_dtr_on() Turns the DTR signal on.
  • ser_rs232_flush() Selectively fushes input and output buffers.
  • ser_rs232_get_sdata() Gets pointer to COMM-DRV system data area.
  • ser_rs232_getbyte() Reads a byte from input buffer.
  • ser_rs232_getpacket() Reads a packet from input buffer.
  • ser_rs232_getport() Gets port information.
  • ser_rs232_getstatus() Gets port modem and line status.
  • ser_rs232_maxport() Returns the highest addressable port number.
  • ser_rs232_misc_func() COMM-DRV multiplex function. Used to setup user callback functions, initialize certain variables, etc.
  • ser_rs232_putbyte() Queues a byte for transmission.
  • ser_rs232_putpacket() Queues a packet for transmission.
  • ser_rs232_putregister() Writes to specified 8250 type register.
  • ser_rs232_rts_off() Turns RTS off.
  • ser_rs232_rts_on() Turns RTS on.
  • ser_rs232_set_intfunc() Setup user interrupt functions(user callback).
  • ser_rs232_setbauddiv() Sets baudrate divisor for 8250 style UARTs.
  • ser_rs232_setup() Installs or modify a serial port.
  • ser_rs232_viewpacket() Non-destructively reads a packet from input buffer.


Send mail to webmaster@sinnovations.com with questions or comments about this web site.
Copyright 1999-2007 Software Innovations Inc.
This page last updated on 03/29/2011