/**
*
*                   comm.h
*
*   header file for the Communications Library
*
*   Copyright (c) 1989 Lattice, Inc.
*   All Rights Reserved
*
**/



#include   <intuition/intuition.h>
typedef struct Window WINDOW;
typedef struct IOExtSer  IOEXTSER;
typedef struct MsgPort   MSGPORT;
typedef struct Task      TASK;


#define     NO_PARITY   0
#define     ODD_PARITY  1
#define     EVEN_PARITY 2

#define     SEND        1
#define     RECEIVE     2

#define     FLOW_OFF    0
#define     FLOW_ON     1



struct _ComPort {
	char  ComName[32];         /*  Communications port name  */
        int   ComPort;             /*  Communications port number  */
	int   ComXonXoff;          /*  On/Off flag for XON/XOFF  */
	int   ComFlushTime;        /*  Flush time for the port  */
	int   ComXmodemTime;       /*  XModem packet timeout in secs.  */
	int   ComBreakTime;        /*  Duration of a break  */
	int   ComDTRTime;          /*  Time Length for dropping DTR  */
	int   ComDialTime;         /*  Maximum time to dial phone  */
	int   ComDelayFactor;      /*  ???  */
	int   ComStripLF;          /*  Flag for stripping LF  */
	int   ComAddCR;            /*  Flag for adding CR before LF  */
	int   ComCharDelay;        /*  Character delay for ascii send  */
	int   ComLineDelay;        /*  Line delay for ascii send  */
	int   ComKermitImage;      /*  Kermit image flag  */
	int   ComModem;            /*  OS/2 handle  */
	
	char  ComDial[32];         /*  Modem pre-dial string  */ 
	char  ComDisc[32];         /*  Modem disconnect command  */
	char  ComReset[32];        /*  Modem reset command  */
	char  ComSetAA[32];        /*  Command to activate auto-answer  */
	char  ComUnsetAA[32];      /*  Command to deactivate auto-answer  */

        MSGPORT     *ComMPort;     /*  Amiga MsgPort for serial device  */
	IOEXTSER    *ComMsg;       /*  Amiga message structure  */
        WINDOW      *ComWindow;    /*  Amiga screen window pointer  */
	TASK        *ComTask;      /*  Amiga task pointer  */
};
typedef struct _ComPort *COMPORT;


/**
*
*
*   declarations for the library functions
*
*
**/


extern void     ComBreak(COMPORT);
extern int      ComCarrier(COMPORT);
extern void     ComClose(COMPORT);
extern int      ComDial(COMPORT, char *);
extern int      ComDisc(COMPORT);
extern void     ComDTR(COMPORT);
extern void     ComFlush(COMPORT);
extern int      ComGetc(COMPORT);
extern COMPORT  ComOpen(char *, int, long, int, int, int, int, int, WINDOW *);
extern void     ComPutc(COMPORT, unsigned char);
extern void     ComPuts(COMPORT, unsigned char *);
extern int      ComRead(COMPORT, unsigned char *, int);
extern int      ComRecvA(COMPORT, char *, int, int, int);
extern int      ComRecvK(COMPORT);
extern int      ComRecvX(COMPORT, char *);
extern int      ComRecvY(COMPORT, char *);
extern void     ComReset(COMPORT);
extern int      ComSendA(COMPORT, char *);
extern int      ComSendX(COMPORT, char *);
extern int      ComSendY(COMPORT, char *);
extern int      ComSendK(COMPORT, char *);
extern void     ComSetAns(COMPORT, int);
extern void     ComSetBaud(COMPORT, long);
extern int      ComSetBits(COMPORT, int);
extern int      ComSetFlow(COMPORT, int);
extern int      ComSetPar(COMPORT, int);
extern int      ComSetStop(COMPORT, int);
extern int      ComShowA(int, char);
extern int      ComShowK(int, char, int);
extern int      ComShowXY(int, int);
extern int      ComSizeX(char *);
extern int      ComSizeY(char *);
extern int      ComStatus(COMPORT);
extern void     ComWrite(COMPORT, unsigned char *, int);
