mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
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:
parent
f3a8aceab4
commit
25b08cec6b
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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); }
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
/*-------------------------------------------------
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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[] =
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -45,6 +45,7 @@
|
||||
#define BUS2_TAG "bus2"
|
||||
#define RS232_A_TAG "rs232a"
|
||||
#define RS232_B_TAG "rs232b"
|
||||
#define ABC_KEYBOARD_PORT_TAG "kb"
|
||||
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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 -
|
||||
//-------------------------------------------------
|
||||
|
@ -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 );
|
||||
|
@ -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 -
|
||||
//-------------------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user