// This file is part of the Noddybox.Emulation C# suite. // // Noddybox.Emulation is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Noddybox.Emulation is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Noddybox.Emulation. If not, see . // // Copyright (c) 2012 Ian Cowburn // using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Noddybox.Emulation.EightBit.Z80.Test { class TestMachine : IMemory, IDevice { private readonly byte[] mem = new byte[0x10000]; private readonly Z80Cpu z80 = new Z80Cpu(); private readonly Clock clock = new Clock(100000, 50); private void Output(ConsoleColor pen, ConsoleColor paper, string format, params object[] p) { Console.ForegroundColor = pen; Console.BackgroundColor = paper; Console.WriteLine(format, p); Console.ResetColor(); } byte IMemory.Read(ushort address) { Output(ConsoleColor.Green, ConsoleColor.Black, "Reading {0:X2} from {1:X4}", mem[address], address); return mem[address]; } void IMemory.Write(ushort address, byte value) { Output(ConsoleColor.Red, ConsoleColor.Black, "Writing {0:X2} to {1:X4}", value, address); mem[address] = value; } byte IDevice.Read(ushort device) { Output(ConsoleColor.Green, ConsoleColor.DarkGray, "Reading 00 from device {1:X4}", device); return 0; } void IDevice.Write(ushort device, byte value) { Output(ConsoleColor.Red, ConsoleColor.DarkGray, "Writing {0:X2} to device {1:X4}", value, device); } public TestMachine(string name, List input, List expected) { Output(ConsoleColor.Black, ConsoleColor.White, "Running test {0}", name); } } }