commit abfeead
neauoire
·
2023-08-30 15:57:41 +0000 UTC
parent bd5a5cb
Cache input in PUT2 macros
1 files changed,
+13,
-14
+13,
-14
1@@ -18,20 +18,19 @@ WITH REGARD TO THIS SOFTWARE.
2 */
3
4 #define T *ptr
5-#define N *(ptr-1)
6-#define L *(ptr-2)
7-#define T2 PEEK2((ptr-1))
8-#define H2 PEEK2((ptr-2))
9-#define N2 PEEK2((ptr-3))
10-#define L2 PEEK2((ptr-5))
11-
12-#define HALT(c) { return emu_halt(u, ins, c, pc - 1); }
13-#define FLIP { s = ins & 0x40 ? &u->wst : &u->rst; }
14-#define SET(x, y) { r = s->ptr; if(x > r) HALT(1) r += (x & k) + y; if(r > 254) HALT(2) ptr = s->dat + r - 1; s->ptr = r; }
15-#define PUT1(a) { *(ptr) = a; }
16-#define PUT1x2(a, b) { *(ptr) = a; *(ptr - 1) = b; }
17-#define PUT1x3(a, b, c) { *(ptr) = a; *(ptr - 1) = b; *(ptr - 2) = c; }
18-#define PUT2(a) { POKE2(ptr - 1, a) }
19+#define N *(ptr - 1)
20+#define L *(ptr - 2)
21+#define T2 PEEK2((ptr - 1))
22+#define H2 PEEK2((ptr - 2))
23+#define N2 PEEK2((ptr - 3))
24+#define L2 PEEK2((ptr - 5))
25+#define HALT(c) { return emu_halt(u, ins, c, pc - 1); }
26+#define FLIP { s = ins & 0x40 ? &u->wst : &u->rst; }
27+#define SET(x, y) { r = s->ptr; if(x > r) HALT(1) r += (x & k) + y; if(r > 254) HALT(2) ptr = s->dat + r - 1; s->ptr = r; }
28+#define PUT1(a) { *ptr = a; }
29+#define PUT1x2(a, b) { *ptr = a; *(ptr - 1) = b; }
30+#define PUT1x3(a, b, c) { *ptr = a; *(ptr - 1) = b; *(ptr - 2) = c; }
31+#define PUT2(a) { r = (a); POKE2(ptr - 1, r) }
32 #define PUT2x2(a, b) { POKE2(ptr - 1, a) POKE2(ptr - 3, b) }
33 #define PUT2x3(a, b, c) { POKE2(ptr - 1, a) POKE2(ptr - 3, b) POKE2(ptr - 5, c) }
34