diff options
Diffstat (limited to 'src/mame/drivers/tm990189.cpp')
-rw-r--r-- | src/mame/drivers/tm990189.cpp | 117 |
1 files changed, 61 insertions, 56 deletions
diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp index fff3b587eb1..2378cf81d8b 100644 --- a/src/mame/drivers/tm990189.cpp +++ b/src/mame/drivers/tm990189.cpp @@ -824,8 +824,10 @@ void tm990189_state::tm990_189_cru_map(address_map &map) MACHINE_CONFIG_START(tm990189_state::tm990_189) /* basic machine hardware */ - MCFG_TMS99xx_ADD("maincpu", TMS9980A, 2000000, tm990_189_memmap, tm990_189_cru_map) - MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(*this, tm990189_state, external_operation) ) + TMS9980A(config, m_tms9980a, 2000000); + m_tms9980a->set_addrmap(AS_PROGRAM, &tm990189_state::tm990_189_memmap); + m_tms9980a->set_addrmap(AS_IO, &tm990189_state::tm990_189_cru_map); + m_tms9980a->extop_cb().set(FUNC(tm990189_state::external_operation)); MCFG_MACHINE_START_OVERRIDE(tm990189_state, tm990_189 ) MCFG_MACHINE_RESET_OVERRIDE(tm990189_state, tm990_189 ) @@ -841,32 +843,32 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189) /* Devices */ MCFG_CASSETTE_ADD( "cassette" ) - MCFG_DEVICE_ADD(TMS9901_0_TAG, TMS9901, 2000000) - MCFG_TMS9901_P0_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led0_w) ) - MCFG_TMS9901_P1_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led1_w) ) - MCFG_TMS9901_P2_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led2_w) ) - MCFG_TMS9901_P3_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led3_w) ) - MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( *this, tm990189_state, usr9901_interrupt_callback) ) - - MCFG_DEVICE_ADD(TMS9901_1_TAG, TMS9901, 2000000) - MCFG_TMS9901_READBLOCK_HANDLER( READ8(*this, tm990189_state, sys9901_r) ) - MCFG_TMS9901_P0_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel0_w) ) - MCFG_TMS9901_P1_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel1_w) ) - MCFG_TMS9901_P2_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel2_w) ) - MCFG_TMS9901_P3_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel3_w) ) - MCFG_TMS9901_P4_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment0_w) ) - MCFG_TMS9901_P5_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment1_w) ) - MCFG_TMS9901_P6_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment2_w) ) - MCFG_TMS9901_P7_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment3_w) ) - MCFG_TMS9901_P8_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment4_w) ) - MCFG_TMS9901_P9_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment5_w) ) - MCFG_TMS9901_P10_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment6_w) ) - MCFG_TMS9901_P11_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment7_w) ) - MCFG_TMS9901_P12_HANDLER( WRITELINE( *this, tm990189_state, sys9901_dsplytrgr_w) ) - MCFG_TMS9901_P13_HANDLER( WRITELINE( *this, tm990189_state, sys9901_shiftlight_w) ) - MCFG_TMS9901_P14_HANDLER( WRITELINE( *this, tm990189_state, sys9901_spkrdrive_w) ) - MCFG_TMS9901_P15_HANDLER( WRITELINE( *this, tm990189_state, sys9901_tapewdata_w) ) - MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( *this, tm990189_state, sys9901_interrupt_callback) ) + TMS9901(config, m_tms9901_usr, 2000000); + m_tms9901_usr->p_out_cb(0).set(FUNC(tm990189_state::usr9901_led0_w)); + m_tms9901_usr->p_out_cb(1).set(FUNC(tm990189_state::usr9901_led1_w)); + m_tms9901_usr->p_out_cb(2).set(FUNC(tm990189_state::usr9901_led2_w)); + m_tms9901_usr->p_out_cb(3).set(FUNC(tm990189_state::usr9901_led3_w)); + m_tms9901_usr->intlevel_cb().set(FUNC(tm990189_state::usr9901_interrupt_callback)); + + TMS9901(config, m_tms9901_sys, 2000000); + m_tms9901_sys->read_cb().set(FUNC(tm990189_state::sys9901_r)); + m_tms9901_sys->p_out_cb(0).set(FUNC(tm990189_state::sys9901_digitsel0_w)); + m_tms9901_sys->p_out_cb(1).set(FUNC(tm990189_state::sys9901_digitsel1_w)); + m_tms9901_sys->p_out_cb(2).set(FUNC(tm990189_state::sys9901_digitsel2_w)); + m_tms9901_sys->p_out_cb(3).set(FUNC(tm990189_state::sys9901_digitsel3_w)); + m_tms9901_sys->p_out_cb(4).set(FUNC(tm990189_state::sys9901_segment0_w)); + m_tms9901_sys->p_out_cb(5).set(FUNC(tm990189_state::sys9901_segment1_w)); + m_tms9901_sys->p_out_cb(6).set(FUNC(tm990189_state::sys9901_segment2_w)); + m_tms9901_sys->p_out_cb(7).set(FUNC(tm990189_state::sys9901_segment3_w)); + m_tms9901_sys->p_out_cb(8).set(FUNC(tm990189_state::sys9901_segment4_w)); + m_tms9901_sys->p_out_cb(9).set(FUNC(tm990189_state::sys9901_segment5_w)); + m_tms9901_sys->p_out_cb(10).set(FUNC(tm990189_state::sys9901_segment6_w)); + m_tms9901_sys->p_out_cb(11).set(FUNC(tm990189_state::sys9901_segment7_w)); + m_tms9901_sys->p_out_cb(12).set(FUNC(tm990189_state::sys9901_dsplytrgr_w)); + m_tms9901_sys->p_out_cb(13).set(FUNC(tm990189_state::sys9901_shiftlight_w)); + m_tms9901_sys->p_out_cb(14).set(FUNC(tm990189_state::sys9901_spkrdrive_w)); + m_tms9901_sys->p_out_cb(15).set(FUNC(tm990189_state::sys9901_tapewdata_w)); + m_tms9901_sys->intlevel_cb().set(FUNC(tm990189_state::sys9901_interrupt_callback)); MCFG_DEVICE_ADD(m_tms9902, TMS9902, 2000000) // MZ: needs to be fixed once the RS232 support is complete MCFG_TMS9902_XMIT_CB(WRITE8(*this, tm990189_state, xmit_callback)) /* called when a character is transmitted */ @@ -879,8 +881,10 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(tm990189_state::tm990_189_v) /* basic machine hardware */ - MCFG_TMS99xx_ADD("maincpu", TMS9980A, 2000000, tm990_189_v_memmap, tm990_189_cru_map) - MCFG_TMS99xx_EXTOP_HANDLER( WRITE8(*this, tm990189_state, external_operation) ) + TMS9980A(config, m_tms9980a, 2000000); + m_tms9980a->set_addrmap(AS_PROGRAM, &tm990189_state::tm990_189_v_memmap); + m_tms9980a->set_addrmap(AS_IO, &tm990189_state::tm990_189_cru_map); + m_tms9980a->extop_cb().set(FUNC(tm990189_state::external_operation)); MCFG_MACHINE_START_OVERRIDE(tm990189_state, tm990_189_v ) MCFG_MACHINE_RESET_OVERRIDE(tm990189_state, tm990_189_v ) @@ -899,32 +903,33 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v) /* Devices */ MCFG_CASSETTE_ADD( "cassette" ) - MCFG_DEVICE_ADD(TMS9901_0_TAG, TMS9901, 2000000) - MCFG_TMS9901_P0_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led0_w) ) - MCFG_TMS9901_P1_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led1_w) ) - MCFG_TMS9901_P2_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led2_w) ) - MCFG_TMS9901_P3_HANDLER( WRITELINE( *this, tm990189_state, usr9901_led3_w) ) - MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( *this, tm990189_state, usr9901_interrupt_callback) ) - - MCFG_DEVICE_ADD(TMS9901_1_TAG, TMS9901, 2000000) - MCFG_TMS9901_READBLOCK_HANDLER( READ8(*this, tm990189_state, sys9901_r) ) - MCFG_TMS9901_P0_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel0_w) ) - MCFG_TMS9901_P1_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel1_w) ) - MCFG_TMS9901_P2_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel2_w) ) - MCFG_TMS9901_P3_HANDLER( WRITELINE( *this, tm990189_state, sys9901_digitsel3_w) ) - MCFG_TMS9901_P4_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment0_w) ) - MCFG_TMS9901_P5_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment1_w) ) - MCFG_TMS9901_P6_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment2_w) ) - MCFG_TMS9901_P7_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment3_w) ) - MCFG_TMS9901_P8_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment4_w) ) - MCFG_TMS9901_P9_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment5_w) ) - MCFG_TMS9901_P10_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment6_w) ) - MCFG_TMS9901_P11_HANDLER( WRITELINE( *this, tm990189_state, sys9901_segment7_w) ) - MCFG_TMS9901_P12_HANDLER( WRITELINE( *this, tm990189_state, sys9901_dsplytrgr_w) ) - MCFG_TMS9901_P13_HANDLER( WRITELINE( *this, tm990189_state, sys9901_shiftlight_w) ) - MCFG_TMS9901_P14_HANDLER( WRITELINE( *this, tm990189_state, sys9901_spkrdrive_w) ) - MCFG_TMS9901_P15_HANDLER( WRITELINE( *this, tm990189_state, sys9901_tapewdata_w) ) - MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( *this, tm990189_state, sys9901_interrupt_callback) ) + + TMS9901(config, m_tms9901_usr, 2000000); + m_tms9901_usr->p_out_cb(0).set(FUNC(tm990189_state::usr9901_led0_w)); + m_tms9901_usr->p_out_cb(1).set(FUNC(tm990189_state::usr9901_led1_w)); + m_tms9901_usr->p_out_cb(2).set(FUNC(tm990189_state::usr9901_led2_w)); + m_tms9901_usr->p_out_cb(3).set(FUNC(tm990189_state::usr9901_led3_w)); + m_tms9901_usr->intlevel_cb().set(FUNC(tm990189_state::usr9901_interrupt_callback)); + + TMS9901(config, m_tms9901_sys, 2000000); + m_tms9901_sys->read_cb().set(FUNC(tm990189_state::sys9901_r)); + m_tms9901_sys->p_out_cb(0).set(FUNC(tm990189_state::sys9901_digitsel0_w)); + m_tms9901_sys->p_out_cb(1).set(FUNC(tm990189_state::sys9901_digitsel1_w)); + m_tms9901_sys->p_out_cb(2).set(FUNC(tm990189_state::sys9901_digitsel2_w)); + m_tms9901_sys->p_out_cb(3).set(FUNC(tm990189_state::sys9901_digitsel3_w)); + m_tms9901_sys->p_out_cb(4).set(FUNC(tm990189_state::sys9901_segment0_w)); + m_tms9901_sys->p_out_cb(5).set(FUNC(tm990189_state::sys9901_segment1_w)); + m_tms9901_sys->p_out_cb(6).set(FUNC(tm990189_state::sys9901_segment2_w)); + m_tms9901_sys->p_out_cb(7).set(FUNC(tm990189_state::sys9901_segment3_w)); + m_tms9901_sys->p_out_cb(8).set(FUNC(tm990189_state::sys9901_segment4_w)); + m_tms9901_sys->p_out_cb(9).set(FUNC(tm990189_state::sys9901_segment5_w)); + m_tms9901_sys->p_out_cb(10).set(FUNC(tm990189_state::sys9901_segment6_w)); + m_tms9901_sys->p_out_cb(11).set(FUNC(tm990189_state::sys9901_segment7_w)); + m_tms9901_sys->p_out_cb(12).set(FUNC(tm990189_state::sys9901_dsplytrgr_w)); + m_tms9901_sys->p_out_cb(13).set(FUNC(tm990189_state::sys9901_shiftlight_w)); + m_tms9901_sys->p_out_cb(14).set(FUNC(tm990189_state::sys9901_spkrdrive_w)); + m_tms9901_sys->p_out_cb(15).set(FUNC(tm990189_state::sys9901_tapewdata_w)); + m_tms9901_sys->intlevel_cb().set(FUNC(tm990189_state::sys9901_interrupt_callback)); MCFG_DEVICE_ADD(m_tms9902, TMS9902, 2000000) // MZ: needs to be fixed once the RS232 support is complete MCFG_TMS9902_XMIT_CB(WRITE8(*this, tm990189_state, xmit_callback)) /* called when a character is transmitted */ |