User Tools

Site Tools


base:rs232silversurfer.h

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:rs232silversurfer.h [2015-04-17 04:33] (current)
Line 1: Line 1:
 +====== rs232silversurfer.h ======
 +<code>
 +/*
 +* rs232silversurfer.h
 +*
 +* Groepaz/Hitmen, 16.12.2001
 +*
 +* This defines for the SilverSurver (16c550 UART) what Ullrichs rs232 module
 +* defines for the Swithlink/Turbo232
 +*
 +* this driver operates in polling mode only atm !
 +*
 +*/
  
 +#ifndef _RS232silversurfer_H
 +#define _RS232silversurfer_H
 +
 +/*****************************************************************************/
 +/*                   Data                                                    */
 +/*****************************************************************************/
 +
 +/* Baudrate settings */
 +#define RS_BAUD_50                0x00
 +#define RS_BAUD_110               0x10
 +#define RS_BAUD_134_5             0x20
 +#define RS_BAUD_300               0x30
 +#define RS_BAUD_600               0x40
 +#define RS_BAUD_1200              0x50
 +#define RS_BAUD_2400              0x60
 +#define RS_BAUD_4800              0x70
 +#define RS_BAUD_9600              0x80
 +#define RS_BAUD_19200             0x90
 +#define RS_BAUD_38400             0xa0
 +#define RS_BAUD_57600             0xb0
 +#define RS_BAUD_115200            0xc0
 +#define RS_BAUD_230400            0xd0
 +
 +/* Stop bit settings */
 +#define RS_STOP_1                       0x00
 +#define RS_STOP_2                       0x04
 +
 +/* Data bit settings */
 +#define RS_BITS_5                       0x00
 +#define RS_BITS_6                       0x01
 +#define RS_BITS_7                       0x02
 +#define RS_BITS_8                       0x03
 +
 +/* Parity settings */
 +#define RS_PAR_NONE                     0x00
 +#define RS_PAR_ODD                      0x28
 +#define RS_PAR_EVEN                     0x38
 +#define RS_PAR_MARK                     0x48
 +#define RS_PAR_SPACE                    0x48
 +
 +/* Bit masks to mask out things from the status returned by rs232_status */
 +#define RS_STATUS_IRQ                   0x01    /* (iir) IRQ condition */
 +#define RS_STATUS_OVERRUN               0x02    /* (lsr) Overrun error */
 +#define RS_STATUS_PE                    0x04    /* (lsr) Parity error */
 +#define RS_STATUS_FE                    0x08    /* (lsr) Framing error */
 +#define RS_STATUS_DSR                   0x10    /* (msr>>1) NOT data set ready */
 +#define RS_STATUS_THRE                  0x20    /* (lsr) Transmit holding reg. empty */
 +#define RS_STATUS_DCD                   0x40    /* (msr>>1) NOT data carrier detect */
 +#define RS_STATUS_RDRF                  0x80    /* Receiver data register full */
 +
 +/* Error codes returned by all functions */
 +#define RS_ERR_OK                       0x00    /* Not an error - relax */
 +#define RS_ERR_NOT_INITIALIZED          0x01    /* Module not initialized */
 +#define RS_ERR_BAUD_TOO_FAST            0x02    /* Cannot handle baud rate */
 +#define RS_ERR_BAUD_NOT_AVAIL           0x03    /* Baud rate not available */
 +#define RS_ERR_NO_DATA                  0x04    /* Nothing to read */
 +#define RS_ERR_OVERFLOW                 0x05    /* No room in send buffer */
 +
 +/*****************************************************************************/
 +/*                                   Code                                                                            */
 +/*****************************************************************************/
 +
 +unsigned char __fastcall__ ss232_init (char hacked);
 +/* Initialize the serial port, install the interrupt handler. The parameter
 +* has no effect for now and should be set to 0.
 +*/
 +
 +unsigned char __fastcall__ ss232_params (unsigned char params, unsigned char parity);
 +/* Set the port parameters. Use a combination of the #defined values above. */
 +
 +unsigned char __fastcall__ ss232_done (void);
 +/* Close the port, deinstall the interrupt hander. You MUST call this function
 +* before terminating the program, otherwise the machine may crash later. If
 +* in doubt, install an exit handler using atexit(). The function will do
 +* nothing, if it was already called.
 +*/
 +
 +unsigned char __fastcall__ ss232_get (char* b);
 +/* Get a character from the serial port. If no characters are available, the
 +* function will return RS_ERR_NO_DATA, so this is not a fatal error.
 +*/
 +
 +unsigned char __fastcall__ ss232_put (char b);
 +/* Send a character via the serial port. There is a transmit buffer, but
 +* transmitting is not done via interrupt. The function returns
 +* RS_ERR_OVERFLOW if there is no space left in the transmit buffer.
 +*/
 +
 +unsigned char __fastcall__ ss232_pause (void);
 +/* Assert flow control and disable interrupts. */
 +
 +unsigned char __fastcall__ ss232_unpause (void);
 +/* Re-enable interrupts and release flow control */
 +
 +unsigned char __fastcall__ ss232_status (unsigned char* status,
 +                                         unsigned char* errors);
 +/* Return the serial port status. */
 +
 +/* End of rs232silversurfer.h */
 +#endif
 +</code>
base/rs232silversurfer.h.txt ยท Last modified: 2015-04-17 04:33 (external edit)