From 53352d8a56bf83a56ec505007a22cfc22e553884 Mon Sep 17 00:00:00 2001 From: uz Date: Thu, 14 Aug 2008 19:17:34 +0000 Subject: [PATCH] Checked in a small test routine for the serial drivers. It has been lying around for some time here. git-svn-id: svn://svn.cc65.org/cc65/trunk@3887 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- testcode/lib/ser-test.c | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 testcode/lib/ser-test.c diff --git a/testcode/lib/ser-test.c b/testcode/lib/ser-test.c new file mode 100644 index 000000000..d2d3a728f --- /dev/null +++ b/testcode/lib/ser-test.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include + + +#if defined(__C64__) +#define DRIVERNAME "c64-swlink.ser" +#elif defined(__C128__) +#define DRIVERNAME "c128-swlink.ser" +#elif defined(__PLUS4__) +#define DRIVERNAME "plus4-stdser.ser" +#elif defined(__CBM610__) +#define DRIVERNAME "cbm610-std.ser" +#else +#define DRIVERNAME "unknown" +#error "Unknown target system" +#endif + + +static const struct ser_params Params = { + SER_BAUD_19200, /* Baudrate */ + SER_BITS_8, /* Number of data bits */ + SER_STOP_1, /* Number of stop bits */ + SER_PAR_NONE, /* Parity setting */ + SER_HS_HW /* Type of handshake to use */ +}; + + + +static void CheckError (const char* Name, unsigned char Error) +{ + if (Error != SER_ERR_OK) { + fprintf (stderr, "%s: %d\n", Name, Error); + exit (EXIT_FAILURE); + } +} + + +int main (void) +{ + char Res; + char C; + CheckError ("ser_load_driver", ser_load_driver (DRIVERNAME)); + CheckError ("ser_open", ser_open (&Params)); + while (1) { + if (kbhit ()) { + C = cgetc (); + if (C == '1') { + break; + } else { + CheckError ("ser_put", ser_put (C)); + printf ("%c", C); + } + } + Res = ser_get (&C); + if (Res != SER_ERR_NO_DATA) { + CheckError ("ser_get", Res); + printf ("%c", C); + } + } + CheckError ("ser_unload", ser_unload ()); + + return EXIT_SUCCESS; +} + + + +