diff options
author | Vas Crabb <vas@vastheman.com> | 2019-04-23 10:22:15 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2019-04-23 10:22:15 +1000 |
commit | 9e25e6fbb4307a35c103975dd5d7b2f5acc91693 (patch) | |
tree | 572c7345cc3cca341e94527e2225e473c351cace | |
parent | 5d48ffbb3d70eb79d31395bbc2edc60f6f8dc492 (diff) |
pcw.cpp: we have proper ways to find numbered objects (nw)
-rw-r--r-- | src/mame/drivers/pcw.cpp | 28 | ||||
-rw-r--r-- | src/mame/includes/pcw.h | 5 |
2 files changed, 14 insertions, 19 deletions
diff --git a/src/mame/drivers/pcw.cpp b/src/mame/drivers/pcw.cpp index 2015586760a..50195ce54a3 100644 --- a/src/mame/drivers/pcw.cpp +++ b/src/mame/drivers/pcw.cpp @@ -215,22 +215,17 @@ WRITE_LINE_MEMBER( pcw_state::pcw_fdc_interrupt ) */ void pcw_state::pcw_map(address_map &map) { - map(0x0000, 0x3fff).bankr("bank1").bankw("bank5"); - map(0x4000, 0x7fff).bankr("bank2").bankw("bank6"); - map(0x8000, 0xbfff).bankr("bank3").bankw("bank7"); - map(0xc000, 0xffff).bankr("bank4").bankw("bank8"); + map(0x0000, 0x3fff).bankr(m_rdbanks[0]).bankw(m_wrbanks[0]); + map(0x4000, 0x7fff).bankr(m_rdbanks[1]).bankw(m_wrbanks[1]); + map(0x8000, 0xbfff).bankr(m_rdbanks[2]).bankw(m_wrbanks[2]); + map(0xc000, 0xffff).bankr(m_rdbanks[3]).bankw(m_wrbanks[3]); } /* Keyboard is read by the MCU and sent as serial data to the gate array ASIC */ READ8_MEMBER(pcw_state::pcw_keyboard_r) { - static const char *const keynames[] = { - "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", - "LINE8", "LINE9", "LINE10", "LINE11", "LINE12", "LINE13", "LINE14", "LINE15" - }; - - return ioport(keynames[offset])->read(); + return m_iptlines[offset]->read(); } READ8_MEMBER(pcw_state::pcw_keyboard_data_r) @@ -245,9 +240,7 @@ READ8_MEMBER(pcw_state::pcw_keyboard_data_r) void pcw_state::pcw_update_read_memory_block(int block, int bank) { address_space &space = m_maincpu->space(AS_PROGRAM); - char block_name[32]; - snprintf(block_name, sizeof(block_name), "bank%d", block + 1); /* bank 3? */ if (bank == 3) { @@ -258,18 +251,15 @@ void pcw_state::pcw_update_read_memory_block(int block, int bank) else { /* restore bank handler across entire block */ - space.install_read_bank(block * 0x04000 + 0x0000, block * 0x04000 + 0x3fff,block_name); + space.install_read_bank(block * 0x04000 + 0x0000, block * 0x04000 + 0x3fff, m_rdbanks[block].target()); LOGMEM("MEM: read block %i -> bank %i\n", block, bank); } - membank(block_name)->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); + m_rdbanks[block]->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); } void pcw_state::pcw_update_write_memory_block(int block, int bank) { - char block_name[10]; - - sprintf(block_name,"bank%d",block+5); - membank(block_name)->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); + m_wrbanks[block]->set_base(m_ram->pointer() + ((bank * 0x4000) % m_ram->size())); LOGMEM("MEM: write block %i -> bank %i\n", block, bank); } @@ -350,7 +340,7 @@ void pcw_state::pcw_update_mem(int block, int data) FakeROM = &memregion("maincpu")->base()[0x010000]; - membank("bank1")->set_base(FakeROM); + m_rdbanks[0]->set_base(FakeROM); }*/ } diff --git a/src/mame/includes/pcw.h b/src/mame/includes/pcw.h index 59bbce9efb9..60a376bc830 100644 --- a/src/mame/includes/pcw.h +++ b/src/mame/includes/pcw.h @@ -46,6 +46,9 @@ public: , m_screen(*this, "screen") , m_palette(*this, "palette") , m_ppalette(*this, "ppalette") + , m_rdbanks(*this, "bank%u", 1U) + , m_wrbanks(*this, "bank%u", 5U) + , m_iptlines(*this, "LINE%u", 0U) { } int m_boot; @@ -141,6 +144,8 @@ public: required_device<screen_device> m_screen; required_device<palette_device> m_palette; required_device<palette_device> m_ppalette; + required_memory_bank_array<4> m_rdbanks, m_wrbanks; + required_ioport_array<16> m_iptlines; inline void pcw_plot_pixel(bitmap_ind16 &bitmap, int x, int y, uint32_t color); void pcw_update_interrupt_counter(); |