本文整理汇总了C++中memory_region类的典型用法代码示例。如果您正苦于以下问题:C++ memory_region类的具体用法?C++ memory_region怎么用?C++ memory_region使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了memory_region类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: memregion
void gameking_state::machine_start()
{
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
if (!m_cart_rom)
{
printf("No Rom\n");
return;
}
m_bank4000 = membank("bank4000");
m_bank8000 = membank("bank8000");
m_bankc000 = membank("bankc000");
// Minor hacking to get things going (should be removed when we have bios dump)
m_cart_rom->base()[0x3ffc] = 0x00;
m_cart_rom->base()[0x3ffd] = 0x40;
// Some fake code to get bios function calls logged
memory_region *maincpu_rom = memregion("maincpu");
maincpu_rom->base()[0x0f80] = 0x9d; // STA $0e00,X
maincpu_rom->base()[0x0f81] = 0x00;
maincpu_rom->base()[0x0f82] = 0x0e;
maincpu_rom->base()[0x0f83] = 0x60; // RTS
m_bank8000->set_base(m_cart_rom->base());
m_bankc000->set_base(m_cart_rom->base());
m_bank4000->set_base(m_cart_rom->base() + 0x4000);
}
开发者ID:dinkc64,项目名称:mame,代码行数:30,代码来源:gameking.c
示例2:
debug_view_memory_source::debug_view_memory_source(const char *name, memory_region ®ion)
: debug_view_source(name),
m_space(NULL),
m_memintf(NULL),
m_base(region),
m_length(region.bytes()),
m_offsetxor(NATIVE_ENDIAN_VALUE_LE_BE(region.width() - 1, 0)),
m_endianness(region.endianness()),
m_prefsize(MIN(region.width(), 8))
{
}
开发者ID:broftkd,项目名称:mess-svn,代码行数:11,代码来源:dvmemory.c
示例3:
debug_view_memory_source::debug_view_memory_source(const char *name, memory_region ®ion)
: debug_view_source(name),
m_space(nullptr),
m_memintf(nullptr),
m_base(region.base()),
m_length(region.bytes()),
m_offsetxor(ENDIAN_VALUE_NE_NNE(region.endianness(), 0, region.bytewidth() - 1)),
m_endianness(region.endianness()),
m_prefsize(std::min<u8>(region.bytewidth(), 8))
{
}
开发者ID:Robbbert,项目名称:store1,代码行数:11,代码来源:dvmemory.cpp
示例4: machine_start
void tutor_state::machine_start()
{
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
m_tape_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tutor_state::tape_interrupt_handler),this));
m_bank1->configure_entry(0, memregion("maincpu")->base() + 0x4000);
m_bank1->set_entry(0);
m_bank2->configure_entry(0, memregion("maincpu")->base() + 0x8000);
m_bank2->set_entry(0);
if (m_cart_rom)
{
if (m_cart_rom->bytes() > 0x4000)
{
m_bank1_switching = 1;
m_bank1->configure_entry(1, m_cart_rom->base());
m_bank1->set_entry(1);
m_bank2->configure_entry(1, m_cart_rom->base() + 0x4000);
m_bank2->set_entry(1);
}
else
{
m_bank2->configure_entry(1, m_cart_rom->base());
m_bank2->set_entry(1);
}
}
}
开发者ID:MASHinfo,项目名称:mame,代码行数:29,代码来源:tutor.cpp
示例5: machine_start
void prestige_state::machine_start()
{
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
UINT8 *rom = memregion("maincpu")->base();
UINT8 *cart = m_cart_rom->base();
UINT8 *ram = m_ram->pointer();
memset(ram, 0x00, m_ram->size());
m_bank1->configure_entries(0, 64, rom, 0x4000);
m_bank1->configure_entries(64,32, cart, 0x4000);
m_bank2->configure_entries(0, 64, rom, 0x4000);
m_bank2->configure_entries(64,32, cart, 0x4000);
m_bank3->configure_entries(0, 64, rom, 0x4000);
m_bank3->configure_entries(64,32, cart, 0x4000);
m_bank4->configure_entries(0, 4, ram, 0x2000);
m_bank5->configure_entries(0, 4, ram, 0x2000);
m_bank1->set_entry(0);
m_bank2->set_entry(0);
m_bank3->set_entry(0);
m_bank4->set_entry(0);
m_bank5->set_entry(0);
//pointer to the videoram
m_vram = ram;
}
开发者ID:dinkc64,项目名称:mame,代码行数:28,代码来源:prestige.c
示例6: set_banks
void set_banks()
{
UINT8 *ram_ptr = m_messram->pointer();
m_ram_0000 = ram_ptr;
if ( m_pia0_porta & 0x01 )
m_ram_0000 += 0x10000;
membank( "0000" )->set_base( m_ram_0000 + 0x0000 );
membank( "2000" )->set_base( m_ram_0000 + 0x2000 );
membank( "4000" )->set_base( m_ram_0000 + 0x4000 );
m_ram_c000 = m_ram_0000 + 0xc000;
membank( "e000" )->set_base( m_ram_0000 + 0xe000 );
if ( m_pia0_porta & 0x80 )
{
membank( "0000" )->set_base( memregion("maincpu")->base());
/* When BIOS is enabled 2000-3FFF is set to the "ROM RAM" */
membank( "2000" )->set_base( ram_ptr + 0x20000 );
}
if ( m_pia0_porta & 0x40 )
m_ram_c000 = m_vram_region->base();
}
开发者ID:vorlenko,项目名称:mame,代码行数:25,代码来源:osbexec.c
示例7: machine_start
void leapster_state::machine_start()
{
astring region_tag;
m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
if (m_cart_rom)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
space.install_readwrite_bank(0x80000000, 0x807fffff, "cartrom");
membank("cartrom")->set_base(m_cart_rom->base());
}
}
开发者ID:MisterTea,项目名称:MAMEHub,代码行数:13,代码来源:leapster.c
示例8: memregion
void pb1000_state::machine_start()
{
std::string region_tag;
m_rom_reg = memregion("rom");
if (m_card1)
m_card1_reg = memregion(region_tag.assign(m_card1->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
if (m_card2)
m_card2_reg = memregion(region_tag.assign(m_card2->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
membank("bank1")->set_base(m_rom_reg->base());
m_kb_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pb1000_state::keyboard_timer),this));
m_kb_timer->adjust(attotime::from_hz(192), 0, attotime::from_hz(192));
}
开发者ID:ursine,项目名称:mame,代码行数:14,代码来源:pb1000.cpp
示例9: machine_start
void prestige_state::machine_start()
{
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
uint8_t *rom = memregion("maincpu")->base();
uint8_t *cart = nullptr;
if (m_cart_rom != nullptr)
{
cart = m_cart_rom->base();
}
else
{
cart = rom + 0x40000; // internal ROM also includes extra contents that are activated by a cartridge that works as a jumper
}
uint8_t *ram = m_ram->pointer();
memset(ram, 0x00, m_ram->size());
m_bank1->configure_entries(0, 64, rom, 0x4000);
m_bank1->configure_entries(64,32, cart, 0x4000);
m_bank2->configure_entries(0, 64, rom, 0x4000);
m_bank2->configure_entries(64,32, cart, 0x4000);
m_bank3->configure_entries(0, 64, rom, 0x4000);
m_bank3->configure_entries(64,32, cart, 0x4000);
m_bank4->configure_entries(0, 4, ram, 0x2000);
m_bank5->configure_entries(0, 4, ram, 0x2000);
m_bank1->set_entry(0);
m_bank2->set_entry(0);
m_bank3->set_entry(0);
m_bank4->set_entry(0);
m_bank5->set_entry(0);
//pointer to the videoram
m_vram = ram;
}
开发者ID:qwijibo,项目名称:mame,代码行数:36,代码来源:prestige.cpp
示例10: memregion
void cc40_state::machine_start()
{
// init
std::string region_tag;
m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str());
membank("sysbank")->configure_entries(0, 4, memregion("system")->base(), 0x2000);
if (m_cart_rom)
membank("cartbank")->configure_entries(0, 4, m_cart_rom->base(), 0x8000);
else
membank("cartbank")->set_base(memregion("maincpu")->base() + 0x5000);
m_nvram[0] = machine().device<nvram_device>("sysram.1");
m_nvram[1] = machine().device<nvram_device>("sysram.2");
init_sysram(0, 0x800); // default to 6KB
init_sysram(1, 0x800); // "
address_space &space = m_maincpu->space(AS_PROGRAM);
bus_control_w(space, 0, 0);
bankswitch_w(space, 0, 0);
// zerofill other
m_power = 0;
m_clock_control = 0;
m_key_select = 0;
// register for savestates
save_item(NAME(m_bus_control));
save_item(NAME(m_power));
save_item(NAME(m_banks));
save_item(NAME(m_clock_control));
save_item(NAME(m_clock_divider));
save_item(NAME(m_key_select));
machine().save().register_postload(save_prepost_delegate(FUNC(cc40_state::postload), this));
}
开发者ID:crazii,项目名称:mameui,代码行数:36,代码来源:cc40.cpp
示例11: set_mem_page
void tvc_state::set_mem_page(UINT8 data)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
switch (data & 0x18)
{
case 0x00 : // system ROM selected
TVC_INSTALL_ROM_BANK(0, "bank1", 0x0000, 0x3fff);
membank("bank1")->set_base(m_bios_rom->base());
break;
case 0x08 : // Cart ROM selected
if (m_cart_rom)
{
TVC_INSTALL_ROM_BANK(0, "bank1", 0x0000, 0x3fff);
membank("bank1")->set_base(m_cart_rom->base());
}
break;
case 0x10 : // RAM selected
TVC_INSTALL_RAM_BANK(0, "bank1", 0x0000, 0x3fff);
membank("bank1")->set_base(m_ram->pointer());
break;
case 0x18 : // Video RAM
if (m_vram->bytes() > 0x4000)
{
// TVC 64+ only
TVC_INSTALL_RAM_BANK(0, "bank1", 0x0000, 0x3fff);
membank("bank1")->set_base(m_vram->base() + ((m_vram_bank & 0x03)<<14));
}
else
{
space.unmap_readwrite(0x0000, 0x3fff);
m_bank_type[0] = -1;
}
break;
}
if ((data & 0x20)==0) // Video RAM
{
TVC_INSTALL_RAM_BANK(2, "bank3", 0x8000, 0xbfff);
membank("bank3")->set_base(m_vram->base() + ((m_vram_bank & 0x0c)<<12));
}
else // System RAM page 3
{
if (m_ram->size() > 0x8000)
{
TVC_INSTALL_RAM_BANK(2, "bank3", 0x8000, 0xbfff);
membank("bank3")->set_base(m_ram->pointer() + 0x8000);
}
else
{
space.unmap_readwrite(0x8000, 0xbfff);
m_bank_type[2] = -1;
}
}
switch(data & 0xc0)
{
case 0x00 : // Cart ROM selected
if (m_cart_rom)
{
TVC_INSTALL_ROM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_cart_rom->base());
}
break;
case 0x40 : // System ROM selected
TVC_INSTALL_ROM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_bios_rom->base());
break;
case 0x80 : // RAM selected
if (m_ram->size() > 0x8000)
{
TVC_INSTALL_RAM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_ram->pointer() + 0xc000);
}
else
{
space.unmap_readwrite(0xc000, 0xffff);
m_bank_type[3] = -1;
}
break;
case 0xc0 : // External ROM selected
TVC_INSTALL_ROM_BANK(3, "bank4", 0xc000, 0xffff);
membank("bank4")->set_base(m_ext->base());
space.install_readwrite_handler (0xc000, 0xdfff, 0, 0, read8_delegate(FUNC(tvc_state::expansion_r), this), write8_delegate(FUNC(tvc_state::expansion_w), this), 0);
m_bank_type[3] = -1;
break;
}
}
开发者ID:mock--,项目名称:mame,代码行数:87,代码来源:tvc.c
注:本文中的memory_region类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论