... | ... |
@@ -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 */ |