summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author holub <andrei.holub@gmail.com>2025-07-11 09:23:05 -0400
committer GitHub <noreply@github.com>2025-07-11 09:23:05 -0400
commitfee383013b183ce5468c3812679a0bcfd06af1cf (patch)
tree766c9042c7ed6afb81f4ceec2bcb3b286972a5ca
parente9557601830777bba7e2b79a03ac234c43203d72 (diff)
sinclair/glukrs.cpp: Updated clock to schematics defined; (#13942)
sinclair/pentevo.cpp: Removed hacks around RTC registers
-rw-r--r--src/mame/sinclair/glukrs.cpp17
-rw-r--r--src/mame/sinclair/glukrs.h2
-rw-r--r--src/mame/sinclair/pentevo.cpp18
-rw-r--r--src/mame/sinclair/tsconf.cpp2
4 files changed, 12 insertions, 27 deletions
diff --git a/src/mame/sinclair/glukrs.cpp b/src/mame/sinclair/glukrs.cpp
index cd738cc942e..becb944c2fd 100644
--- a/src/mame/sinclair/glukrs.cpp
+++ b/src/mame/sinclair/glukrs.cpp
@@ -14,18 +14,9 @@
#include "glukrs.h"
glukrs_device::glukrs_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : mc146818_device(mconfig, GLUKRS, tag, owner, clock)
+ : mc146818_device(mconfig, GLUKRS, tag, owner, 32'768)
{
- switch (clock)
- {
- case 4'194'304:
- case 1'048'576:
- m_tuc = 248;
- break;
- case 32'768:
- m_tuc = 1984;
- break;
- }
+ m_tuc = 1984;
set_24hrs(true);
}
@@ -38,8 +29,12 @@ void glukrs_device::device_start()
void glukrs_device::device_reset()
{
+ m_data[REG_A] &= ~(REG_A_DV2 | REG_A_DV1 | REG_A_DV2);
+ m_data[REG_A] |= REG_A_DV1;
mc146818_device::device_reset();
+ update_timer();
+
m_glukrs_active = false;
}
diff --git a/src/mame/sinclair/glukrs.h b/src/mame/sinclair/glukrs.h
index 2a446497cb3..f984c245e2d 100644
--- a/src/mame/sinclair/glukrs.h
+++ b/src/mame/sinclair/glukrs.h
@@ -12,7 +12,7 @@
class glukrs_device : public mc146818_device
{
public:
- glukrs_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+ glukrs_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
void enable() { m_glukrs_active = true; }
void disable() { m_glukrs_active = false; }
diff --git a/src/mame/sinclair/pentevo.cpp b/src/mame/sinclair/pentevo.cpp
index dca4537dda9..f7d71bd75e5 100644
--- a/src/mame/sinclair/pentevo.cpp
+++ b/src/mame/sinclair/pentevo.cpp
@@ -515,19 +515,9 @@ void pentevo_state::spi_miso_w(u8 data)
u8 pentevo_state::gluk_data_r(offs_t offset)
{
- if (m_glukrs->is_active())
- {
- if (m_gluk_ext == 2)
- return m_keyboard->read();
- else if (m_glukrs->address_r() == 0x0a)
- return 0x20 | (m_glukrs->data_r() & 0x0f);
- else if (m_glukrs->address_r() == 0x0b)
- return 0x02 | (m_glukrs->data_r() & 0x04);
- else if (m_glukrs->address_r() == 0x0c)
- return 0x10;
- else if (m_glukrs->address_r() == 0x0d)
- return 0x80;
- }
+ if (m_glukrs->is_active() && (m_gluk_ext == 2))
+ return m_keyboard->read();
+
return m_glukrs->data_r(); // returns 0xff if inactive
}
@@ -738,7 +728,7 @@ void pentevo_state::pentevo(machine_config &config)
m_ram->set_default_size("4M");
RAM(config, m_char_ram).set_default_size("2048").set_default_value(0);
- GLUKRS(config, m_glukrs, 4'194'304);
+ GLUKRS(config, m_glukrs);
SPI_SDCARD(config, m_sdcard, 0);
m_sdcard->set_prefer_sdhc();
m_sdcard->spi_miso_callback().set(FUNC(pentevo_state::spi_miso_w));
diff --git a/src/mame/sinclair/tsconf.cpp b/src/mame/sinclair/tsconf.cpp
index cffd9ac802f..b2e14797714 100644
--- a/src/mame/sinclair/tsconf.cpp
+++ b/src/mame/sinclair/tsconf.cpp
@@ -296,7 +296,7 @@ void tsconf_state::tsconf(machine_config &config)
m_ram->set_default_size("4096K").set_default_value(0x00); // must be random but 0x00 behaves better than 0xff in tested software
- GLUKRS(config, m_glukrs, 4'194'304);
+ GLUKRS(config, m_glukrs);
TSCONF_DMA(config, m_dma, 28_MHz_XTAL);
m_dma->in_mreq_callback().set(FUNC(tsconf_state::ram_read16));