X-Git-Url: https://git.gir.st/Chiptunes.git/blobdiff_plain/61fab018385760846689343362a188577f87b1b6..e7afc0449b6870b8b7c98980c5fb6a67daec14e8:/foo.c?ds=inline diff --git a/foo.c b/foo.c index e1fb86d..404129f 100644 --- a/foo.c +++ b/foo.c @@ -1,20 +1,23 @@ #include typedef unsigned char u8; -int g(int i, int x, int t, int o) { - return ((3 & x & - (i * - ((3 & i >> 16 ? "BY}6YB6%" : "Qj}6jQ6%")[t % 8] + - 51) >> o)) << 4); +int g(int i, u8 x, u8 t, u8 o) { + u8 xxx = (3 & i >> 16 ? "BY}6YB6%" : "Qj}6jQ6%")[t % 8]; + return ((3 & x & (i * (xxx + 51) >> o))); }; int main(void) { -int i; -int n; -int s; - for (i = 0;; i++) { - putchar(g(i, 1, n = i >> 14, 12) + - g(i, s = i >> 17, n ^ i >> 13, 10) + - g(i, s / 3, n + ((i >> 11) % 3), 10) + - g(i, s / 5, 8 + n - ((i >> 10) % 3), 9)); - } + int i; + int n; + int s; + u8 acc; + for (i = 0;; i++) { + acc = 0; + n = i >> 14; + s = i >> 17; + acc += g(i, 1, n, 12); + acc += g(i, s, n ^ i >> 13, 10); + acc += g(i, s / 3, n + ((i >> 11) % 3), 10); + acc += g(i, s / 5, 8 + n - ((i >> 10) % 3), 9); + putchar(acc<<4); + } }