home *** CD-ROM | disk | FTP | other *** search
/ PC Media 4 / PC MEDIA CD04.iso / share / prog / 4dser100 / 4dserial.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-21  |  2.9 KB  |  68 lines

  1.  
  2.     //------------------------------------------------------------------//
  3.     //           The following functions are used by you the programmer     //
  4.     //------------------------------------------------------------------//
  5.  
  6. #define SERIAL_ONESECOND    (182/10)// Definition for one second of Ticks //
  7.  
  8. #define SERIAL_PARITY_ERROR    0x0001  // Parity Error                        //
  9. #define SERIAL_FRAME_ERROR  0x0002  // Framing Error                       //
  10. #define SERIAL_BREAK_ERROR  0x0003  // Break Error                           //
  11. #define SERIAL_OVRRUN_ERROR 0x0004  // Overrun Error                       //
  12.  
  13. #define SERIAL_LOCAL           0x0000  //                                     //
  14. #define SERIAL_ASYNC          0x0001  // Simple settings for the type of     //
  15. #define SERIAL_FOSSIL         0x0002  // communications to be performed.     //
  16. #define SERIAL_DIGIBOARD     0x0003  //                                     //
  17.  
  18. extern char *SERIAL_OSName[5];
  19.  
  20. typedef struct {
  21.     int        Count;
  22.     int        Start;
  23.     int        Cnext;
  24.     int        Size;
  25.     char *    Buffer;
  26. } RING;
  27.  
  28. typedef struct {
  29.     long                 Timers[10]; // Timer funct. counters                      //
  30.     char                Type;         // NonZero if Local Mode                      //
  31.     char                Error;         // NonZero if Comm Error                      //
  32.     char                FIFOExists; // NonZero if FIFO exists                     //
  33.     int                  PortBase;     // Base of comm Port                          //
  34.     int                    IRQ;         // IRQ Being used, 0=None                     //
  35.     char                IRQShared;     // True is IRQ is shared                      //
  36.     char                OSType;     // Set to equal OS type                       //
  37.     unsigned char        InChar;     // Char read from port                        //
  38.     unsigned char        ModemStatus;// Modem Status Register                      //
  39.     unsigned char        LineStatus; // Line Status Register                       //
  40.     char                MaxSend;     // Max Chars to send                          //
  41.     char                InputHS;     // NonZero to hold input                      //
  42.     char                OutputHS;     // NonZero to hold output                     //
  43.     unsigned char far     *DataReady; // DigiBoard FAR Data Ready Pointer Address //
  44.     unsigned char        Abort;      // NonZero if action aborted by CTRL-(K/C)  //
  45.     RING                OutRing;    // Output data buffer                          //
  46.     RING                InRing;     // Input data buffer                         //
  47. } SERIALINFO;
  48.  
  49. extern SERIALINFO SERIAL;
  50.  
  51. extern int     SERIAL_OpenPort(char AsyncType, unsigned PortBase, int IRQ, long baudrate, int parity, int databits, int stopbits);
  52. extern void SERIAL_ClosePort(void);
  53. extern int     SERIAL_CheckError(void);
  54. extern int    SERIAL_TransmitChar(char c);
  55. extern void SERIAL_TransmitStr(char *s);
  56. extern int    SERIAL_ReceiveChar(void); // No Wait Function //
  57. extern int     SERIAL_DataReady(void);
  58. extern void SERIAL_ToggleDTR(char OnOff);
  59. extern int     SERIAL_OnLine(void);
  60. extern void    SERIAL_PurgeOutBuf(void);
  61. extern void    SERIAL_PurgeInBuf(void);
  62. extern void    SERIAL_FlushOutBuf(void);
  63. extern void SERIAL_GetOSType(void);
  64. extern void SERIAL_GiveSlice(void);
  65. extern void SERIAL_TickDelay(long Ticks);
  66. extern void SERIAL_SetTimer(int TimerNumber, long Ticks);
  67. extern long    SERIAL_GetTimer(int TimerNumber);
  68.