Beispiel #1
0
        public static void Test()
        {
            var program = new ushort[]
            {
            /*0x7c01, 0x003b, 0x7de1, 0x1000, 0x0020, 0x7803, 0x1000, 0xc00d,
            0x7dc1, 0x001a, 0xa861, 0x7c01, 0x2000, 0x2161, 0x2000, 0x8463,
            0x806d, 0x7dc1, 0x000e, 0x9031, 0x7c10, 0x0018, 0x7dc1, 0x001a,
            0x9037, 0x61c1, 0x7dc1, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000,*/

            0x7DC1, 0x0013, 0x01A1, 0x05A1,
            0x09A1, 0x19A1, 0x1DA1, 0x0DA1,
            0x11A1, 0x7DA1, 0x8000, 0x8001,
            0x8011, 0x8021, 0x8061, 0x8071,
            0x8031, 0x8041, 0x8051, 0x7DC1,
            0x0002, 0x7DC1, 0x0017, 0x6051,
            0x6041, 0x6031, 0x6071, 0x6061,
            0x6021, 0x6011, 0x6001, 0x7DC1,
            0x001F,
            };

            var cpu = new AltCPU();

            for (int i = 0; i < program.Length; i++)
                cpu.Mem[i] = program[i];

            //Run(cpu, 1000);
            RunWhilePrintingState(cpu, 50);
            //StepThroughProgram(cpu);

            Console.ReadLine();
        }
Beispiel #2
0
 public static void RunWhilePrintingState(AltCPU cpu, int steps)
 {
     for (int i = 0; i < steps; i++)
     {
         Console.WriteLine(cpu.Disassemble(cpu.PC));
         cpu.Step();
         cpu.PrintState();
     }
 }
Beispiel #3
0
 public static void StepThroughProgram(AltCPU cpu)
 {
     while (true)
     {
         Console.WriteLine();
         Console.WriteLine("Step");
         Console.WriteLine(cpu.Disassemble(cpu.PC));
         cpu.Step();
         cpu.PrintState();
         Console.WriteLine();
         while (true)
         {
             Console.WriteLine("[I]:Inspect [ENTER]:Step");
             Console.Write("> ");
             switch (Console.ReadLine())
             {
                 case "":
                     goto exitinputloop;
                 case "i":
                     Console.Write("Location? 0x");
                     Console.WriteLine("{0:X4}", cpu.Mem[int.Parse(Console.ReadLine(), NumberStyles.HexNumber)]);
                     break;
                 default:
                     Console.WriteLine("Invalid Input");
                     break;
             }
         }
     exitinputloop:
         ;
     }
 }
Beispiel #4
0
        public static void Run(AltCPU cpu, int steps)
        {
            for (int i = 0; i < steps; i++)
                cpu.Step();

            cpu.PrintState();
        }