示例#1
0
        /// <summary>
        /// test MOS6502
        /// http://codegolf.stackexchange.com/questions/12844/emulate-a-mos-6502-cpu
        /// </summary>
        public void MOS6502_AllSuiteA()
        {
            MOS6502 cpu = new MOS6502();

            cpu.installRAMBank(64);

            cpu.loadProgram("ROMs\\MOS6502_AllSuiteA.bin", 0x4000);

            // point reset vector to test routine
            cpu.writeMemByte(0xFFFC, 0x00);
            cpu.writeMemByte(0xFFFD, 0x40);

            cpu.Reset();

            cpu.Flag_B = true;

            cpu.runUntil(0x45C0);

            byte bResult = cpu.readMemByte(0x0210);

            Assert.AreEqual(0xFF, bResult);
            Assert.AreEqual(0x45C0, cpu.PC);
        }