(uxn.c)PEK uses non-merging microcode

This commit is contained in:
Devine Lu Linvega 2024-08-16 20:30:00 -07:00
parent e4b4c2f8b0
commit 6096578a7b
1 changed files with 4 additions and 4 deletions

View File

@ -42,7 +42,7 @@ WITH REGARD TO THIS SOFTWARE.
#define PUT(x,y) PU1(x) if(_2) PU1(y) #define PUT(x,y) PU1(x) if(_2) PU1(y)
#define DEI(p, o) if(_2) { o = (emu_dei(p) << 8) | emu_dei(p + 1); } else o = emu_dei(p); #define DEI(p, o) if(_2) { o = (emu_dei(p) << 8) | emu_dei(p + 1); } else o = emu_dei(p);
#define DEO(p, y) if(_2) { emu_deo(p, y >> 8), emu_deo(p + 1, y); } else emu_deo(p, y); #define DEO(p, y) if(_2) { emu_deo(p, y >> 8), emu_deo(p + 1, y); } else emu_deo(p, y);
#define PEK(o, x, r) if(_2) { r = (x); o = uxn.ram[r++] << 8 | uxn.ram[r]; } else o = uxn.ram[(x)]; #define PEK(o, p, x, r) if(_2) { r = (x); o = uxn.ram[r++], p = uxn.ram[r]; } else o = uxn.ram[(x)];
#define POK(x, y, z, r) if(_2) { r = (x); uxn.ram[r++] = y, uxn.ram[r] = z; } else uxn.ram[(x)] = (y); #define POK(x, y, z, r) if(_2) { r = (x); uxn.ram[r++] = y, uxn.ram[r] = z; } else uxn.ram[(x)] = (y);
int int
@ -77,11 +77,11 @@ uxn_eval(Uint16 pc)
/* JCN */ OPC(0x0d, POx(a) PO1(b), if(b) JMP(a)) /* JCN */ OPC(0x0d, POx(a) PO1(b), if(b) JMP(a))
/* JSR */ OPC(0x0e, POx(a),PF2(pc) JMP(a)) /* JSR */ OPC(0x0e, POx(a),PF2(pc) JMP(a))
/* STH */ OPC(0x0f, POx(a),PFx(a)) /* STH */ OPC(0x0f, POx(a),PFx(a))
/* LDZ */ OPC(0x10, PO1(a),PEK(b, a, t) PUx(b)) /* LDZ */ OPC(0x10, PO1(a),PEK(b, c, a, t) PUT(b,c))
/* STZ */ OPC(0x11, PO1(a) GET(b,c),POK(a, b, c, t)) /* STZ */ OPC(0x11, PO1(a) GET(b,c),POK(a, b, c, t))
/* LDR */ OPC(0x12, PO1(a),PEK(b, pc + (Sint8)a, tt) PUx(b)) /* LDR */ OPC(0x12, PO1(a),PEK(b, c, pc + (Sint8)a, tt) PUT(b,c))
/* STR */ OPC(0x13, PO1(a) GET(b,c),POK(pc + (Sint8)a, b, c, tt)) /* STR */ OPC(0x13, PO1(a) GET(b,c),POK(pc + (Sint8)a, b, c, tt))
/* LDA */ OPC(0x14, PO2(a),PEK(b, a, tt) PUx(b)) /* LDA */ OPC(0x14, PO2(a),PEK(b, c, a, tt) PUT(b,c))
/* STA */ OPC(0x15, PO2(a) GET(b,c),POK(a, b, c, tt)) /* STA */ OPC(0x15, PO2(a) GET(b,c),POK(a, b, c, tt))
/* DEI */ OPC(0x16, PO1(a),DEI(a, b) PUx(b)) /* DEI */ OPC(0x16, PO1(a),DEI(a, b) PUx(b))
/* DEO */ OPC(0x17, PO1(a) POx(b),DEO(a, b)) /* DEO */ OPC(0x17, PO1(a) POx(b),DEO(a, b))