From e1ed935007f906f2d817ff891ac2577a9e2365c4 Mon Sep 17 00:00:00 2001 From: Wilbert Pol Date: Sat, 26 Jan 2013 21:00:12 +0000 Subject: [PATCH] (MESS) micronic.c: Tagmap cleanups (nw) --- src/mess/drivers/micronic.c | 29 ++++++++++++++++++----------- src/mess/includes/micronic.h | 36 ++++++++++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/mess/drivers/micronic.c b/src/mess/drivers/micronic.c index 064114333a9..2661acd67a1 100644 --- a/src/mess/drivers/micronic.c +++ b/src/mess/drivers/micronic.c @@ -117,13 +117,20 @@ READ8_MEMBER( micronic_state::keypad_r ) { - static const char *const bitnames[] = {"BIT0", "BIT1", "BIT2", "BIT3", "BIT4", "BIT5"}; - UINT8 port, bit, data = 0; + UINT8 data = 0; - for (bit = 0; bit < 8; bit++) + for (UINT8 bit = 0; bit < 8; bit++) + { if (m_kp_matrix & (1 << bit)) - for (port = 0; port < 6; port++) - data |= ioport(bitnames[port])->read() & (0x01 << bit) ? 0x01 << port : 0x00; + { + data |= m_bit0->read() & (0x01 << bit) ? 0x01 : 0x00; + data |= m_bit1->read() & (0x01 << bit) ? 0x02 : 0x00; + data |= m_bit2->read() & (0x01 << bit) ? 0x04 : 0x00; + data |= m_bit3->read() & (0x01 << bit) ? 0x08 : 0x00; + data |= m_bit4->read() & (0x01 << bit) ? 0x10 : 0x00; + data |= m_bit5->read() & (0x01 << bit) ? 0x20 : 0x00; + } + } return data; } @@ -156,19 +163,19 @@ WRITE8_MEMBER( micronic_state::beep_w ) READ8_MEMBER( micronic_state::irq_flag_r ) { - return (ioport("BACKBATTERY")->read()<<4) | (ioport("MAINBATTERY")->read()<<3) | (keypad_r(space, offset) ? 0 : 1); + return (m_backbattery->read()<<4) | (m_mainbattery->read()<<3) | (keypad_r(space, offset) ? 0 : 1); } WRITE8_MEMBER( micronic_state::bank_select_w ) { if (data < 2) { - membank("bank1")->set_entry(data); + m_bank1->set_entry(data); m_maincpu->space(AS_PROGRAM).unmap_write(0x0000, 0x7fff); } else { - membank("bank1")->set_entry((data <= m_banks_num) ? data : m_banks_num); + m_bank1->set_entry((data <= m_banks_num) ? data : m_banks_num); m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x7fff, "bank1"); } } @@ -329,11 +336,11 @@ static HD61830_INTERFACE( lcdc_intf ) void micronic_state::machine_start() { /* ROM banks */ - membank("bank1")->configure_entries(0x00, 0x02, memregion(Z80_TAG)->base(), 0x10000); + m_bank1->configure_entries(0x00, 0x02, memregion(Z80_TAG)->base(), 0x10000); /* RAM banks */ m_banks_num = (m_ram->size()>>15) + 1; - membank("bank1")->configure_entries(0x02, m_banks_num - 1, m_ram->pointer(), 0x8000); + m_bank1->configure_entries(0x02, m_banks_num - 1, m_ram->pointer(), 0x8000); /* register for state saving */ // save_item(NAME(state->)); @@ -341,7 +348,7 @@ void micronic_state::machine_start() void micronic_state::machine_reset() { - membank("bank1")->set_entry(0); + m_bank1->set_entry(0); m_maincpu->space(AS_PROGRAM).unmap_write(0x0000, 0x7fff); } diff --git a/src/mess/includes/micronic.h b/src/mess/includes/micronic.h index 185cf65578a..6138b47c072 100644 --- a/src/mess/includes/micronic.h +++ b/src/mess/includes/micronic.h @@ -22,14 +22,23 @@ class micronic_state : public driver_device { public: micronic_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, Z80_TAG), - m_lcdc(*this, HD61830_TAG), - m_beep(*this, BEEPER_TAG), - m_rtc(*this, MC146818_TAG), - m_ram(*this, RAM_TAG) - , - m_ram_base(*this, "ram_base"){ } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, Z80_TAG) + , m_lcdc(*this, HD61830_TAG) + , m_beep(*this, BEEPER_TAG) + , m_rtc(*this, MC146818_TAG) + , m_ram(*this, RAM_TAG) + , m_ram_base(*this, "ram_base") + , m_bank1(*this, "bank1") + , m_bit0(*this, "BIT0") + , m_bit1(*this, "BIT1") + , m_bit2(*this, "BIT2") + , m_bit3(*this, "BIT3") + , m_bit4(*this, "BIT4") + , m_bit5(*this, "BIT5") + , m_backbattery(*this, "BACKBATTERY") + , m_mainbattery(*this, "MAINBATTERY") + { } required_device m_maincpu; required_device m_lcdc; @@ -61,6 +70,17 @@ public: bool m_lcd_backlight; UINT8 m_status_flag; virtual void palette_init(); + +protected: + required_memory_bank m_bank1; + required_ioport m_bit0; + required_ioport m_bit1; + required_ioport m_bit2; + required_ioport m_bit3; + required_ioport m_bit4; + required_ioport m_bit5; + required_ioport m_backbattery; + required_ioport m_mainbattery; }; #endif