Browse code

Fixed issue with SFT

neauoire authored on 30/08/2021 19:16:57
Showing 1 changed files
... ...
@@ -12,9 +12,9 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 12
 WITH REGARD TO THIS SOFTWARE.
13 13
 */
14 14
 
15
-#define MODE_SHORT  0x20
15
+#define MODE_SHORT 0x20
16 16
 #define MODE_RETURN 0x40
17
-#define MODE_KEEP   0x80
17
+#define MODE_KEEP 0x80
18 18
 
19 19
 #pragma mark - Operations
20 20
 
... ...
@@ -125,7 +125,7 @@ uxn_eval(Uxn *u, Uint16 vec)
125 125
 			case 0x1c: /* AND */ a = pop(u->src), b = pop(u->src); push(u->src, b & a); break;
126 126
 			case 0x1d: /* ORA */ a = pop(u->src), b = pop(u->src); push(u->src, b | a); break;
127 127
 			case 0x1e: /* EOR */ a = pop(u->src), b = pop(u->src); push(u->src, b ^ a); break;
128
-			case 0x1f: /* SFT */ a = pop8(u->src), b = pop(u->src); push(u->src, b >> (a & 0x07) << ((a & 0x70) >> 4)); break;
128
+			case 0x1f: /* SFT */ a = pop8(u->src), b = pop(u->src); push(u->src, b >> (a & 0x0f) << ((a & 0xf0) >> 4)); break;
129 129
 		}
130 130
 		if(u->wst.error)
131 131
 			return uxn_halt(u, u->wst.error, "Working-stack", instr);