Browse code

(uxn-fast.c) Housekeeping

Devine Lu Linvega authored on 06/03/2023 16:40:00
Showing 1 changed files
... ...
@@ -11,14 +11,6 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 11
 WITH REGARD TO THIS SOFTWARE.
12 12
 */
13 13
 
14
-/* Registers
15
-
16
-[ . ][ . ][ . ][ L ][ N ][ T ] <
17
-[ . ][ . ][ . ][   H2   ][ T ] <
18
-[   L2   ][   N2   ][   T2   ] <
19
-
20
-*/
21
-
22 14
 #define T s->dat[s->ptr-1]
23 15
 #define N s->dat[s->ptr-2]
24 16
 #define L s->dat[s->ptr-3]
... ...
@@ -27,6 +19,14 @@ WITH REGARD TO THIS SOFTWARE.
27 19
 #define N2 PEEK16(s->dat+s->ptr-4)
28 20
 #define L2 PEEK16(s->dat+s->ptr-6)
29 21
 
22
+/* Registers
23
+
24
+[ . ][ . ][ . ][ L ][ N ][ T ] <
25
+[ . ][ . ][ . ][   H2   ][ T ] <
26
+[   L2   ][   N2   ][   T2   ] <
27
+
28
+*/
29
+
30 30
 #define HALT(c) { return uxn_halt(u, ins, (c), pc - 1); }
31 31
 #define SET(mul, add) { if(mul > s->ptr) HALT(1) s->ptr += k * mul + add; if(s->ptr > 254) HALT(2) }
32 32
 #define PUT(o, v) { s->dat[s->ptr - o - 1] = (v); }
... ...
@@ -36,14 +36,15 @@ WITH REGARD TO THIS SOFTWARE.
36 36
 #define DEO(a, b) { u->dev[a] = b; if((deo_masks[(a) >> 4] >> ((a) & 0xf)) & 0x1) uxn_deo(u, a); }
37 37
 #define DEI(a, b) { PUT(a, ((dei_masks[(b) >> 4] >> ((b) & 0xf)) & 0x1) ? uxn_dei(u, b) : u->dev[b])  }
38 38
 
39
-static 
39
+static
40 40
 Uint16 deo_masks[] = {
41 41
 	0x6a08, 0x0300, 0xc028, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
42
-	0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000 };
42
+	0x0000, 0x0000, 0xa260, 0xa260, 0x0000, 0x0000, 0x0000, 0x0000};
43
+
43 44
 static
44 45
 Uint16 dei_masks[] = {
45 46
 	0x0000, 0x0000, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0000,
46
-	0x0000, 0x0000, 0x0000, 0x0000, 0x07fd, 0x0000, 0x0000, 0x0000 };
47
+	0x0000, 0x0000, 0x0000, 0x0000, 0x07fd, 0x0000, 0x0000, 0x0000};
47 48
 
48 49
 int
49 50
 uxn_eval(Uxn *u, Uint16 pc)
... ...
@@ -96,8 +97,8 @@ uxn_eval(Uxn *u, Uint16 pc)
96 97
 			case 0x0d: /* JCN  */ t=T;n=N;        SET(2,-2) pc += !!n * (Sint8)t; break;
97 98
 			case 0x2e: /* JSR2 */ t=T2;           SET(2,-2) PUSH2(u->rst, pc) pc = t; break;
98 99
 			case 0x0e: /* JSR  */ t=T;            SET(1,-1) PUSH2(u->rst, pc) pc += (Sint8)t; break;
99
-			case 0x2f: /* STH2 */ t=T2;           SET(2,-2) if(ins & 0x40) { PUSH2(u->wst, t) } else{ PUSH2(u->rst, t) } break;
100
-			case 0x0f: /* STH  */ t=T;            SET(1,-1) if(ins & 0x40) { PUSH(u->wst, t) } else{ PUSH(u->rst, t) } break;
100
+			case 0x2f: /* STH2 */ t=T2;           SET(2,-2) PUSH2((ins & 0x40 ? u->wst : u->rst), t) break;
101
+			case 0x0f: /* STH  */ t=T;            SET(1,-1) PUSH((ins & 0x40 ? u->wst : u->rst), t) break;
101 102
 			case 0x30: /* LDZ2 */ t=T;            SET(1, 1) PUT2(0, PEEK16(u->ram + t)) break;
102 103
 			case 0x10: /* LDZ  */ t=T;            SET(1, 0) PUT(0, u->ram[t]) break;
103 104
 			case 0x31: /* STZ2 */ t=T;n=H2;       SET(3,-3) POKE16(u->ram + t, n) break;