summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-01-15 08:29:13 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-01-15 08:29:13 +0000
commitddca20f72ae92e539d2e94188a3b7ec5e66fc2fb (patch)
tree6acba6b99c6c46949b8779a3f1c39018fe6b14db
parent3459571adc2ae94db3e8b64c6f9746ff4b9acc7a (diff)
Cleaned up leland clocks a little.
Fixed alleymas0119u3gre (with a pointer from RansAckeR) Added missing multipliers to the h8 and i960 cores. Made the i186 divide-by-2 clock internal.
-rw-r--r--src/emu/cpu/h83002/h83002.c2
-rw-r--r--src/emu/cpu/i86/i86.c4
-rw-r--r--src/emu/cpu/i960/i960.c2
-rw-r--r--src/mame/drivers/ataxx.c6
-rw-r--r--src/mame/drivers/leland.c16
-rw-r--r--src/mame/machine/leland.c2
6 files changed, 26 insertions, 6 deletions
diff --git a/src/emu/cpu/h83002/h83002.c b/src/emu/cpu/h83002/h83002.c
index b0e01bfc0ff..a71bab1b741 100644
--- a/src/emu/cpu/h83002/h83002.c
+++ b/src/emu/cpu/h83002/h83002.c
@@ -3828,6 +3828,8 @@ void h8_3002_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
case CPUINFO_STR_FLAGS: strcpy(info->s, h8_get_ccr_str()); break;
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; break;
+ case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
+ case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
case CPUINFO_INT_INPUT_LINES: info->i = 16; break;
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; break;
diff --git a/src/emu/cpu/i86/i86.c b/src/emu/cpu/i86/i86.c
index a412e28bfed..08af0624c67 100644
--- a/src/emu/cpu/i86/i86.c
+++ b/src/emu/cpu/i86/i86.c
@@ -522,6 +522,10 @@ void i80186_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
+ /* --- the following bits of info are returned as 64-bit signed integers --- */
+ case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
+ case CPUINFO_INT_CLOCK_DIVIDER: info->i = 2; break;
+
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_EXECUTE: info->execute = i80186_execute; break;
diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c
index 9471fac4b45..9879042ee20 100644
--- a/src/emu/cpu/i960/i960.c
+++ b/src/emu/cpu/i960/i960.c
@@ -2152,6 +2152,8 @@ void i960_get_info(UINT32 state, cpuinfo *info)
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
case CPUINFO_INT_INPUT_LINES: info->i = 4; break;
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; break;
+ case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
+ case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
// CPU main state
case CPUINFO_INT_PC: info->i = i960.IP; break;
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c
index dd96d4900fb..fc8e0e28998 100644
--- a/src/mame/drivers/ataxx.c
+++ b/src/mame/drivers/ataxx.c
@@ -33,6 +33,10 @@
#include "sound/custom.h"
+#define MASTER_CLOCK XTAL_28_63636MHz
+#define MCU_CLOCK XTAL_16MHz
+
+
/*************************************
*
@@ -334,7 +338,7 @@ static MACHINE_DRIVER_START( ataxx )
MDRV_CPU_PROGRAM_MAP(slave_map_program,0)
MDRV_CPU_IO_MAP(slave_map_io,0)
- MDRV_CPU_ADD_TAG("sound", I80186, 16000000/2)
+ MDRV_CPU_ADD_TAG("sound", I80186, XTAL_16MHz)
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(leland_80186_map_program,0)
MDRV_CPU_IO_MAP(ataxx_80186_map_io,0)
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index 77136e3c04d..eb47a47ed7b 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -47,6 +47,12 @@
#include "sound/custom.h"
+#define MASTER_CLOCK XTAL_12MHz
+#define VIDEO_CLOCK XTAL_14_31818MHz
+#define MCU_CLOCK XTAL_16MHz
+
+
+
/*************************************
*
* Master CPU memory handlers
@@ -733,12 +739,12 @@ static const struct CustomSound_interface redline_custom_interface =
static MACHINE_DRIVER_START( leland )
/* basic machine hardware */
- MDRV_CPU_ADD_TAG("master", Z80, 6000000)
+ MDRV_CPU_ADD_TAG("master", Z80, MASTER_CLOCK/2)
MDRV_CPU_PROGRAM_MAP(master_map_program,0)
MDRV_CPU_IO_MAP(master_map_io,0)
MDRV_CPU_VBLANK_INT(leland_master_interrupt,1)
- MDRV_CPU_ADD_TAG("slave", Z80, 6000000)
+ MDRV_CPU_ADD_TAG("slave", Z80, MASTER_CLOCK/2)
MDRV_CPU_PROGRAM_MAP(slave_small_map_program,0)
MDRV_CPU_IO_MAP(slave_map_io,0)
@@ -781,8 +787,8 @@ static MACHINE_DRIVER_START( redline )
/* basic machine hardware */
MDRV_IMPORT_FROM(leland)
- MDRV_CPU_ADD_TAG("sound", I80186, 16000000/2)
- /* audio CPU */
+
+ MDRV_CPU_ADD_TAG("sound", I80186, MCU_CLOCK)
MDRV_CPU_PROGRAM_MAP(leland_80186_map_program,0)
MDRV_CPU_IO_MAP(redline_80186_map_io,0)
@@ -797,6 +803,7 @@ static MACHINE_DRIVER_START( quarterb )
/* basic machine hardware */
MDRV_IMPORT_FROM(redline)
+
MDRV_CPU_MODIFY("sound")
MDRV_CPU_IO_MAP(leland_80186_map_io,0)
@@ -811,6 +818,7 @@ static MACHINE_DRIVER_START( lelandi )
/* basic machine hardware */
MDRV_IMPORT_FROM(quarterb)
+
MDRV_CPU_MODIFY("slave")
MDRV_CPU_PROGRAM_MAP(slave_large_map_program,0)
MACHINE_DRIVER_END
diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c
index fb62d16167b..af5dfa01ce1 100644
--- a/src/mame/machine/leland.c
+++ b/src/mame/machine/leland.c
@@ -155,7 +155,7 @@ WRITE8_HANDLER( alleymas_joystick_kludge )
{
/* catch the case where they clear this memory location at PC $1827 and change */
/* the value written to be a 1 */
- if (safe_activecpu_get_pc() == 0x1827)
+ if (activecpu_get_previouspc() == 0x1827)
*alleymas_kludge_mem = 1;
else
*alleymas_kludge_mem = data;