public void MicroSimulatorTests_ProfTest3_Success() { string[] asmLines = FileManager.Instance.ToReadFile(test3); Lexer lexer = new Lexer(asmLines); Parser parser = new Parser(lexer); Compiler assembler = new Compiler(parser); assembler.Compile(); string[] objData = assembler.GetOutput(); VirtualMemory vm = new VirtualMemory(objData); MicroSimulator micro = new MicroSimulator(vm); int i = 0; while (i < 1000) { micro.NextInstruction(); i++; } Console.WriteLine(micro.MicroRegisters); Console.WriteLine(vm.ToString()); Assert.AreEqual("Registers[0,0,0,0,0,12,15,125]", micro.MicroRegisters.ToString()); }
public void IOBinSemaforoTests_WriteFromMicro_Success() { VirtualMemory vm = new VirtualMemory(new string[] { "a806", "ff07", "0000", "0102", "0203", "c940", "a812", "1a04", "a816", "1904", "0b08", "a816" }); IOManager manager = new IOManager(100); MicroSimulator micro = new MicroSimulator(vm, manager); Console.WriteLine("Initial State:"); Console.Write(vm); Console.WriteLine(manager); Console.WriteLine(micro); IOBinSemaforo semaforo = new IOBinSemaforo(4, "#Debug"); manager.AddIODevice(4, semaforo); Console.WriteLine("\nAfter adding IO Hex Keyboard:"); Console.WriteLine(manager); for (int i = 0; i < 7; i++) { micro.NextInstruction(); } foreach (char c in semaforo.BitContent) { Assert.AreEqual('1', c); } Console.WriteLine(semaforo); }
public void SevenSegmentTestsTests_WriteFromMicro_Success() { VirtualMemory vm = new VirtualMemory(new string[] { "a806", "ff07", "0000", "0102", "0203", "c940", "a812", "1a04", "a816", "1904", "0b08", "a816" }); IOManager manager = new IOManager(100); MicroSimulator micro = new MicroSimulator(vm, manager); Console.WriteLine("Initial State:"); Console.Write(vm); Console.WriteLine(manager); Console.WriteLine(micro); IOSevenSegmentDisplay segment = new IOSevenSegmentDisplay(9); manager.AddIODevice(9, segment); Console.WriteLine("\nAfter adding IO Hex Keyboard:"); Console.WriteLine(manager); for (int i = 0; i < 7; i++) { micro.NextInstruction(); } foreach (char c in segment.Data) { Assert.AreEqual("11110110", segment.Data); } Console.WriteLine(segment); }
public void MicroSimulatorTests_ProfTest1_Success() { string[] asmLines = FileManager.Instance.ToReadFile(test1); string[] expected = FileManager.Instance.ToReadFile(test1Comparison); Lexer lexer = new Lexer(asmLines); Parser parser = new Parser(lexer); Compiler assembler = new Compiler(parser); assembler.Compile(); string[] objData = assembler.GetOutput(); VirtualMemory vm = new VirtualMemory(objData); MicroSimulator micro = new MicroSimulator(vm); int i = 0; int counter = 0; while (i < 6) { micro.NextInstruction(); Console.WriteLine(micro.CurrentInstruction); Assert.AreEqual(expected[counter++], micro.CurrentInstruction.ToString()); if (micro.CurrentInstruction.Equals(micro.PreviousInstruction)) { i++; } } Console.WriteLine(micro.MicroRegisters); Assert.AreEqual("Registers[0,8,5,49,10,0,0,0]", micro.MicroRegisters.ToString()); Console.WriteLine(vm.ToString()); }