コード例 #1
0
ファイル: CpuBoardTests.cs プロジェクト: jsm174/wpc-emu-cs
        public void Init()
        {
            var gamerom    = Enumerable.Repeat((byte)0xFF, 0x18000).ToArray();
            var initObject = new RomObject
            {
                romSizeMBit = 1,
                systemRom   = Enumerable.Repeat((byte)0xFF, 2 * PAGESIZE).ToArray(),
                fileName    = "foo",
                gameRom     = gamerom
            };

            cpuBoard = WpcCpuBoard.getInstance(initObject);
        }
コード例 #2
0
ファイル: CpuBoard.cs プロジェクト: jsm174/wpc-emu-cs
        public WpcCpuBoard(RomObject romObject)
        {
            ram         = Enumerable.Repeat((byte)0, memoryMapper.MEMORY_ADDR_HARDWARE).ToArray();
            romSizeMBit = romObject.romSizeMBit;
            systemRom   = romObject.systemRom;
            romFileName = romObject.fileName;
            gameRom     = romObject.gameRom;
            memoryPatch = MemoryPatch.getInstance();
            if (romObject.gameIdMemoryLocation != null)
            {
                MemoryPatchGameId.run(memoryPatch, (ushort)romObject.gameIdMemoryLocation);
            }
            if (romObject.skipWpcRomCheck)
            {
                Debug.Print("skipWpcRomCheck TRUE");
                MemoryPatchSkipBootCheck.run(memoryPatch);
            }
            memoryWriteHandler = MemoryHandler.getInstance(romObject.memoryPosition, ram);

            cpu = Cpu6809.getInstance(_write8, _read8);

            InterruptCallbackData interruptCallback = new InterruptCallbackData
            {
                irq         = cpu.irq,
                firqFromDmd = () =>
                {
                    cpu.firq();
                    asic.firqSourceDmd(true);
                },
                reset = cpu.reset
            };

            InitObject initObject = new InitObject
            {
                interruptCallback = interruptCallback,
                romSizeMBit       = romSizeMBit,
                romObject         = romObject,
                ram = ram,
                hasAlphanumericDisplay = romObject.hasAlphanumericDisplay
            };

            hasAlphaNumbericDisplay = romObject.hasAlphanumericDisplay;
            asic         = CpuBoardAsic.getInstance(initObject);
            soundBoard   = SoundBoard.getInstance(initObject);
            displayBoard = DisplayBoard.getInstance(initObject);
            externalIo   = ExternalIo.getInstance();

            ticksIrq = 0;
            protectedMemoryWriteAttempts = 0;
            memoryWrites = 0;
        }
コード例 #3
0
ファイル: CpuBoard.cs プロジェクト: jsm174/wpc-emu-cs
 public static WpcCpuBoard getInstance(RomObject romObject)
 {
     return(new WpcCpuBoard(romObject));
 }