replaced read rx callback in Z80DART (and clones) with a write handler, which allows multiple chips to be connected together without using glue methods. [smf]

This commit is contained in:
smf- 2013-12-22 22:05:13 +00:00
parent f3a8aceab4
commit 25b08cec6b
49 changed files with 339 additions and 224 deletions

View File

@ -97,15 +97,17 @@ static Z80DART_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -66,15 +66,17 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -92,15 +94,17 @@ static Z80DART_INTERFACE( dart_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -166,16 +166,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -166,13 +166,11 @@ void z80dart_device::device_config_complete()
{
m_rxca = m_txca = m_rxcb = m_txcb = 0;
memset(&m_in_rxda_cb, 0, sizeof(m_in_rxda_cb));
memset(&m_out_txda_cb, 0, sizeof(m_out_txda_cb));
memset(&m_out_dtra_cb, 0, sizeof(m_out_dtra_cb));
memset(&m_out_rtsa_cb, 0, sizeof(m_out_rtsa_cb));
memset(&m_out_wrdya_cb, 0, sizeof(m_out_wrdya_cb));
memset(&m_out_synca_cb, 0, sizeof(m_out_synca_cb));
memset(&m_in_rxdb_cb, 0, sizeof(m_in_rxdb_cb));
memset(&m_out_txdb_cb, 0, sizeof(m_out_txdb_cb));
memset(&m_out_dtrb_cb, 0, sizeof(m_out_dtrb_cb));
memset(&m_out_rtsb_cb, 0, sizeof(m_out_rtsb_cb));
@ -200,7 +198,6 @@ void z80dart_device::device_start()
m_chanA->m_rxc = m_rxca;
m_chanA->m_txc = m_txca;
m_chanA->m_in_rxd_cb = m_in_rxda_cb;
m_chanA->m_out_txd_cb = m_out_txda_cb;
m_chanA->m_out_dtr_cb = m_out_dtra_cb;
m_chanA->m_out_rts_cb = m_out_rtsa_cb;
@ -213,8 +210,6 @@ void z80dart_device::device_start()
m_chanB->m_rxc = m_rxcb;
m_chanB->m_txc = m_txcb;
m_chanB->m_in_rxd_cb = m_in_rxdb_cb;
m_chanB->m_in_rxd_cb = m_in_rxdb_cb;
m_chanB->m_out_txd_cb = m_out_txdb_cb;
m_chanB->m_out_dtr_cb = m_out_dtrb_cb;
m_chanB->m_out_rts_cb = m_out_rtsb_cb;
@ -509,7 +504,6 @@ void z80dart_channel::device_start()
m_index = m_uart->get_channel_index(this);
// resolve callbacks
m_in_rxd_func.resolve(m_in_rxd_cb, *m_uart);
m_out_txd_func.resolve(m_out_txd_cb, *m_uart);
m_out_dtr_func.resolve(m_out_dtr_cb, *m_uart);
m_out_rts_func.resolve(m_out_rts_cb, *m_uart);
@ -654,10 +648,7 @@ void z80dart_channel::rcv_callback()
{
if (m_wr[3] & WR3_RX_ENABLE)
{
if (m_in_rxd_func.isnull())
receive_register_update_bit(get_in_data_bit());
else
receive_register_update_bit(m_in_rxd_func());
receive_register_update_bit(get_in_data_bit());
}
}
@ -1331,3 +1322,21 @@ void z80dart_channel::set_rts(int state)
serial_connection_out();
}
//-------------------------------------------------
// write_rx -
//-------------------------------------------------
WRITE_LINE_MEMBER(z80dart_channel::write_rx)
{
if (state)
{
input_callback(m_input_state | RX);
}
else
{
input_callback(m_input_state & ~RX);
}
}

View File

@ -218,14 +218,12 @@ struct z80dart_interface
int m_rxcb;
int m_txcb;
devcb_read_line m_in_rxda_cb;
devcb_write_line m_out_txda_cb;
devcb_write_line m_out_dtra_cb;
devcb_write_line m_out_rtsa_cb;
devcb_write_line m_out_wrdya_cb;
devcb_write_line m_out_synca_cb;
devcb_read_line m_in_rxdb_cb;
devcb_write_line m_out_txdb_cb;
devcb_write_line m_out_dtrb_cb;
devcb_write_line m_out_rtsb_cb;
@ -272,6 +270,7 @@ public:
void receive_data(UINT8 data);
DECLARE_WRITE_LINE_MEMBER( write_rx );
DECLARE_WRITE_LINE_MEMBER( cts_w );
DECLARE_WRITE_LINE_MEMBER( dcd_w );
DECLARE_WRITE_LINE_MEMBER( ri_w );
@ -279,7 +278,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( txc_w );
DECLARE_WRITE_LINE_MEMBER( sync_w );
devcb_read_line m_in_rxd_cb;
devcb_write_line m_out_txd_cb;
devcb_write_line m_out_dtr_cb;
devcb_write_line m_out_rts_cb;
@ -437,7 +435,6 @@ protected:
int get_rx_word_length();
int get_tx_word_length();
devcb_resolved_read_line m_in_rxd_func;
devcb_resolved_write_line m_out_txd_func;
devcb_resolved_write_line m_out_dtr_func;
devcb_resolved_write_line m_out_rts_func;
@ -497,6 +494,8 @@ public:
// interrupt acknowledge
int m1_r();
DECLARE_WRITE_LINE_MEMBER( rxa_w ) { m_chanA->write_rx(state); }
DECLARE_WRITE_LINE_MEMBER( rxb_w ) { m_chanB->write_rx(state); }
DECLARE_WRITE_LINE_MEMBER( ctsa_w ) { m_chanA->cts_w(state); }
DECLARE_WRITE_LINE_MEMBER( ctsb_w ) { m_chanB->cts_w(state); }
DECLARE_WRITE_LINE_MEMBER( dcda_w ) { m_chanA->dcd_w(state); }

View File

@ -616,21 +616,23 @@ static Z80DART_INTERFACE( dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, rxd_r),
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(MC68008P8_TAG, M68K_IRQ_5) // shared with SCC
DEVCB_CPU_INPUT_LINE(MC68008P8_TAG, M68K_IRQ_5), // shared with SCC
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -952,9 +954,17 @@ static MACHINE_CONFIG_START( abc1600, abc1600_state )
MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":0", abc1600_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":1", abc1600_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":2", abc1600_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_ABC_KEYBOARD_PORT_ADD("abc99", DEVWRITELINE(Z8470AB1_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z8470AB1_TAG, z80dart_device, dcdb_w))
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z8470AB1_TAG, z80dart_device, rxa_w))
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc99")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(DEVWRITELINE(Z8470AB1_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(DEVWRITELINE(Z8470AB1_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(DEVWRITELINE(Z8470AB1_TAG, z80dart_device, dcdb_w))
MCFG_ABCBUS_SLOT_ADD("bus0i", abc1600bus_cards, NULL)
MCFG_ABCBUS_SLOT_IRQ_CALLBACK(DEVWRITELINE(Z8536B1_TAG, z8536_device, pa7_w))
MCFG_ABCBUS_SLOT_ADD("bus0x", abc1600bus_cards, NULL)

View File

@ -700,11 +700,6 @@ void abc800_state::clock_cassette(int state)
m_ctc_z0 = state;
}
READ_LINE_MEMBER( abc800_state::sio_rxdb_r )
{
return m_sio_rxdb;
}
WRITE_LINE_MEMBER( abc800_state::sio_txdb_w )
{
m_sio_txdb = state;
@ -742,21 +737,23 @@ static Z80SIO_INTERFACE( sio_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(abc800_state, sio_rxdb_r),
DEVCB_DRIVER_LINE_MEMBER(abc800_state, sio_txdb_w),
DEVCB_DRIVER_LINE_MEMBER(abc800_state, sio_dtrb_w),
DEVCB_DRIVER_LINE_MEMBER(abc800_state, sio_rtsb_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -768,21 +765,23 @@ static Z80DART_INTERFACE( abc800_dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, rxd_r),
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -806,21 +805,23 @@ static Z80DART_INTERFACE( abc802_dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, rxd_r),
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w),
DEVCB_DRIVER_LINE_MEMBER(abc802_state, lrs_w),
DEVCB_DRIVER_LINE_MEMBER(abc802_state, mux80_40_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -839,21 +840,22 @@ static Z80DART_INTERFACE( abc806_dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, rxd_r),
DEVCB_DEVICE_LINE_MEMBER(ABC_KEYBOARD_PORT_TAG, abc_keyboard_port_device, txd_w),
DEVCB_DRIVER_LINE_MEMBER(abc806_state, keydtr_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -913,7 +915,7 @@ void abc800_state::device_timer(emu_timer &timer, device_timer_id id, int param,
if (m_dfd_in && !dfd_in)
{
m_sio_rxdb = !(m_tape_ctr == 15);
m_sio->rxb_w(!(m_tape_ctr == 15));
}
if (!dfd_in && (m_tape_ctr == 15))
@ -947,9 +949,6 @@ void abc800_state::machine_start()
save_item(NAME(m_pling));
save_item(NAME(m_sb));
save_item(NAME(m_ctc_z0));
save_item(NAME(m_sio_rxdb));
save_item(NAME(m_sio_rxcb));
save_item(NAME(m_sio_txcb));
save_item(NAME(m_sio_txdb));
save_item(NAME(m_sio_rtsb));
save_item(NAME(m_dfd_out));
@ -996,9 +995,6 @@ void abc802_state::machine_start()
save_item(NAME(m_pling));
save_item(NAME(m_sb));
save_item(NAME(m_ctc_z0));
save_item(NAME(m_sio_rxdb));
save_item(NAME(m_sio_rxcb));
save_item(NAME(m_sio_txcb));
save_item(NAME(m_sio_txdb));
save_item(NAME(m_sio_rtsb));
save_item(NAME(m_dfd_out));
@ -1068,9 +1064,6 @@ void abc806_state::machine_start()
save_item(NAME(m_fetch_charram));
save_item(NAME(m_map));
save_item(NAME(m_ctc_z0));
save_item(NAME(m_sio_rxdb));
save_item(NAME(m_sio_rxcb));
save_item(NAME(m_sio_txcb));
save_item(NAME(m_sio_txdb));
save_item(NAME(m_sio_rtsb));
save_item(NAME(m_dfd_out));
@ -1149,14 +1142,19 @@ static MACHINE_CONFIG_START( abc800c, abc800c_state )
MCFG_CASSETTE_ADD("cassette", cass_intf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
MCFG_ABC_KEYBOARD_PORT_ADD("abc800", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc800")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
// ABC bus
MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc830")
@ -1199,14 +1197,19 @@ static MACHINE_CONFIG_START( abc800m, abc800m_state )
MCFG_CASSETTE_ADD("cassette", cass_intf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
MCFG_ABC_KEYBOARD_PORT_ADD("abc800", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc800")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
// ABC bus
MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc830")
@ -1249,14 +1252,19 @@ static MACHINE_CONFIG_START( abc802, abc802_state )
MCFG_CASSETTE_ADD("cassette", cass_intf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
MCFG_ABC_KEYBOARD_PORT_ADD("abc55", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc55")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
// ABC bus
MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc834")
@ -1292,14 +1300,19 @@ static MACHINE_CONFIG_START( abc806, abc806_state )
MCFG_Z80DART_ADD(Z80DART_TAG, ABC800_X01/2/2, abc806_dart_intf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
MCFG_ABC_KEYBOARD_PORT_ADD("abc77", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, "abc77")
MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w))
// ABC bus
MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "abc832")

View File

@ -382,7 +382,6 @@ static Z80DART_INTERFACE( dart_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
// printer
DEVCB_NULL,
@ -390,7 +389,6 @@ static Z80DART_INTERFACE( dart_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0),
DEVCB_NULL,
@ -405,7 +403,6 @@ static Z80SIO_INTERFACE( sio_intf )
0, 0, 0, 0,
// console#2
DEVCB_NULL, // ChA in data
DEVCB_NULL, // out data
DEVCB_NULL, // DTR
DEVCB_NULL, // RTS
@ -413,7 +410,6 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL, // SYNC
// console#1
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, rts_w),
@ -501,6 +497,7 @@ static MACHINE_CONFIG_START( altos5, altos5_state )
MCFG_Z80SIO0_ADD("z80sio", XTAL_8MHz / 2, sio_intf )
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE("z80sio", z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE("z80sio", z80dart_device, dcdb_w))
MCFG_RS232_OUT_RI_HANDLER(DEVWRITELINE("z80sio", z80dart_device, rib_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE("z80sio", z80dart_device, ctsb_w))

View File

@ -122,14 +122,12 @@ static Z80DART_INTERFACE( dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL, // ChB in data
DEVCB_NULL, // out data
DEVCB_NULL, // DTR
DEVCB_NULL, // RTS
@ -201,6 +199,8 @@ static MACHINE_CONFIG_START( ampro, ampro_state )
MCFG_Z80CTC_ADD( "z80ctc", XTAL_16MHz / 4, ctc_intf )
MCFG_Z80DART_ADD("z80dart", XTAL_16MHz / 4, dart_intf )
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE("z80dart", z80dart_device, rxa_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc_tick", ampro_state, ctc_tick, attotime::from_hz(XTAL_16MHz / 8))
MCFG_WD1772x_ADD("fdc", XTAL_16MHz / 2)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ampro_floppies, "525dd", floppy_image_device::default_floppy_formats)

View File

@ -190,7 +190,6 @@ static Z80SIO_INTERFACE( apricot_z80sio_intf )
XTAL_4MHz / 16, XTAL_4MHz / 16,
// channel a
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, rts_w),
@ -199,7 +198,6 @@ static Z80SIO_INTERFACE( apricot_z80sio_intf )
// channel b
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(apricot_state, data_selector_dtr_w),
DEVCB_DRIVER_LINE_MEMBER(apricot_state, data_selector_rts_w),
DEVCB_NULL,
@ -408,6 +406,7 @@ static MACHINE_CONFIG_START( apricot, apricot_state )
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, NULL)
// note: missing a receive clock callback to support external clock mode
// (m_data_selector_rts == 1 and m_data_selector_dtr == 0)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE("ic15", z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE("ic15", z80dart_device, dcda_w))
MCFG_RS232_OUT_DSR_HANDLER(DEVWRITELINE("ic15", z80dart_device, synca_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE("ic15", z80dart_device, ctsa_w))

View File

@ -245,16 +245,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(f1_state, sio_int_w)
DEVCB_DRIVER_LINE_MEMBER(f1_state, sio_int_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -488,16 +488,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w)
DEVCB_DEVICE_LINE_MEMBER(I8259A_TAG, pic8259_device, ir4_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -900,15 +900,17 @@ static Z80SIO_INTERFACE( sio_interface )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -431,16 +431,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(bigbord2_state, bigbord2_interrupt)
DEVCB_DRIVER_LINE_MEMBER(bigbord2_state, bigbord2_interrupt),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -760,21 +760,23 @@ static Z80DART_INTERFACE( dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_DRIVER_LINE_MEMBER(bullet_state, dartardy_w),
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_DRIVER_LINE_MEMBER(bullet_state, dartbrdy_w),
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -1220,9 +1222,13 @@ static MACHINE_CONFIG_START( bullet, bullet_state )
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":6", bullet_8_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":7", bullet_8_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
// software lists
MCFG_SOFTWARE_LIST_ADD("flop_list", "wmbullet")
@ -1262,9 +1268,13 @@ static MACHINE_CONFIG_START( bulletf, bulletf_state )
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":8", bullet_35_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":9", bullet_35_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_SCSIBUS_ADD(SCSIBUS_TAG)
MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0)

View File

@ -450,21 +450,23 @@ static Z80SIO_INTERFACE( sio_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/* PIT8253 Interface */
@ -654,10 +656,12 @@ static MACHINE_CONFIG_START( common, bw12_state )
MCFG_AY3600_ADD(AY3600PRO002_TAG, 0, bw12_ay3600_intf)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, dcdb_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80dart_device, ctsb_w))

View File

@ -641,21 +641,23 @@ static I8274_INTERFACE( mpsc_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(I80186_TAG, i80186_cpu_device, int3_w)
DEVCB_DEVICE_LINE_MEMBER(I80186_TAG, i80186_cpu_device, int3_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -762,10 +764,12 @@ static MACHINE_CONFIG_START( compis, compis_state )
MCFG_CASSETTE_ADD(CASSETTE_TAG, compis_cassette_interface)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, dcdb_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(I8274_TAG, z80dart_device, ctsb_w))

View File

@ -284,9 +284,9 @@ static Z80PIO_INTERFACE( pio2_intf )
/* Z80-SIO Interface */
READ_LINE_MEMBER(amu880_state::cassette_r)
TIMER_DEVICE_CALLBACK_MEMBER( amu880_state::tape_tick )
{
return m_cassette->input() < 0.0;
m_z80sio->rxa_w(m_cassette->input() < 0.0);
}
WRITE_LINE_MEMBER(amu880_state::cassette_w)
@ -298,7 +298,6 @@ static Z80SIO_INTERFACE( sio_intf )
{
0, 0, 0, 0,
DEVCB_DRIVER_LINE_MEMBER(amu880_state, cassette_r),
DEVCB_DRIVER_LINE_MEMBER(amu880_state, cassette_w),
DEVCB_NULL,
DEVCB_NULL,
@ -310,9 +309,12 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/* Z80 Daisy Chain */
@ -409,6 +411,7 @@ static MACHINE_CONFIG_START( amu880, amu880_state )
MCFG_Z80SIO0_ADD(Z80SIO_TAG, XTAL_10MHz/4, sio_intf) // U856
MCFG_CASSETTE_ADD("cassette", amu880_cassette_interface)
MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", amu880_state, tape_tick, attotime::from_hz(44100))
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)

View File

@ -137,6 +137,11 @@ static const serial_terminal_interface terminal_intf =
DEVCB_DEVICE_LINE_MEMBER("uart8251", i8251_device, write_rx)
};
static const serial_terminal_interface isbc_terminal_intf =
{
DEVCB_DEVICE_LINE_MEMBER("uart8274", z80dart_device, rxb_w)
};
static const struct pit8253_interface isbc86_pit_config =
{
{
@ -228,21 +233,23 @@ static I8274_INTERFACE(isbc_uart8274_interface)
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("rs232", serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER("rs232", rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("terminal", serial_terminal_device, tx_r),
DEVCB_DEVICE_LINE_MEMBER("terminal", serial_terminal_device, rx_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("pic_0", pic8259_device, ir6_w)
DEVCB_DEVICE_LINE_MEMBER("pic_0", pic8259_device, ir6_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static const i8251_interface isbc_uart8251_interface =
@ -316,6 +323,7 @@ static MACHINE_CONFIG_START( isbc286, isbc_state )
MCFG_I8274_ADD("uart8274", XTAL_16MHz/4, isbc_uart8274_interface)
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE("uart8274", z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE("uart8274", z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE("uart8274", z80dart_device, ctsa_w))
@ -330,7 +338,7 @@ static MACHINE_CONFIG_START( isbc286, isbc_state )
MCFG_ISBC_215_IRQ(DEVWRITELINE("pic_0", pic8259_device, ir5_w))
/* video hardware */
MCFG_SERIAL_TERMINAL_ADD("terminal", terminal_intf, 9600)
MCFG_SERIAL_TERMINAL_ADD("terminal", isbc_terminal_intf, 9600)
MCFG_DEVICE_INPUT_DEFAULTS(isbc286_terminal)
MACHINE_CONFIG_END

View File

@ -628,7 +628,6 @@ static UPD7201_INTERFACE( mpsc_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
@ -640,7 +639,6 @@ static UPD7201_INTERFACE( mpsc_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(mm1_state, drq2_w), // receive DRQ
@ -756,7 +754,10 @@ static MACHINE_CONFIG_START( mm1, mm1_state )
MCFG_UPD7201_ADD(UPD7201_TAG, XTAL_6_144MHz/2, mpsc_intf)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", mm1_floppies, "525qd", mm1_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", mm1_floppies, "525qd", mm1_state::floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_RS232_PORT_ADD(RS232_C_TAG, default_rs232_devices, NULL)

View File

@ -260,16 +260,18 @@ static Z80DART_INTERFACE( dart_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/*-------------------------------------------------

View File

@ -2120,15 +2120,17 @@ static Z80SIO_INTERFACE( mz2500_sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -168,16 +168,18 @@ static Z80SIO_INTERFACE( sio1_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(nanos_state, z80daisy_interrupt)
DEVCB_DRIVER_LINE_MEMBER(nanos_state, z80daisy_interrupt),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static Z80SIO_INTERFACE( sio2_intf )
@ -189,16 +191,18 @@ static Z80SIO_INTERFACE( sio2_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(nanos_state, z80daisy_interrupt)
DEVCB_DRIVER_LINE_MEMBER(nanos_state, z80daisy_interrupt),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/* Z80 Daisy Chain */

View File

@ -464,16 +464,18 @@ static Z80SIO_INTERFACE( osbexec_sio_config )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL //DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_NULL, //DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -278,15 +278,17 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -465,26 +465,28 @@ static UPD7201_INTERFACE(qx10_upd7201_interface)
{
0, 0, 0, 0, // channel b clock set by pit2 channel 2
DEVCB_DEVICE_LINE_MEMBER("kbd", serial_keyboard_device, tx_r),
DEVCB_DEVICE_LINE_MEMBER("kbd", serial_keyboard_device, rx_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(qx10_state, keyboard_irq)
DEVCB_DRIVER_LINE_MEMBER(qx10_state, keyboard_irq),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static struct serial_keyboard_interface qx10_keyboard_interface =
{
DEVCB_NULL
DEVCB_DEVICE_LINE_MEMBER("upd7201", z80dart_device, rxa_w)
};
WRITE_LINE_MEMBER(qx10_state::keyboard_irq)
@ -874,7 +876,10 @@ static MACHINE_CONFIG_START( qx10, qx10_state )
MCFG_UPD765A_ADD("upd765", true, true)
MCFG_FLOPPY_DRIVE_ADD("upd765:0", qx10_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("upd765:1", qx10_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE("upd7201", upd7201_device, rxb_w))
MCFG_QX10_KEYBOARD_ADD("kbd", qx10_keyboard_interface)
/* internal ram */

View File

@ -280,15 +280,17 @@ static Z80SIO_INTERFACE( rt1715_sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -371,21 +371,23 @@ static Z80DART_INTERFACE( dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -561,9 +563,13 @@ static MACHINE_CONFIG_START( super6, super6_state )
MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, NULL, WRITELINE(super6_state, fr_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
// internal ram
MCFG_RAM_ADD(RAM_TAG)

View File

@ -276,21 +276,23 @@ static Z80DART_INTERFACE( dart0_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -302,21 +304,23 @@ static Z80DART_INTERFACE( dart1_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_C_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_C_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_C_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_C_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_D_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_D_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_D_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_D_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
@ -403,19 +407,23 @@ static MACHINE_CONFIG_START( superslave, superslave_state )
MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, NULL, WRITELINE(superslave_state, fr_w), WRITELINE(superslave_state, ft_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, "serial_terminal")
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, ctsa_w))
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, dcdb_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_0_TAG, z80dart_device, ctsb_w))
MCFG_RS232_PORT_ADD(RS232_C_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_D_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, dcdb_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(Z80DART_1_TAG, z80dart_device, ctsb_w))

View File

@ -296,15 +296,17 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -468,21 +468,22 @@ static Z80DART_INTERFACE( dart_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/* Z80-PIO Interface */
@ -707,8 +708,13 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state )
MCFG_FD1797x_ADD(FD1797_TAG, XTAL_8MHz/8) // FD1767PL-02 or FD1797-PL
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", tiki100_floppies, "525qd", tiki100_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", tiki100_floppies, "525qd", tiki100_state::floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics)
MCFG_CASSETTE_ADD(CASSETTE_TAG, cassette_intf)
MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", tiki100_state, tape_tick, attotime::from_hz(44100))

View File

@ -649,16 +649,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -380,14 +380,12 @@ static UPD7201_INTERFACE( mpsc_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
@ -1254,11 +1252,13 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
MCFG_FLOPPY_DRIVE_ADD(I8048_TAG":1", victor9k_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxa_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, dcda_w))
MCFG_RS232_OUT_RI_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, ria_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, ctsa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rxb_w))
MCFG_RS232_OUT_DCD_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, dcdb_w))
MCFG_RS232_OUT_RI_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, rib_w))
MCFG_RS232_OUT_CTS_HANDLER(DEVWRITELINE(UPD7201_TAG, z80dart_device, ctsb_w))

View File

@ -2284,16 +2284,18 @@ static Z80SIO_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("x1_cpu", INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE("x1_cpu", INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
static const z80_daisy_config x1_daisy[] =

View File

@ -450,16 +450,18 @@ static Z80DART_INTERFACE( sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE("x1_cpu", INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE("x1_cpu", INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -423,21 +423,23 @@ static Z80SIO_INTERFACE( sio_intf )
{
0, 0, 0, 0,
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w),
DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0)
DEVCB_CPU_INPUT_LINE(Z80_TAG, INPUT_LINE_IRQ0),
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};
/* Z80 CTC */
@ -702,8 +704,13 @@ static MACHINE_CONFIG_START( xerox820, xerox820_state )
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xerox820_state, fr_w), DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80sio0_device, rxa_w))
MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80sio0_device, rxb_w))
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
/* internal ram */

View File

@ -45,6 +45,7 @@
#define BUS2_TAG "bus2"
#define RS232_A_TAG "rs232a"
#define RS232_B_TAG "rs232b"
#define ABC_KEYBOARD_PORT_TAG "kb"

View File

@ -61,6 +61,7 @@
#define DISCRETE_TAG "discrete"
#define RS232_A_TAG "rs232a"
#define RS232_B_TAG "rs232b"
#define ABC_KEYBOARD_PORT_TAG "kb"
//**************************************************************************
@ -86,7 +87,6 @@ public:
m_char_ram(*this, "char_ram"),
m_io_sb(*this, "SB"),
m_ctc_z0(0),
m_sio_rxdb(1),
m_sio_txcb(0),
m_sio_txdb(1),
m_sio_rtsb(1),
@ -123,7 +123,6 @@ public:
void clock_cassette(int state);
DECLARE_READ8_MEMBER( pling_r );
DECLARE_READ_LINE_MEMBER( keyboard_txd_r );
DECLARE_READ8_MEMBER( keyboard_col_r );
DECLARE_WRITE8_MEMBER( keyboard_row_w );
DECLARE_WRITE8_MEMBER( keyboard_ctrl_w );
@ -133,7 +132,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( ctc_z0_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z1_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
DECLARE_READ_LINE_MEMBER( sio_rxdb_r );
DECLARE_WRITE_LINE_MEMBER( sio_txdb_w );
DECLARE_WRITE_LINE_MEMBER( sio_dtrb_w );
DECLARE_WRITE_LINE_MEMBER( sio_rtsb_w );
@ -151,8 +149,6 @@ public:
// serial state
UINT8 m_sb;
int m_ctc_z0;
int m_sio_rxdb;
int m_sio_rxcb;
int m_sio_txcb;
int m_sio_txdb;
int m_sio_rtsb;

View File

@ -25,6 +25,7 @@ public:
amu880_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_cassette(*this, "cassette"),
m_z80sio(*this, Z80SIO_TAG),
m_kb_rom(*this, "keyboard"),
m_char_rom(*this, "chargen"),
m_video_ram(*this, "video_ram"),
@ -51,6 +52,7 @@ public:
{ }
required_device<cassette_image_device> m_cassette;
required_device<z80dart_device> m_z80sio;
required_memory_region m_kb_rom;
required_memory_region m_char_rom;
required_shared_ptr<UINT8> m_video_ram;
@ -77,6 +79,7 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_READ8_MEMBER( keyboard_r );
TIMER_DEVICE_CALLBACK_MEMBER( tape_tick );
void scan_keyboard();

View File

@ -383,6 +383,8 @@ inline void abc77_device::serial_output(int state)
if (m_txd != state)
{
m_txd = state;
m_slot->write_rx(m_txd);
}
}
@ -526,16 +528,6 @@ void abc77_device::device_timer(emu_timer &timer, device_timer_id id, int param,
}
//-------------------------------------------------
// rxd_r -
//-------------------------------------------------
int abc77_device::rxd_r()
{
return m_txd;
}
//-------------------------------------------------
// txd_w -
//-------------------------------------------------

View File

@ -42,7 +42,6 @@ public:
virtual ioport_constructor device_input_ports() const;
// abc_keyboard_interface overrides
virtual int rxd_r();
virtual void txd_w(int state);
DECLARE_INPUT_CHANGED_MEMBER( keyboard_reset );

View File

@ -293,6 +293,8 @@ inline void abc800_keyboard_device::serial_output(int state)
if (m_txd != state)
{
m_txd = state;
m_slot->write_rx(m_txd);
}
}
@ -396,16 +398,6 @@ void abc800_keyboard_device::device_timer(emu_timer &timer, device_timer_id id,
}
//-------------------------------------------------
// rxd_r -
//-------------------------------------------------
int abc800_keyboard_device::rxd_r()
{
return m_txd;
}
//-------------------------------------------------
// txd_w -
//-------------------------------------------------

View File

@ -41,7 +41,6 @@ public:
virtual ioport_constructor device_input_ports() const;
// abc_keyboard_interface overrides
virtual int rxd_r();
virtual void txd_w(int state);
// not really public

View File

@ -430,6 +430,21 @@ inline void abc99_device::serial_input()
}
//-------------------------------------------------
// serial_output -
//-------------------------------------------------
inline void abc99_device::serial_output(int state)
{
if (m_txd != state)
{
m_txd = state;
m_slot->write_rx(m_txd);
}
}
//-------------------------------------------------
// serial_clock -
//-------------------------------------------------
@ -489,7 +504,8 @@ abc99_device::abc99_device(const machine_config &mconfig, const char *tag, devic
m_t1_z2(0),
m_t1_z5(0),
m_led_en(0),
m_reset(1)
m_reset(1),
m_txd(1)
{
}
@ -516,6 +532,7 @@ void abc99_device::device_start()
save_item(NAME(m_t1_z5));
save_item(NAME(m_led_en));
save_item(NAME(m_reset));
save_item(NAME(m_txd));
}
@ -550,16 +567,6 @@ void abc99_device::device_timer(emu_timer &timer, device_timer_id id, int param,
}
//-------------------------------------------------
// rxd_r -
//-------------------------------------------------
int abc99_device::rxd_r()
{
return m_so_z2 && m_so_z5;
}
//-------------------------------------------------
// txd_w -
//-------------------------------------------------
@ -616,6 +623,7 @@ WRITE8_MEMBER( abc99_device::z2_p1_w )
// serial output
m_so_z2 = BIT(data, 0);
serial_output(m_so_z2 && m_so_z5);
// key down
key_down(!BIT(data, 1));
@ -758,6 +766,7 @@ WRITE8_MEMBER( abc99_device::z5_p2_w )
// serial output
m_so_z5 = BIT(data, 6);
serial_output(m_so_z2 && m_so_z5);
// keyboard CPU T1
m_t1_z2 = BIT(data, 7);

View File

@ -40,7 +40,6 @@ public:
virtual ioport_constructor device_input_ports() const;
// abc_keyboard_interface overrides
virtual int rxd_r();
virtual void txd_w(int state);
DECLARE_INPUT_CHANGED_MEMBER( keyboard_reset );
@ -83,6 +82,7 @@ private:
};
inline void serial_input();
inline void serial_output(int state);
inline void serial_clock();
inline void key_down(int state);
inline void scan_mouse();
@ -108,6 +108,7 @@ private:
int m_t1_z5;
int m_led_en;
int m_reset;
int m_txd;
};

View File

@ -52,8 +52,9 @@ abc_keyboard_interface::abc_keyboard_interface(const machine_config &mconfig, de
abc_keyboard_port_device::abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, ABC_KEYBOARD_PORT, "Luxor ABC keyboard port", tag, owner, clock, "abc_keyboard_port", __FILE__),
device_slot_interface(mconfig, *this),
m_write_trxc(*this),
m_write_keydown(*this)
m_out_rx_handler(*this),
m_out_trxc_handler(*this),
m_out_keydown_handler(*this)
{
}
@ -67,8 +68,9 @@ void abc_keyboard_port_device::device_start()
m_card = dynamic_cast<abc_keyboard_interface *>(get_card_device());
// resolve callbacks
m_write_trxc.resolve_safe();
m_write_keydown.resolve_safe();
m_out_rx_handler.resolve_safe();
m_out_trxc_handler.resolve_safe();
m_out_keydown_handler.resolve_safe();
}
@ -84,17 +86,12 @@ void abc_keyboard_port_device::device_reset()
//-------------------------------------------------
// rxd_r -
// write_rx -
//-------------------------------------------------
READ_LINE_MEMBER( abc_keyboard_port_device::rxd_r )
WRITE_LINE_MEMBER( abc_keyboard_port_device::write_rx )
{
int state = 1;
if (m_card != NULL)
state = m_card->rxd_r();
return state;
m_out_rx_handler(state);
}
@ -115,7 +112,7 @@ WRITE_LINE_MEMBER( abc_keyboard_port_device::txd_w )
WRITE_LINE_MEMBER( abc_keyboard_port_device::trxc_w )
{
m_write_trxc(state);
m_out_trxc_handler(state);
}
@ -125,7 +122,7 @@ WRITE_LINE_MEMBER( abc_keyboard_port_device::trxc_w )
WRITE_LINE_MEMBER( abc_keyboard_port_device::keydown_w )
{
m_write_keydown(state);
m_out_keydown_handler(state);
}

View File

@ -18,22 +18,22 @@
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define ABC_KEYBOARD_PORT_TAG "kb"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_ABC_KEYBOARD_PORT_ADD(_def_slot, _trxc, _keydown) \
MCFG_DEVICE_ADD(ABC_KEYBOARD_PORT_TAG, ABC_KEYBOARD_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(abc_keyboard_devices, _def_slot, false) \
downcast<abc_keyboard_port_device *>(device)->set_callbacks(DEVCB2_##_trxc, DEVCB2_##_keydown);
#define MCFG_ABC_KEYBOARD_PORT_ADD(_tag, _def_slot) \
MCFG_DEVICE_ADD(_tag, ABC_KEYBOARD_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(abc_keyboard_devices, _def_slot, false)
#define MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(_devcb) \
devcb = &abc_keyboard_port_device::set_out_rx_handler(*device, DEVCB2_##_devcb);
#define MCFG_ABC_KEYBOARD_OUT_TRXC_HANDLER(_devcb) \
devcb = &abc_keyboard_port_device::set_out_trxc_handler(*device, DEVCB2_##_devcb);
#define MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(_devcb) \
devcb = &abc_keyboard_port_device::set_out_keydown_handler(*device, DEVCB2_##_devcb);
@ -50,16 +50,15 @@ public:
// construction/destruction
abc_keyboard_port_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
template<class _trxc, class _keydown> void set_callbacks(_trxc trxc, _keydown keydown) {
m_write_trxc.set_callback(trxc);
m_write_keydown.set_callback(keydown);
}
template<class _Object> static devcb2_base &set_out_rx_handler(device_t &device, _Object object) { return downcast<abc_keyboard_port_device &>(device).m_out_rx_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_out_trxc_handler(device_t &device, _Object object) { return downcast<abc_keyboard_port_device &>(device).m_out_trxc_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_out_keydown_handler(device_t &device, _Object object) { return downcast<abc_keyboard_port_device &>(device).m_out_keydown_handler.set_callback(object); }
// computer interface
DECLARE_READ_LINE_MEMBER( rxd_r );
DECLARE_WRITE_LINE_MEMBER( txd_w );
// peripheral interface
DECLARE_WRITE_LINE_MEMBER( write_rx );
DECLARE_WRITE_LINE_MEMBER( trxc_w );
DECLARE_WRITE_LINE_MEMBER( keydown_w );
@ -68,8 +67,9 @@ protected:
virtual void device_start();
virtual void device_reset();
devcb2_write_line m_write_trxc;
devcb2_write_line m_write_keydown;
devcb2_write_line m_out_rx_handler;
devcb2_write_line m_out_trxc_handler;
devcb2_write_line m_out_keydown_handler;
abc_keyboard_interface *m_card;
};
@ -81,7 +81,6 @@ public:
// construction/destruction
abc_keyboard_interface(const machine_config &mconfig, device_t &device);
virtual int rxd_r() { return 1; };
virtual void txd_w(int state) { };
protected:

View File

@ -201,14 +201,16 @@ Z80SIO_INTERFACE( mc8030_asp_z80sio_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL
};

View File

@ -93,14 +93,12 @@ static UPD7201_INTERFACE( tf20_upd7201_intf )
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,