diff options
author | 2016-12-07 00:36:11 +1100 | |
---|---|---|
committer | 2016-12-07 00:36:11 +1100 | |
commit | fcbbc0a0ac3e378742246dbcc28bec7a299ee8ec (patch) | |
tree | 1a7d0b2d9214738914e48724994f68ae522cca12 | |
parent | fe8a008997c4a3028dd837a6ed064d025fb94b9c (diff) |
Aussiebyte: fixed RTC (nw)
-rw-r--r-- | src/mame/drivers/aussiebyte.cpp | 29 | ||||
-rw-r--r-- | src/mame/includes/aussiebyte.h | 4 |
2 files changed, 31 insertions, 2 deletions
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp index 97f1da87f31..aa4aa967e11 100644 --- a/src/mame/drivers/aussiebyte.cpp +++ b/src/mame/drivers/aussiebyte.cpp @@ -17,7 +17,6 @@ - Hard drive controllers and drives - Test Centronics printer - PIO connections - - RTC not working Note of MAME restrictions: - Votrax doesn't sound anything like the real thing @@ -76,7 +75,7 @@ static ADDRESS_MAP_START( aussiebyte_io, AS_IO, 8, aussiebyte_state ) AM_RANGE(0x35, 0x35) AM_WRITE(port35_w) // data to vram and aram AM_RANGE(0x36, 0x36) AM_READ(port36_r) // data from vram and aram AM_RANGE(0x37, 0x37) AM_READ(port37_r) // read dispen flag - AM_RANGE(0x40, 0x4f) AM_DEVREADWRITE("rtc", msm5832_device, data_r, data_w) + AM_RANGE(0x40, 0x4f) AM_READWRITE(rtc_r, rtc_w) ADDRESS_MAP_END /*********************************************************** @@ -224,6 +223,32 @@ READ8_MEMBER( aussiebyte_state::port28_r ) /*********************************************************** + RTC + +************************************************************/ +READ8_MEMBER( aussiebyte_state::rtc_r ) +{ + m_rtc->cs_w(1); + m_rtc->read_w(1); + m_rtc->address_w(offset); + uint8_t data = m_rtc->data_r(space,0); + m_rtc->read_w(0); + m_rtc->cs_w(0); + return data; +} + +WRITE8_MEMBER( aussiebyte_state::rtc_w ) +{ + m_rtc->cs_w(1); + m_rtc->address_w(offset); + m_rtc->data_w(space,0,data); + m_rtc->write_w(1); + m_rtc->write_w(0); + m_rtc->cs_w(0); +} + +/*********************************************************** + DMA ************************************************************/ diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h index 39b92367cdc..0ec8c3c1115 100644 --- a/src/mame/includes/aussiebyte.h +++ b/src/mame/includes/aussiebyte.h @@ -49,6 +49,7 @@ public: , m_crtc(*this, "crtc") , m_speaker(*this, "speaker") , m_votrax(*this, "votrax") + , m_rtc(*this, "rtc") {} DECLARE_READ8_MEMBER(memory_read_byte); @@ -71,6 +72,8 @@ public: DECLARE_WRITE8_MEMBER(port35_w); DECLARE_READ8_MEMBER(port36_r); DECLARE_READ8_MEMBER(port37_r); + DECLARE_READ8_MEMBER(rtc_r); + DECLARE_WRITE8_MEMBER(rtc_w); DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w); DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); DECLARE_WRITE_LINE_MEMBER(busreq_w); @@ -124,4 +127,5 @@ private: required_device<mc6845_device> m_crtc; required_device<speaker_sound_device> m_speaker; required_device<votrax_sc01_device> m_votrax; + required_device<msm5832_device> m_rtc; }; |