Added i8749 CPU type for MESS.

This commit is contained in:
Curt Coder 2008-02-19 17:54:47 +00:00
parent aad4c81ac4
commit 1424fce298
6 changed files with 60 additions and 2 deletions

View File

@ -524,17 +524,18 @@ $(CPUOBJ)/i8085/i8085.o: $(CPUSRC)/i8085/i8085.c \
#-------------------------------------------------
# Intel 8039 and derivatives
# Intel MCS-48 (8039 and derivatives)
#-------------------------------------------------
CPUDEFS += -DHAS_I8035=$(if $(filter I8035,$(CPUS)),1,0)
CPUDEFS += -DHAS_I8039=$(if $(filter I8039,$(CPUS)),1,0)
CPUDEFS += -DHAS_I8048=$(if $(filter I8048,$(CPUS)),1,0)
CPUDEFS += -DHAS_I8749=$(if $(filter I8749,$(CPUS)),1,0)
CPUDEFS += -DHAS_N7751=$(if $(filter N7751,$(CPUS)),1,0)
CPUDEFS += -DHAS_MB8884=$(if $(filter MB8884,$(CPUS)),1,0)
CPUDEFS += -DHAS_M58715=$(if $(filter M58715,$(CPUS)),1,0)
ifneq ($(filter I8035 I8039 I8048 N7751 MB8884 M58715,$(CPUS)),)
ifneq ($(filter I8035 I8039 I8048 I8749 N7751 MB8884 M58715,$(CPUS)),)
OBJDIRS += $(CPUOBJ)/i8039
CPUOBJS += $(CPUOBJ)/i8039/i8039.o
DBGOBJS += $(CPUOBJ)/i8039/8039dasm.o

View File

@ -629,6 +629,16 @@ static void i8035_init (int index, int clock, const void *config, int (*irqcallb
}
#endif
#if (HAS_I8749)
static void i8749_init (int index, int clock, const void *config, int (*irqcallback)(int))
{
i8039_init(index, clock, config, irqcallback);
R.ram_mask = 0x7f;
R.int_rom_size = 0x800;
}
#endif
#if (HAS_M58715)
static void m58715_init (int index, int clock, const void *config, int (*irqcallback)(int))
{
@ -1024,6 +1034,22 @@ void i8048_get_info(UINT32 state, cpuinfo *info)
}
#endif
#if (HAS_I8749)
/**************************************************************************
* CPU-specific get_info/set_info
**************************************************************************/
void i8749_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "I8749"); break;
case CPUINFO_PTR_INIT: info->init = i8749_init; break;
default: i8039_get_info(state, info); break;
}
}
#endif
#if (HAS_N7751)
/**************************************************************************

View File

@ -102,6 +102,31 @@ extern void i8035_get_info(UINT32 state, cpuinfo *info);
extern void i8048_get_info(UINT32 state, cpuinfo *info);
#endif
/**************************************************************************
* I8749 section
**************************************************************************/
#if (HAS_I8749)
#define I8749_PC I8039_PC
#define I8749_SP I8039_SP
#define I8749_PSW I8039_PSW
#define I8749_A I8039_A
#define I8749_TC I8039_TC
#define I8749_P1 I8039_P1
#define I8749_P2 I8039_P2
#define I8749_R0 I8039_R0
#define I8749_R1 I8039_R1
#define I8749_R2 I8039_R2
#define I8749_R3 I8039_R3
#define I8749_R4 I8039_R4
#define I8749_R5 I8039_R5
#define I8749_R6 I8039_R6
#define I8749_R7 I8039_R7
#define i8749_ICount i8039_ICount
extern void i8749_get_info(UINT32 state, cpuinfo *info);
#endif
/**************************************************************************
* N7751 section
**************************************************************************/

View File

@ -79,6 +79,7 @@ enum _cpu_type
CPU_I8035,
CPU_I8039,
CPU_I8048,
CPU_I8749,
CPU_N7751,
CPU_MB8884,
CPU_M58715,

View File

@ -52,6 +52,7 @@ void v70_get_info(UINT32 state, cpuinfo *info);
void i8035_get_info(UINT32 state, cpuinfo *info);
void i8039_get_info(UINT32 state, cpuinfo *info);
void i8048_get_info(UINT32 state, cpuinfo *info);
void i8749_get_info(UINT32 state, cpuinfo *info);
void n7751_get_info(UINT32 state, cpuinfo *info);
void mb8884_get_info(UINT32 state, cpuinfo *info);
void m58715_get_info(UINT32 state, cpuinfo *info);
@ -369,6 +370,9 @@ static const struct
#if (HAS_I8048)
{ CPU_I8048, i8048_get_info },
#endif
#if (HAS_I8749)
{ CPU_I8749, i8749_get_info },
#endif
#if (HAS_N7751)
{ CPU_N7751, n7751_get_info },
#endif

View File

@ -65,6 +65,7 @@ CPUS += V70
CPUS += I8035
CPUS += I8039
CPUS += I8048
CPUS += I8749
CPUS += N7751
CPUS += MB8884
CPUS += M58715