本文整理汇总了C#中Snes.CPUCoreOpArgument类的典型用法代码示例。如果您正苦于以下问题:C# CPUCoreOpArgument类的具体用法?C# CPUCoreOpArgument怎么用?C# CPUCoreOpArgument使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CPUCoreOpArgument类属于Snes命名空间,在下文中一共展示了CPUCoreOpArgument类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: op_rts
public void op_rts(CPUCoreOpArgument args)
{
op_io();
op_io();
rd.l = op_readstack();
rd.h = op_readstack();
last_cycle();
op_io();
regs.pc.w = ++rd.w;
}
示例2: op_write_dp_w
public void op_write_dp_w(CPUCoreOpArgument args)
{
int n = args.x;
dp = op_readpc();
op_io_cond2();
op_writedp(dp + 0U, (byte)(regs.r[n] >> 0));
last_cycle();
op_writedp(dp + 1U, (byte)(regs.r[n] >> 8));
}
示例3: op_xba
public void op_xba(CPUCoreOpArgument args)
{
op_io();
last_cycle();
op_io();
regs.a.l ^= regs.a.h;
regs.a.h ^= regs.a.l;
regs.a.l ^= regs.a.h;
regs.p.n = Convert.ToBoolean(regs.a.l & 0x80);
regs.p.z = (regs.a.l == 0);
}
示例4: op_write_addr_b
public void op_write_addr_b(CPUCoreOpArgument args)
{
int n = args.x;
aa.l = op_readpc();
aa.h = op_readpc();
last_cycle();
op_writedbr(aa.w, (byte)regs.r[n]);
}
示例5: op_write_dpr_w
public void op_write_dpr_w(CPUCoreOpArgument args)
{
int n = args.x;
int i = args.y;
dp = op_readpc();
op_io_cond2();
op_io();
op_writedp(dp + (uint)regs.r[i] + 0, (byte)(regs.r[n] >> 0));
last_cycle();
op_writedp(dp + (uint)regs.r[i] + 1, (byte)(regs.r[n] >> 8));
}
示例6: op_txs_n
public void op_txs_n(CPUCoreOpArgument args)
{
last_cycle();
op_io_irq();
regs.s.w = regs.x.w;
}
示例7: op_wdm
public void op_wdm(CPUCoreOpArgument args)
{
last_cycle();
op_readpc();
}
示例8: op_sta_ildp_w
public void op_sta_ildp_w(CPUCoreOpArgument args)
{
dp = op_readpc();
op_io_cond2();
aa.l = op_readdp(dp + 0U);
aa.h = op_readdp(dp + 1U);
aa.b = op_readdp(dp + 2U);
op_writelong(aa.d + 0, regs.a.l);
last_cycle();
op_writelong(aa.d + 1, regs.a.h);
}
示例9: op_sta_isry_w
public void op_sta_isry_w(CPUCoreOpArgument args)
{
sp = op_readpc();
op_io();
aa.l = op_readsp(sp + 0U);
aa.h = op_readsp(sp + 1U);
op_io();
op_writedbr((uint)(aa.w + regs.y.w + 0), regs.a.l);
last_cycle();
op_writedbr((uint)(aa.w + regs.y.w + 1), regs.a.h);
}
示例10: op_sta_idpy_b
public void op_sta_idpy_b(CPUCoreOpArgument args)
{
dp = op_readpc();
op_io_cond2();
aa.l = op_readdp(dp + 0U);
aa.h = op_readdp(dp + 1U);
op_io();
last_cycle();
op_writedbr((uint)(aa.w + regs.y.w), regs.a.l);
}
示例11: op_sta_idp_w
public void op_sta_idp_w(CPUCoreOpArgument args)
{
dp = op_readpc();
op_io_cond2();
aa.l = op_readdp(dp + 0U);
aa.h = op_readdp(dp + 1U);
op_writedbr(aa.w + 0U, regs.a.l);
last_cycle();
op_writedbr(aa.w + 1U, regs.a.h);
}
示例12: op_sta_idpx_b
public void op_sta_idpx_b(CPUCoreOpArgument args)
{
dp = op_readpc();
op_io_cond2();
op_io();
aa.l = op_readdp((uint)(dp + regs.x.w + 0));
aa.h = op_readdp((uint)(dp + regs.x.w + 1));
last_cycle();
op_writedbr(aa.w, regs.a.l);
}
示例13: op_sbc_w
public void op_sbc_w(CPUCoreOpArgument args)
{
int result;
rd.w ^= 0xffff;
if (!regs.p.d)
{
result = regs.a.w + rd.w + Convert.ToInt32(regs.p.c);
}
else
{
result = (regs.a.w & 0x000f) + (rd.w & 0x000f) + (Convert.ToInt32(regs.p.c) << 0);
if (result <= 0x000f)
{
result -= 0x0006;
}
regs.p.c = result > 0x000f;
result = (regs.a.w & 0x00f0) + (rd.w & 0x00f0) + (Convert.ToInt32(regs.p.c) << 4) + (result & 0x000f);
if (result <= 0x00ff)
{
result -= 0x0060;
}
regs.p.c = result > 0x00ff;
result = (regs.a.w & 0x0f00) + (rd.w & 0x0f00) + (Convert.ToInt32(regs.p.c) << 8) + (result & 0x00ff);
if (result <= 0x0fff)
{
result -= 0x0600;
}
regs.p.c = result > 0x0fff;
result = (regs.a.w & 0xf000) + (rd.w & 0xf000) + (Convert.ToInt32(regs.p.c) << 12) + (result & 0x0fff);
}
regs.p.v = Convert.ToBoolean(~(regs.a.w ^ rd.w) & (regs.a.w ^ result) & 0x8000);
if (regs.p.d && result <= 0xffff)
{
result -= 0x6000;
}
regs.p.c = result > 0xffff;
regs.p.n = Convert.ToBoolean(result & 0x8000);
regs.p.z = (ushort)result == 0;
regs.a.w = (ushort)result;
}
示例14: op_sbc_b
public void op_sbc_b(CPUCoreOpArgument args)
{
int result;
rd.l ^= 0xff;
if (!regs.p.d)
{
result = regs.a.l + rd.l + Convert.ToInt32(regs.p.c);
}
else
{
result = (regs.a.l & 0x0f) + (rd.l & 0x0f) + (Convert.ToInt32(regs.p.c) << 0);
if (result <= 0x0f)
{
result -= 0x06;
}
regs.p.c = result > 0x0f;
result = (regs.a.l & 0xf0) + (rd.l & 0xf0) + (Convert.ToInt32(regs.p.c) << 4) + (result & 0x0f);
}
regs.p.v = Convert.ToBoolean(~(regs.a.l ^ rd.l) & (regs.a.l ^ result) & 0x80);
if (regs.p.d && result <= 0xff)
{
result -= 0x60;
}
regs.p.c = result > 0xff;
regs.p.n = Convert.ToBoolean(result & 0x80);
regs.p.z = (byte)result == 0;
regs.a.l = (byte)result;
}
示例15: op_tsx_w
public void op_tsx_w(CPUCoreOpArgument args)
{
last_cycle();
op_io_irq();
regs.x.w = regs.s.w;
regs.p.n = Convert.ToBoolean(regs.x.w & 0x8000);
regs.p.z = (regs.x.w == 0);
}