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