diff --git a/src/devices/cpu/m6809/hd6309.cpp b/src/devices/cpu/m6809/hd6309.cpp index 1b40d17e06f..0937a575542 100644 --- a/src/devices/cpu/m6809/hd6309.cpp +++ b/src/devices/cpu/m6809/hd6309.cpp @@ -126,19 +126,30 @@ March 2013 NPW: //************************************************************************** DEFINE_DEVICE_TYPE(HD6309, hd6309_device, "hd6309", "HD6309") +DEFINE_DEVICE_TYPE(HD6309E, hd6309e_device, "hd6309e", "HD6309E") //------------------------------------------------- // hd6309_device - constructor //------------------------------------------------- -hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6809_base_device(mconfig, tag, owner, clock, HD6309, 4), +hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type, int divider) : + m6809_base_device(mconfig, tag, owner, clock, type, divider), m_md(0), m_temp_im(0) { } +hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + hd6309_device(mconfig, tag, owner, clock, HD6309, 4) +{ +} + +hd6309e_device::hd6309e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + hd6309_device(mconfig, tag, owner, clock, HD6309E, 1) +{ +} + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- diff --git a/src/devices/cpu/m6809/hd6309.h b/src/devices/cpu/m6809/hd6309.h index 8e209f9f7b2..26352b6fe57 100644 --- a/src/devices/cpu/m6809/hd6309.h +++ b/src/devices/cpu/m6809/hd6309.h @@ -20,8 +20,9 @@ // TYPE DEFINITIONS //************************************************************************** -// device type definition +// device type definitions DECLARE_DEVICE_TYPE(HD6309, hd6309_device) +DECLARE_DEVICE_TYPE(HD6309E, hd6309e_device) // ======================> hd6309_device @@ -32,6 +33,9 @@ public: hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + // delegating constructor + hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type, int divider); + // device-level overrides virtual void device_start() override; virtual void device_reset() override; @@ -138,6 +142,15 @@ enum HD6309_ZERO_WORD }; +// ======================> hd6309e_device + +class hd6309e_device : public hd6309_device +{ +public: + // construction/destruction + hd6309e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + #define HD6309_IRQ_LINE M6809_IRQ_LINE /* 0 - IRQ line number */ #define HD6309_FIRQ_LINE M6809_FIRQ_LINE /* 1 - FIRQ line number */ diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp index f03b73e394e..7f5c449de89 100644 --- a/src/mame/drivers/ajax.cpp +++ b/src/mame/drivers/ajax.cpp @@ -173,7 +173,7 @@ static MACHINE_CONFIG_START( ajax ) MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 12/4 MHz*/ MCFG_CPU_PROGRAM_MAP(ajax_main_map) - MCFG_CPU_ADD("sub", HD6309, 3000000) /* ? */ + MCFG_CPU_ADD("sub", HD6309E, 3000000) /* ? */ MCFG_CPU_PROGRAM_MAP(ajax_sub_map) MCFG_CPU_ADD("audiocpu", Z80, 3579545) /* 3.58 MHz */