... | ... |
@@ -34,23 +34,22 @@ WITH REGARD TO THIS SOFTWARE. |
34 | 34 |
int |
35 | 35 |
uxn_eval(Uxn *u, Uint16 pc) |
36 | 36 |
{ |
37 |
- int t, n, l, k, r; |
|
38 |
- Uint8 *ram = u->ram, *ptr, ins; |
|
39 |
- Stack *s; |
|
37 |
+ int t, n, l, r; |
|
38 |
+ Uint8 *ram = u->ram; |
|
40 | 39 |
if(!pc || u->dev[0x0f]) return 0; |
41 | 40 |
for(;;) { |
42 |
- ins = ram[pc++]; |
|
43 |
- k = ins & 0x80 ? 0xff : 0; |
|
44 |
- s = ins & 0x40 ? &u->rst : &u->wst; |
|
45 |
- ptr = s->dat + s->ptr - 1; |
|
46 |
- switch(ins & 0x1f ? ins & 0x3f : (0 - (ins >> 5)) & 0xff) { |
|
41 |
+ int ins = ram[pc++]; |
|
42 |
+ int k = ins & 0x80 ? 0xff : 0; |
|
43 |
+ Stack *s = ins & 0x40 ? &u->rst : &u->wst; |
|
44 |
+ Uint8 *ptr = s->dat + s->ptr - 1; |
|
45 |
+ switch(ins & 0x1f ? ins & 0x3f : (0 - (ins >> 5))) { |
|
47 | 46 |
/* IMM */ |
48 |
- case 0x00: /* BRK */ return 1; |
|
49 |
- case 0xff: /* JCI */ if(!s->dat[--s->ptr]) { pc += 2; break; } /* else fallthrough */ |
|
50 |
- case 0xfe: /* JMI */ pc += PEEK2(ram + pc) + 2; break; |
|
51 |
- case 0xfd: /* JSI */ SET(0, 2) PUT2(pc + 2) pc += PEEK2(ram + pc) + 2; break; |
|
52 |
- case 0xfc: /* LITr */ case 0xfa: SET(0, 1) PUT1(ram[pc++]) break; |
|
53 |
- case 0xfb: /* LIT2r*/ case 0xf9: SET(0, 2) PUT2(PEEK2(ram + pc)) pc += 2; break; |
|
47 |
+ case -0: /* BRK */ return 1; |
|
48 |
+ case -1: /* JCI */ if(!s->dat[--s->ptr]) { pc += 2; break; } /* else fallthrough */ |
|
49 |
+ case -2: /* JMI */ pc += PEEK2(ram + pc) + 2; break; |
|
50 |
+ case -3: /* JSI */ SET(0, 2) PUT2(pc + 2) pc += PEEK2(ram + pc) + 2; break; |
|
51 |
+ case -4: /* LITr */ case -6: SET(0, 1) PUT1(ram[pc++]) break; |
|
52 |
+ case -5: /* LIT2r*/ case -7: SET(0, 2) PUT2(PEEK2(ram + pc)) pc += 2; break; |
|
54 | 53 |
/* ALU */ |
55 | 54 |
case 0x01: /* INC */ t=T; SET(1, 0) PUT1(t + 1) break; |
56 | 55 |
case 0x21: /* INC2 */ t=T2; SET(2, 0) PUT2(t + 1) break; |
... | ... |
@@ -72,7 +72,7 @@ main(int argc, char **argv) |
72 | 72 |
system_connect(0xc, DATETIME_VERSION, DATETIME_DEIMASK, DATETIME_DEOMASK); |
73 | 73 |
/* Read flags */ |
74 | 74 |
if(argv[i][0] == '-' && argv[i][1] == 'v') |
75 |
- return system_version("Uxncli - Console Varvara Emulator", "19 Aug 2023"); |
|
75 |
+ return system_version("Uxncli - Console Varvara Emulator", "29 Aug 2023"); |
|
76 | 76 |
if(!system_init(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), argv[i++])) |
77 | 77 |
return system_error("Init", "Failed to initialize uxn."); |
78 | 78 |
/* Game Loop */ |
... | ... |
@@ -516,7 +516,7 @@ main(int argc, char **argv) |
516 | 516 |
system_connect(0xc, DATETIME_VERSION, DATETIME_DEIMASK, DATETIME_DEOMASK); |
517 | 517 |
/* Read flags */ |
518 | 518 |
if(argv[i][0] == '-' && argv[i][1] == 'v') |
519 |
- return system_version("Uxnemu - Graphical Varvara Emulator", "19 Aug 2023"); |
|
519 |
+ return system_version("Uxnemu - Graphical Varvara Emulator", "29 Aug 2023"); |
|
520 | 520 |
if(strcmp(argv[i], "-2x") == 0 || strcmp(argv[i], "-3x") == 0) |
521 | 521 |
set_zoom(argv[i++][1] - '0', 0); |
522 | 522 |
if(!emu_init()) |