new version
authorTobias Girstmair <t@thi3nkpad.lan>
Tue, 13 Nov 2018 16:51:54 +0000 (17:51 +0100)
committerTobias Girstmair <t@thi3nkpad.lan>
Tue, 13 Nov 2018 16:51:54 +0000 (17:51 +0100)
fakeasm.h
foo.c

index cfb4598..cffa6d8 100644 (file)
--- a/fakeasm.h
+++ b/fakeasm.h
@@ -29,3 +29,6 @@ int asmtmp = 0;
 #define ROL(x) asmtmp = x>>7; x <<= 1; x |= carry; carry = asmtmp;
 #define ROR(x) asmtmp = x&0x1; x >>= 1; x |= carry<<7; carry = asmtmp;
 #define NEG(x) x *= -1;
+int sr_neg = 0;
+#define CPI(x,n)  sr_neg = (x-n < 0); //WARN: not a complete CPI mockup
+#define BRPL(l)   if (sr_neg) goto l;
diff --git a/foo.c b/foo.c
index f227598..1265e77 100644 (file)
--- a/foo.c
+++ b/foo.c
@@ -41,7 +41,10 @@ void mod3(void) {
        LSR     (tmp)
        ANDI    (Ml, 0x03)
        ADD     (Ml, tmp)
-       if (Ml > 2) Ml = Ml - 3; //TODO
+       CPI     (Ml, 3)
+       BRPL    (skip)
+       Ml = Ml - 3; //TODO
+       skip:;
        #undef tmp
 }
 void g(void) {
Imprint / Impressum