using System; namespace MCEmuCore.GBMonolith { class Program { static void Main(string[] args) { var cpu = new Cpu(); TestRegisters(); } static void TestRegisters() { CpuRegisters cpuRegisters = new CpuRegisters(0); Console.WriteLine("Initializing registers:"); Console.WriteLine("A:\t1\tF:\t16"); Console.WriteLine("B:\t2\tC:\t100"); Console.WriteLine("D:\t3\tE:\t150"); Console.WriteLine("H:\t4\tL:\t200\r\n"); cpuRegisters.A += 1; cpuRegisters.B += 2; cpuRegisters.D += 3; cpuRegisters.H += 4; cpuRegisters.F += 16; cpuRegisters.C += 100; cpuRegisters.E += 150; cpuRegisters.L += 200; cpuRegisters.PrintSingleStatus(); Console.WriteLine("Expected Wide Register status:"); Console.WriteLine("BC:\t612"); Console.WriteLine("DE:\t918"); Console.WriteLine("HL:\t1224\r\n"); Console.Write("Actual "); cpuRegisters.PrintWideStatus(); Console.WriteLine("\r\nSetting wide values:"); Console.WriteLine("BC:\t26214"); Console.WriteLine("DE:\t22016"); Console.WriteLine("HL:\t153\r\n"); cpuRegisters.BC = 26214; cpuRegisters.DE = 22016; cpuRegisters.HL = 153; cpuRegisters.PrintWideStatus(); Console.WriteLine("\r\nExpected Register status:"); Console.WriteLine("A:\t1\tF:\t16"); Console.WriteLine("B:\t102\tC:\t102"); Console.WriteLine("D:\t86\tE:\t0"); Console.WriteLine("H:\t0\tL:\t153\r\n"); Console.Write("Actual "); cpuRegisters.PrintSingleStatus(); Console.WriteLine("Testing Flags:"); cpuRegisters.PrintFlags(); cpuRegisters.Flags.Zero = true; cpuRegisters.Flags.N_Subtract = true; cpuRegisters.Flags.HalfCarry = true; cpuRegisters.Flags.Carry = false; cpuRegisters.PrintFlags(); } } }