diff options
author | Aaron Giles <aaron@aarongiles.com> | 2007-12-31 01:46:50 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2007-12-31 01:46:50 +0000 |
commit | b482fd8c82adf5ad5d4945767b11cf4ed7284008 (patch) | |
tree | 901694ee264c2e75448ec3223fb63262c54b9f2f /src/mame/drivers/midzeus.c | |
parent | 3228b1b341ba28ec9be0e2148a481bd4b8e1c2f0 (diff) |
Add register usage tracking to Zeus 2.
Added artifical Z offset of -2 to make the full screen show in crusnexo.
Really fixed TMS3203x interrupt handling.
Added hack to catch invalid SP values during 32031 execution (debug mode only).
Diffstat (limited to 'src/mame/drivers/midzeus.c')
-rw-r--r-- | src/mame/drivers/midzeus.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index a7e9de8d5c9..bd4b888aa91 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -89,6 +89,25 @@ static MACHINE_RESET( midzeus ) /************************************* * + * Display interrupt generation + * + *************************************/ + +static TIMER_CALLBACK( display_irq_off ) +{ + cpunum_set_input_line(0, 0, CLEAR_LINE); +} + +static INTERRUPT_GEN( display_irq ) +{ + cpunum_set_input_line(0, 0, ASSERT_LINE); + timer_set(ATTOTIME_IN_HZ(30000000), NULL, 0, display_irq_off); +} + + + +/************************************* + * * CMOS access (Zeus only) * *************************************/ @@ -417,7 +436,7 @@ static ADDRESS_MAP_START( zeus2_map, ADDRESS_SPACE_PROGRAM, 32 ) AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE(&ram_base) AM_RANGE(0x400000, 0x43ffff) AM_RAM AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE(&tms32031_control) - AM_RANGE(0x880000, 0x8801ff) AM_READWRITE(zeus2_r, zeus2_w) AM_BASE(&zeusbase) + AM_RANGE(0x880000, 0x88007f) AM_READWRITE(zeus2_r, zeus2_w) AM_BASE(&zeusbase) AM_RANGE(0x8a0000, 0x8a0027) AM_READWRITE(unknown_8a0000_r, unknown_8a0000_w) AM_BASE(&unknown_8a0000) AM_RANGE(0x8d0000, 0x8d0003) AM_READWRITE(unknown_8d0000_r, unknown_8d0000_w) AM_BASE(&unknown_8d0000) AM_RANGE(0x8d0005, 0x8d0005) AM_WRITE(rombank_select_w) @@ -884,7 +903,7 @@ static MACHINE_DRIVER_START( midzeus ) /* basic machine hardware */ MDRV_CPU_ADD_TAG("main", TMS32032, CPU_CLOCK) MDRV_CPU_PROGRAM_MAP(zeus_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) + MDRV_CPU_VBLANK_INT(display_irq,1) MDRV_MACHINE_START(midzeus) MDRV_MACHINE_RESET(midzeus) @@ -911,7 +930,7 @@ static MACHINE_DRIVER_START( midzeus2 ) /* basic machine hardware */ MDRV_CPU_ADD_TAG("main", TMS32032, CPU_CLOCK) MDRV_CPU_PROGRAM_MAP(zeus2_map,0) - MDRV_CPU_VBLANK_INT(irq0_line_assert,1) + MDRV_CPU_VBLANK_INT(display_irq,1) MDRV_MACHINE_START(midzeus2) MDRV_MACHINE_RESET(midzeus) @@ -1081,7 +1100,6 @@ static DRIVER_INIT( crusnexo ) static DRIVER_INIT( thegrid ) { - cpunum_set_input_line(0, INPUT_LINE_HALT, ASSERT_LINE); dcs2_init(0, 0); midway_ioasic_init(MIDWAY_IOASIC_STANDARD, 474/* or 491 */, 99, NULL); memory_configure_bank(1, 0, 3, memory_region(REGION_USER2), 0x400000*4); |