]> git.sur5r.net Git - cc65/blob - testcode/lib/ser-test.c
Test program for the rename() function. Supplied by Greg King - thanks!
[cc65] / testcode / lib / ser-test.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <serial.h>
4 #include <conio.h>
5 #include <dbg.h>
6
7
8 #if defined(__C64__)
9 #define DRIVERNAME      "c64-swlink.ser"
10 #elif defined(__C128__)
11 #define DRIVERNAME      "c128-swlink.ser"
12 #elif defined(__PLUS4__)
13 #define DRIVERNAME      "plus4-stdser.ser"
14 #elif defined(__CBM610__)
15 #define DRIVERNAME      "cbm610-std.ser"
16 #else
17 #define DRIVERNAME      "unknown"
18 #error "Unknown target system"
19 #endif
20
21
22 static const struct ser_params Params = {
23     SER_BAUD_19200,     /* Baudrate */
24     SER_BITS_8,         /* Number of data bits */
25     SER_STOP_1,         /* Number of stop bits */
26     SER_PAR_NONE,       /* Parity setting */
27     SER_HS_HW           /* Type of handshake to use */
28 };
29
30
31
32 static void CheckError (const char* Name, unsigned char Error)
33 {
34     if (Error != SER_ERR_OK) {
35         fprintf (stderr, "%s: %d\n", Name, Error);
36         exit (EXIT_FAILURE);
37     }
38 }
39
40
41 int main (void)
42 {
43     char Res;
44     char C;
45     CheckError ("ser_load_driver", ser_load_driver (DRIVERNAME));
46     CheckError ("ser_open", ser_open (&Params));
47     while (1) {
48         if (kbhit ()) {
49             C = cgetc ();
50             if (C == '1') {
51                 break;
52             } else {
53                 CheckError ("ser_put", ser_put (C));
54                 printf ("%c", C);
55             }
56         }
57         Res = ser_get (&C);
58         if (Res != SER_ERR_NO_DATA) {
59             CheckError ("ser_get", Res);
60             printf ("%c", C);
61         }
62     }
63     CheckError ("ser_unload", ser_unload ());
64
65     return EXIT_SUCCESS;
66 }
67
68
69
70