www.pudn.com > norti2.0 > NOSIO.H


/****************************************************************************** 
* NORTi対応 シルアル入出力関数ヘッダ                                     * 
*                                                                             * 
*  File name : nosio.h                                                        * 
*  Copyright (c) Miyazaki System Planning Office. 1993-1995                   * 
*                                                                             * 
* 93-04-14 作成                                                               * 
* 93-05-16 Ver1.13β                                                          * 
* 94-01-05 Ver1.14                                                            * 
* 95-06-15 Ver1.20                                                            * 
* 95-08-14 T_SIOFP の定義を nosio.c へ移す                                    * 
******************************************************************************/ 
 
#ifndef	NOSIO_H 
#define	NOSIO_H 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
#ifdef LSI_C80 
#ifndef	const 
#define	const	/**/ 
#endif 
#endif 
 
/* error code */ 
 
#define	EV_SIOINI	1			/* 未初期化 */ 
#define	EV_SIOOVF	2			/* 受信buffer overflow */ 
#define	EV_SIOPTY	3			/* parity error */ 
#define	EV_SIOORN	4			/* overrun error */ 
#define	EV_SIOFRM	5			/* framing error */ 
#define	EV_SIOBRK	6			/* break検出 */ 
 
/* 機能code */ 
 
#define	TSIO_RXE	0x01		/* 受信enable */ 
#define	TSIO_RXD	0x02		/* 受信disable */ 
#define	TSIO_TXE	0x04		/* 送信enable */ 
#define	TSIO_TXD	0x08		/* 送信disable */ 
#define	TSIO_RTSON	0x10		/* RTS信号ON */ 
#define	TSIO_RTSOFF	0x20		/* RTS信号OFF */ 
#define	TSIO_DTRON	0x40		/* DTR信号ON */ 
#define	TSIO_DTROFF	0x80		/* DTR信号OFF */ 
#define	TSIO_RXCLR	0x0100		/* 受信buffer clear */ 
#define	TSIO_TXCLR	0x0200		/* 送信buffer clear */ 
#define	TSIO_SBON	0x0400		/* break送信ON */ 
#define	TSIO_SBOFF	0x0800		/* break送信OFF */ 
 
/* serial入出力状態packet */ 
 
typedef struct t_sios 
{ 
	UB siostat;					/* serial入出力status */ 
 
#define	TSIO_CD		0x01		/* 受信career検出 */ 
#define	TSIO_CTS	0x02		/* CTS信号ON(1)/OFF(0) */ 
#define	TSIO_TXEMP	0x04		/* 送信buffer空 */ 
#define	TSIO_PE		0x08		/* parity error */ 
#define	TSIO_OE		0x10		/* overrun error */ 
#define	TSIO_FE		0x20		/* framing error */ 
#define	TSIO_BD		0x40		/* break状態検出 */ 
#define	TSIO_DSR	0x80		/* DSR信号ON(1)/OFF(0) */ 
 
	UB rxchr;					/* 受信bufferの先頭の文字 */ 
	UH rxlen;					/* 受信bufferのdata長 */ 
	UH frbufsz;					/* 送信bufferのspace size */ 
	UH eotcnt;					/* 受信bufferの終端文字個数 */ 
 
} T_SIOS; 
 
/* 関数prototype */ 
 
ER pascal ini_sio(INT, const B *); 
void cdecl ext_sio(void); 
ER pascal get_sio(INT, UB *, TMO); 
ER pascal put_sio(INT, UB, TMO); 
ER pascal ctl_sio(INT, UH); 
ER pascal ref_sio(INT, T_SIOS *); 
ER pascal fls_sio(INT, TMO); 
 
/* serial入出力制御block構造体 */ 
 
typedef struct t_sio 
{ 
	UB ch;						/* channel番号 */ 
	UB flag;					/* 制御flag */ 
 
#define	TSF_INIT	0x01		/* 初期化済み */ 
#define	TSF_TXREQ	0x02		/* XON/XOFF送信要求 */ 
#define	TSF_RXOFF	0x04		/* XOFF受信した */ 
#define	TSF_TXOFF	0x08		/* XOFF送信した */ 
#define	TSF_XON		0x10		/* XON/OFFによるflow制御有り */ 
#define	TSF_DTR		0x20		/* DTRによるflow制御有り */ 
#define	TSF_RTS		0x40		/* RTSによるflow制御有り */ 
 
	UB txchr;					/* 送信文字 */ 
	UB rxchr;					/* 受信文字 */ 
	UB rxsts;					/* 受信status */ 
	UB oldchr;					/* 前回の受信文字 */ 
	UB oldsts;					/* 前回の受信status */ 
 
	UB eot;						/* 終端文字 */ 
	UH eotcnt;					/* 終端文字検出counter */ 
 
	ID txtid;					/* 送信待ちtaskID */ 
	ID rxtid;					/* 受信待ちtaskID */ 
	ID tetid;					/* 送信終了待ちtaskID */ 
 
	UB cmd[6];					/* SIO command buffer */ 
	UB rsv[2];					/* 予備 */ 
 
	UH txcnt;					/* 送信buffer内の文字数 */ 
	UH rxcnt;					/* 受信buffer内の文字数 */ 
 
	UB *txbuf;					/* 送信buffer */ 
	UB *rxbuf;					/* 受信buffer(+BUFSZ に受信 status buffer)*/ 
	UB *txputp;					/* 送信buffer格納pointer */ 
	UB *txgetp;					/* 送信buffer取得pointer */ 
	UB *rxputp;					/* 受信buffer格納pointer */ 
	UB *rxgetp;					/* 受信buffer取得pointer */ 
 
  #ifdef NORTi86 
	H far *vram;				/* moniter表示用text VRAM address */ 
  #endif 
 
} T_SIO; 
 
#ifdef __cplusplus 
}; 
#endif 
 
#endif /* NOSIO_H */