]> git.sur5r.net Git - cc65/blob - testcode/lib/ser-test.c
Replace hard returns with an "else", add an error for non-IDENT tokens, and test...
[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 #elif defined(__APPLE2ENH__)
17 #define DRIVERNAME      "a2e.ssc.ser"
18 #elif defined(__APPLE2__)
19 #define DRIVERNAME      "a2.ssc.ser"
20 #elif defined(__ATARIXL__)
21 #define DRIVERNAME      "atrxrdev.ser"
22 #elif defined(__ATARI__)
23 #define DRIVERNAME      "atrrdev.ser"
24 #else
25 #define DRIVERNAME      "unknown"
26 #error "Unknown target system"
27 #endif
28
29
30 static const struct ser_params Params = {
31     SER_BAUD_9600,      /* Baudrate */
32     SER_BITS_8,         /* Number of data bits */
33     SER_STOP_1,         /* Number of stop bits */
34     SER_PAR_NONE,       /* Parity setting */
35     SER_HS_HW           /* Type of handshake to use */
36 };
37
38
39
40 static void CheckError (const char* Name, unsigned char Error)
41 {
42     if (Error != SER_ERR_OK) {
43         fprintf (stderr, "%s: %d\n", Name, Error);
44         exit (EXIT_FAILURE);
45     }
46 }
47
48
49 int main (void)
50 {
51     char Res;
52     char C;
53     CheckError ("ser_load_driver", ser_load_driver (DRIVERNAME));
54     CheckError ("ser_open", ser_open (&Params));
55     while (1) {
56         if (kbhit ()) {
57             C = cgetc ();
58             if (C == '1') {
59                 break;
60             } else {
61                 CheckError ("ser_put", ser_put (C));
62                 printf ("%c", C);
63             }
64         }
65         Res = ser_get (&C);
66         if (Res != SER_ERR_NO_DATA) {
67             CheckError ("ser_get", Res);
68             printf ("%c", C);
69         }
70     }
71     CheckError ("ser_unload", ser_unload ());
72
73     return EXIT_SUCCESS;
74 }