summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/calchase.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-04-19 09:44:55 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-04-19 09:44:55 +0000
commit3dff6ae3addf01cd1baeb48cec67fbb8a76957cb (patch)
tree496f3c03d52afcb0030a7731a6712d5eca3885c7 /src/mame/drivers/calchase.c
parentabedd24d6eb3826843e57f74efa722b48da4cf66 (diff)
8042kbdc is now device (nw)
Diffstat (limited to 'src/mame/drivers/calchase.c')
-rw-r--r--src/mame/drivers/calchase.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index af26b5a8c79..7dd2bfdd6e2 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -181,6 +181,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(calchase_pic8259_1_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
DECLARE_DRIVER_INIT(calchase);
+ DECLARE_READ8_MEMBER(get_out2);
virtual void machine_start();
virtual void machine_reset();
IRQ_CALLBACK_MEMBER(irq_callback);
@@ -582,7 +583,7 @@ static ADDRESS_MAP_START( calchase_io, AS_IO, 32, calchase_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
- AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
+ AM_RANGE(0x0060, 0x006f) AM_DEVREADWRITE8("kbdc", kbdc8042_device, data_r, data_w, 0xffffffff)
AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff) /* todo: nvram (CMOS Setup Save)*/
AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffffffff)
AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8_LEGACY("pic8259_2", pic8259_r, pic8259_w, 0xffffffff)
@@ -891,27 +892,21 @@ void calchase_state::machine_reset()
membank("bios_ext")->set_base(memregion("bios")->base() + 0);
}
-static void set_gate_a20(running_machine &machine, int a20)
+READ8_MEMBER(calchase_state::get_out2)
{
- calchase_state *drvstate = machine.driver_data<calchase_state>();
- drvstate->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
-}
-
-static void keyboard_interrupt(running_machine &machine, int state)
-{
- calchase_state *drvstate = machine.driver_data<calchase_state>();
- pic8259_ir1_w(drvstate->m_pic8259_1, state);
-}
-
-static int calchase_get_out2(running_machine &machine)
-{
- calchase_state *state = machine.driver_data<calchase_state>();
- return pit8253_get_output(state->m_pit8254, 2 );
+ return pit8253_get_output( m_pit8254, 2 );
}
static const struct kbdc8042_interface at8042 =
{
- KBDC8042_AT386, set_gate_a20, keyboard_interrupt, NULL, calchase_get_out2
+ KBDC8042_AT386,
+ DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_RESET),
+ DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_A20),
+ DEVCB_DEVICE_LINE_MEMBER("pic8259_1", pic8259_device, ir1_w),
+ DEVCB_NULL,
+
+ DEVCB_NULL,
+ DEVCB_DRIVER_MEMBER(calchase_state,get_out2)
};
static void calchase_set_keyb_int(running_machine &machine, int state)
@@ -937,7 +932,9 @@ static MACHINE_CONFIG_START( calchase, calchase_state )
MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
MCFG_PCI_BUS_LEGACY_DEVICE(0, NULL, intel82439tx_pci_r, intel82439tx_pci_w)
MCFG_PCI_BUS_LEGACY_DEVICE(7, NULL, intel82371ab_pci_r, intel82371ab_pci_w)
-
+
+ MCFG_KBDC8042_ADD("kbdc", at8042)
+
/* video hardware */
MCFG_FRAGMENT_ADD( pcvideo_trident_vga )
@@ -971,7 +968,6 @@ DRIVER_INIT_MEMBER(calchase_state,calchase)
intel82439tx_init();
- kbdc8042_init(machine(), &at8042);
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x3f0b160, 0x3f0b163, read32_delegate(FUNC(calchase_state::calchase_idle_skip_r),this), write32_delegate(FUNC(calchase_state::calchase_idle_skip_w),this));
}