diff options
Diffstat (limited to 'src/mame/drivers/cdi.cpp')
-rw-r--r-- | src/mame/drivers/cdi.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/mame/drivers/cdi.cpp b/src/mame/drivers/cdi.cpp index 94baae55947..aa4483b9d65 100644 --- a/src/mame/drivers/cdi.cpp +++ b/src/mame/drivers/cdi.cpp @@ -44,8 +44,16 @@ TODO: #include "cdi.lh" -#define CLOCK_A XTAL(30'000'000) -#define CLOCK_B XTAL(19'660'800) +// TODO: NTSC system clock is 30.2098 MHz; additional 4.9152 MHz XTAL provided for UART +#define CLOCK_A 30_MHz_XTAL + +/*----------- debug defines -----------*/ + +#define VERBOSE_LEVEL (1) + +#define ENABLE_VERBOSE_LOG (0) + +#define ENABLE_UART_PRINTING (0) #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -827,7 +835,7 @@ void cdi_state::cdimono1_base(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono1_mem); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &cdi_state::cdi070_cpuspace); - MCD212(config, m_mcd212, 0); + MCD212(config, m_mcd212, CLOCK_A); m_mcd212->set_screen("screen"); m_mcd212->int1_callback().set(m_scc, FUNC(cdi68070_device::int1_w)); m_mcd212->int2_callback().set(m_scc, FUNC(cdi68070_device::int2_w)); @@ -854,7 +862,9 @@ void cdi_state::cdimono1_base(machine_config &config) CDI_68070(config, m_scc, 0, "maincpu"); m_scc->iack4_callback().set_constant(0x80); - CDI_CDIC(config, m_cdic, 0); + // IMS66490 CDIC input clocks are 22.5792 MHz and 19.3536 MHz (latter is generated by PLL circuit incorporating 19.3575 MHz XTAL) + // DSP input clock is 7.5264 MHz + CDI_CDIC(config, m_cdic, 45.1584_MHz_XTAL / 2); m_cdic->int_callback().set(m_scc, FUNC(cdi68070_device::in4_w)); CDI_SLAVE(config, m_slave_hle, 0); @@ -874,7 +884,7 @@ void cdi_state::cdimono1_base(machine_config &config) m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0); m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MK48T08(config, "mk48t08", 0); + MK48T08(config, "mk48t08"); } // CD-i model 220 (Mono-II, NTSC) @@ -884,7 +894,7 @@ void cdi_state::cdimono2(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_mem); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &cdi_state::cdi070_cpuspace); - MCD212(config, m_mcd212, 0); + MCD212(config, m_mcd212, CLOCK_A); m_mcd212->set_screen("screen"); m_mcd212->int1_callback().set(m_scc, FUNC(cdi68070_device::int1_w)); m_mcd212->int2_callback().set(m_scc, FUNC(cdi68070_device::int2_w)); @@ -911,9 +921,9 @@ void cdi_state::cdimono2(machine_config &config) MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) CDI_68070(config, m_scc, 0, "maincpu"); - M68HC05EG(config, m_servo, XTAL(4'000'000)); + M68HC05EG(config, m_servo, 4_MHz_XTAL); // FIXME: actually MC68HC05C8 m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem); - M68HC05EG(config, m_slave, XTAL(4'000'000)); + M68HC05EG(config, m_slave, 4_MHz_XTAL); // FIXME: actually MC68HC05C8 m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem); CDROM(config, "cdrom").set_interface("cdi_cdrom"); @@ -942,7 +952,7 @@ void cdi_state::cdi910(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdi910_mem); m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &cdi_state::cdi070_cpuspace); - MCD212(config, m_mcd212, 0); + MCD212(config, m_mcd212, CLOCK_A); m_mcd212->set_screen("screen"); m_mcd212->int1_callback().set(m_scc, FUNC(cdi68070_device::int1_w)); m_mcd212->int2_callback().set(m_scc, FUNC(cdi68070_device::int2_w)); @@ -969,9 +979,9 @@ void cdi_state::cdi910(machine_config &config) MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) CDI_68070(config, m_scc, 0, "maincpu"); - M68HC05EG(config, m_servo, XTAL(4'000'000)); + M68HC05EG(config, m_servo, 4_MHz_XTAL); // FIXME: actually MC68HSC05C8 m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem); - M68HC05EG(config, m_slave, XTAL(4'000'000)); + M68HC05EG(config, m_slave, 4_MHz_XTAL); // FIXME: actually MC68HSC05C8 m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem); CDROM(config, "cdrom").set_interface("cdi_cdrom"); |