summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/calchase.c
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2012-02-03 14:41:46 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2012-02-03 14:41:46 +0000
commitf50762b727a0004974e659374772213d0d0c1670 (patch)
tree8a7f1f7a81c5b217950b3c87c08ca7d1862bb10d /src/mame/drivers/calchase.c
parent340eb43dd404eb4cb2b75f378dddff1597f09518 (diff)
Added idle skip
Diffstat (limited to 'src/mame/drivers/calchase.c')
-rw-r--r--src/mame/drivers/calchase.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index 264af589996..64dbb0c1e16 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -131,7 +131,9 @@ class calchase_state : public driver_device
{
public:
calchase_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag) { }
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
UINT32 *m_bios_ram;
int m_dma_channel;
@@ -145,6 +147,9 @@ public:
device_t *m_pic8259_2;
device_t *m_dma8237_1;
device_t *m_dma8237_2;
+
+ UINT32 m_idle_skip_ram;
+ required_device<cpu_device> m_maincpu;
};
@@ -810,6 +815,24 @@ static MACHINE_CONFIG_START( calchase, calchase_state )
MACHINE_CONFIG_END
+
+static READ32_HANDLER( calchase_idle_skip_r )
+{
+ calchase_state *state = space->machine().driver_data<calchase_state>();
+
+ if(cpu_get_pc(&space->device())==0x1406f48)
+ device_spin_until_interrupt(state->m_maincpu);
+
+ return state->m_idle_skip_ram;
+}
+
+static WRITE32_HANDLER( calchase_idle_skip_w )
+{
+ calchase_state *state = space->machine().driver_data<calchase_state>();
+
+ COMBINE_DATA(&state->m_idle_skip_ram);
+}
+
static DRIVER_INIT( calchase )
{
calchase_state *state = machine.driver_data<calchase_state>();
@@ -822,6 +845,8 @@ static DRIVER_INIT( calchase )
intel82439tx_init(machine);
kbdc8042_init(machine, &at8042);
+
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x3f0b160, 0x3f0b163, FUNC(calchase_idle_skip_r), FUNC(calchase_idle_skip_w));
}
ROM_START( calchase )