def _reset(self, mpu_type,getc_addr=0xF004,putc_addr=0xF001): self._mpu = mpu_type() self.addrWidth = self._mpu.ADDR_WIDTH self.byteWidth = self._mpu.BYTE_WIDTH self.addrFmt = self._mpu.ADDR_FORMAT self.byteFmt = self._mpu.BYTE_FORMAT self.addrMask = self._mpu.addrMask self.byteMask = self._mpu.byteMask self._install_mpu_observers(getc_addr,putc_addr) self._address_parser = AddressParser() self._disassembler = Disassembler(self._mpu, self._address_parser) self._assembler = Assembler(self._mpu, self._address_parser)
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)
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)
def test_ctor_optionally_creates_address_parser(self): mpu = MPU() asm = Assembler(mpu) self.assertFalse(asm._address_parser is None)
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)
def assemble(self, statement, pc=0000): mpu = MPU() address_parser = AddressParser() assembler = Assembler(mpu, address_parser) return assembler.assemble(statement, pc)
def _reset(self, mpu_type): self._mpu = mpu_type() self._install_mpu_observers() self._address_parser = AddressParser() self._disassembler = Disassembler(self._mpu, self._address_parser) self._assembler = Assembler(self._mpu, self._address_parser)