From d4780a013583b212ae3faf6e8e78f3b378a4df52 Mon Sep 17 00:00:00 2001 From: Dirk Best Date: Mon, 14 Aug 2017 23:56:42 +0200 Subject: [PATCH] psi98: Hook up RTC --- src/mame/drivers/kdt6.cpp | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp index cbb65dbca1b..a41ee08554d 100644 --- a/src/mame/drivers/kdt6.cpp +++ b/src/mame/drivers/kdt6.cpp @@ -43,6 +43,7 @@ public: m_boot(*this, "boot"), m_palette(*this, "palette"), m_gfx(*this, "gfx"), + m_rtc(*this, "rtc"), m_fdc(*this, "fdc"), m_floppy0(*this, "fdc:0"), m_floppy1(*this, "fdc:1"), @@ -94,6 +95,7 @@ private: required_memory_region m_boot; required_device m_palette; required_region_ptr m_gfx; + required_device m_rtc; required_device m_fdc; required_device m_floppy0; required_device m_floppy1; @@ -324,8 +326,21 @@ READ8_MEMBER( kdt6_state::page1_r ) READ8_MEMBER( kdt6_state::sasi_ctrl_r ) { - logerror("sasi_ctrl_r: 0xff\n"); - return 0xff; + uint8_t data = 0; + + // 7------- sasi select + // -6------ sasi reset + // --5----- sasi input/output + // ---4---- sasi control/data + // ----3--- sasi message + // -----2-- sasi request + // ------1- sasi busy + // -------0 data output upd1990 + + data |= m_rtc->data_out_r() << 0; + data |= 0xfe; + + return data; } WRITE8_MEMBER( kdt6_state::sasi_ctrl_w ) @@ -419,7 +434,8 @@ WRITE8_MEMBER( kdt6_state::status1_w ) WRITE8_MEMBER( kdt6_state::status2_w ) { - logerror("status2_w: %02x\n", data); + if (0) + logerror("status2_w: %02x\n", data); // 7------- rtc chip select // -6------ rtc output enable @@ -429,6 +445,15 @@ WRITE8_MEMBER( kdt6_state::status2_w ) // -------0 rtc data // ----3210 memory mapper bit 0-3 + m_rtc->cs_w(BIT(data, 7)); + m_rtc->oe_w(BIT(data, 6)); + m_rtc->stb_w(BIT(data, 5)); + m_rtc->clk_w(BIT(data, 4)); + m_rtc->c2_w(BIT(data, 3)); + m_rtc->c1_w(BIT(data, 2)); + m_rtc->c0_w(BIT(data, 1)); + m_rtc->data_in_w(BIT(data, 0)); + m_status2 = data & 0x0f; } @@ -533,6 +558,8 @@ static MACHINE_CONFIG_START( psi98 ) MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_16MHz / 4) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + MCFG_UPD1990A_ADD("rtc", XTAL_32_768kHz, NOOP, NOOP) + MCFG_UPD765A_ADD("fdc", true, true) MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("ctc1", z80ctc_device, trg0)) MCFG_UPD765_DRQ_CALLBACK(WRITELINE(kdt6_state, fdc_drq_w))