new version
[Chiptunes.git] / foo.c
diff --git a/foo.c b/foo.c
index e1fb86dee99d9ffea50e6064eb152e6327f63f03..404129ffa7e99ff6d1356cf9011acb16993088ed 100644 (file)
--- a/foo.c
+++ b/foo.c
@@ -1,20 +1,23 @@
 #include <stdio.h>
 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);
+       }
 }
Imprint / Impressum