mirror of
https://github.com/holub/mame
synced 2025-07-06 02:18:09 +03:00
Added very basic SCC68070 implementation, currently is just a basic m68k with 32-bits of address lines.
The plan is to add the on-chip peripherals on the magicard.c driver then, when I get some consistency, hardwire it to the cpu core. Please check this modification asap (should be fine, but I haven't compiled with a clean build)
This commit is contained in:
parent
fa2917a857
commit
66ff5a084a
@ -27,7 +27,8 @@ enum
|
|||||||
M68K_CPU_TYPE_68EC020,
|
M68K_CPU_TYPE_68EC020,
|
||||||
M68K_CPU_TYPE_68020,
|
M68K_CPU_TYPE_68020,
|
||||||
M68K_CPU_TYPE_68030, /* Supported by disassembler ONLY */
|
M68K_CPU_TYPE_68030, /* Supported by disassembler ONLY */
|
||||||
M68K_CPU_TYPE_68040 /* Supported by disassembler ONLY */
|
M68K_CPU_TYPE_68040,
|
||||||
|
M68K_CPU_TYPE_SCC68070
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -75,6 +76,8 @@ CPU_GET_INFO( m68ec020 );
|
|||||||
CPU_GET_INFO( m68020 );
|
CPU_GET_INFO( m68020 );
|
||||||
CPU_GET_INFO( m68040 );
|
CPU_GET_INFO( m68040 );
|
||||||
|
|
||||||
|
CPU_GET_INFO( scc68070 );
|
||||||
|
|
||||||
#define CPU_M68000 CPU_GET_INFO_NAME( m68000 )
|
#define CPU_M68000 CPU_GET_INFO_NAME( m68000 )
|
||||||
#define CPU_M68008 CPU_GET_INFO_NAME( m68008 )
|
#define CPU_M68008 CPU_GET_INFO_NAME( m68008 )
|
||||||
#define CPU_M68010 CPU_GET_INFO_NAME( m68010 )
|
#define CPU_M68010 CPU_GET_INFO_NAME( m68010 )
|
||||||
@ -82,6 +85,8 @@ CPU_GET_INFO( m68040 );
|
|||||||
#define CPU_M68020 CPU_GET_INFO_NAME( m68020 )
|
#define CPU_M68020 CPU_GET_INFO_NAME( m68020 )
|
||||||
#define CPU_M68040 CPU_GET_INFO_NAME( m68040 )
|
#define CPU_M68040 CPU_GET_INFO_NAME( m68040 )
|
||||||
|
|
||||||
|
#define CPU_SCC68070 CPU_GET_INFO_NAME( scc68070 )
|
||||||
|
|
||||||
void m68k_set_encrypted_opcode_range(const device_config *device, offs_t start, offs_t end);
|
void m68k_set_encrypted_opcode_range(const device_config *device, offs_t start, offs_t end);
|
||||||
|
|
||||||
unsigned int m68k_disassemble_raw(char* str_buff, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type);
|
unsigned int m68k_disassemble_raw(char* str_buff, unsigned int pc, const unsigned char* opdata, const unsigned char* argdata, unsigned int cpu_type);
|
||||||
|
@ -484,7 +484,8 @@ INLINE m68ki_cpu_core *get_safe_token(const device_config *device)
|
|||||||
cpu_get_type(device) == CPU_M68010 ||
|
cpu_get_type(device) == CPU_M68010 ||
|
||||||
cpu_get_type(device) == CPU_M68EC020 ||
|
cpu_get_type(device) == CPU_M68EC020 ||
|
||||||
cpu_get_type(device) == CPU_M68020 ||
|
cpu_get_type(device) == CPU_M68020 ||
|
||||||
cpu_get_type(device) == CPU_M68040);
|
cpu_get_type(device) == CPU_M68040 ||
|
||||||
|
cpu_get_type(device) == CPU_SCC68070);
|
||||||
return (m68ki_cpu_core *)device->token;
|
return (m68ki_cpu_core *)device->token;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1334,3 +1335,25 @@ CPU_GET_INFO( m68040 )
|
|||||||
default: CPU_GET_INFO_CALL(m68k); break;
|
default: CPU_GET_INFO_CALL(m68k); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* SCC-68070 section
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
CPU_GET_INFO( scc68070 )
|
||||||
|
{
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
/* --- the following bits of info are returned as 64-bit signed integers --- */
|
||||||
|
case CPUINFO_INT_ADDRBUS_WIDTH_PROGRAM: info->i = 32; break;
|
||||||
|
|
||||||
|
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||||
|
case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(m68000); break; //todo
|
||||||
|
|
||||||
|
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
||||||
|
case CPUINFO_STR_NAME: strcpy(info->s, "SCC68070"); break;
|
||||||
|
|
||||||
|
default: CPU_GET_INFO_CALL(m68k); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -416,7 +416,7 @@ static INTERRUPT_GEN( magicard_irq )
|
|||||||
}
|
}
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( magicard )
|
static MACHINE_DRIVER_START( magicard )
|
||||||
MDRV_CPU_ADD("maincpu", M68000, CLOCK_A/2) /* SCC-68070 CCA84 datasheet */
|
MDRV_CPU_ADD("maincpu", SCC68070, CLOCK_A/2) /* SCC-68070 CCA84 datasheet */
|
||||||
MDRV_CPU_PROGRAM_MAP(magicard_mem)
|
MDRV_CPU_PROGRAM_MAP(magicard_mem)
|
||||||
MDRV_CPU_VBLANK_INT("screen", magicard_irq) /* no interrupts? (it erases the vectors..) */
|
MDRV_CPU_VBLANK_INT("screen", magicard_irq) /* no interrupts? (it erases the vectors..) */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user