summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tmc600.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tmc600.cpp')
-rw-r--r--src/mame/drivers/tmc600.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/mame/drivers/tmc600.cpp b/src/mame/drivers/tmc600.cpp
index 82ed32a6064..5dfbd56f3bf 100644
--- a/src/mame/drivers/tmc600.cpp
+++ b/src/mame/drivers/tmc600.cpp
@@ -90,7 +90,6 @@ Notes:
TODO
- - real time clock
- connect expansion bus
*/
@@ -98,6 +97,13 @@ Notes:
#include "emu.h"
#include "includes/tmc600.h"
+READ8_MEMBER( tmc600_state::rtc_r )
+{
+ m_rtc_int = m_vismac_reg_latch >> 3;
+
+ return 0;
+}
+
WRITE8_MEMBER( tmc600_state::printer_w )
{
m_centronics->write_data0(BIT(data, 0));
@@ -125,7 +131,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tmc600_io_map, AS_IO, 8, tmc600_state )
AM_RANGE(0x03, 0x03) AM_DEVWRITE(CDP1852_KB_TAG, cdp1852_device, write)
AM_RANGE(0x04, 0x04) AM_DEVWRITE(CDP1852_TMC700_TAG, cdp1852_device, write)
- AM_RANGE(0x05, 0x05) AM_WRITE(vismac_data_w)
+ AM_RANGE(0x05, 0x05) AM_READWRITE(rtc_r, vismac_data_w)
// AM_RANGE(0x06, 0x06) AM_WRITE(floppy_w)
AM_RANGE(0x07, 0x07) AM_WRITE(vismac_register_w)
ADDRESS_MAP_END
@@ -236,6 +242,13 @@ WRITE_LINE_MEMBER( tmc600_state::q_w )
m_cassette->output(state ? +1.0 : -1.0);
}
+WRITE8_MEMBER( tmc600_state::sc_w )
+{
+ if (data == COSMAC_STATE_CODE_S3_INTERRUPT) {
+ m_maincpu->int_w(CLEAR_LINE);
+ }
+}
+
/* Machine Drivers */
static MACHINE_CONFIG_START( tmc600 )
@@ -247,6 +260,7 @@ static MACHINE_CONFIG_START( tmc600 )
MCFG_COSMAC_EF2_CALLBACK(READLINE(tmc600_state, ef2_r))
MCFG_COSMAC_EF3_CALLBACK(READLINE(tmc600_state, ef3_r))
MCFG_COSMAC_Q_CALLBACK(WRITELINE(tmc600_state, q_w))
+ MCFG_COSMAC_SC_CALLBACK(WRITE8(tmc600_state, sc_w))
// sound and video hardware
MCFG_FRAGMENT_ADD(tmc600_video)