mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
Added CPUINFO_INT_CLOCK_MULTIPLIER to support CPU clock multipliers.
Updated all CPU cores to return a CPUINFO_INT_CLOCK_MULTIPLIER of 1. Changed the core to actually respect both CPUINFO_INT_CLOCK_MULTIPLIER and CPUINFO_INT_CLOCK_DIVIDER. Updated a number of drivers to use cpunum_get_clock() instead of Machine->drv->cpu[x].clock. ***** Raw input clock speeds should now be specified for all CPUs in the MACHINE_DRIVER. ***** Removed explicit divisors from all drivers using the following CPU types, which were already specifying non-1 values for CPUINFO_INT_CLOCK_DIVIDER: * COP4x0 * I8039/8048 families * M68(7)05, HD63705 * M6809E * PIC16C5X * TMS32010 * TMS340x0 In a few cases, it appears that the divisor was not being used, so I guessed in those cases whether or not the specified clock speed was raw.
This commit is contained in:
parent
5c4577f364
commit
fe41f9bd01
@ -1821,6 +1821,7 @@ static void adsp21xx_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: /* set per CPU */ break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -895,6 +895,7 @@ static void alpha8xxx_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -853,9 +853,10 @@ void apexc_get_info(UINT32 state, cpuinfo *info)
|
||||
switch (state)
|
||||
{
|
||||
case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(apexc); break;
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1468,6 +1468,7 @@ void arm_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -256,6 +256,7 @@ void arm7_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = ARM7_NUM_LINES; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1739,6 +1739,7 @@ void asap_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 12; break;
|
||||
|
@ -717,6 +717,7 @@ void ccpu_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -941,6 +941,7 @@ void cdp1802_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -16,8 +16,6 @@
|
||||
#define INLINE static inline
|
||||
#endif
|
||||
|
||||
#define COP400_CLOCK_DIVIDER 4
|
||||
|
||||
#define COP400_PORT_L 0x100
|
||||
#define COP400_PORT_G 0x101
|
||||
#define COP400_PORT_D 0x102
|
||||
|
@ -308,7 +308,8 @@ void cop410_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = COP400_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
|
||||
|
@ -336,7 +336,8 @@ void cop420_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = COP400_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
|
||||
|
@ -3447,6 +3447,7 @@ void cp1610_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 8; break;
|
||||
|
@ -787,6 +787,7 @@ void dsp32c_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1147,6 +1147,7 @@ void dsp56k_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 4; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -4913,6 +4913,7 @@ static void hyperstone_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -2008,6 +2008,7 @@ void f8_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -379,6 +379,7 @@ void g65816_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -454,6 +454,7 @@ void h6280_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 3; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 7; break;
|
||||
|
@ -1243,6 +1243,7 @@ void hd6309_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -855,6 +855,7 @@ void i386_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 32; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 15; break;
|
||||
|
@ -889,7 +889,8 @@ void i8039_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = I8039_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 3*5; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
|
||||
|
@ -25,9 +25,6 @@
|
||||
(Each instruction cycle passes through 5 machine states).
|
||||
*/
|
||||
|
||||
#define I8039_CLOCK_DIVIDER (3*5)
|
||||
|
||||
|
||||
|
||||
enum { I8039_PC=1, I8039_SP, I8039_PSW, I8039_A, I8039_TC,
|
||||
I8039_P1, I8039_P2, I8039_R0, I8039_R1, I8039_R2,
|
||||
@ -75,7 +72,6 @@ extern void i8039_get_info(UINT32 state, cpuinfo *info);
|
||||
#define I8035_R6 I8039_R6
|
||||
#define I8035_R7 I8039_R7
|
||||
|
||||
#define I8035_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define i8035_ICount i8039_ICount
|
||||
|
||||
extern void i8035_get_info(UINT32 state, cpuinfo *info);
|
||||
@ -101,7 +97,6 @@ extern void i8035_get_info(UINT32 state, cpuinfo *info);
|
||||
#define I8048_R6 I8039_R6
|
||||
#define I8048_R7 I8039_R7
|
||||
|
||||
#define I8048_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define i8048_ICount i8039_ICount
|
||||
|
||||
extern void i8048_get_info(UINT32 state, cpuinfo *info);
|
||||
@ -127,59 +122,6 @@ extern void i8048_get_info(UINT32 state, cpuinfo *info);
|
||||
#define N7751_R6 I8039_R6
|
||||
#define N7751_R7 I8039_R7
|
||||
|
||||
#define N7751_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define n7751_ICount i8039_ICount
|
||||
|
||||
extern void n7751_get_info(UINT32 state, cpuinfo *info);
|
||||
#endif
|
||||
|
||||
/**************************************************************************
|
||||
* N7751 section
|
||||
**************************************************************************/
|
||||
#if (HAS_N7751)
|
||||
#define N7751_PC I8039_PC
|
||||
#define N7751_SP I8039_SP
|
||||
#define N7751_PSW I8039_PSW
|
||||
#define N7751_A I8039_A
|
||||
#define N7751_TC I8039_TC
|
||||
#define N7751_P1 I8039_P1
|
||||
#define N7751_P2 I8039_P2
|
||||
#define N7751_R0 I8039_R0
|
||||
#define N7751_R1 I8039_R1
|
||||
#define N7751_R2 I8039_R2
|
||||
#define N7751_R3 I8039_R3
|
||||
#define N7751_R4 I8039_R4
|
||||
#define N7751_R5 I8039_R5
|
||||
#define N7751_R6 I8039_R6
|
||||
#define N7751_R7 I8039_R7
|
||||
|
||||
#define N7751_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define n7751_ICount i8039_ICount
|
||||
|
||||
extern void n7751_get_info(UINT32 state, cpuinfo *info);
|
||||
#endif
|
||||
|
||||
/**************************************************************************
|
||||
* N7751 section
|
||||
**************************************************************************/
|
||||
#if (HAS_N7751)
|
||||
#define N7751_PC I8039_PC
|
||||
#define N7751_SP I8039_SP
|
||||
#define N7751_PSW I8039_PSW
|
||||
#define N7751_A I8039_A
|
||||
#define N7751_TC I8039_TC
|
||||
#define N7751_P1 I8039_P1
|
||||
#define N7751_P2 I8039_P2
|
||||
#define N7751_R0 I8039_R0
|
||||
#define N7751_R1 I8039_R1
|
||||
#define N7751_R2 I8039_R2
|
||||
#define N7751_R3 I8039_R3
|
||||
#define N7751_R4 I8039_R4
|
||||
#define N7751_R5 I8039_R5
|
||||
#define N7751_R6 I8039_R6
|
||||
#define N7751_R7 I8039_R7
|
||||
|
||||
#define N7751_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define n7751_ICount i8039_ICount
|
||||
|
||||
extern void n7751_get_info(UINT32 state, cpuinfo *info);
|
||||
@ -205,7 +147,6 @@ extern void n7751_get_info(UINT32 state, cpuinfo *info);
|
||||
#define MB8884_R6 I8039_R6
|
||||
#define MB8884_R7 I8039_R7
|
||||
|
||||
#define MB8884_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define mb8884_ICount i8039_ICount
|
||||
|
||||
extern void mb8884_get_info(UINT32 state, cpuinfo *info);
|
||||
@ -231,7 +172,6 @@ extern void mb8884_get_info(UINT32 state, cpuinfo *info);
|
||||
#define M58715_R6 I8039_R6
|
||||
#define M58715_R7 I8039_R7
|
||||
|
||||
#define m58715_CLOCK_DIVIDER I8039_CLOCK_DIVIDER
|
||||
#define m58715_ICount i8039_ICount
|
||||
|
||||
extern void m58715_get_info(UINT32 state, cpuinfo *info);
|
||||
|
@ -2430,6 +2430,7 @@ void i8051_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(i8051); break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -1630,6 +1630,7 @@ void i8085_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 4; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -384,6 +384,7 @@ void i80286_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 8; break;
|
||||
|
@ -383,6 +383,7 @@ void i8086_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 15; break;
|
||||
|
@ -2197,6 +2197,7 @@ void i8x41_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = I8X41_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "cpuintrf.h"
|
||||
|
||||
|
||||
/* The i8x41/i8x42 input clock is divided by 15. Use it with your CPU speed */
|
||||
/* The i8x41/i8x42 input clock is divided by 15 */
|
||||
#define I8X41_CLOCK_DIVIDER 15
|
||||
|
||||
/* Note:
|
||||
|
@ -1581,6 +1581,7 @@ void jaguargpu_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -565,6 +565,7 @@ void konami_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -192,6 +192,7 @@ void lh5801_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -1174,6 +1174,7 @@ void m37710_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(m37710i_cpu); break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -433,6 +433,7 @@ void m4510_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -699,6 +699,7 @@ void m6502_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -323,6 +323,7 @@ void m6509_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -2610,6 +2610,7 @@ void m6800_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -510,6 +510,7 @@ void m68000_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 10; break;
|
||||
@ -689,6 +690,7 @@ void m68008_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 10; break;
|
||||
@ -923,6 +925,7 @@ void m68020_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 16; break;
|
||||
@ -1164,6 +1167,7 @@ void m68040_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = -1; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 16; break;
|
||||
|
@ -899,7 +899,8 @@ void m6805_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = M6805_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 2; break;
|
||||
|
@ -9,8 +9,6 @@ enum { M6805_PC=1, M6805_S, M6805_CC, M6805_A, M6805_X, M6805_IRQ_STATE };
|
||||
|
||||
#define M6805_IRQ_LINE 0
|
||||
|
||||
#define M6805_CLOCK_DIVIDER 4
|
||||
|
||||
extern void m6805_get_info(UINT32 state, cpuinfo *info);
|
||||
|
||||
/****************************************************************************
|
||||
@ -28,8 +26,6 @@ extern void m6805_get_info(UINT32 state, cpuinfo *info);
|
||||
#define M68705_IRQ_LINE M6805_IRQ_LINE
|
||||
#define M68705_INT_TIMER 0x01
|
||||
|
||||
#define M68705_CLOCK_DIVIDER M6805_CLOCK_DIVIDER
|
||||
|
||||
extern void m68705_get_info(UINT32 state, cpuinfo *info);
|
||||
#endif
|
||||
|
||||
@ -59,8 +55,6 @@ extern void m68705_get_info(UINT32 state, cpuinfo *info);
|
||||
#define HD63705_INT_ADCONV 0x07
|
||||
#define HD63705_INT_NMI 0x08
|
||||
|
||||
#define HD3705_CLOCK_DIVIDER M6805_CLOCK_DIVIDER
|
||||
|
||||
extern void hd63705_get_info(UINT32 state, cpuinfo *info);
|
||||
#endif
|
||||
|
||||
|
@ -1129,6 +1129,7 @@ void m6809_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
@ -1218,6 +1219,7 @@ void m6809e_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 = 4; break;
|
||||
|
||||
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
||||
|
@ -1585,6 +1585,7 @@ void mb86233_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -799,6 +799,7 @@ void mb88_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -423,6 +423,7 @@ void mc68hc11_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -238,6 +238,7 @@ void minx_get_info( UINT32 state, cpuinfo *info ) {
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -532,6 +532,7 @@ void mips3com_get_info(mips3_state *mips, UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = mips->bigendian ? CPU_IS_BE : CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -3300,6 +3300,7 @@ static void mips_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1214,6 +1214,7 @@ static void r3000_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1312,6 +1312,7 @@ static void nec_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 15; break;
|
||||
|
@ -942,6 +942,7 @@ void pdp1_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 16; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -450,6 +450,7 @@ void tx0_64kw_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
@ -578,6 +579,7 @@ void tx0_8kw_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; /*don't care*/ break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -966,7 +966,8 @@ static void pic16C5x_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = PIC16C5x_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1*CLK; break;
|
||||
|
@ -20,12 +20,10 @@
|
||||
* Internal Clock divisor
|
||||
*
|
||||
* External Clock is divided internally by 4 for the instruction cycle
|
||||
* times. (Each instruction cycle passes through 4 machine states).
|
||||
* times. (Each instruction cycle passes through 4 machine states). This
|
||||
* is handled by the cpu execution engine.
|
||||
*/
|
||||
|
||||
#define PIC16C5x_CLOCK_DIVIDER 4
|
||||
|
||||
|
||||
enum {
|
||||
PIC16C5x_PC=1, PIC16C5x_STK0, PIC16C5x_STK1, PIC16C5x_FSR,
|
||||
PIC16C5x_W, PIC16C5x_ALU, PIC16C5x_STR, PIC16C5x_OPT,
|
||||
|
@ -1740,6 +1740,7 @@ void ppc_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -2085,6 +2085,7 @@ static void ppc_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -2883,6 +2883,7 @@ void rsp_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1519,6 +1519,7 @@ void s2650_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -316,6 +316,7 @@ void saturn_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 20; /* 20 nibbles max */ break;
|
||||
|
@ -177,6 +177,7 @@ void sc61860_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1860,6 +1860,7 @@ void SE3208_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -3055,6 +3055,7 @@ void sh2_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 16; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -4918,6 +4918,7 @@ void sh4_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
|
@ -965,6 +965,7 @@ static void sharc_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 32; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 8; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 8; break;
|
||||
|
@ -429,6 +429,7 @@ void sm8500_get_info( UINT32 state, cpuinfo *info )
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -1751,6 +1751,7 @@ void spc700_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 3; break;
|
||||
|
@ -758,6 +758,7 @@ void ssp1610_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 3; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -460,6 +460,7 @@ void t11_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 4; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -2730,6 +2730,7 @@ void tmp90840_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -57,12 +57,7 @@
|
||||
#include "debugger.h"
|
||||
|
||||
|
||||
/* 1 cycle equals 4 clock ticks */
|
||||
#if 0
|
||||
#define CLK TMS32010_CLOCK_DIVIDER
|
||||
#else
|
||||
#define CLK 1 /* Moved the clock timing back into the driver */
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef INLINE
|
||||
@ -892,7 +887,8 @@ void tms32010_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_BE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = TMS32010_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1*CLK; break;
|
||||
|
@ -19,16 +19,6 @@
|
||||
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* Internal Clock divisor
|
||||
*
|
||||
* External Clock is divided internally by 4, to produce the states
|
||||
* used in carrying out an instruction (machine) cycle.
|
||||
*/
|
||||
|
||||
#define TMS32010_CLOCK_DIVIDER 4
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Use this in the I/O port address fields of your driver for the BIO pin
|
||||
* i.e,
|
||||
|
@ -2315,6 +2315,7 @@ void tms32025_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -733,6 +733,7 @@ void tms32031_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 11; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -572,6 +572,7 @@ static void tms_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1508,7 +1508,7 @@ READ16_HANDLER( tms34010_io_register_r )
|
||||
/* have an IRQ handler. For this reason, we return it signalled a bit early in order */
|
||||
/* to make it past these loops. */
|
||||
if (SMART_IOREG(VCOUNT) + 1 == SMART_IOREG(DPYINT) &&
|
||||
attotime_compare(timer_timeleft(state.scantimer), ATTOTIME_IN_HZ(40000000/TMS34010_CLOCK_DIVIDER/3)) < 0)
|
||||
attotime_compare(timer_timeleft(state.scantimer), ATTOTIME_IN_HZ(40000000/8/3)) < 0)
|
||||
result |= TMS34010_DI;
|
||||
return result;
|
||||
}
|
||||
@ -1798,7 +1798,8 @@ void tms34010_get_info(UINT32 _state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = TMS34010_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 8; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 10; break;
|
||||
case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
|
||||
@ -1946,7 +1947,8 @@ void tms34020_get_info(UINT32 _state, cpuinfo *info)
|
||||
{
|
||||
/* --- the following bits of info are returned as 64-bit signed integers --- */
|
||||
case CPUINFO_INT_CONTEXT_SIZE: info->i = TMS34020_STATE_SIZE; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = TMS34020_CLOCK_DIVIDER; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = tms34020_get_context; break;
|
||||
|
@ -14,11 +14,6 @@
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
/* the TMS34010 input clock is divided by 8; the 34020 by 4 */
|
||||
#define TMS34010_CLOCK_DIVIDER 8
|
||||
#define TMS34020_CLOCK_DIVIDER 4
|
||||
|
||||
|
||||
/* register indexes for get_reg and set_reg */
|
||||
enum
|
||||
{
|
||||
|
@ -289,6 +289,7 @@ void tms7000_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 3; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -4689,6 +4689,7 @@ void TMS99XX_GET_INFO(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 3; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6;/*8 with 990/12, 99105, 99110*/break;
|
||||
|
@ -1832,6 +1832,7 @@ void upd7810_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -1047,6 +1047,7 @@ void v30mz_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 5; break;
|
||||
|
@ -549,6 +549,7 @@ void v60_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 22; break;
|
||||
|
@ -1104,6 +1104,7 @@ void v810_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 9; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -2461,6 +2461,7 @@ void z180_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 3; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -3696,6 +3696,7 @@ void z80_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -629,6 +629,7 @@ void z8000_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; 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_MIN_INSTRUCTION_BYTES: info->i = 2; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
|
||||
|
@ -403,6 +403,7 @@ void z80gb_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
|
||||
|
@ -215,7 +215,7 @@ void cpuexec_init(running_machine *machine)
|
||||
/* initialize the cpuinfo struct */
|
||||
memset(&cpu[cpunum], 0, sizeof(cpu[cpunum]));
|
||||
cpu[cpunum].suspend = SUSPEND_REASON_RESET;
|
||||
cpu[cpunum].clock = machine->drv->cpu[cpunum].clock;
|
||||
cpu[cpunum].clock = (UINT64)machine->drv->cpu[cpunum].clock * cputype_clock_multiplier(cputype) / cputype_clock_divider(cputype);
|
||||
cpu[cpunum].clockscale = 1.0;
|
||||
cpu[cpunum].localtime = attotime_zero;
|
||||
|
||||
|
@ -1621,6 +1621,7 @@ void dummy_get_info(UINT32 state, cpuinfo *info)
|
||||
case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
|
||||
case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
|
||||
case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break;
|
||||
case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
|
||||
case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 1; break;
|
||||
|
@ -81,6 +81,7 @@ enum
|
||||
CPUINFO_INT_OUTPUT_LINES, /* R/O: number of output lines */
|
||||
CPUINFO_INT_DEFAULT_IRQ_VECTOR, /* R/O: default IRQ vector */
|
||||
CPUINFO_INT_ENDIANNESS, /* R/O: either CPU_IS_BE or CPU_IS_LE */
|
||||
CPUINFO_INT_CLOCK_MULTIPLIER, /* R/O: internal clock multiplier */
|
||||
CPUINFO_INT_CLOCK_DIVIDER, /* R/O: internal clock divider */
|
||||
CPUINFO_INT_MIN_INSTRUCTION_BYTES, /* R/O: minimum bytes per instruction */
|
||||
CPUINFO_INT_MAX_INSTRUCTION_BYTES, /* R/O: maximum bytes per instruction */
|
||||
@ -332,6 +333,7 @@ offs_t activecpu_dasm(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *
|
||||
#define activecpu_output_lines() activecpu_get_info_int(CPUINFO_INT_OUTPUT_LINES)
|
||||
#define activecpu_default_irq_vector() activecpu_get_info_int(CPUINFO_INT_DEFAULT_IRQ_VECTOR)
|
||||
#define activecpu_endianness() activecpu_get_info_int(CPUINFO_INT_ENDIANNESS)
|
||||
#define activecpu_clock_multiplier() activecpu_get_info_int(CPUINFO_INT_CLOCK_MULTIPLIER)
|
||||
#define activecpu_clock_divider() activecpu_get_info_int(CPUINFO_INT_CLOCK_DIVIDER)
|
||||
#define activecpu_min_instruction_bytes() activecpu_get_info_int(CPUINFO_INT_MIN_INSTRUCTION_BYTES)
|
||||
#define activecpu_max_instruction_bytes() activecpu_get_info_int(CPUINFO_INT_MAX_INSTRUCTION_BYTES)
|
||||
@ -402,6 +404,7 @@ offs_t cpunum_dasm(int cpunum, char *buffer, offs_t pc, const UINT8 *oprom, cons
|
||||
#define cpunum_output_lines(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_OUTPUT_LINES)
|
||||
#define cpunum_default_irq_vector(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_DEFAULT_IRQ_VECTOR)
|
||||
#define cpunum_endianness(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_ENDIANNESS)
|
||||
#define cpunum_clock_multiplier(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_CLOCK_MULTIPLIER)
|
||||
#define cpunum_clock_divider(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_CLOCK_DIVIDER)
|
||||
#define cpunum_min_instruction_bytes(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_MIN_INSTRUCTION_BYTES)
|
||||
#define cpunum_max_instruction_bytes(cpunum) cpunum_get_info_int(cpunum, CPUINFO_INT_MAX_INSTRUCTION_BYTES)
|
||||
@ -442,6 +445,7 @@ const char *cputype_get_info_string(cpu_type cputype, UINT32 state);
|
||||
#define cputype_output_lines(cputype) cputype_get_info_int(cputype, CPUINFO_INT_OUTPUT_LINES)
|
||||
#define cputype_default_irq_vector(cputype) cputype_get_info_int(cputype, CPUINFO_INT_DEFAULT_IRQ_VECTOR)
|
||||
#define cputype_endianness(cputype) cputype_get_info_int(cputype, CPUINFO_INT_ENDIANNESS)
|
||||
#define cputype_clock_multiplier(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_MULTIPLIER)
|
||||
#define cputype_clock_divider(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_DIVIDER)
|
||||
#define cputype_min_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MIN_INSTRUCTION_BYTES)
|
||||
#define cputype_max_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MAX_INSTRUCTION_BYTES)
|
||||
|
@ -165,7 +165,7 @@ void via_config(int which, const struct via6522_interface *intf)
|
||||
via[which].time2 = via[which].time1 = timer_get_time();
|
||||
|
||||
/* Default clock is from CPU1 */
|
||||
via_set_clock (which, Machine->drv->cpu[0].clock);
|
||||
via_set_clock (which, cpunum_get_clock(0));
|
||||
}
|
||||
|
||||
/******************* external interrupt check *******************/
|
||||
|
@ -313,7 +313,7 @@ void r6532_config(int which, const struct riot6532_interface* intf)
|
||||
r6532[which].intf = intf;
|
||||
|
||||
/* Default clock is CPU #0 clock */
|
||||
r6532_set_clock( which, Machine->drv->cpu[0].clock );
|
||||
r6532_set_clock( which, cpunum_get_clock(0) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -90,7 +90,7 @@ static void tmp68301_update_timer( int i )
|
||||
{
|
||||
int scale = (TCR & 0x3c00)>>10; // P4..1
|
||||
if (scale > 8) scale = 8;
|
||||
duration = attotime_mul(ATTOTIME_IN_HZ(Machine->drv->cpu[0].clock), (1 << scale) * max);
|
||||
duration = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(0)), (1 << scale) * max);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -161,7 +161,7 @@ void cage_init(int boot_region, offs_t speedup)
|
||||
memory_set_bankptr(11, memory_region(boot_region + 1));
|
||||
|
||||
cage_cpu = mame_find_cpu_index(Machine, "cage");
|
||||
cage_cpu_clock_period = ATTOTIME_IN_HZ(Machine->drv->cpu[cage_cpu].clock);
|
||||
cage_cpu_clock_period = ATTOTIME_IN_HZ(cpunum_get_clock(cage_cpu));
|
||||
cage_cpu_h1_clock_period = attotime_mul(cage_cpu_clock_period, 2);
|
||||
|
||||
dma_timer = timer_alloc(dma_timer_callback, NULL);
|
||||
|
@ -302,7 +302,7 @@ ADDRESS_MAP_END
|
||||
|
||||
|
||||
MACHINE_DRIVER_START( carnival_audio )
|
||||
MDRV_CPU_ADD(I8039,( ( 3579545 / 5 ) / 3 ))
|
||||
MDRV_CPU_ADD(I8039, 3579545)
|
||||
MDRV_CPU_PROGRAM_MAP(carnival_audio_map,0)
|
||||
MDRV_CPU_IO_MAP(carnival_audio_io_map,0)
|
||||
|
||||
|
@ -179,7 +179,7 @@ SOUND_START( cchasm )
|
||||
sound_flags = 0;
|
||||
output[0] = 0; output[1] = 0;
|
||||
|
||||
ctc_intf.baseclock = machine->drv->cpu[1].clock;
|
||||
ctc_intf.baseclock = cpunum_get_clock(1);
|
||||
z80ctc_init (0, &ctc_intf);
|
||||
|
||||
timer_pulse(attotime_make(0, machine->screen[0].refresh), NULL, 0, cchasm_sh_update);
|
||||
|
@ -1508,7 +1508,7 @@ static MACHINE_RESET( demon_sound )
|
||||
generic_init(machine, demon_sound_w);
|
||||
|
||||
/* initialize the CTC interface */
|
||||
demon_z80ctc_interface.baseclock = machine->drv->cpu[1].clock;
|
||||
demon_z80ctc_interface.baseclock = cpunum_get_clock(1);
|
||||
z80ctc_init(0, &demon_z80ctc_interface);
|
||||
|
||||
/* reset the FIFO */
|
||||
|
@ -1956,7 +1956,7 @@ static void recompute_sample_rate(void)
|
||||
/* calculate how long until we generate an interrupt */
|
||||
|
||||
/* frequency the time per each bit sent */
|
||||
attotime sample_period = attotime_mul(ATTOTIME_IN_HZ(Machine->drv->cpu[dcs.cpunum].clock), 2 * (dcs.control_regs[S1_SCLKDIV_REG] + 1));
|
||||
attotime sample_period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(dcs.cpunum)), 2 * (dcs.control_regs[S1_SCLKDIV_REG] + 1));
|
||||
|
||||
/* now put it down to samples, so we know what the channel frequency has to be */
|
||||
sample_period = attotime_mul(sample_period, 16 * dcs.channels);
|
||||
|
@ -546,7 +546,7 @@ ADDRESS_MAP_END
|
||||
MACHINE_DRIVER_START( spacefev_sound )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(I8035, 6000000 / I8039_CLOCK_DIVIDER)
|
||||
MDRV_CPU_ADD(I8035, 6000000)
|
||||
/* audio CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(n8080_sound_cpu_map, 0)
|
||||
MDRV_CPU_IO_MAP(n8080_sound_io_map, 0)
|
||||
@ -568,7 +568,7 @@ MACHINE_DRIVER_END
|
||||
MACHINE_DRIVER_START( sheriff_sound )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(I8035, 6000000 / I8039_CLOCK_DIVIDER)
|
||||
MDRV_CPU_ADD(I8035, 6000000)
|
||||
/* audio CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(n8080_sound_cpu_map, 0)
|
||||
MDRV_CPU_IO_MAP(n8080_sound_io_map, 0)
|
||||
@ -590,7 +590,7 @@ MACHINE_DRIVER_END
|
||||
MACHINE_DRIVER_START( helifire_sound )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(I8035, 6000000 / I8039_CLOCK_DIVIDER)
|
||||
MDRV_CPU_ADD(I8035, 6000000)
|
||||
/* audio CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(n8080_sound_cpu_map, 0)
|
||||
MDRV_CPU_IO_MAP(helifire_sound_io_map, 0)
|
||||
|
@ -63,7 +63,7 @@ static void engine_sound_update(void *param, stream_sample_t **inputs, stream_sa
|
||||
}
|
||||
|
||||
/* determine the effective clock rate */
|
||||
clock = (Machine->drv->cpu[0].clock / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64);
|
||||
clock = (cpunum_get_clock(0) / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64);
|
||||
step = (clock << 12) / OUTPUT_RATE;
|
||||
|
||||
/* determine the volume */
|
||||
|
@ -821,7 +821,7 @@ ADDRESS_MAP_END
|
||||
MACHINE_DRIVER_START( monsterb_sound_board )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(N7751, 6000000/15)
|
||||
MDRV_CPU_ADD(N7751, 6000000)
|
||||
MDRV_CPU_PROGRAM_MAP(monsterb_7751_map,0)
|
||||
MDRV_CPU_IO_MAP(monsterb_7751_portmap,0)
|
||||
|
||||
|
@ -280,7 +280,7 @@ static const struct sp0250_interface sp0250_interface =
|
||||
MACHINE_DRIVER_START( sega_speech_board )
|
||||
|
||||
/* CPU for the speech board */
|
||||
MDRV_CPU_ADD(I8035, SPEECH_MASTER_CLOCK/15) /* divide by 15 in CPU */
|
||||
MDRV_CPU_ADD(I8035, SPEECH_MASTER_CLOCK) /* divide by 15 in CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(speech_map, 0)
|
||||
MDRV_CPU_IO_MAP(speech_portmap, 0)
|
||||
|
||||
@ -918,7 +918,7 @@ static const struct CustomSound_interface usb_custom_interface =
|
||||
MACHINE_DRIVER_START( sega_universal_sound_board )
|
||||
|
||||
/* CPU for the usb board */
|
||||
MDRV_CPU_ADD_TAG("usb", I8035, USB_MASTER_CLOCK/15) /* divide by 15 in CPU */
|
||||
MDRV_CPU_ADD_TAG("usb", I8035, USB_MASTER_CLOCK) /* divide by 15 in CPU */
|
||||
MDRV_CPU_PROGRAM_MAP(usb_map, 0)
|
||||
MDRV_CPU_IO_MAP(usb_portmap, 0)
|
||||
|
||||
|
@ -69,7 +69,7 @@ void senjyo_sh_start(void)
|
||||
int i;
|
||||
|
||||
/* z80 ctc init */
|
||||
ctc_intf.baseclock = Machine->drv->cpu[1].clock;
|
||||
ctc_intf.baseclock = cpunum_get_clock(1);
|
||||
z80ctc_init (0, &ctc_intf);
|
||||
|
||||
/* z80 pio init */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user