FreeCalypso > hg > fc-sim-tools
view serial/baud_parse.c @ 47:b0cf75d0bb2d
doc/Serial-SIM-readers article written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Mar 2021 04:32:18 +0000 |
parents | 8f505d413815 |
children |
line wrap: on
line source
/* * This module handles the parsing of the baud rate and speed enhancement * command line argument. */ #include <ctype.h> #include <stdio.h> #include <stdlib.h> unsigned baud_base, baud_spenh, spenh_host_max; void parse_baud_spenh_arg(arg) char *arg; { char *cp; if (!isdigit(*arg)) { inv: fprintf(stderr, "error: invalid baud/spenh selection argument \"%s\"\n", arg); exit(1); } baud_base = strtoul(arg, &cp, 10); if (!*cp) return; if (*cp++ != ',') goto inv; if (!isdigit(*cp)) goto inv; baud_spenh = strtoul(cp, &cp, 10); if (!*cp) { spenh_host_max = 1; return; } if (*cp++ != ',') goto inv; if (!isdigit(*cp) || cp[1]) goto inv; spenh_host_max = *cp - '0'; switch (spenh_host_max) { case 1: case 2: case 4: case 8: break; default: fprintf(stderr, "error: speed enhancement multiplier can only be 1, 2, 4 or 8\n"); exit(1); } }