summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/pc1350.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-04-01 09:18:07 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-04-01 09:18:07 +0000
commit0e089286c1f66c2085b833546f3de466666f7c29 (patch)
tree715be0d3ef5bc56ef25b3169829bf154288607b9 /src/mess/machine/pc1350.c
parent72c391a1e9e4d6c9358719c9764e01887af83f15 (diff)
modernized pocketc driver (nw)
Diffstat (limited to 'src/mess/machine/pc1350.c')
-rw-r--r--src/mess/machine/pc1350.c95
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);
}