diff --git a/utils/Makefile b/utils/Makefile index fd06e53..be00ea7 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -1,5 +1,5 @@ -SUBDIRS = macro showbin maker skipz +SUBDIRS = macro showbin maker skipz ushow all clean: for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done diff --git a/utils/skipz/Makefile b/utils/skipz/Makefile new file mode 100644 index 0000000..af7bdd8 --- /dev/null +++ b/utils/skipz/Makefile @@ -0,0 +1,9 @@ + +all: skipz + +skipz: skipz.c + cc -o skipz skipz.c + +clean: + rm -f skipz + diff --git a/utils/skipz/skipz.c b/utils/skipz/skipz.c new file mode 100644 index 0000000..49ff858 --- /dev/null +++ b/utils/skipz/skipz.c @@ -0,0 +1,48 @@ +/* + * brad@heeltoe.com + */ + +#include +#include +#include +#include + +size_t binfile_size; + +unsigned char binfile[64*1024]; + +main(int argc, char *argv[]) +{ + if (argc > 1) { + int f, ret; + char ch; + + f = open(argv[1], O_RDONLY); + if (f < 0) { + perror(argv[1]); + return -1; + } + + while (1) { + ret = read(f, &ch, 1); + if (ret != 1) + return -1; + if (ch == 'Z'-'@') + break; + } + + binfile_size = read(f, binfile, sizeof(binfile)); + ret = write(1, binfile, binfile_size); + close(f); + } + + exit(0); +} + + +/* + * Local Variables: + * indent-tabs-mode:nil + * c-basic-offset:4 + * End: +*/ diff --git a/utils/ushow/Makefile b/utils/ushow/Makefile new file mode 100644 index 0000000..573b2e3 --- /dev/null +++ b/utils/ushow/Makefile @@ -0,0 +1,6 @@ + +ushow: ushow.c + cc -o ushow ushow.c + +clean: + rm -f ushow diff --git a/utils/ushow/ushow.c b/utils/ushow/ushow.c new file mode 100644 index 0000000..067b2d8 --- /dev/null +++ b/utils/ushow/ushow.c @@ -0,0 +1,26 @@ +#include + +int c; +char b[1024]; + +void add(int v) +{ + b[c++] = v & 0x7f; + b[c] = 0; + printf("output: %s\n", b); + fflush(stdout); +} + +main() +{ + char line[1024]; + + while (fgets(line, sizeof(line), stdin)) { + if (memcmp(&line[4], "tx_data ", 8) == 0) { + char s1[256], s2[256]; + int v; + sscanf(line, "%s %s %o", s1, s2, &v); + add(v); + } + } +}