Пример #1
0
        private void Given_Code(Action <Assembler> p)
        {
            var asm = new Assembler(sc, arch, Address.Ptr16(0x0800), new List <ImageSymbol>());

            p(asm);
            var program = asm.GetImage();

            program.SegmentMap.AddSegment(
                new ByteMemoryArea(Address.Ptr16(0), new byte[256]),
                "ZeroPage",
                AccessMode.ReadWriteExecute);

            var envEmu = new DefaultPlatformEmulator();

            emu = (Mos6502Emulator)arch.CreateEmulator(program.SegmentMap, envEmu);
            emu.InstructionPointer = program.ImageMap.BaseAddress;
            emu.WriteRegister(Registers.s, 0xFF);
            emu.ExceptionRaised += (sender, e) => { throw e.Exception; };
        }