public Register8 Create(Register8 model) { Register8 register; using (var context = new WebKikDataContext()) { register = context.Registers8.Add(new Register8 { Year = model.Year, OwnerProjectCompanyId = model.OwnerProjectCompanyId, Currency = model.Currency, Type = RegisterType.Register8 }); int dataTypeId = 0; foreach (var reserve in model.Register8Data) { if (dataTypeId != RESERVE_DATATYPE_SUMMARY) { context.Registers8Data.Add(new Register8Data { Register8DataTypeId = dataTypeId, Register8Id = register.Id, ExpensesFormationOfReserve = reserve.ExpensesFormationOfReserve, ExpensesReducedOfReserve = reserve.ExpensesReducedOfReserve, IncomeFromRecoveryOfReserve = reserve.IncomeFromRecoveryOfReserve }); dataTypeId++; } } context.SaveChanges(); return(register); } }
public void GetHashCodeTest() { var r = new Register8(10); Assert.Equal(r.GetHashCode(), new Register8(10).GetHashCode()); Assert.NotEqual(r.GetHashCode(), new Register8(20).GetHashCode()); }
public Register8 Edit(Register8 model) { Register8 register; using (var context = new WebKikDataContext()) { register = context.Registers8.Where(r => r.Id == model.Id).FirstOrDefault(); if (register != null) { register.Currency = model.Currency; } int dataTypeId = 0; foreach (var reserve in model.Register8Data) { if (dataTypeId != RESERVE_DATATYPE_SUMMARY) { var register8Data = context.Registers8Data.Where(data => data.Register8Id == model.Id && data.Register8DataTypeId == reserve.Register8DataTypeId).FirstOrDefault(); if (register8Data != null) { register8Data.ExpensesFormationOfReserve = reserve.ExpensesFormationOfReserve; register8Data.ExpensesReducedOfReserve = reserve.ExpensesReducedOfReserve; register8Data.IncomeFromRecoveryOfReserve = reserve.IncomeFromRecoveryOfReserve; dataTypeId++; } } } context.SaveChanges(); return(register); } }
public void NonDefaultConstructorTest(byte value) { var r1 = new Register8(value); var r2 = new Register8(value); Assert.Equal(r1, r2); }
public void EqualityTest_NotRegister8() { var r = new Register8(0); Assert.False(r.Equals(null)); Assert.False(r.Equals(0)); }
public TStates SetRegister(Z80 z80, Register8 register) { var address = ByteHelper.CreateUShort(z80.B.Value, z80.C.Value); register.Value = z80.Ports.GetByte(address); return(TStates.Count(12)); }
public void CanChangeValue() { cpu.registers.a = 0; Register8 reg = new Register8(cpu, "a"); reg.Target = 0xFF; Assert.Equal(0xFF, reg.Target); Assert.Equal(0xFF, cpu.registers.a); }
public static Action adc(CPU cpu, Register8 o1, Operand<byte> o2) => () => { cpu.registers.a += (byte)(o2.Target + Convert.ToByte(cpu.Carry)); cpu.Sign = cpu.registers.a > 0x7F; cpu.Zero = cpu.registers.a == 0; cpu.HalfCarry = true; // TODO cpu.Overflow = true; // TODO cpu.AddSub = false; cpu.Carry = false; // TODO };
public void EmptyRegister8() { // Arrange var register8 = new Register8(); // Act // Assert Assert.That(register8.Value == 0x00); }
public void SettingRegister8Value() { // Arrange var register8 = new Register8(); // Act register8.Value = 0x01; // Assert Assert.That(register8.Value == 0x01); }
internal void SetFlags(Register8 cloneOfA) { //if(_z80.CurrentOpcode.) //zero if (_z80.A.Value == 0) { _z80.F.Zero = true; } }
public static Action add(CPU cpu, Register8 o1, Operand<byte> o2) => () => { byte a = o1.Target; o1.Target += o2.Target; cpu.Sign = o1.Target > 0x7F; cpu.Zero = o1.Target == 0; cpu.HalfCarry = (a & 0x0F) + (o2.Target & 0x0F) > 0x0F; cpu.Overflow = Utils.Sign(a) == Utils.Sign(o2.Target) && Utils.Sign(a) != Utils.Sign(o1.Target); cpu.AddSub = false; cpu.Carry = a + o2.Target > 0xFF; };
public Z80(Memory memory, Ports ports) { Memory = memory; Ports = ports; F = new Registers.Flags(); F_ = new Registers.Flags(); PC = new Register16("PC"); SP = new Register16("SP"); A = new Register8("A"); B = new Register8("B"); C = new Register8("C"); D = new Register8("D"); E = new Register8("E"); H = new Register8("H"); L = new Register8("L"); A_ = new Register8("A"); B_ = new Register8("B"); C_ = new Register8("C"); D_ = new Register8("D"); E_ = new Register8("E"); H_ = new Register8("H"); L_ = new Register8("L"); I = new Register8("I"); R = new Register8("R"); AF = new Register16(A, F); BC = new Register16(B, C); DE = new Register16(D, E); HL = new Register16(H, L); IX = new Register16("IX"); IY = new Register16("IY"); AF_ = new Register16(A_, F_); BC_ = new Register16(B_, C_); DE_ = new Register16(D_, E_); HL_ = new Register16(H_, L_); InstructionSet = new InstructionSet(); Buffer = new List <byte>(); PC.Value = 0x0; SP.Value = 0XFFFF; Buffer.Clear(); }
public void SettingRegister16Value() { // Arrange var firstRegister8 = new Register8(); var secondRegister8 = new Register8(); var register16 = new Register16(firstRegister8, secondRegister8); // Act register16.Value = 0x1122; // Assert Assert.That(register16.Value == 0x1122); Assert.That(firstRegister8.Value == 0x11); Assert.That(secondRegister8.Value == 0x22); }
public void SettingRegister8ValuePartOfRegister16() { // Arrange var firstRegister8 = new Register8(); var secondRegister8 = new Register8(); var register16 = new Register16(firstRegister8, secondRegister8); // Act firstRegister8.Value = 0xAA; // Assert Assert.That(register16.Value == 0xAA00); Assert.That(firstRegister8.Value == 0xAA); Assert.That(secondRegister8.Value == 0x00); }
public void SetRegister8(Register8 register, byte value) { switch (register) { case Register8.A: A = value; break; case Register8.B: B = value; break; case Register8.C: C = value; break; case Register8.D: D = value; break; case Register8.E: E = value; break; case Register8.H: H = value; break; case Register8.L: L = value; break; } }
public void EqualityTest(byte value) { var r1 = new Register8(value); var r2 = new Register8((byte)(value / 2 - 1)); var r3 = new Register8(value); Assert.True(r1 == r3); Assert.True(r1 != r2); Assert.True(r2 != r3); Assert.True(r1.Equals(r3)); Assert.False(r1.Equals(r2)); Assert.False(r2.Equals(r3)); Assert.True(r1.Equals((object)r3)); Assert.False(r1.Equals((object)r2)); Assert.False(r2.Equals((object)r3)); Assert.Equal(r1.GetHashCode(), r3.GetHashCode()); }
public byte GetRegister8(Register8 register) { switch (register) { case Register8.A: return(A); case Register8.B: return(B); case Register8.C: return(C); case Register8.D: return(D); case Register8.E: return(E); case Register8.H: return(H); case Register8.L: return(L); default: return(0); } }
public Registers() { // 8-bit registers A = new Register8(); F = new FlagRegister8(); B = new Register8(); C = new Register8(); D = new Register8(); E = new Register8(); H = new Register8(); L = new Register8(); // Paired 8-bit into 16-bit registers AF = new Register16(A, F); BC = new Register16(B, C); DE = new Register16(D, E); HL = new Register16(H, L); // 16-bit registers SP = new Register16(new Register8(), new Register8()); PC = new Register16(new Register8(), new Register8()); }
public async Task <IEnumerable <RegisterListItem> > GetRegistersByShareIdAndYear(int projectCompanyId, int year) { var registersList = new List <RegisterListItem>(); /// todo: Refactor into loop //register1 var register1 = await register1Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register1 != null ? register1.Id : 0, Type = register1 != null ? register1.Type : RegisterType.Register1, IsFilled = register1 != null }); //register2 var register2 = await register2Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register2 != null ? register2.Id : 0, Type = register2 != null ? register2.Type : RegisterType.Register2, IsFilled = register2 != null }); //register3 var register3 = await register3Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register3 != null ? register3.Id : 0, Type = register3 != null ? register3.Type : RegisterType.Register3, IsFilled = register3 != null }); //register4 var register4 = await register4Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register4 != null ? register4.Id : 0, Type = register4 != null ? register4.Type : RegisterType.Register4, IsFilled = register4 != null }); //register5 var register5 = await register5Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register5 != null ? register5.Id : 0, Type = register5 != null ? register5.Type : RegisterType.Register5, IsFilled = register5 != null }); //register6 var register6 = await register6Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register6 != null ? register6.Id : 0, Type = register6 != null ? register6.Type : RegisterType.Register6, IsFilled = register6 != null }); //register7 var register7 = await register7Repository.Where(x => x.Year == (Year)year && x.OwnerProjectCompanyId == projectCompanyId).FirstOrDefaultAsync(); registersList.Add(new RegisterListItem { Id = register7 != null ? register7.Id : 0, Type = register7 != null ? register7.Type : RegisterType.Register7, IsFilled = register7 != null }); Register8 register8 = null; using (var context = new WebKikDataContext()) { register8 = context.Registers8.Where(rg8 => (rg8.Year == year && rg8.OwnerProjectCompanyId == projectCompanyId)).FirstOrDefault(); } registersList.Add(new RegisterListItem { Id = register8 != null ? register8.Id : 0, Type = register8 != null ? register8.Type : RegisterType.Register8, IsFilled = register8 != null }); Register9 register9 = null; using (var context = new WebKikDataContext()) { register9 = context.Registers9.Where(rg9 => (rg9.Year == year && rg9.OwnerProjectCompanyId == projectCompanyId)).FirstOrDefault(); } registersList.Add(new RegisterListItem { Id = register9 != null ? register9.Id : 0, Type = register9 != null ? register9.Type : RegisterType.Register9, IsFilled = register9 != null }); Register10 register10; using (var context = new WebKikDataContext()) { register10 = context.Registers10.FirstOrDefault(x => x.Year == year && x.OwnerProjectCompanyId == projectCompanyId); } registersList.Add(new RegisterListItem { Id = register10?.Id ?? 0, Type = register10?.Type ?? RegisterType.Register10, IsFilled = register10 != null }); Register11 register11; using (var context = new WebKikDataContext()) { register11 = context.Registers11.FirstOrDefault(x => x.Year == year && x.OwnerProjectCompanyId == projectCompanyId); } registersList.Add(new RegisterListItem { Id = register11 != null ? register11.Id : 0, Type = register11 != null ? register11.Type : RegisterType.Register11, IsFilled = register11 != null }); return(registersList); }
public static Action sbc(CPU cpu, Register8 o1, Operand<byte> o) => () => { cpu.registers.a -= o.Target; cpu.Sign = cpu.registers.a > 0x7F; cpu.Zero = cpu.registers.a == 0; cpu.HalfCarry = true; // TODO cpu.Overflow = true; // TODO cpu.AddSub = true; cpu.Carry = false; // TODO };
public void CanGetOriginalValue() { cpu.registers.a = 0x05; Register8 reg = new Register8(cpu, "a"); Assert.Equal(0x05, reg.Target); }
public void ToStringTest(byte value) { var r = new Register8(value); Assert.Equal($"{r.Value}", r.ToString()); }
private Register8 CalculateRegister7Fileds(Register8 entity) { return(entity); }
public Register16(Register8 register, Register8 register2) { Registers = new[] { register, register2 }; }
public byte GetRegister8(Register8 register) { switch (register) { case Register8.A: return A; case Register8.B: return B; case Register8.C: return C; case Register8.D: return D; case Register8.E: return E; case Register8.H: return H; case Register8.L: return L; default: return 0; } }
public void CanGetChangedValue() { cpu.registers.a = 0x05; Register8 reg = new Register8(cpu, "a"); cpu.registers.a = 0x10; Assert.Equal(0x10, reg.Target); }
public Register8 CalculateRegisterFields(Register8 register) { return(CalculateRegister7Fileds(register)); }
public void SetRegister8(Register8 register, byte value) { switch (register) { case Register8.A: A = value; break; case Register8.B: B = value; break; case Register8.C: C = value; break; case Register8.D: D = value; break; case Register8.E: E = value; break; case Register8.H: H = value; break; case Register8.L: L = value; break; } }