Ejemplo n.º 1
0
        public void ExecuteNextInstruction()
        {
            var opcode          = memoryController.GetPosition(PC++);
            var instruction     = Mnemonics.Mnemonic(opcode);
            var instructionText = instruction.Text;

            if (instruction.ExtraOpcodes == 1)
            {
                instructionText = instructionText.Replace("n", string.Format("0x{0:X2}", memoryController.GetPosition((ushort)(PC))));
            }
            else if (instruction.ExtraOpcodes == 2)
            {
                var first  = memoryController.GetPosition((ushort)(PC));
                var second = memoryController.GetPosition((ushort)(PC + 1));
                instructionText = instructionText.Replace("nn", string.Format("0x{0:X2}{1:X2}", second, first));
            }
            Console.WriteLine("Executing: {0}", instructionText);
            ExecuteInstruction(opcode);
            ShowNextInstruction();
            Console.WriteLine(this);
        }