new version
authorTobias Girstmair <tobi@isticktoit.net>
Thu, 4 Mar 2021 14:14:41 +0000 (15:14 +0100)
committerTobias Girstmair <tobi@isticktoit.net>
Thu, 4 Mar 2021 14:14:41 +0000 (15:14 +0100)
bsv.c

diff --git a/bsv.c b/bsv.c
index 2fd4ac4b448587ab20c61eabfb54c7d3b3452034..d0889062ace1dbbb87148d2ebebc0d65362007ea 100644 (file)
--- 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)
Imprint / Impressum