示例#1
0
文件: cb030.py 项目: daschewie/py68k
def configure(args):
    """create and configure an emulator"""

    emu = Emulator(args,
                   cpu='68030',
                   frequency=24 * 1000 * 1000)
    emu.add_memory(base=0, size=512 * 1024, writable=False, from_file=args.rom)
    emu.add_memory(base=0x4000000, size=64 * 1024 * 1024)
    emu.add_device(args,
                   MC68681,
                   address=0xfffff000,
                   interrupt=m68k.IRQ_2,
                   register_arrangement='16-bit')
    emu.add_device(args,
                   CompactFlash,
                   address=0xffffe000,
                   register_arrangement='8-bit')

    return emu
示例#2
0
def configure(args):
    """create and configure an emulator"""

    emu = Emulator(args, cpu='68000', frequency=8 * 1000 * 1000)
    emu.add_memory(base=0, size=(16 * 1024 - 32) * 1024)
    emu.add_device(args,
                   MC68681,
                   address=0xfff001,
                   interrupt=m68k.IRQ_2,
                   console_port='A',
                   register_arrangement='16-bit')
    emu.add_device(args,
                   CompactFlash,
                   address=0xffe000,
                   register_arrangement='16-bit')

    if args.eeprom is not None:
        rom_image = open(args.eeprom, 'rb').read(32 * 1024 + 1)
        if (len(rom_image) > (32 * 1024)):
            raise RuntimeError(f'EEPROM image {args.eeprom} must be <= 32k')
        print(f'loaded {len(rom_image)} bytes of EEPROM')
        m68k.mem_write_bulk(0, rom_image)

    return emu
示例#3
0
文件: simple.py 项目: daschewie/py68k
def configure(args):
    iobase = 0xff0000

    emu = Emulator(args,
                   cpu=args.cpu_type,
                   frequency=args.cpu_frequency * 1000 * 1000)
    emu.add_memory(base=0, size=args.mem_size * 1024 * 1024)
    emu.add_device(args,
                   UART,
                   address=iobase,
                   interrupt=m68k.IRQ_2)
    emu.add_device(args,
                   Timer,
                   address=iobase + 0x1000,
                   interrupt=m68k.IRQ_6)
    emu.add_device(args,
                   Disk,
                   address=iobase + 0x2000)

    return emu