home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / SERIAL.H < prev    next >
C/C++ Source or Header  |  1997-07-05  |  5KB  |  109 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. +----------------------------------------------------+
  5. |               Thunderbird Software                 |
  6. +----------------------------------------------------+
  7. | Filespec  :  Serial.c                              |
  8. | Date      :  October 24, 1991                      |
  9. | Time      :  15:03                                 |
  10. | Revision  :  1.1                                   |
  11. | Update    : August 29, 1994                        |
  12. | Update    : March 12, 1995 by Bob Stout            |
  13. +----------------------------------------------------+
  14. | Programmer:  Scott Andrews                         |
  15. | Address   :  5358 Summit RD SW                     |
  16. | City/State:  Pataskala, Ohio                       |
  17. | Zip       :  43062                                 |
  18. +----------------------------------------------------+
  19. | Released to the Public Domain                      |
  20. +----------------------------------------------------+
  21. */
  22.  
  23. #ifndef SERIAL__H
  24. #define SERIAL__H
  25.  
  26. #include "extkword.h"
  27. #include "pchwio.h"
  28.  
  29. #define  SerInBufSize  4096            /* Size of input buffer          */
  30. #define  SerOutBufSize 512             /* Size of output buffer         */
  31.  
  32. /* 8250 registers */
  33.  
  34. #define  REC             0             /* Uart receive reg.             */
  35. #define  XMIT            0             /* Uart transmit reg.            */
  36. #define  INT_EN          1             /* Uart int. enable reg.         */
  37. #define  INT_ID          2             /* Uart int. ident. reg.         */
  38. #define  LINE_CNTRL      3             /* Uart line control reg.        */
  39. #define  MODEM_CNTRL     4             /* Uart modem control reg.       */
  40. #define  LINE_STATUS     5             /* Uart line status reg.         */
  41. #define  MODEM_STATUS    6             /* Uart modem status reg.        */
  42. #define  BAUD_LSB        0             /* Uart baud divisor reg.        */
  43. #define  BAUD_MSB        1             /* Uart baud divisor reg.        */
  44.  
  45. #define  NONE            0             /* Handshake param none          */
  46. #define  HDW             1             /* Handshake param hardware      */
  47. #define  XON             2             /* Handshake param software      */
  48.  
  49. /* Interrupt enable register  */
  50.  
  51. #define  RX_INT          0x01          /* Receive interrupt mask        */
  52. #define  TBE_INT         0x02          /* Transmit buffer empty mask    */
  53. #define  ERR_INT         0x04          /* Error interrupt mask          */
  54. #define  RS_INT          0x08          /* Line interrupt mask           */
  55.  
  56. /* Interrupt id register      */
  57.  
  58. #define  OUT2            0x08          /* Out 2 line                    */
  59. #define  DTR             0x01          /* DTR high                      */
  60. #define  RTS             0x02          /* RTS high                      */
  61. #define  CTS             0x10
  62. #define  DSR             0x20
  63. #define  XMTRDY          0x20
  64. #define  TXR             0       /*  Transmit register (WRITE)          */
  65.  
  66. #if !defined TRUE                      /* Define boolean true/false     */
  67. #define  FALSE  0
  68. #define  TRUE   !FALSE
  69. #endif
  70.  
  71. extern void (INTERRUPT FAR *oldvector_serial )( void);
  72.  
  73. extern int   ComBase;                  /* Comm port address             */
  74. extern int   IrqNum;                   /* Comm interrupt request        */
  75.  
  76. typedef struct                         /* Save existing comm params     */
  77. {  int int_enable;                     /* old interrupt enable reg value*/
  78.    int line;                           /*  "  line control      "    "  */
  79.    int modem;                          /* old modem control     "    "  */
  80.    int baud_lsb;                       /* old baud rate divisor LSD     */
  81.    int baud_msb;                       /*  "   "    "      "    MSD     */
  82.    int int_cntrl;                      /* old PIC interrupt reg value   */
  83. } OLD_COMM_PARAMS;
  84. extern OLD_COMM_PARAMS old_comm_params;
  85.  
  86. typedef struct
  87. {  int line;                           /* Uart line status reg.         */
  88.    int modem;                          /* Uart mode status reg.         */
  89.    int intrupt;                        /* Uart interrupt reg.           */
  90.    int handshake;                      /* Handshake status              */
  91. } COMM_STATUS;                         /* status, updated, handler      */
  92. extern COMM_STATUS comm_status;
  93.  
  94. int   OpenComPort ( char Port );         /*setup comm for usage         */
  95. void  InitComPort ( char Baud[], char Databits, char Parity, char Stop );
  96. void  CloseComPort ( void );             /* Restore comm port           */
  97. void  DropDtr ( void );                  /* Lower DTR                   */
  98. void  RaiseDtr ( void );                 /* Raise DTR                   */
  99. int   ComRecChar ( void );               /* Fetch character from rcv buf*/
  100.  
  101. int   ComSendChar ( char character );    /* Put char into xmit buffer   */
  102. int   ComSendString ( char *string );
  103. int   ComStatus ( void );                /* Fetch comm status           */
  104. void  INTERRUPT FAR serial ( void );     /* interrupt handler           */
  105.  
  106. /* End of Serial.H */
  107.  
  108. #endif /* SERIAL__H */
  109.