Make serial test simpler
[fw/altos] / s51 / s51-main.c
index 28a774d225efb26bee11db067a719faa5d8efe93..96429988d5f4c16662d71667d3a669c98ecf7928 100644 (file)
@@ -31,6 +31,7 @@ static double freq = 11059200;
 char *s51_prompt = "> ";
 struct ccdbg *s51_dbg;
 int s51_interrupted = 0;
+int s51_monitor = 0;
 
 static FILE *s51_input;
 static FILE *s51_output;
@@ -54,7 +55,7 @@ main(int argc, char **argv)
        char *endptr;
        struct sigvec vec, ovec;
 
-       while ((opt = getopt(argc, argv, "PVvHht:X:c:r:Z:s:S:p:")) != -1) {
+       while ((opt = getopt(argc, argv, "PVvHhmt:X:c:r:Z:s:S:p:")) != -1) {
                switch (opt) {
                case 't':
                        cpu = optarg;
@@ -100,6 +101,9 @@ main(int argc, char **argv)
                case 'h':
                        usage ();
                        break;
+               case 'm':
+                       s51_monitor = 1;
+                       break;
                }
        }
        if (s51_port) {
@@ -146,7 +150,7 @@ main(int argc, char **argv)
                                perror("fdopen");
                                exit(1);
                        }
-                       vec.sv_handler = s51_sigint;
+                       vec.sv_handler = SIG_IGN;
                        vec.sv_mask = 0;
                        vec.sv_flags = 0;
                        sigvec(SIGINT, &vec, &ovec);
@@ -174,7 +178,7 @@ s51_printf(char *format, ...)
 
        va_start(ap, format);
        vfprintf(s51_output, format, ap);
-       if (s51_port)
+       if (s51_monitor)
                vfprintf(stdout, format, ap);
        va_end(ap);
 }
@@ -195,7 +199,7 @@ s51_read_line(char *line, int len)
                s51_putc('\0');
        fflush(s51_output);
        ret = fgets(line, len, s51_input) != NULL;
-       if (s51_port)
+       if (s51_monitor)
                printf("> %s", line);
        fflush(stdout);
        return ret;