commit 6096578

Devine Lu Linvega  ·  2024-08-17 03:30:00 +0000 UTC
parent e4b4c2f
(uxn.c)PEK uses non-merging microcode
1 files changed,  +4, -4
+4, -4
 1@@ -42,7 +42,7 @@ WITH REGARD TO THIS SOFTWARE.
 2 #define PUT(x,y) PU1(x) if(_2) PU1(y)
 3 #define DEI(p, o) if(_2) { o = (emu_dei(p) << 8) | emu_dei(p + 1); } else o = emu_dei(p);
 4 #define DEO(p, y) if(_2) { emu_deo(p, y >> 8), emu_deo(p + 1, y); } else emu_deo(p, y);
 5-#define PEK(o, x, r) if(_2) { r = (x); o = uxn.ram[r++] << 8 | uxn.ram[r]; } else o = uxn.ram[(x)];
 6+#define PEK(o, p, x, r) if(_2) { r = (x); o = uxn.ram[r++], p = uxn.ram[r]; } else o = uxn.ram[(x)];
 7 #define POK(x, y, z, r) if(_2) { r = (x); uxn.ram[r++] = y, uxn.ram[r] = z; } else uxn.ram[(x)] = (y);
 8 
 9 int
10@@ -77,11 +77,11 @@ uxn_eval(Uint16 pc)
11 		/* JCN */ OPC(0x0d, POx(a) PO1(b), if(b) JMP(a))
12 		/* JSR */ OPC(0x0e, POx(a),PF2(pc) JMP(a))
13 		/* STH */ OPC(0x0f, POx(a),PFx(a))
14-		/* LDZ */ OPC(0x10, PO1(a),PEK(b, a, t) PUx(b))
15+		/* LDZ */ OPC(0x10, PO1(a),PEK(b, c, a, t) PUT(b,c))
16 		/* STZ */ OPC(0x11, PO1(a) GET(b,c),POK(a, b, c, t))
17-		/* LDR */ OPC(0x12, PO1(a),PEK(b, pc + (Sint8)a, tt) PUx(b))
18+		/* LDR */ OPC(0x12, PO1(a),PEK(b, c, pc + (Sint8)a, tt) PUT(b,c))
19 		/* STR */ OPC(0x13, PO1(a) GET(b,c),POK(pc + (Sint8)a, b, c, tt))
20-		/* LDA */ OPC(0x14, PO2(a),PEK(b, a, tt) PUx(b))
21+		/* LDA */ OPC(0x14, PO2(a),PEK(b, c, a, tt) PUT(b,c))
22 		/* STA */ OPC(0x15, PO2(a) GET(b,c),POK(a, b, c, tt))
23 		/* DEI */ OPC(0x16, PO1(a),DEI(a, b) PUx(b))
24 		/* DEO */ OPC(0x17, PO1(a) POx(b),DEO(a, b))