diff options
author | 2013-01-26 13:12:57 +0000 | |
---|---|---|
committer | 2013-01-26 13:12:57 +0000 | |
commit | c9ba34a8388f8c0121b10761426cce269c33193d (patch) | |
tree | dc5747cc0dc73a5d05245b5450757cf3c5b8206f /src/mess/machine/ondra.c | |
parent | 44733ec39d211249003cd53936830cf9960c1345 (diff) |
(MESS) ondra.c: tagmap cleanups (nw)
Diffstat (limited to 'src/mess/machine/ondra.c')
-rw-r--r-- | src/mess/machine/ondra.c | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/src/mess/machine/ondra.c b/src/mess/machine/ondra.c index f51bd814a35..83e75302fe3 100644 --- a/src/mess/machine/ondra.c +++ b/src/mess/machine/ondra.c @@ -9,52 +9,55 @@ #include "emu.h" #include "cpu/z80/z80.h" -#include "imagedev/cassette.h" #include "includes/ondra.h" -#include "machine/ram.h" - - -static cassette_image_device *cassette_device_image(running_machine &machine) -{ - return machine.device<cassette_image_device>(CASSETTE_TAG); -} READ8_MEMBER(ondra_state::ondra_keyboard_r) { UINT8 retVal = 0x00; - UINT8 ondra_keyboard_line = offset & 0x000f; - static const char *const keynames[] = { "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9" }; - double valcas = (cassette_device_image(machine())->input()); + double valcas = m_cassette->input(); + if ( valcas < 0.00) { retVal = 0x80; } - if (ondra_keyboard_line > 9) { - retVal |= 0x1f; - } else { - retVal |= ioport(keynames[ondra_keyboard_line])->read(); + + switch ( offset & 0x0f ) + { + case 0: retVal |= m_line0->read(); break; + case 1: retVal |= m_line1->read(); break; + case 2: retVal |= m_line2->read(); break; + case 3: retVal |= m_line3->read(); break; + case 4: retVal |= m_line4->read(); break; + case 5: retVal |= m_line5->read(); break; + case 6: retVal |= m_line6->read(); break; + case 7: retVal |= m_line7->read(); break; + case 8: retVal |= m_line8->read(); break; + case 9: retVal |= m_line9->read(); break; + default: retVal |= 0x1f; break; } + return retVal; } -static void ondra_update_banks(running_machine &machine) +void ondra_state::ondra_update_banks() { - ondra_state *state = machine.driver_data<ondra_state>(); - UINT8 *mem = state->memregion("maincpu")->base(); - if (state->m_bank1_status==0) { - machine.device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x0000, 0x3fff); - state->membank("bank1")->set_base(mem + 0x010000); + address_space &space = m_maincpu->space(AS_PROGRAM); + UINT8 *mem = m_region_maincpu->base(); + + if (m_bank1_status==0) { + space.unmap_write(0x0000, 0x3fff); + m_bank1->set_base(mem + 0x010000); } else { - machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_bank(0x0000, 0x3fff, "bank1"); - state->membank("bank1")->set_base(machine.device<ram_device>(RAM_TAG)->pointer() + 0x0000); + space.install_write_bank(0x0000, 0x3fff, "bank1"); + m_bank1->set_base(m_ram->pointer() + 0x0000); } - state->membank("bank2")->set_base(machine.device<ram_device>(RAM_TAG)->pointer() + 0x4000); - if (state->m_bank2_status==0) { - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_bank(0xe000, 0xffff, "bank3"); - state->membank("bank3")->set_base(machine.device<ram_device>(RAM_TAG)->pointer() + 0xe000); + m_bank2->set_base(m_ram->pointer() + 0x4000); + if (m_bank2_status==0) { + space.install_readwrite_bank(0xe000, 0xffff, "bank3"); + m_bank3->set_base(m_ram->pointer() + 0xe000); } else { - machine.device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0xe000, 0xffff); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(ondra_state::ondra_keyboard_r),state)); + space.unmap_write(0xe000, 0xffff); + space.install_read_handler (0xe000, 0xffff, read8_delegate(FUNC(ondra_state::ondra_keyboard_r),this)); } } @@ -63,8 +66,8 @@ WRITE8_MEMBER(ondra_state::ondra_port_03_w) m_video_enable = data & 1; m_bank1_status = (data >> 1) & 1; m_bank2_status = (data >> 2) & 1; - ondra_update_banks(machine()); - cassette_device_image(machine())->output(((data >> 3) & 1) ? -1.0 : +1.0); + ondra_update_banks(); + m_cassette->output(((data >> 3) & 1) ? -1.0 : +1.0); } WRITE8_MEMBER(ondra_state::ondra_port_09_w) @@ -77,9 +80,9 @@ WRITE8_MEMBER(ondra_state::ondra_port_0a_w) TIMER_CALLBACK_MEMBER(ondra_state::nmi_check_callback) { - if ((machine().root_device().ioport("NMI")->read() & 1) == 1) + if ((m_nmi->read() & 1) == 1) { - machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } } @@ -87,7 +90,7 @@ void ondra_state::machine_reset() { m_bank1_status = 0; m_bank2_status = 0; - ondra_update_banks(machine()); + ondra_update_banks(); } void ondra_state::machine_start() |