Browse code

(uxn.c) Swapped JMI/JCI

Devine Lu Linvega authored on 12/01/2023 17:44:27
Showing 2 changed files
... ...
@@ -50,8 +50,8 @@ uxn_eval(Uxn *u, Uint16 pc)
50 50
 		switch(opcode - (!opcode * (instr >> 5))) {
51 51
 		/* Literals/Calls */
52 52
 		case -0x0: /* BRK */ return 1;
53
-		case -0x1: /* JMI */ PEEK16(a, pc) pc += a + 2; break;
54
-		case -0x2: /* JCI */ sp = &u->wst->ptr; src = u->wst; POP8(b) if(b) { PEEK16(a, pc) pc += a + 2; } else pc += 2; break;
53
+		case -0x1: /* JCI */ POP8(b) if(!b) { pc += 2; break; }
54
+		case -0x2: /* JMI */ PEEK16(a, pc) pc += a + 2; break;
55 55
 		case -0x3: /* JSI */ PUSH16(u->rst, pc + 2) PEEK16(a, pc) pc += a + 2; break;
56 56
 		case -0x4: /* LIT */
57 57
 		case -0x6: /* LITr */ a = u->ram[pc++]; PUSH8(src, a) break;
... ...
@@ -317,10 +317,10 @@ parse(char *w, FILE *f)
317 317
 	case ';': /* literal short absolute */
318 318
 		makereference(p.scope, w, p.ptr + 1);
319 319
 		return writeshort(0xffff, 1);
320
-	case '!': /* JMI */
320
+	case '?': /* JCI */
321 321
 		makereference(p.scope, w, p.ptr + 1);
322 322
 		return writebyte(0x20) && writeshort(0xffff, 0);
323
-	case '?': /* JCI */
323
+	case '!': /* JMI */
324 324
 		makereference(p.scope, w, p.ptr + 1);
325 325
 		return writebyte(0x40) && writeshort(0xffff, 0);
326 326
 	case '"': /* raw string */