示例#1
0
        public Z80(ReadOnlyArray<byte> rom, IMemoryManagementUnit mmu)
        {
            InitOpcodes();

            this.mmu = mmu;
            this.rom = rom;
        }
示例#2
0
 public InstructionReader(IMemoryManagementUnit mmu, IInstructionPointerRegister ipr)
 {
     MMU        = mmu;
     IP         = ipr;
     IP.OnJump += OnJump;
     Reset();
 }
示例#3
0
        public Z80(ReadOnlyArray <byte> rom, IMemoryManagementUnit mmu)
        {
            InitOpcodes();

            this.mmu = mmu;
            this.rom = rom;
        }
示例#4
0
 private void LoadFonts(IMemoryManagementUnit mmu, Byte[] fonts, int fontsOffset)
 {
     for (int i = 0; i < fonts.Length; i++)
     {
         mmu[i + fontsOffset] = fonts[i];
     }
 }
示例#5
0
        private ICentralProcessingUnit BuildCPU(IArithmeticLogicUnit alu, IMemoryManagementUnit mmu, ISystemBridge bridge)
        {
            IInstructionConfigurator configurator = new InstructionConfigurator(bridge);
            IInstructionParser       parser       = new InstructionParser(configurator);
            InstructionReader        reader       = new InstructionReader(mmu, alu.IP);
            ICentralProcessingUnit   cpu          = new CentralProcessingUnit(alu, parser, reader);

            return(cpu);
        }
示例#6
0
 public SystemBridge(IMemoryManagementUnit mmu, IArithmeticLogicUnit alu, IDisplay display, IKeyboard keyboard)
 {
     _mmu      = mmu;
     _alu      = alu;
     _display  = display;
     _keyboard = keyboard;
     // TODO: calculate according to display settings?
     _spriteBuffer = new Byte[MaxSpriteSize];
 }
示例#7
0
        public Chip8Device(
            ICentralProcessingUnit cpu,
            IMemoryManagementUnit mmu,
            ISystemBridge systemBridge,
            IKeyboardDataSource keyboard,
            IDisplay display)

        {
            // TODO: subscribe to device events
            CPU      = cpu;
            MMU      = mmu;
            Bridge   = systemBridge;
            Keyboard = keyboard;
            Display  = display;
        }
示例#8
0
        private ISystemBridge BuildBridge(IMemoryManagementUnit mmu, IArithmeticLogicUnit alu, IDisplay display, IKeyboard keyboard)
        {
            ISystemBridge bridge = new SystemBridge(mmu, alu, display, keyboard);

            return(bridge);
        }
示例#9
0
 private static void Reset()
 {
     GPU = null;
     CPU = null;
     MMU = null;
 }
示例#10
0
 public static void Init()
 {
     CPU = new CPU();
     GPU = new GPU();
     MMU = new MMU();
 }
示例#11
0
 public static void Init(ICentralProcessingUnit cpu, IGraphicsProcessingUnit gpu, IMemoryManagementUnit mmu)
 {
     CPU = cpu;
     GPU = gpu;
     MMU = mmu;
 }