home *** CD-ROM | disk | FTP | other *** search
- /*
- ** declarations for comm.asm
- **
- ** compilation must use the Ze switch to enable the
- ** "far" keyword for the small memory model
- **
- ** Robin Rohlicek 3/86
- ** skl@van-bc.UUCP 5/88 (more prototypes and com_errors fix)
- */
-
- void far select_port(int); /* select active port (1 or 2) */
-
- void far save_com(void); /* save the interupt vectors */
-
- void far restore_com(void); /* restore those vectors */
-
- int far install_com(void); /* install our vectors */
-
- void far open_com( /* open com port */
- int, /* baud */
- int, /* 'M'odem or 'D'irect */
- int, /* Parity 'N'one, 'O'dd, 'E'ven, 'S'pace, 'M'ark */
- int, /* stop bits (1 or 2) */
- int); /* Xon/Xoff 'E'nable, 'D'isable */
-
- void far close_com(void); /* close com port */
-
- void far dtr_off(void); /* clear DTR */
-
- void far dtr_on(void); /* set DTR */
-
- long far r_count(void); /* receive counts */
- /* high word = total size of receive buffer */
- /* low word = number of pending chars */
- #define r_count_size() ((int)(r_count() >> 16))
- #define r_count_pending() ((int)r_count())
-
- int far receive_com(void); /* get one character */
- /* return -1 if none available */
-
- long far s_count(void); /* send counts */
- /* high word = total size of transmit buffer */
- /* low word = number of bytes free in transmit buffer */
- #define s_count_size() ((int)(s_count() >> 16))
- #define s_count_free() ((int)s_count())
-
- void far send_com(int); /* send a character */
-
- void far send_local(int); /* simulate receive of char */
-
- void far sendi_com(int); /* send immediately */
-
- void far break_com(void); /* send a BREAK */
-
- int far * far com_errors(void); /* return far pointer to error counts
- (in static area) */
- #define COM_EOVFLOW 0 /* buffer overflows */
- #define COM_EOVRUN 1 /* receive overruns */
- #define COM_EBREAK 2 /* break chars */
- #define COM_EFRAME 3 /* framing errors */
- #define COM_EPARITY 4 /* parity errors */
- #define COM_EXMIT 5 /* transmit erros */
- #define COM_EDSR 6 /* data set ready errors */
- #define COM_ECTS 7 /* clear to send errors */
-
-
- /*--------------------------------------------------------------------*/
- /* Macros based on modem status */
- /*--------------------------------------------------------------------*/
-
- #ifdef NO_COMMFIFO
- #define is_dsr_high() 1
- #define is_cts_high() 1
- #define is_cd_high() 1
- #define modem_status() 0xff /* Fake return */
- #else
- int far modem_status( void ); /* Return current modem status */
-
- #define is_dsr_high() (( modem_status & MDM_NCD ) == 0x00)
- #define is_cts_high() (( modem_status & MDM_NDSR ) == 0x00)
- #define is_cd_high() (( modem_status & MDM_NCD ) == 0x00)
- #endif
-
- /*--------------------------------------------------------------------*/
- /* Bits returned by modem status */
- /*--------------------------------------------------------------------*/
-
- #define MDM_NCD 0x80 /* -CD (Carrier Detect, inverted) */
- #define MDM_NRI 0x40 /* -RI (Ring Indicator, inverted) */
- #define MDM_NDSR 0x20 /* -DSR (Data Set Ready, inverted) */
- #define MDM_NCTS 0x10 /* -CTS (Clear to Send, inverted) */
- #define MDM_CDC 0x08 /* Delta Carrier Detect (CD changed) */
- #define MDM_TRI 0x04 /* Trailing edge of RI (RI went OFF) */
- #define MDM_DSRC 0x02 /* Delta DSR (DSR changed) */
- #define MDM_CTSC 0x01 /* Delta CTS (CTS changed) */
-