... | ... |
@@ -11,18 +11,16 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
11 | 11 |
WITH REGARD TO THIS SOFTWARE. |
12 | 12 |
*/ |
13 | 13 |
|
14 |
-/* clang-format off */ |
|
15 |
- |
|
16 | 14 |
/* a,b,c: general use. bs: byte/short bool. src, dst: stack ptrs, swapped in return mode. |
17 | 15 |
pc: program counter. sp: ptr to src stack ptr. kptr: "keep" mode copy of src stack ptr. |
18 |
- x,y: macro in params. d: macro in device. j,k,dev: macro temp variables. o: macro out param. */ |
|
16 |
+ x,y: macro in params. d: macro in device. j: macro temp variables. o: macro out param. */ |
|
19 | 17 |
|
20 | 18 |
#define HALT(c) { return uxn_halt(u, instr, (c), pc - 1); } |
21 | 19 |
#define LITERAL { if(bs) { PEEK16(a, pc) PUSH16(src, a) pc += 2; } else { a = u->ram[pc]; PUSH8(src, a) pc += 1; } } |
22 | 20 |
#define CALL { if(bs){ PEEK16(a, pc) PUSH16(u->rst, pc + 2) pc = a; } else { a = u->ram[pc]; PUSH16(u->rst, pc + 1) pc += (Sint8)a + 2; } } |
23 | 21 |
#define JUMP(x) { if(bs) pc = (x); else pc += (Sint8)(x); } |
24 | 22 |
#define PUSH8(s, x) { if(s->ptr == 0xff) HALT(2) s->dat[s->ptr++] = (x); } |
25 |
-#define PUSH16(s, x) { if((j = s->ptr) >= 0xfe) HALT(2) k = (x); s->dat[j] = k >> 8; s->dat[j + 1] = k; s->ptr = j + 2; } |
|
23 |
+#define PUSH16(s, x) { if((j = s->ptr) >= 0xfe) HALT(2) s->dat[j] = (x) >> 8; s->dat[j + 1] = (x); s->ptr = j + 2; } |
|
26 | 24 |
#define PUSH(s, x) { if(bs) { PUSH16(s, (x)) } else { PUSH8(s, (x)) } } |
27 | 25 |
#define POP8(o) { if(!(j = *sp)) HALT(1) o = (Uint16)src->dat[--j]; *sp = j; } |
28 | 26 |
#define POP16(o) { if((j = *sp) <= 1) HALT(1) o = src->dat[j - 1]; o += src->dat[j - 2] << 8; *sp = j - 2; } |
... | ... |
@@ -36,7 +34,7 @@ WITH REGARD TO THIS SOFTWARE. |
36 | 34 |
int |
37 | 35 |
uxn_eval(Uxn *u, Uint16 pc) |
38 | 36 |
{ |
39 |
- unsigned int a, b, c, j, k, bs, instr; |
|
37 |
+ unsigned int a, b, c, j, bs, instr; |
|
40 | 38 |
Uint8 kptr, *sp; |
41 | 39 |
Stack *src, *dst; |
42 | 40 |
if(!pc || u->dev[0x0f]) return 0; |
... | ... |
@@ -87,8 +85,6 @@ uxn_eval(Uxn *u, Uint16 pc) |
87 | 85 |
return 1; |
88 | 86 |
} |
89 | 87 |
|
90 |
-/* clang-format on */ |
|
91 |
- |
|
92 | 88 |
int |
93 | 89 |
uxn_boot(Uxn *u, Uint8 *ram, Dei *dei, Deo *deo) |
94 | 90 |
{ |
... | ... |
@@ -39,6 +39,6 @@ typedef struct Uxn { |
39 | 39 |
typedef Uint8 Dei(Uxn *u, Uint8 addr); |
40 | 40 |
typedef void Deo(Uxn *u, Uint8 addr, Uint8 value); |
41 | 41 |
|
42 |
+int uxn_halt(Uxn *u, Uint8 instr, Uint8 err, Uint16 addr); |
|
42 | 43 |
int uxn_boot(Uxn *u, Uint8 *ram, Dei *dei, Deo *deo); |
43 | 44 |
int uxn_eval(Uxn *u, Uint16 pc); |
44 |
-int uxn_halt(Uxn *u, Uint8 instr, Uint8 err, Uint16 addr); |