diff options
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 |
commit | 3dff6ae3addf01cd1baeb48cec67fbb8a76957cb (patch) | |
tree | 496f3c03d52afcb0030a7731a6712d5eca3885c7 /src/mame/drivers/calchase.c | |
parent | abedd24d6eb3826843e57f74efa722b48da4cf66 (diff) |
8042kbdc is now device (nw)
Diffstat (limited to 'src/mame/drivers/calchase.c')
-rw-r--r-- | src/mame/drivers/calchase.c | 34 |
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)); } |