new version
authorTobias Girstmair <tobi@isticktoit.net>
Thu, 4 Mar 2021 01:51:56 +0000 (02:51 +0100)
committerTobias Girstmair <tobi@isticktoit.net>
Thu, 4 Mar 2021 01:51:56 +0000 (02:51 +0100)
bsv.c
fakeasm.h

diff --git a/bsv.c b/bsv.c
index 6a472f0763e4bdaa39e1987dd42cebb5e38f3972..4adf7a8725a2502d1b487c0efee8c014618fa1b9 100644 (file)
--- a/bsv.c
+++ b/bsv.c
@@ -67,9 +67,12 @@ void main(void){
                } //tmp2
                SR      (acc)
                SR      (acc)
-               { u8 tmp1 = i2/6;
-               AND     (acc, tmp1)
-               } //tmp1
+               MOV     (tmp_1, acc) // acc saved in tmp_1; fresh acc
+               MOV     (acc, i2)
+               // shift-divide by six
+               acc = i2/6;//TODO
+               // end divide by six
+               AND     (acc, tmp_1) // acc restored from tmp_1
                AND     (acc, 3)
                ADD     (sample, acc)
 
@@ -80,9 +83,11 @@ void main(void){
                ADD     (acc, 8)
                CALL    (g)
                SR      (acc)
-               { u8 tmp1 = i2/10;
-               AND     (acc, tmp1)
-               } //tmp1
+               MOV     (tmp_1, acc) // acc saved in tmp_1; fresh acc
+               // shift-divide by ten
+               acc = i2/10;//TODO
+               // end divide by ten
+               AND     (acc, tmp_1) // acc restored from tmp_1
                AND     (acc, 3)
                ADD     (sample, acc)
 
index 7ee2afd8c5466c73a65c7bc593f451eaab2ac759..5032674cc7f6880a8d4fcc902ae381c9349e2ec0 100644 (file)
--- a/fakeasm.h
+++ b/fakeasm.h
@@ -2,8 +2,8 @@ int flag_z = 0;
 int flag_c = 0;
 //ignoring flag_ov, flag_ac
 #define MOV(dst, src)  dst = src;
-#define SL(dst)                flag_c = (dst&0x80); dst <<= 1;
-#define SR(dst)                flag_c = (dst&0x01); dst >>= 1;
+#define SL(dst)                flag_c = (dst>>7); dst <<= 1;
+#define SR(dst)                flag_c = (dst&01); dst >>= 1;
 #define SWAP(dst)      dst = (dst<<4 | dst>>4);
 #define AND(dst, src)  dst &= src; flag_z = (dst==0);
 #define OR(dst, src)   dst |= src; flag_z = (dst==0);
Imprint / Impressum