mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
machine/mc146818.cpp: Implemented Valid RAM and Time (VRT) register.
This commit is contained in:
parent
99687dc40f
commit
b76b3922aa
@ -56,22 +56,22 @@ ds1397_device::ds1397_device(const machine_config &mconfig, const char *tag, dev
|
|||||||
}
|
}
|
||||||
|
|
||||||
mc146818_device::mc146818_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
mc146818_device::mc146818_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||||
: device_t(mconfig, type, tag, owner, clock),
|
: device_t(mconfig, type, tag, owner, clock)
|
||||||
device_nvram_interface(mconfig, *this),
|
, device_nvram_interface(mconfig, *this)
|
||||||
device_rtc_interface(mconfig, *this),
|
, device_rtc_interface(mconfig, *this)
|
||||||
m_region(*this, DEVICE_SELF),
|
, m_region(*this, DEVICE_SELF)
|
||||||
m_index(0),
|
, m_index(0)
|
||||||
m_clock_timer(nullptr),
|
, m_clock_timer(nullptr)
|
||||||
m_update_timer(nullptr),
|
, m_update_timer(nullptr)
|
||||||
m_periodic_timer(nullptr),
|
, m_periodic_timer(nullptr)
|
||||||
m_write_irq(*this),
|
, m_write_irq(*this)
|
||||||
m_write_sqw(*this),
|
, m_write_sqw(*this)
|
||||||
m_century_index(-1),
|
, m_century_index(-1)
|
||||||
m_epoch(0),
|
, m_epoch(0)
|
||||||
m_binary(false),
|
, m_binary(false)
|
||||||
m_hour(false),
|
, m_hour(false)
|
||||||
m_sqw_state(false),
|
, m_sqw_state(false)
|
||||||
m_tuc(0)
|
, m_tuc(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,6 +256,7 @@ void mc146818_device::nvram_default()
|
|||||||
bytes = data_size();
|
bytes = data_size();
|
||||||
|
|
||||||
memcpy(&m_data[0], m_region->base(), bytes);
|
memcpy(&m_data[0], m_region->base(), bytes);
|
||||||
|
m_data[REG_D] |= REG_D_VRT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -284,6 +285,8 @@ bool mc146818_device::nvram_read(util::read_stream &file)
|
|||||||
if (err || (actual != size))
|
if (err || (actual != size))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
m_data[REG_D] |= REG_D_VRT;
|
||||||
|
|
||||||
update_timer();
|
update_timer();
|
||||||
update_irq();
|
update_irq();
|
||||||
|
|
||||||
@ -663,8 +666,9 @@ uint8_t mc146818_device::internal_read(offs_t offset)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case REG_D:
|
case REG_D:
|
||||||
/* battery ok */
|
data = m_data[REG_D];
|
||||||
data = m_data[REG_D] | REG_D_VRT;
|
// valid RAM and time
|
||||||
|
m_data[REG_D] |= REG_D_VRT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user