diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2020-03-24 12:16:00 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2020-03-24 12:17:18 -0400 |
commit | d1f029ca2c7e5bd1dd5119bdc3e21702506b4d4c (patch) | |
tree | f40df49e9016fbfc006efb1ce4a0b418cfcf156c /src/mame | |
parent | 36bd4c4cabe535f0da3f87b711096cad0c5579ec (diff) |
exelv.cpp: More accurate clocks (nw)
tms7000: Add divide-by-4 mask option for clocking (nw)
tms3556: Stop defaulting device clock and disable read side effects for debugging (nw)
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/drivers/exelv.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mame/drivers/exelv.cpp b/src/mame/drivers/exelv.cpp index 810f49d83e5..dbef37dc542 100644 --- a/src/mame/drivers/exelv.cpp +++ b/src/mame/drivers/exelv.cpp @@ -484,7 +484,7 @@ MACHINE_START_MEMBER( exelv_state, exeltel) void exelv_state::exl100(machine_config &config) { /* basic machine hardware */ - TMS7020_EXL(config, m_maincpu, XTAL(4'915'200)); + TMS7020_EXL(config, m_maincpu, 4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &exelv_state::tms7020_mem); m_maincpu->in_porta().set(FUNC(exelv_state::tms7020_porta_r)); m_maincpu->out_portb().set(FUNC(exelv_state::tms7020_portb_w)); @@ -492,7 +492,7 @@ void exelv_state::exl100(machine_config &config) TIMER(config, "scantimer").configure_scanline(FUNC(exelv_state::exelv_hblank_interrupt), "screen", 0, 1); MCFG_MACHINE_START_OVERRIDE(exelv_state, exl100) - tms7041_device &subcpu(TMS7041(config, "tms7041", XTAL(4'915'200))); + tms7041_device &subcpu(TMS7041(config, "tms7041", 4.9152_MHz_XTAL)); subcpu.in_porta().set(FUNC(exelv_state::tms7041_porta_r)); subcpu.out_portb().set(FUNC(exelv_state::tms7041_portb_w)); subcpu.in_portc().set(FUNC(exelv_state::tms7041_portc_r)); @@ -502,7 +502,7 @@ void exelv_state::exl100(machine_config &config) config.set_perfect_quantum(m_maincpu); - TMS3556(config, m_tms3556); + TMS3556(config, m_tms3556, 18_MHz_XTAL); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -538,7 +538,8 @@ void exelv_state::exl100(machine_config &config) void exelv_state::exeltel(machine_config &config) { /* basic machine hardware */ - TMS7040(config, m_maincpu, XTAL(4'915'200)); + TMS7040(config, m_maincpu, 9.8304_MHz_XTAL); + m_maincpu->set_divide_by_4(); m_maincpu->set_addrmap(AS_PROGRAM, &exelv_state::tms7040_mem); m_maincpu->in_porta().set(FUNC(exelv_state::tms7020_porta_r)); m_maincpu->out_portb().set(FUNC(exelv_state::tms7020_portb_w)); @@ -546,7 +547,8 @@ void exelv_state::exeltel(machine_config &config) TIMER(config, "scantimer").configure_scanline(FUNC(exelv_state::exelv_hblank_interrupt), "screen", 0, 1); MCFG_MACHINE_START_OVERRIDE(exelv_state, exeltel) - tms7042_device &subcpu(TMS7042(config, "tms7042", XTAL(4'915'200))); + tms7042_device &subcpu(TMS7042(config, "tms7042", 9.8304_MHz_XTAL)); + subcpu.set_divide_by_4(); subcpu.in_porta().set(FUNC(exelv_state::tms7041_porta_r)); subcpu.out_portb().set(FUNC(exelv_state::tms7041_portb_w)); subcpu.in_portc().set(FUNC(exelv_state::tms7041_portc_r)); @@ -556,7 +558,7 @@ void exelv_state::exeltel(machine_config &config) config.set_perfect_quantum(m_maincpu); - TMS3556(config, m_tms3556); + TMS3556(config, m_tms3556, 18_MHz_XTAL); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -579,7 +581,7 @@ void exelv_state::exeltel(machine_config &config) /* sound */ SPEAKER(config, "mono").front_center(); - TMS5220C(config, m_tms5220c, 640000); + TMS5220C(config, m_tms5220c, 9.8304_MHz_XTAL / 15); // unknown divider for "VSPCLK" (generated by TAHC06 gate array) m_tms5220c->set_speechrom_tag("vsm"); m_tms5220c->add_route(ALL_OUTPUTS, "mono", 1.00); } |