コード例 #1
0
 def disassemble(self, bytes, pc=0, mpu=None):
     if mpu is None:
         mpu = MPU()
     address_parser = AddressParser()
     disasm = Disassembler(mpu, address_parser)
     mpu.memory[pc:len(bytes) - 81] = bytes
     return disasm.instruction_at(pc)
コード例 #2
0
    def __init__(self, filename):
        self.nsf = NSFParser(bytearray(file(filename).read()))

        # Set up Memory with Hooks
        self.mem = ObservableMemory()
        self.mem.write(self.nsf.load_addr, self.nsf.data)
        self.cpu = MPU(self.mem)
        self.deltaCallTime = 0
        self.totalCycles = 0
コード例 #3
0
ファイル: console64.py プロジェクト: biappi/console64
    def __init__(self):
        self.mem = Memory()
        self.cpu = MPU()
        self.patches = Patches()
        self.dis = Disassembler(self.cpu)

        pc_low = self.mem[0xfffc]
        pc_hi = self.mem[0xfffd]

        self.cpu.memory = self.mem
        self.cpu.pc = (pc_hi << 8) + pc_low

        self.trace = False
コード例 #4
0
    def _dont_test_disassemble_wraps_after_top_of_mem(self):
        '''
        TODO: This test fails with IndexError.  We should fix this
        so that it does not attempt to index memory out of range.
        It does not affect most Py65 users because py65mon uses
        ObservableMemory, which does not raise IndexError.
        '''
        mpu = MPU()
        mpu.memory[0xFFFF] = 0x20  # JSR
        mpu.memory[0x0000] = 0xD2  #
        mpu.memory[0x0001] = 0xFF  # $FFD2

        dis = Disassembler(mpu)
        length, disasm = dis.instruction_at(0xFFFF)
        self.assertEqual(3, length)
        self.assertEqual('JSR $ffd2', disasm)
コード例 #5
0
ファイル: test_assembler.py プロジェクト: ll777/py65
 def assemble(self, statement, pc=0000, mpu=None):
     if mpu is None:
         mpu = MPU()
     address_parser = AddressParser()
     assembler = Assembler(mpu, address_parser)
     return assembler.assemble(statement, pc)
コード例 #6
0
 def setUp(self):
     self.cpu = MPU()
コード例 #7
0
ファイル: test_assembler.py プロジェクト: jbremer/console64
 def test_ctor_uses_bus_width_from_mpu(self):
     asm = Assembler(MPU())
     self.assertEqual(16, asm.addrWidth)
     asm = Assembler(MPU65Org16())
     self.assertEqual(32, asm.addrWidth)
コード例 #8
0
ファイル: test_assembler.py プロジェクト: jbremer/console64
 def test_ctor_optionally_creates_address_parser(self):
     mpu = MPU()
     asm = Assembler(mpu)
     self.assertFalse(asm._address_parser is None)
コード例 #9
0
ファイル: test_assembler.py プロジェクト: jbremer/console64
 def test_ctor_uses_provided_mpu_and_address_parser(self):
     mpu = MPU()
     address_parser = AddressParser()
     asm = Assembler(mpu, address_parser)
     self.assertTrue(asm._mpu is mpu)
     self.assertTrue(asm._address_parser is address_parser)
コード例 #10
0
 def assemble(self, statement, pc=0000):
     mpu = MPU()
     address_parser = AddressParser()
     assembler = Assembler(mpu, address_parser)
     return assembler.assemble(statement, pc)
コード例 #11
0
ファイル: gameengine.py プロジェクト: gutomaia/ASMminator
 def reset(self):
     self.cpu = MPU()
     self.start_addr = 0
     self.stop_addr = 0
     self.paused = False
     self.step = False
コード例 #12
0
 def disassemble(self, bytes):
     mpu = MPU()
     address_parser = AddressParser()
     disasm = Disassembler(mpu, address_parser)
     mpu.memory[0:len(bytes)-1] = bytes
     return disasm.instruction_at(0)
コード例 #13
0
 def setUp(self):
     self.cpu = MPU()
     print(self.cpu)
コード例 #14
0
 def __init__(self):
     self.mpu = MPU()
     self.symtab = symtab.SymTab([])  # symtab initially empty
コード例 #15
0
ファイル: machine.py プロジェクト: cuba200611/8bitdev
 def __init__(self):
     super().__init__()
     self.mpu = MPU()
     self.regsobj = self.mpu