FreeCalypso > hg > freecalypso-tools
diff target-utils/simtest/poll.c @ 454:daaab2701761
target-utils: simtest program started
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 09 Feb 2019 07:55:50 +0000 |
parents | |
children | d96ea6ae6aa5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/target-utils/simtest/poll.c Sat Feb 09 07:55:50 2019 +0000 @@ -0,0 +1,49 @@ +#include <sys/types.h> +#include <strings.h> +#include "types.h" +#include "simregs.h" + +extern int serial_in_poll(); + +int enable_poll; + +void +poll_sim_rx() +{ + u32 drx; + + if (SIMREGS.stat & 3) + return; + drx = SIMREGS.drx & 0xFF; + printf("%02X ", drx); +} + +int +mygetchar() +{ + register int c; + + do { + if (enable_poll) + poll_sim_rx(); + c = serial_in_poll(); + } + while (c < 0); + return c; +} + +void +cmd_poll(argbulk) + char *argbulk; +{ + char *argv[2]; + + if (parse_args(argbulk, 1, 1, argv, 0) < 0) + return; + if (!strcmp(argv[0], "on")) + enable_poll = 1; + else if (!strcmp(argv[0], "off")) + enable_poll = 0; + else + printf("ERROR: \"on\" or \"off\" argument expected\n"); +}