From 47a5afd66c2b87f679e711194c518279aa94837d Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 28 Dec 2019 07:37:02 -0500 Subject: [PATCH] lh5801: Internalize clock divider (nw) pc1500: Use documented XTAL value (nw) --- src/devices/cpu/lh5801/lh5801.h | 2 ++ src/emu/xtal.cpp | 1 + src/mame/drivers/pc1500.cpp | 4 ++-- 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); }