From 5b28e9dab528a16e9a8a3d81d5a10e5f13cf36fd Mon Sep 17 00:00:00 2001 From: Tobias Girstmair Date: Thu, 4 Mar 2021 15:14:41 +0100 Subject: [PATCH] new version --- bsv.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/bsv.c b/bsv.c index 2fd4ac4..d088906 100644 --- a/bsv.c +++ b/bsv.c @@ -14,24 +14,21 @@ u8 notes[] = { }; u8 mod3hi, mod3lo; //MEM -u8 xmod3(u8,u8); void mod3(void) { - acc = xmod3(mod3hi, mod3lo); -} + u8 x = (mod3hi+mod3lo)>>8; + MOV(acc,mod3hi) + ADD(mod3lo,acc) // mod3lo = hi+lo + flag_c = x; + CLEAR(mod3hi) + ADDC0(mod3hi) -u8 xmod3(u8 hi, u8 lo) { //avail: t, o _ -//copied from attiny version e98ab46; based on homepage.divms.uiowa.edu/~jones - unsigned short a = ((hi) + (lo)) &0x1ff; - hi = a>>8; //1 bit - lo = a; - lo = (hi<<4|lo>>4) + (lo & 0xF); - lo = (lo >> 2) + (lo & 0x3); - lo = (lo >> 2) + (lo & 0x3); - if (lo > 2) lo = lo - 3; - return lo; + mod3lo = (mod3hi<<4|mod3lo>>4) + (mod3lo & 0xF); + mod3lo = (mod3lo >> 2) + (mod3lo & 0x3); + mod3lo = (mod3lo >> 2) + (mod3lo & 0x3); + if (mod3lo > 2) mod3lo = mod3lo - 3; + acc = mod3lo; } - void g(void){ u8 notes_ix = acc & 0x7; if(3&i2) -- 2.39.3