ASYNC.H

6.5 KB 3e9b94ce002544e2…
#ifndef _ASYNC_H_INCLUDED
#define _ASYNC_H_INCLUDED
/*--------------------------------------------------------------------------*/
/*                                                                          */
/*                                                                          */
/*      ------------         Bit-Bucket Software, Co.                       */
/*      \ 10001101 /         Writers and Distributors of                    */
/*       \ 011110 /          Freely Available<tm> Software.                 */
/*        \ 1011 /                                                          */
/*         ------                                                           */
/*                                                                          */
/*  (C) Copyright 1987-91, Bit Bucket Software Co., a Delaware Corporation. */
/*                                                                          */
/*                                                                          */
/*            This header file was written by Peter Fitzsimmons             */
/*             OS/2 Communications definitions for BinkleyTerm              */
/*                                                                          */
/*                                                                          */
/*    For complete  details  of the licensing restrictions, please refer    */
/*    to the License  agreement,  which  is published in its entirety in    */
/*    the MAKEFILE and BT.C, and also contained in the file LICENSE.250.    */
/*                                                                          */
/*    USE  OF THIS FILE IS SUBJECT TO THE  RESTRICTIONS CONTAINED IN THE    */
/*    BINKLEYTERM  LICENSING  AGREEMENT.  IF YOU DO NOT FIND THE TEXT OF    */
/*    THIS  AGREEMENT IN ANY OF THE  AFOREMENTIONED FILES,  OR IF YOU DO    */
/*    NOT HAVE THESE FILES,  YOU  SHOULD  IMMEDIATELY CONTACT BIT BUCKET    */
/*    SOFTWARE CO.  AT ONE OF THE  ADDRESSES  LISTED BELOW.  IN NO EVENT    */
/*    SHOULD YOU  PROCEED TO USE THIS FILE  WITHOUT HAVING  ACCEPTED THE    */
/*    TERMS  OF  THE  BINKLEYTERM  LICENSING  AGREEMENT,  OR  SUCH OTHER    */
/*    AGREEMENT AS YOU ARE ABLE TO REACH WITH BIT BUCKET SOFTWARE, CO.      */
/*                                                                          */
/*                                                                          */
/* You can contact Bit Bucket Software Co. at any one of the following      */
/* addresses:                                                               */
/*                                                                          */
/* Bit Bucket Software Co.        FidoNet  1:104/501, 1:343/491             */
/* P.O. Box 460398                AlterNet 7:491/0                          */
/* Aurora, CO 80046               BBS-Net  86:2030/1                        */
/*                                Internet f491.n343.z1.fidonet.org         */
/*                                                                          */
/* Please feel free to contact us at any time to share your comments about  */
/* our software and/or licensing policies.                                  */
/*                                                                          */
/*--------------------------------------------------------------------------*/

#define TRUE  1
#define FALSE 0
#define DCD_ON 0x80
#define ERROR_MORE_DATA 234

#define IOCTL_ASYNC               0x0001
#define IOCTL_SCR_AND_PTRDRAW     0x0003
#define IOCTL_KEYBOARD            0x0004
#define IOCTL_PRINTER             0x0005
#define IOCTL_LIGHTPEN            0x0006
#define IOCTL_POINTINGDEVICE      0x0007
#define IOCTL_DISK                0x0008
#define IOCTL_PHYSICALDISK        0x0009
#define IOCTL_MONITOR             0x000A
#define IOCTL_GENERAL             0x000B

/* General Device Control */

#define DEV_FLUSHINPUT            0x0001
#define DEV_FLUSHOUTPUT           0x0002
#define DEV_QUERYMONSUPPORT       0x0060

/* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON, ASYNC_SETMODEMCTRL */

#define RX_QUE_OVERRUN            0x0001
#define RX_HARDWARE_OVERRUN       0x0002
#define PARITY_ERROR              0x0004
#define FRAMING_ERROR             0x0008

/* ASYNC_GETCOMMEVENT */

#define CHAR_RECEIVED             0x0001
#define LAST_CHAR_SENT            0x0004
#define CTS_CHANGED               0x0008
#define DSR_CHANGED               0x0010
#define DCD_CHANGED               0x0020
#define BREAK_DETECTED            0x0040
#define ERROR_OCCURRED            0x0080
#define RI_DETECTED               0x0100

/* ASYNC_GETCOMMSTATUS */

#define TX_WAITING_FOR_CTS        0x0001
#define TX_WAITING_FOR_DSR        0x0002
#define TX_WAITING_FOR_DCD        0x0004
#define TX_WAITING_FOR_XON        0x0008
#define TX_WAITING_TO_SEND_XON    0x0010
#define TX_WAITING_WHILE_BREAK_ON 0x0020
#define TX_WAITING_TO_SEND_IMM    0x0040
#define RX_WAITING_FOR_DSR        0x0080

/* ASYNC_GETLINESTATUS */

#define WRITE_REQUEST_QUEUED      0x0001
#define DATA_IN_TX_QUE            0x0002
#define HARDWARE_TRANSMITTING     0x0004
#define CHAR_READY_TO_SEND_IMM    0x0008
#define WAITING_TO_SEND_XON       0x0010
#define WAITING_TO_SEND_XOFF      0x0020

/* fbCtlHndShake */

#define MODE_DTR_CONTROL          0x01
#define MODE_DTR_HANDSHAKE        0x02
#define MODE_CTS_HANDSHAKE        0x08
#define MODE_DSR_HANDSHAKE        0x10
#define MODE_DCD_HANDSHAKE        0x20
#define MODE_DSR_SENSITIVITY      0x40

/* fbFlowReplace */

#define MODE_AUTO_TRANSMIT        0x01
#define MODE_AUTO_RECEIVE         0x02
#define MODE_ERROR_CHAR           0x04
#define MODE_NULL_STRIPPING       0x08
#define MODE_BREAK_CHAR           0x10
#define MODE_RTS_CONTROL          0x40
#define MODE_RTS_HANDSHAKE        0x80
#define MODE_TRANSMIT_TOGGLE      0xC0

/* fbTimeout */

#define MODE_NO_WRITE_TIMEOUT     0x01
#define MODE_READ_TIMEOUT         0x02
#define MODE_WAIT_READ_TIMEOUT    0x04
#define MODE_NOWAIT_READ_TIMEOUT  0x06

#if !defined (BSEDEV_INCLUDED)

typedef struct _LINECONTROL {     /* lnctl */
   BYTE bDataBits;
   BYTE bParity;
   BYTE bStopBits;
   BYTE fTransBreak;
} LINECONTROL;
typedef LINECONTROL FAR *PLINECONTROL;

typedef struct _MODEMSTATUS {     /* mdmst */
   BYTE fbModemOn;
   BYTE fbModemOff;
} MODEMSTATUS;
typedef MODEMSTATUS FAR *PMODEMSTATUS;

#endif /* BSEDEV_INCLUDED not defined */

extern int com_getbuf(void);
extern bool com_in_check(void);
#endif /* _ASYNC_H_INCLUDED */