new version
[Chiptunes.git] / foo.c
diff --git a/foo.c b/foo.c
index c5b7081881df605ac0c5587aa8cb523402f0b3e9..ba748ef33a96b2c0a739fd6059ac84518bc85e8b 100644 (file)
--- a/foo.c
+++ b/foo.c
@@ -19,13 +19,18 @@ u8 _;
 #define Ml t // -"-
 void mod3(void) { //avail: t, o _
 //http://homepage.divms.uiowa.edu/~jones/bcd/mod.shtml
-    unsigned short a = ((Mh) + (Ml)) &0x1ff;
-        Mh = a>>8; //1 bit
-        Ml = a;
+    #define tmp _
+    //unsigned short a = ((Mh) + (Ml)) ;//&0x1ff;
+    //    Mh = a>>8; //1 bit
+    //    Ml = a;
+       ADD     (Ml, Mh)
+       CLR     (Mh)
+       ADC     (Mh, zero, carry)
     Ml = (Mh<<4|Ml>>4) + (Ml & 0xF);
     Ml = (Ml >>  2) + (Ml & 0x3);
     Ml = (Ml >>  2) + (Ml & 0x3);
     if (Ml > 2) Ml = Ml - 3;
+    #undef tmp
 }
 void g(void) {
        // g(i, x, t, o) -> t
Imprint / Impressum