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;