X-Git-Url: https://git.gir.st/Chiptunes.git/blobdiff_plain/dd7bbc4a66af2f81e87af5c1b4c1f48c96275f46..e389879f63ee13e638364da4a624a1b3d137f8a5:/foo.c diff --git a/foo.c b/foo.c index 77e9f65..6c1e738 100644 --- a/foo.c +++ b/foo.c @@ -36,9 +36,26 @@ int main(void) { u8 acc; //TODO: clear all vars/registers for (;;) { - acc = 0; - n = (i2<<2 | i1>>6); - s = (i3<<7 | i2>>1); + MOV (n, i2) + LSL (n) + LSL (n) + #define tmp acc + MOV (tmp, i1) + SWAP (tmp) + ANDI (tmp, 0x0f) + LSR (tmp) + LSR (tmp) + OR (n, tmp) + #undef tmp + MOV (s, i3) + ROR (s) + ROR (s) + ANDI (s, 0x80) + #define tmp acc + MOV (tmp, i2) + LSR (tmp) + OR (s, tmp) + #undef tmp //voice 1: LDI (x, 1) @@ -49,7 +66,18 @@ int main(void) { //voice 2: MOV (x, s) - t = n ^ (i2<<3 | i1>>5); + #define tmp 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 + EOR (t, n) LDI (o, 10) RCALL g(); ADD (acc, t)