⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asyncdef.h

📁 异步通讯C语言例行子程序
💻 H
字号:
/* Included in the modules of ASYNCx.LIB version 1.10 */

/* This file contains information that should be included
   in each module of each ASYNCx.LIB file.                */
#define DATA  0 /* data register                     */
#define BAUDL 0 /* baud rate divisor (LSB)           */
#define IER   1 /* Interrupt Enable Register         */
#define BAUDH 1 /* baud rate divisor (MSB)           */
#define IIR   2 /* Interrupt Identification Register */
#define LCR   3 /* Line Control Register             */
#define MCR   4 /* Modem Control Register            */
#define LSR   5 /* Line Status Register              */
#define MSR   6 /* Modem Status Register             */

#define XON  0x11
#define XOFF 0x13

#define a_icount(p) ((p)->icount)
#define a_ocount(p) ((p)->ocount)

typedef unsigned char byte;
typedef unsigned word;

typedef struct
 {unsigned      base;      /* base address of async port                      */
  unsigned char *ibuf;     /* points to buffer for incomming data             */
  unsigned char *ibufend;  /* points 1 byte past end of input buffer          */
  unsigned char *ibufhead; /* next available byte in input buffer             */
  unsigned char *ibuftail; /* next byte to be read from input buffer          */
  unsigned      icount;    /* number of characters in the buffer              */
  unsigned char *obuf;     /* points to buffer for outgoing data              */
  unsigned char *obufend;  /* points 1 byte past end of output buffer         */
  unsigned char *obufhead; /* next available unsigned char in output buffer   */
  unsigned char *obuftail; /* next byte to be put into output buffer          */
  unsigned      ocount;    /* number of characters in the output buffer       */
  unsigned      xon;       /* either 0 or the level at which to send an XON   */
  unsigned      xoff;      /* either -1 or the level at which to send an XOFF */
  unsigned char lookx;     /* TRUE iff we must recognize xon/xoff             */
  unsigned char sentxoff;  /* TRUE iff an XOFF has been sent.                 */
  unsigned char recvxoff;  /* TRUE iff we received an XOFF.                   */
 } ASYNC;

/*************************/
/** function prototypes **/
/*************************/
int a_break(ASYNC *p,int count);
ASYNC *a_close(ASYNC *p,int fc);
int a_eof(ASYNC *p,int t);
int a_getc(ASYNC *p);
char *a_gets(char *s,int n,ASYNC *p,int t);
int a_getlcr(ASYNC *p);
int a_getlsr(ASYNC *p);
int a_getmcr(ASYNC *p);
int a_getmsr(ASYNC *p);
int a_iflush(ASYNC *p);
int a_oflush(ASYNC *p);
ASYNC *a_open(word port,word baud,word par,word dbits,
              word sbits,word ibufsize,word obufsize);
int a_params(ASYNC *p,word baud,word par,word dbits,word sbits);
int a_portno(ASYNC *p);
int a_printf(ASYNC *p,char *format,...);
int a_putc(int c,ASYNC *p);
int a_puts(char *s,ASYNC *p);
int a_read(void *buf,int size,int n,ASYNC *p,int t);
void a_setlcr(ASYNC *p,int newval);
void a_setmcr(ASYNC *p,int newval);
int a_setxonoff(ASYNC *p,word xon,word xoff);
int a_ungetc(int c,ASYNC *p);
int a_waitfor(ASYNC *port,char *s,int t,int mode);
int a_waitquiet(ASYNC *port,int t,int max,int mode);
int a_write(void *buf,int size,int n,ASYNC *p);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -