public void opJpnz(Operand op) { if (!flZ) opJp(op); }
public void opSrl(Operand op) { byte a = alu.opSrl8(alu.Read8BitOperandValue(op)); alu.WriteOperandValue(op, a); flS = (a & Z80.fS) != 0; fl3 = (a & Z80.f3) != 0; fl5 = (a & Z80.f5) != 0; flZ = (a == 0); flPV = alu.TestParity(a); flN = false; flH = false; }
public void opSubA(Operand op) { rA = alu.opSub8(rA, alu.Read8BitOperandValue(op)); }
public void opSet(byte b, Operand r) { alu.WriteOperandValue(r, alu.opBitSet8(b, alu.Read8BitOperandValue(r))); }
public void opSetId(byte b, Operand r, Operand Id) { byte result = alu.opBitSet8(b, alu.Read8BitOperandValue(Id)); if (r.Register != Registers.HL) alu.WriteRegister(r.Register, result); alu.WriteOperandValue(Id, result); }
public void opCallm(Operand op) { if (flS) opCall(op); }
public void opCallnz(Operand op) { if (!flZ) opCall(op); }
public void opAddA(Operand op) { rA = alu.opAdd8(rA, alu.Read8BitOperandValue(op)); // !!!!!!!!!!! }
public void opAndA(Operand op) { rA = alu.opAnd8(rA, alu.Read8BitOperandValue(op)); }
public void opLd16(Operand op1, Operand op2) { alu.WriteOperandValue(op1, alu.Read16BitOperandValue(op2)); if (op1.Register == Registers.HL) { if (rHL == 0x5cd5 && op2.UShortValue == 0x5c65) Console.WriteLine(1); } }
public void opLd8(Operand op1, Operand op2) { alu.WriteOperandValue(op1, alu.Read8BitOperandValue(op2)); }
public void opJpz(Operand op) { if (flZ) opJp(op); }
public void opJpp(Operand op) { if (!flS) opJp(op); }
public void opJpo(Operand op) { if (!flPV) opJp(op); }
public void opRes(byte b, Operand r) { alu.WriteOperandValue(r, alu.opBitRes8(b, alu.Read8BitOperandValue(r))); }
public void opBit(byte b, Operand r) { alu.opBit8(b, alu.Read8BitOperandValue(r)); }
public void opCallc(Operand op) { if (flC) opCall(op); }
public void opCall(Operand op) { opPushPC(); rPC = alu.Read16BitOperandValue(op); }
public void opCallnc(Operand op) { if (!flC) opCall(op); }
public void opOutb(Operand addr, Operand value) { alu.opOut8(alu.Read16BitOperandValue(addr), alu.Read8BitOperandValue(value)); }
public void opSbc16(Operand a, Operand b) { alu.WriteOperandValue(a, alu.opSbc16(alu.Read16BitOperandValue(a), alu.Read16BitOperandValue(b))); }
public void opOutb(Operand addr) { alu.opOut8(alu.Read16BitOperandValue(addr), 0); }
public void opCallp(Operand op) { if (!flS) opCall(op); }
public void opOutbA(Operand addr) { ushort a = alu.MakeUshort(rA, alu.Read8BitOperandValue(addr)); alu.opOut8(a, rA); }
public void opCallpe(Operand op) { if (!flPV) opCall(op); }
public void opPop16(Operand op) { alu.WriteOperandValue(op, alu.opPop16()); }
public void opSrlId(Operand op, Operand op2) { opSrl(op2); if (op.Register != Registers.HL) alu.WriteRegister(op.Register, alu.Read8BitOperandValue(op2)); }
public void opPush16(Operand op) { alu.opPush16(alu.Read16BitOperandValue(op)); }
public void opXorA(Operand op) { rA = alu.opXor8(rA, alu.Read8BitOperandValue(op)); }
public void opJpnc(Operand op) { if (!flC) opJp(op); }