summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pcw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pcw.cpp')
-rw-r--r--src/mame/drivers/pcw.cpp28
1 files changed, 9 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);
}*/
}