commit 0fd7427
neauoire
·
2023-09-01 22:56:47 +0000 UTC
parent 8530f2f
Only check for keep mode during SET()
1 files changed,
+1,
-2
+1,
-2
1@@ -33,7 +33,7 @@ WITH REGARD TO THIS SOFTWARE.
2
3 #define HALT(c) { return emu_halt(u, ins, c, pc - 1); }
4 #define FLIP { s = ins & 0x40 ? &u->wst : &u->rst; }
5-#define SET(x, y) { r = s->ptr; if(x > r) HALT(1) r += (x & k) + y; if(r > 254) HALT(2) ptr = s->dat + r - 1; s->ptr = r; }
6+#define SET(x, y) { r = s->ptr; if(x > r) HALT(1) r += y; if(ins & 0x80) r += x; if(r > 254) HALT(2) ptr = s->dat + r - 1; s->ptr = r; }
7 #define SHIFT(y) { r = s->ptr + y; if(r > 254) HALT(2) ptr = s->dat + r - 1; s->ptr = r; }
8
9 int
10@@ -44,7 +44,6 @@ uxn_eval(Uxn *u, Uint16 pc)
11 if(!pc || u->dev[0x0f]) return 0;
12 for(;;) {
13 int ins = ram[pc++];
14- int k = ins & 0x80 ? 0xff : 0;
15 Stack *s = ins & 0x40 ? &u->rst : &u->wst;
16 Uint8 *ptr = s->dat + s->ptr - 1, *rr;
17 switch(ins & 0x1f ? ins & 0x3f : ins << 4) {