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) {