8530scc: devcb2. (nw)

This commit is contained in:
Curt Coder 2014-03-17 14:16:27 +00:00
parent 6b6e43fa1c
commit 841b2cb5e9
17 changed files with 44 additions and 44 deletions

View File

@ -650,11 +650,6 @@ WRITE8_MEMBER( abc1600_state::scc_w )
m_scc->reg_w(space, A1_A2, data);
}
void abc1600_state::scc_irq(bool status)
{
m_maincpu->set_input_line(M68K_IRQ_5, status ? ASSERT_LINE : CLEAR_LINE);
}
//-------------------------------------------------
// Z8536_INTERFACE( cio_intf )
@ -926,7 +921,8 @@ static MACHINE_CONFIG_START( abc1600, abc1600_state )
MCFG_Z80DMA_ADD(Z8410AB1_1_TAG, XTAL_64MHz/16, dma1_intf)
MCFG_Z80DMA_ADD(Z8410AB1_2_TAG, XTAL_64MHz/16, dma2_intf)
MCFG_Z80DART_ADD(Z8470AB1_TAG, XTAL_64MHz/16, dart_intf)
MCFG_SCC8530_ADD(Z8530B1_TAG, XTAL_64MHz/16, line_cb_t(FUNC(abc1600_state::scc_irq), static_cast<abc1600_state *>(owner)))
MCFG_DEVICE_ADD(Z8530B1_TAG, SCC8530, XTAL_64MHz/16)
MCFG_Z8530_INTRQ_CALLBACK(INPUTLINE(MC68008P8_TAG, M68K_IRQ_5))
MCFG_DEVICE_ADD(Z8536B1_TAG, Z8536, XTAL_64MHz/16)
MCFG_Z8536_IRQ_CALLBACK(INPUTLINE(MC68008P8_TAG, M68K_IRQ_2))
MCFG_Z8536_PA_IN_CALLBACK(READ8(abc1600_state, cio_pa_r))

View File

@ -394,7 +394,7 @@ static MACHINE_CONFIG_START( apple2gs, apple2gs_state )
MCFG_IWM_ADD("fdc", apple2_fdc_interface)
/* SCC */
MCFG_SCC8530_ADD("scc", APPLE2GS_14M/2, line_cb_t())
MCFG_DEVICE_ADD("scc", SCC8530, APPLE2GS_14M/2)
MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(apple2gs_floppy525_floppy_interface,15,16)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADDITIONAL_ADD(apple2gs_floppy35_floppy_interface)

View File

@ -2378,7 +2378,7 @@ static MACHINE_CONFIG_DERIVED( megaste, ste )
MCFG_CPU_MODIFY(M68000_TAG)
MCFG_CPU_PROGRAM_MAP(megaste_map)
MCFG_RP5C15_ADD(RP5C15_TAG, XTAL_32_768kHz, rtc_intf)
MCFG_SCC8530_ADD(Z8530_TAG, Y2/4, line_cb_t())
MCFG_DEVICE_ADD(Z8530_TAG, SCC8530, Y2/4)
/* internal ram */
MCFG_RAM_MODIFY(RAM_TAG)

View File

@ -609,7 +609,7 @@ static MACHINE_CONFIG_START( ip204415, ip20_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SCC8530_ADD("scc", 7000000, line_cb_t())
MCFG_DEVICE_ADD("scc", SCC8530, 7000000)
MCFG_SCSIBUS_ADD("scsi")
MCFG_SCSIDEV_ADD("scsi:cdrom", SCSICD, SCSI_ID_6)

View File

@ -181,7 +181,7 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
MCFG_DEVICE_ADD("via6522_1", VIA6522, 500000)
MCFG_SCC8530_ADD("scc", 7833600, line_cb_t(FUNC(lisa_state::set_scc_interrupt), static_cast<lisa_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, 7833600)
MACHINE_CONFIG_END

View File

@ -950,7 +950,8 @@ static MACHINE_CONFIG_START( mac512ke, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 1000000)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1082,7 +1083,8 @@ static MACHINE_CONFIG_START( macprtb, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a_pmu))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b_pmu))
@ -1133,7 +1135,8 @@ static MACHINE_CONFIG_START( macii, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1195,7 +1198,8 @@ static MACHINE_CONFIG_START( maciifx, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1439,7 +1443,8 @@ static MACHINE_CONFIG_START( macse30, mac_state )
MCFG_SWIM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1500,7 +1505,8 @@ static MACHINE_CONFIG_START( macpb140, mac_state )
MCFG_SWIM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1581,7 +1587,8 @@ static MACHINE_CONFIG_START( macpb160, mac_state )
MCFG_SWIM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1776,7 +1783,8 @@ static MACHINE_CONFIG_START( pwrmac, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
@ -1837,7 +1845,8 @@ static MACHINE_CONFIG_START( macqd700, mac_state )
MCFG_IWM_ADD("fdc", mac_iwm_interface)
MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADD(mac_floppy_interface)
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, C7M)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(mac_state, set_scc_interrupt))
MCFG_DEVICE_ADD("via6522_0", VIA6522, C7M/10)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))

View File

@ -128,7 +128,8 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_VIA6522_CB2_HANDLER(WRITELINE(macpci_state, mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(macpci_state,mac_via_irq))
// MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(macpci_state::set_scc_interrupt), static_cast<macpci_state *>(owner)))
//MCFG_DEVICE_ADD("scc", SCC8530, C7M)
//MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(macpci_state, set_scc_interrupt))
MCFG_CUDA_ADD(CUDA_341S0060)
MCFG_CUDA_RESET_CALLBACK(WRITELINE(macpci_state, cuda_reset_w))
MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(macpci_state, cuda_adb_linechange_w))

View File

@ -737,7 +737,7 @@ void next_state::timer_start()
timer_tm->adjust(attotime::from_usec(timer_vbase));
}
void next_state::scc_irq(bool state)
WRITE_LINE_MEMBER(next_state::scc_irq)
{
irq_set(17, state);
}
@ -967,7 +967,8 @@ static MACHINE_CONFIG_START( next_base, next_state )
MCFG_NSCSI_BUS_ADD("scsibus")
MCFG_MCCS1850_ADD("rtc", XTAL_32_768kHz,
line_cb_t(), line_cb_t(), line_cb_t())
MCFG_SCC8530_ADD("scc", XTAL_25MHz, line_cb_t(FUNC(next_state::scc_irq), static_cast<next_state *>(owner)))
MCFG_DEVICE_ADD("scc", SCC8530, XTAL_25MHz)
MCFG_Z8530_INTRQ_CALLBACK(WRITELINE(next_state, scc_irq))
MCFG_NEXTKBD_ADD("keyboard",
line_cb_t(FUNC(next_state::keyboard_irq), static_cast<next_state *>(owner)),
line_cb_t(FUNC(next_state::power_irq), static_cast<next_state *>(owner)),

View File

@ -1927,7 +1927,7 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base )
MCFG_HD63450_ADD( "hd63450", dmac_interface )
MCFG_SCC8530_ADD( "scc", 5000000, line_cb_t() )
MCFG_DEVICE_ADD( "scc", SCC8530, 5000000 )
MCFG_RP5C15_ADD(RP5C15_TAG, XTAL_32_768kHz, rtc_intf)

View File

@ -138,8 +138,6 @@ public:
void update_drdy1();
void update_drdy2();
void scc_irq(bool status);
// DMA
int m_dmadis;
int m_sysscc;

View File

@ -196,7 +196,6 @@ public:
DECLARE_READ16_MEMBER(lisa_IO_r);
DECLARE_WRITE16_MEMBER(lisa_IO_w);
void set_scc_interrupt(bool value);
DECLARE_DRIVER_INIT(lisa210);
DECLARE_DRIVER_INIT(mac_xl);
DECLARE_DRIVER_INIT(lisa2);

View File

@ -323,7 +323,7 @@ public:
void set_memory_overlay(int overlay);
void scc_mouse_irq( int x, int y );
void nubus_slot_interrupt(UINT8 slot, UINT32 state);
void set_scc_interrupt(bool value);
DECLARE_WRITE_LINE_MEMBER(set_scc_interrupt);
void set_via_interrupt(int value);
void set_via2_interrupt(int value);
void field_interrupts();

View File

@ -94,7 +94,7 @@ public:
UINT32 eventc_latch;
void scc_irq(bool state);
DECLARE_WRITE_LINE_MEMBER(scc_irq);
void keyboard_irq(bool state);
void power_irq(bool state);
void nmi_irq(bool state);

View File

@ -23,14 +23,12 @@ const device_type SCC8530 = &device_creator<scc8530_t>;
IMPLEMENTATION
***************************************************************************/
scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, SCC8530, "Zilog 8530 SCC", tag, owner, clock, "scc8530", __FILE__)
scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, SCC8530, "Zilog 8530 SCC", tag, owner, clock, "scc8530", __FILE__),
intrq_cb(*this)
{
}
void scc8530_t::set_intrq_cb(line_cb_t cb)
{
intrq_cb = cb;
}
/*-------------------------------------------------
scc_updateirqs
@ -158,6 +156,8 @@ void scc8530_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo
void scc8530_t::device_start()
{
intrq_cb.resolve();
memset(channel, 0, sizeof(channel));
mode = 0;

View File

@ -9,9 +9,8 @@
#ifndef __8530SCC_H__
#define __8530SCC_H__
#define MCFG_SCC8530_ADD(_tag, _clock, _intrq_cb) \
MCFG_DEVICE_ADD(_tag, SCC8530, _clock) \
downcast<scc8530_t *>(device)->set_intrq_cb(_intrq_cb);
#define MCFG_Z8530_INTRQ_CALLBACK(_write) \
devcb = &scc8530_t::set_intrq_wr_callback(*device, DEVCB2_##_write);
class scc8530_t : public device_t
{
@ -29,7 +28,8 @@ public:
};
scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
void set_intrq_cb(line_cb_t cb);
template<class _Object> static devcb2_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast<scc8530_t &>(device).intrq_cb.set_callback(object); }
UINT8 get_reg_a(int reg);
UINT8 get_reg_b(int reg);
@ -81,7 +81,7 @@ private:
Chan channel[2];
line_cb_t intrq_cb;
devcb2_write_line intrq_cb;
void updateirqs();
void initchannel(int ch);

View File

@ -1932,7 +1932,3 @@ WRITE16_MEMBER(lisa_state::lisa_IO_w)
break;
}
}
void lisa_state::set_scc_interrupt(bool value)
{
}

View File

@ -242,9 +242,9 @@ void mac_state::field_interrupts()
}
}
void mac_state::set_scc_interrupt(bool value)
WRITE_LINE_MEMBER(mac_state::set_scc_interrupt)
{
m_scc_interrupt = value;
m_scc_interrupt = state;
this->field_interrupts();
}