From: Tobias Girstmair Date: Thu, 4 Mar 2021 21:38:26 +0000 (+0100) Subject: new version X-Git-Url: https://git.gir.st/Chiptunes-pms150c.git/commitdiff_plain/14ba6899f4b523e8c7efa3ac47c3e65a666c2870 new version code borrowed from attiny version --- diff --git a/bsv.c b/bsv.c index 23f7a5e..367610e 100644 --- a/bsv.c +++ b/bsv.c @@ -56,8 +56,21 @@ void g(void){ SET1 (notes_ix, 3) } // ix += 8 <=> ix |= 8 IDXM (acc, notes+notes_ix) u8 result = ((i1<<8|i0)*acc)>>8; // keep hi byte - //^TODO! - acc = result; + //^TODO! https://git.gir.st/Chiptunes.git/blob/d397f89:/foo.c#l83 + //final: https://git.gir.st/Chiptunes.git/blob/f8e0502:/foo.S#l113 + u8 a2 = 0; // can probably be overloaded onto mul3lo/hi + u8 a1 = 0; // -"- + u8 t = acc; // note input (as returned by idxm) + for (u8 loop = 0; loop < 8; loop++) { + if (t & 1) { + /*(2) ADDC a2, i1*/ a2 += i1 + ((a1+i0)>>8); + /*(1) ADD a1, i0*/ a1 += i0; + } + /*(3) LSR t*/ t >>= 1; + /*(2) ROR a1*/ a1>>= 1;a1 |= a2<<7; + /*(1) LSR a2*/ a2>>= 1; + } + acc = a1; } void main(void){ CLEAR (i0)