diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 1 | ||||
-rw-r--r-- | test/sidtest.c | 77 |
2 files changed, 78 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..60e233d --- /dev/null +++ b/test/Makefile @@ -0,0 +1 @@ +sidtest: sidtest.c diff --git a/test/sidtest.c b/test/sidtest.c new file mode 100644 index 0000000..767417c --- /dev/null +++ b/test/sidtest.c @@ -0,0 +1,77 @@ +/* Copyright 2018 Ian Cowburn + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <stdio.h> +#include <errno.h> + +int main(int argc, char *argv[]) +{ + char setsound[] = + { + 4, 17, + 24, 15, + 5, 97, + 6, 200, + 0, 128, + 1, 127 + }; + + char clearsound[] = + { + 24, 0 + }; + + int fd; + int wrote; + + fd = open("/dev/hardsid0", O_RDWR); + + if (fd == -1) + { + perror("open"); + exit(EXIT_FAILURE); + } + + if ((wrote = write(fd, setsound, sizeof setsound)) != sizeof setsound) + { + printf("Only wrote %d of %zu bytes\n", wrote, sizeof setsound); + perror("write"); + } + + printf("<RET>\n"); + getchar(); + + if ((wrote = write(fd, clearsound, sizeof clearsound)) != sizeof clearsound) + { + printf("Only wrote %d of %zu bytes\n", wrote, sizeof clearsound); + perror("write"); + } + + close(fd); + + return EXIT_SUCCESS; +} |