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