示例#1
0
 public void opJpnz(Operand op)
 {
     if (!flZ)
         opJp(op);
 }
示例#2
0
 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;
 }
示例#3
0
 public void opSubA(Operand op)
 {
     rA = alu.opSub8(rA, alu.Read8BitOperandValue(op));
 }
示例#4
0
 public void opSet(byte b, Operand r)
 {
     alu.WriteOperandValue(r, alu.opBitSet8(b, alu.Read8BitOperandValue(r)));
 }
示例#5
0
 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);
 }
示例#6
0
 public void opCallm(Operand op)
 {
     if (flS)
         opCall(op);
 }
示例#7
0
 public void opCallnz(Operand op)
 {
     if (!flZ)
         opCall(op);
 }
示例#8
0
 public void opAddA(Operand op)
 {
     rA = alu.opAdd8(rA, alu.Read8BitOperandValue(op)); // !!!!!!!!!!!
 }
示例#9
0
 public void opAndA(Operand op)
 {
     rA =  alu.opAnd8(rA, alu.Read8BitOperandValue(op));
 }
示例#10
0
 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);
     }
 }
示例#11
0
 public void opLd8(Operand op1, Operand op2)
 {
     alu.WriteOperandValue(op1, alu.Read8BitOperandValue(op2));
 }
示例#12
0
 public void opJpz(Operand op)
 {
     if (flZ)
         opJp(op);
 }
示例#13
0
 public void opJpp(Operand op)
 {
     if (!flS)
         opJp(op);
 }
示例#14
0
 public void opJpo(Operand op)
 {
     if (!flPV)
         opJp(op);
 }
示例#15
0
 public void opRes(byte b, Operand r)
 {
     alu.WriteOperandValue(r, alu.opBitRes8(b, alu.Read8BitOperandValue(r)));
 }
示例#16
0
 public void opBit(byte b, Operand r)
 {
     alu.opBit8(b, alu.Read8BitOperandValue(r));
 }
示例#17
0
 public void opCallc(Operand op)
 {
     if (flC)
         opCall(op);
 }
示例#18
0
 public void opCall(Operand op)
 {
     opPushPC();
     rPC = alu.Read16BitOperandValue(op);
 }
示例#19
0
 public void opCallnc(Operand op)
 {
     if (!flC)
         opCall(op);
 }
示例#20
0
 public void opOutb(Operand addr, Operand value)
 {
     alu.opOut8(alu.Read16BitOperandValue(addr), alu.Read8BitOperandValue(value));
 }
示例#21
0
 public void opSbc16(Operand a, Operand b)
 {
     alu.WriteOperandValue(a, alu.opSbc16(alu.Read16BitOperandValue(a), alu.Read16BitOperandValue(b)));
 }
示例#22
0
 public void opOutb(Operand addr)
 {
     alu.opOut8(alu.Read16BitOperandValue(addr), 0);
 }
示例#23
0
 public void opCallp(Operand op)
 {
     if (!flS)
         opCall(op);
 }
示例#24
0
 public void opOutbA(Operand addr)
 {
     ushort a = alu.MakeUshort(rA, alu.Read8BitOperandValue(addr));
     alu.opOut8(a, rA);
 }
示例#25
0
 public void opCallpe(Operand op)
 {
     if (!flPV)
         opCall(op);
 }
示例#26
0
 public void opPop16(Operand op)
 {
     alu.WriteOperandValue(op, alu.opPop16());
 }
示例#27
0
 public void opSrlId(Operand op, Operand op2)
 {
     opSrl(op2);
     if (op.Register != Registers.HL)
         alu.WriteRegister(op.Register, alu.Read8BitOperandValue(op2));
 }
示例#28
0
 public void opPush16(Operand op)
 {
     alu.opPush16(alu.Read16BitOperandValue(op));
 }
示例#29
0
 public void opXorA(Operand op)
 {
     rA = alu.opXor8(rA, alu.Read8BitOperandValue(op));
 }
示例#30
0
 public void opJpnc(Operand op)
 {
     if (!flC)
         opJp(op);
 }