X-Git-Url: https://git.gir.st/Chiptunes.git/blobdiff_plain/1b023e92b8e7cf629d3c94c33608d9c2eb7135a0..5d4207f9a0b24eec52054fa1674cded926f06a72:/foo.c?ds=sidebyside diff --git a/foo.c b/foo.c index 06ff396..4caddea 100644 --- a/foo.c +++ b/foo.c @@ -36,8 +36,16 @@ int main(void) { u8 acc; //TODO: clear all vars/registers for (;;) { - acc = 0; - n = (i2<<2 | i1>>6); + MOV (n, i2) + LSL (n) + LSL (n) + #define tmp acc + MOV (tmp, i1) + SWAP (tmp) + ANDI (tmp, 0x0f) + tmp >>= 2; + OR (n, tmp) + #undef tmp s = (i3<<7 | i2>>1); //voice 1: @@ -50,12 +58,17 @@ int main(void) { //voice 2: MOV (x, s) #define tmp o - MOV (o, i2) - LSL (o) - LSL (o) - LSL (o) + MOV (tmp, i2) + LSL (tmp) + LSL (tmp) + LSL (tmp) + MOV (t, i1) + SWAP (t) + ANDI (t, 0xf) + LSR (t) + OR (t, tmp) #undef tmp - t = n ^ (o | i1>>5); + EOR (t, n) LDI (o, 10) RCALL g(); ADD (acc, t)