commit 9125736
neauoire
·
2023-11-01 23:30:42 +0000 UTC
parent 21dfea7
(uxn.c) Simple branching value
1 files changed,
+7,
-9
+7,
-9
1@@ -38,16 +38,14 @@ uxn_eval(Uxn *u, Uint16 pc)
2 else
3 sp = &s->ptr;
4 /* Opcodes */
5- switch(opc - (!opc * (ins >> 5))) {
6+ switch(opc ? opc : ins) {
7 /* Immediate */
8- case -0x0: /* BRK */ return 1;
9- case -0x1: /* JCI */ POP1(b) if(!b) { pc += 2; break; } /* else fallthrough */
10- case -0x2: /* JMI */ pc += PEEK2(ram + pc) + 2; break;
11- case -0x3: /* JSI */ PUSH2(pc + 2) pc += PEEK2(ram + pc) + 2; break;
12- case -0x4: /* LIT */
13- case -0x6: /* LITr */ PUSH1(ram[pc++]) break;
14- case -0x5: /* LIT2 */
15- case -0x7: /* LIT2r */ PUSH1(ram[pc++]) PUSH1(ram[pc++]) break;
16+ case 0x00: /* BRK */ return 1;
17+ case 0x20: /* JCI */ POP1(b) if(!b) { pc += 2; break; } /* else fallthrough */
18+ case 0x40: /* JMI */ pc += PEEK2(ram + pc) + 2; break;
19+ case 0x60: /* JSI */ PUSH2(pc + 2) pc += PEEK2(ram + pc) + 2; break;
20+ case 0x80: case 0xc0: /* LIT */ PUSH1(ram[pc++]) break;
21+ case 0xa0: case 0xe0: /* LIT2 */ PUSH1(ram[pc++]) PUSH1(ram[pc++]) break;
22 /* ALU */
23 case 0x01: /* INC */ POPx(a) PUSHx(a + 1) break;
24 case 0x02: /* POP */ POPx(a) break;