diff options
author | 2013-04-01 09:18:07 +0000 | |
---|---|---|
committer | 2013-04-01 09:18:07 +0000 | |
commit | 0e089286c1f66c2085b833546f3de466666f7c29 (patch) | |
tree | 715be0d3ef5bc56ef25b3169829bf154288607b9 /src/mess/machine/pc1350.c | |
parent | 72c391a1e9e4d6c9358719c9764e01887af83f15 (diff) |
modernized pocketc driver (nw)
Diffstat (limited to 'src/mess/machine/pc1350.c')
-rw-r--r-- | src/mess/machine/pc1350.c | 95 |
1 files changed, 44 insertions, 51 deletions
diff --git a/src/mess/machine/pc1350.c b/src/mess/machine/pc1350.c index 3227381a7f7..391f3d3590f 100644 --- a/src/mess/machine/pc1350.c +++ b/src/mess/machine/pc1350.c @@ -7,86 +7,80 @@ -void pc1350_outa(device_t *device, int data) +WRITE8_MEMBER(pc1350_state::pc1350_outa) { - pc1350_state *state = device->machine().driver_data<pc1350_state>(); - state->m_outa=data; + m_outa=data; } -void pc1350_outb(device_t *device, int data) +WRITE8_MEMBER(pc1350_state::pc1350_outb) { - pc1350_state *state = device->machine().driver_data<pc1350_state>(); - state->m_outb=data; + m_outb=data; } -void pc1350_outc(device_t *device, int data) +WRITE8_MEMBER(pc1350_state::pc1350_outc) { } -int pc1350_ina(device_t *device) +READ8_MEMBER(pc1350_state::pc1350_ina) { - pc1350_state *state = device->machine().driver_data<pc1350_state>(); - running_machine &machine = device->machine(); - int data = state->m_outa; - int t = pc1350_keyboard_line_r(machine); + int data = m_outa; + int t = pc1350_keyboard_line_r(space,0); if (t & 0x01) - data |= machine.root_device().ioport("KEY0")->read(); + data |= ioport("KEY0")->read(); if (t & 0x02) - data |= machine.root_device().ioport("KEY1")->read(); + data |= ioport("KEY1")->read(); if (t & 0x04) - data |= machine.root_device().ioport("KEY2")->read(); + data |= ioport("KEY2")->read(); if (t & 0x08) - data |= machine.root_device().ioport("KEY3")->read(); + data |= ioport("KEY3")->read(); if (t & 0x10) - data |= machine.root_device().ioport("KEY4")->read(); + data |= ioport("KEY4")->read(); if (t & 0x20) - data |= machine.root_device().ioport("KEY5")->read(); + data |= ioport("KEY5")->read(); - if (state->m_outa & 0x01) - data |= machine.root_device().ioport("KEY6")->read(); + if (m_outa & 0x01) + data |= ioport("KEY6")->read(); - if (state->m_outa & 0x02) - data |= machine.root_device().ioport("KEY7")->read(); + if (m_outa & 0x02) + data |= ioport("KEY7")->read(); - if (state->m_outa & 0x04) + if (m_outa & 0x04) { - data |= machine.root_device().ioport("KEY8")->read(); + data |= ioport("KEY8")->read(); /* At Power Up we fake a 'CLS' pressure */ - if (state->m_power) + if (m_power) data |= 0x08; } - if (state->m_outa & 0x08) - data |= machine.root_device().ioport("KEY9")->read(); + if (m_outa & 0x08) + data |= ioport("KEY9")->read(); - if (state->m_outa & 0x10) - data |= machine.root_device().ioport("KEY10")->read(); + if (m_outa & 0x10) + data |= ioport("KEY10")->read(); - if (state->m_outa & 0xc0) - data |= machine.root_device().ioport("KEY11")->read(); + if (m_outa & 0xc0) + data |= ioport("KEY11")->read(); // missing lshift return data; } -int pc1350_inb(device_t *device) +READ8_MEMBER(pc1350_state::pc1350_inb) { - pc1350_state *state = device->machine().driver_data<pc1350_state>(); - int data=state->m_outb; - return data; + return m_outb; } -int pc1350_brk(device_t *device) +READ_LINE_MEMBER(pc1350_state::pc1350_brk) { - return (device->machine().root_device().ioport("EXTRA")->read() & 0x01); + return (ioport("EXTRA")->read() & 0x01); } TIMER_CALLBACK_MEMBER(pc1350_state::pc1350_power_up) @@ -94,41 +88,40 @@ TIMER_CALLBACK_MEMBER(pc1350_state::pc1350_power_up) m_power=0; } -MACHINE_START( pc1350 ) +void pc1350_state::machine_start() { - pc1350_state *state = machine.driver_data<pc1350_state>(); - address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM); + address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); - state->m_power = 1; - machine.scheduler().timer_set(attotime::from_seconds(1), timer_expired_delegate(FUNC(pc1350_state::pc1350_power_up),state)); + m_power = 1; + machine().scheduler().timer_set(attotime::from_seconds(1), timer_expired_delegate(FUNC(pc1350_state::pc1350_power_up),this)); space.install_readwrite_bank(0x6000, 0x6fff, "bank1"); - state->membank("bank1")->set_base(&machine.device<ram_device>(RAM_TAG)->pointer()[0x0000]); + membank("bank1")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x0000]); - if (machine.device<ram_device>(RAM_TAG)->size() >= 0x3000) + if (machine().device<ram_device>(RAM_TAG)->size() >= 0x3000) { space.install_readwrite_bank(0x4000, 0x5fff, "bank2"); - state->membank("bank2")->set_base(&machine.device<ram_device>(RAM_TAG)->pointer()[0x1000]); + membank("bank2")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x1000]); } else { space.nop_readwrite(0x4000, 0x5fff); } - if (machine.device<ram_device>(RAM_TAG)->size() >= 0x5000) + if (machine().device<ram_device>(RAM_TAG)->size() >= 0x5000) { space.install_readwrite_bank(0x2000, 0x3fff, "bank3"); - state->membank("bank3")->set_base(&machine.device<ram_device>(RAM_TAG)->pointer()[0x3000]); + membank("bank3")->set_base(&machine().device<ram_device>(RAM_TAG)->pointer()[0x3000]); } else { space.nop_readwrite(0x2000, 0x3fff); } - device_t *main_cpu = machine.device("maincpu"); - UINT8 *ram = machine.root_device().memregion("maincpu")->base() + 0x2000; + device_t *main_cpu = machine().device("maincpu"); + UINT8 *ram = machine().root_device().memregion("maincpu")->base() + 0x2000; UINT8 *cpu = sc61860_internal_ram(main_cpu); - machine.device<nvram_device>("cpu_nvram")->set_base(cpu, 96); - machine.device<nvram_device>("ram_nvram")->set_base(ram, 0x5000); + machine().device<nvram_device>("cpu_nvram")->set_base(cpu, 96); + machine().device<nvram_device>("ram_nvram")->set_base(ram, 0x5000); } |