예제 #1
0
 public void Reset()
 {
     Mikey.Reset();
     Suzy.Reset();
     Mmu.Reset();
     Cpu.Reset();
 }
예제 #2
0
 private void GenerateInterrupts()
 {
     // "Mikey is only source of interrupts. It contains all timers (regular, audio and UART)"
     if (SystemClock.CompatibleCycleCount >= NextTimerEvent)
     {
         Mikey.Update();
     }
 }
예제 #3
0
        public void Initialize()
        {
            Ram = new Ram64KBMemory();
            Rom = new RomBootMemory();
            Rom.LoadBootImage(BootRomImage);

            Mikey = new Mikey(this);
            Suzy  = new Suzy(this);
            Suzy.Initialize();

            // Pass all hardware that have memory access to MMU
            Mmu          = new MemoryManagementUnit(Rom, Ram, Mikey, Suzy);
            SystemClock  = new Clock();
            LcdScreenDma = new int[0x3FC0];             // 160 * 102 pixels

            // Construct processor
            Cpu = new Cmos65SC02(Mmu, SystemClock);

            Mikey.Initialize();

            // Initialization means running reset operation
            Reset();
        }