summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-12-28 07:37:02 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-12-28 07:37:02 -0500
commit47a5afd66c2b87f679e711194c518279aa94837d (patch)
tree0989238f8f80e70b715b55e77063380675408555
parent6be384820bfeedf06953b0dd2c8041c289db3ef5 (diff)
lh5801: Internalize clock divider (nw)
pc1500: Use documented XTAL value (nw)
-rw-r--r--src/devices/cpu/lh5801/lh5801.h2
-rw-r--r--src/emu/xtal.cpp1
-rw-r--r--src/mame/drivers/pc1500.cpp4
3 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/cpu/lh5801/lh5801.h b/src/devices/cpu/lh5801/lh5801.h
index ee8e54c04d2..904369a35bf 100644
--- a/src/devices/cpu/lh5801/lh5801.h
+++ b/src/devices/cpu/lh5801/lh5801.h
@@ -75,6 +75,8 @@ protected:
virtual void device_reset() override;
// device_execute_interface overrides
+ virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 2 - 1) / 2; }
+ virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); }
virtual uint32_t execute_min_cycles() const noexcept override { return 2; }
virtual uint32_t execute_max_cycles() const noexcept override { return 19; }
virtual uint32_t execute_input_lines() const noexcept override { return 2; }
diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp
index 7b8084dfb98..713911abe84 100644
--- a/src/emu/xtal.cpp
+++ b/src/emu/xtal.cpp
@@ -80,6 +80,7 @@ const double XTAL::known_xtals[] = {
2'097'152, /* 2.097152_MHz_XTAL Icatel 1995 - Brazilian public payphone */
2'457'600, /* 2.4576_MHz_XTAL Atari ST MFP */
2'500'000, /* 2.5_MHz_XTAL Janken Man units */
+ 2'600'000, /* 2.6_MHz_XTAL Sharp PC-1500 */
2'950'000, /* 2.95_MHz_XTAL Playmatic MPU-C, MPU-III & Sound-3 */
3'000'000, /* 3_MHz_XTAL Probably only used to drive 68705 or similar MCUs on 80's Taito PCBs */
3'072'000, /* 3.072_MHz_XTAL INS 8520 input clock rate */
diff --git a/src/mame/drivers/pc1500.cpp b/src/mame/drivers/pc1500.cpp
index e8985bc15f1..f36184f266b 100644
--- a/src/mame/drivers/pc1500.cpp
+++ b/src/mame/drivers/pc1500.cpp
@@ -274,7 +274,7 @@ void pc1500_state::pc1500_palette(palette_device &palette) const
void pc1500_state::pc1500(machine_config &config)
{
- LH5801(config, m_maincpu, 1300000); // 1.3 MHz
+ LH5801(config, m_maincpu, 2.6_MHz_XTAL); // 1.3 MHz internally
m_maincpu->set_addrmap(AS_PROGRAM, &pc1500_state::pc1500_mem);
m_maincpu->set_addrmap(AS_IO, &pc1500_state::pc1500_mem_io);
m_maincpu->in_func().set(FUNC(pc1500_state::pc1500_kb_r));
@@ -297,7 +297,7 @@ void pc1500_state::pc1500(machine_config &config)
ioports.portc_w().set(FUNC(pc1500_state::port_c_w));
ioports.out_int().set_inputline("maincpu", LH5801_LINE_MI);
- UPD1990A(config, m_rtc);
+ UPD1990A(config, m_rtc, 32.768_kHz_XTAL);
}