diff options
author | Olivier Galibert <galibert@pobox.com> | 2013-11-18 21:05:30 +0000 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2013-11-18 21:05:30 +0000 |
commit | 671ba32470a9aee7a72180c750170855f0fd9b1f (patch) | |
tree | 79c426e10df96a12e8eb93f7f9c7c23305235264 /src/mess | |
parent | 8c7bc3bfa741fd4cdfab9ba2af24da5742bc6906 (diff) |
diserial: Remove defines, cleanup clocks/timers, add sync support [O. Galibert]
Diffstat (limited to 'src/mess')
-rw-r--r-- | src/mess/drivers/atarist.c | 3 | ||||
-rw-r--r-- | src/mess/drivers/pc.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/rainbow.c | 2 | ||||
-rw-r--r-- | src/mess/drivers/thomson.c | 6 | ||||
-rw-r--r-- | src/mess/drivers/x68k.c | 3 | ||||
-rw-r--r-- | src/mess/machine/esqpanel.c | 7 | ||||
-rw-r--r-- | src/mess/machine/esqpanel.h | 1 | ||||
-rw-r--r-- | src/mess/machine/isa_sblaster.c | 10 | ||||
-rw-r--r-- | src/mess/machine/keyboard.c | 18 | ||||
-rw-r--r-- | src/mess/machine/keyboard.h | 1 | ||||
-rw-r--r-- | src/mess/machine/ser_mouse.c | 6 | ||||
-rw-r--r-- | src/mess/machine/ser_mouse.h | 4 | ||||
-rw-r--r-- | src/mess/machine/terminal.c | 10 | ||||
-rw-r--r-- | src/mess/machine/thomson.c | 16 | ||||
-rw-r--r-- | src/mess/machine/wangpckb.c | 4 | ||||
-rw-r--r-- | src/mess/machine/zx8302.c | 6 |
16 files changed, 63 insertions, 36 deletions
diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c index cee4d3660b8..3755095a0d9 100644 --- a/src/mess/drivers/atarist.c +++ b/src/mess/drivers/atarist.c @@ -1955,8 +1955,7 @@ READ8_MEMBER( st_state::mfp_gpio_r ) WRITE_LINE_MEMBER( st_state::mfp_tdo_w ) { - m_mfp->rc_w(state); - m_mfp->tc_w(state); + m_mfp->clock_w(state); } static MC68901_INTERFACE( mfp_intf ) diff --git a/src/mess/drivers/pc.c b/src/mess/drivers/pc.c index 10a2ee32b44..cb2e1c335dc 100644 --- a/src/mess/drivers/pc.c +++ b/src/mess/drivers/pc.c @@ -1378,7 +1378,7 @@ static const cassette_interface mc1502_cassette_interface = static const serial_image_interface mc1502_serial = { - 9600, 8, 1, SERIAL_PARITY_NONE, 1, "upd8251" + 9600, 8, 1, device_serial_interface::PARITY_NONE, 1, "upd8251" }; static MACHINE_CONFIG_START( ibmpcjr, tandy_pc_state ) diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c index 173c4901a13..5359553a0f2 100644 --- a/src/mess/drivers/rainbow.c +++ b/src/mess/drivers/rainbow.c @@ -428,7 +428,7 @@ void rainbow_state::machine_reset() m_z80_halted = true; m_kbd_tx_ready = m_kbd_rx_ready = false; - m_kbd8251->input_callback(SERIAL_STATE_CTS); // raise clear to send + m_kbd8251->input_callback(device_serial_interface::CTS); // raise clear to send m_KBD = 0; diff --git a/src/mess/drivers/thomson.c b/src/mess/drivers/thomson.c index 7a9a3851702..a32cd516583 100644 --- a/src/mess/drivers/thomson.c +++ b/src/mess/drivers/thomson.c @@ -604,17 +604,17 @@ const cassette_interface mo5_cassette_interface = const serial_image_interface to7_cc90232_config = { - 2400, 7, 2, SERIAL_PARITY_NONE, 1, "to7_io" + 2400, 7, 2, device_serial_interface::PARITY_NONE, 1, "to7_io" }; const serial_image_interface to7_rf57932_config = { - 2400, 7, 2, SERIAL_PARITY_NONE, 1, "acia" + 2400, 7, 2, device_serial_interface::PARITY_NONE, 1, "acia" }; const serial_image_interface to7_modem_config = { - 2400, 7, 2, SERIAL_PARITY_NONE, 1, NULL + 2400, 7, 2, device_serial_interface::PARITY_NONE, 1, NULL }; /* ------------ driver ------------ */ diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c index 3bef277201e..8dbaf1ce645 100644 --- a/src/mess/drivers/x68k.c +++ b/src/mess/drivers/x68k.c @@ -2051,8 +2051,7 @@ ADDRESS_MAP_END WRITE_LINE_MEMBER( x68k_state::mfp_tdo_w ) { - m_mfpdev->tc_w(state); - m_mfpdev->rc_w(state); + m_mfpdev->clock_w(state); } static MC68901_INTERFACE( mfp_interface ) diff --git a/src/mess/machine/esqpanel.c b/src/mess/machine/esqpanel.c index 44dcc3bfefd..9aa584fdaa2 100644 --- a/src/mess/machine/esqpanel.c +++ b/src/mess/machine/esqpanel.c @@ -66,7 +66,7 @@ void esqpanel_device::device_reset() // panel comms is at 62500 baud (double the MIDI rate), 8N2 set_rcv_rate(62500); set_tra_rate(62500); - set_data_frame(8, 2, SERIAL_PARITY_NONE); + set_data_frame(8, 2, PARITY_NONE, false); m_tx_busy = false; m_xmit_read = m_xmit_write = 0; @@ -74,6 +74,11 @@ void esqpanel_device::device_reset() m_bButtonLightSecondByte = false; } +void esqpanel_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + device_serial_interface::device_timer(timer, id, param, ptr); +} + void esqpanel_device::rcv_complete() // Rx completed receiving byte { receive_register_extract(); diff --git a/src/mess/machine/esqpanel.h b/src/mess/machine/esqpanel.h index e4bc497b616..09691f0a478 100644 --- a/src/mess/machine/esqpanel.h +++ b/src/mess/machine/esqpanel.h @@ -71,6 +71,7 @@ protected: virtual void device_start(); virtual void device_reset(); virtual void device_config_complete(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); // serial overrides virtual void rcv_complete(); // Rx completed receiving byte diff --git a/src/mess/machine/isa_sblaster.c b/src/mess/machine/isa_sblaster.c index c561eeaef4a..5d86d0729ae 100644 --- a/src/mess/machine/isa_sblaster.c +++ b/src/mess/machine/isa_sblaster.c @@ -1284,9 +1284,8 @@ void sb_device::device_reset() m_rx_waiting = m_tx_waiting = 0; // MIDI is 31250 baud, 8-N-1 - set_rcv_rate(31250); - set_tra_rate(31250); - set_data_frame(8, 1, SERIAL_PARITY_NONE); + set_rate(31250); + set_data_frame(8, 1, PARITY_NONE, false); } UINT8 sb_device::dack_r(int line) @@ -1423,6 +1422,11 @@ void sb_device::dack_w(int line, UINT8 data) void sb_device::device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) { // printf("DMA timer expire\n"); + if (tid) + { + device_serial_interface::device_timer(timer, tid, param, ptr); + return; + } UINT16 lsample, rsample; switch (m_dsp.flags) { diff --git a/src/mess/machine/keyboard.c b/src/mess/machine/keyboard.c index f271d8ab895..d1c777e5b19 100644 --- a/src/mess/machine/keyboard.c +++ b/src/mess/machine/keyboard.c @@ -436,7 +436,7 @@ void serial_keyboard_device::device_start() m_slot = m_owner && 1; m_timer = timer_alloc(); set_tra_rate(baud); - set_data_frame(8, 1, SERIAL_PARITY_NONE); + set_data_frame(8, 1, PARITY_NONE, false); } INPUT_CHANGED_MEMBER(serial_keyboard_device::update_frame) @@ -459,21 +459,29 @@ void serial_keyboard_device::device_reset() switch(val & 0x30) { case 0x10: - set_data_frame(7, 1, SERIAL_PARITY_EVEN); + set_data_frame(7, 1, PARITY_EVEN, false); break; case 0x00: default: - set_data_frame(8, 1, SERIAL_PARITY_NONE); + set_data_frame(8, 1, PARITY_NONE, false); break; case 0x20: - set_data_frame(8, 2, SERIAL_PARITY_NONE); + set_data_frame(8, 2, PARITY_NONE, false); break; case 0x30: - set_data_frame(8, 1, SERIAL_PARITY_EVEN); + set_data_frame(8, 1, PARITY_EVEN, false); break; } } +void serial_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + if (id) + device_serial_interface::device_timer(timer, id, param, ptr); + else + generic_keyboard_device::device_timer(timer, id, param, ptr); +} + void serial_keyboard_device::send_key(UINT8 code) { if(is_transmit_register_empty()) diff --git a/src/mess/machine/keyboard.h b/src/mess/machine/keyboard.h index 8b935c18970..f752f63f2fc 100644 --- a/src/mess/machine/keyboard.h +++ b/src/mess/machine/keyboard.h @@ -94,6 +94,7 @@ protected: virtual void device_start(); virtual void device_config_complete(); virtual void device_reset(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void tra_callback(); virtual void tra_complete(); virtual void input_callback(UINT8 state) { m_input_state = state; } diff --git a/src/mess/machine/ser_mouse.c b/src/mess/machine/ser_mouse.c index e1b41aef7ff..b62f4d6f3b9 100644 --- a/src/mess/machine/ser_mouse.c +++ b/src/mess/machine/ser_mouse.c @@ -72,6 +72,12 @@ void serial_mouse_device::tra_callback() **************************************************************************/ void serial_mouse_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { + if (id) + { + device_serial_interface::device_timer(timer, id, param, ptr); + return; + } + static int ox = 0, oy = 0; int nx,ny; int dx, dy, nb; diff --git a/src/mess/machine/ser_mouse.h b/src/mess/machine/ser_mouse.h index 476e7c8acb6..9bda1cc1d1c 100644 --- a/src/mess/machine/ser_mouse.h +++ b/src/mess/machine/ser_mouse.h @@ -52,7 +52,7 @@ public: virtual void dtr_w(UINT8 state) { m_dtr = state; check_state(); } virtual void rts_w(UINT8 state) { m_rts = state; check_state(); m_old_rts = state; } protected: - virtual void set_frame() { set_data_frame(7, 2, SERIAL_PARITY_NONE); } + virtual void set_frame() { set_data_frame(7, 2, PARITY_NONE, false); } virtual void mouse_trans(int dx, int dy, int nb, int mbc); virtual void device_reset() {m_old_rts = 0; serial_mouse_device::device_reset();} private: @@ -68,7 +68,7 @@ public: virtual void dtr_w(UINT8 state) { m_dtr = state; check_state(); } virtual void rts_w(UINT8 state) { m_rts = state; check_state(); } protected: - virtual void set_frame() { set_data_frame(8, 2, SERIAL_PARITY_NONE); } + virtual void set_frame() { set_data_frame(8, 2, PARITY_NONE, false); } virtual void mouse_trans(int dx, int dy, int nb, int mbc); private: void check_state() { set_mouse_enable((m_dtr && m_rts)?true:false); } diff --git a/src/mess/machine/terminal.c b/src/mess/machine/terminal.c index 5516e8f66bf..7da5ffba895 100644 --- a/src/mess/machine/terminal.c +++ b/src/mess/machine/terminal.c @@ -481,7 +481,7 @@ void serial_terminal_device::device_start() m_timer = timer_alloc(); set_rcv_rate(baud); set_tra_rate(baud); - set_data_frame(8, 1, SERIAL_PARITY_NONE); + set_data_frame(8, 1, PARITY_NONE, false); } INPUT_CHANGED_MEMBER(serial_terminal_device::update_frame) @@ -505,17 +505,17 @@ void serial_terminal_device::device_reset() switch(val & 0x30) { case 0x10: - set_data_frame(7, 1, SERIAL_PARITY_EVEN); + set_data_frame(7, 1, PARITY_EVEN, false); break; case 0x00: default: - set_data_frame(8, 1, SERIAL_PARITY_NONE); + set_data_frame(8, 1, PARITY_NONE, false); break; case 0x20: - set_data_frame(8, 2, SERIAL_PARITY_NONE); + set_data_frame(8, 2, PARITY_NONE, false); break; case 0x30: - set_data_frame(8, 1, SERIAL_PARITY_EVEN); + set_data_frame(8, 1, PARITY_EVEN, false); break; } } diff --git a/src/mess/machine/thomson.c b/src/mess/machine/thomson.c index 07c845d944b..734a1bcfe9e 100644 --- a/src/mess/machine/thomson.c +++ b/src/mess/machine/thomson.c @@ -686,9 +686,9 @@ WRITE8_MEMBER( to7_io_line_device::porta_out ) LOG_IO(( "%s %f to7_io_porta_out: tx=%i, dtr=%i\n", machine().describe_context(), machine().time().as_double(), tx, dtr )); if ( dtr ) - m_connection_state |= SERIAL_STATE_DTR; + m_connection_state |= device_serial_interface::DTR; else - m_connection_state &= ~SERIAL_STATE_DTR; + m_connection_state &= ~device_serial_interface::DTR; set_out_data_bit(tx); serial_connection_out(); @@ -700,11 +700,11 @@ READ8_MEMBER( to7_io_line_device::porta_in ) { centronics_device *printer = machine().device<centronics_device>("centronics"); int cts = 1; - int dsr = ( m_input_state & SERIAL_STATE_DSR ) ? 0 : 1; + int dsr = ( m_input_state & device_serial_interface::DSR ) ? 0 : 1; int rd = get_in_data_bit(); if ( machine().driver_data<thomson_state>()->to7_io_mode() == TO7_IO_RS232 ) - cts = m_input_state & SERIAL_STATE_CTS ? 0 : 1; + cts = m_input_state & device_serial_interface::CTS ? 0 : 1; else cts = !printer->busy_r(); @@ -738,7 +738,7 @@ void to7_io_line_device::input_callback(UINT8 state) { m_input_state = state; - LOG_IO(( "%f to7_io_in_callback: cts=%i dsr=%i rd=%i\n", machine().time().as_double(), (state & SERIAL_STATE_CTS) ? 1 : 0, (state & SERIAL_STATE_DSR) ? 1 : 0, (int)get_in_data_bit() )); + LOG_IO(( "%f to7_io_in_callback: cts=%i dsr=%i rd=%i\n", machine().time().as_double(), (state & device_serial_interface::CTS) ? 1 : 0, (state & device_serial_interface::DSR) ? 1 : 0, (int)get_in_data_bit() )); } @@ -775,9 +775,9 @@ void to7_io_line_device::device_reset() LOG (( "to7_io_reset called\n" )); if (io_pia) io_pia->set_port_a_z_mask(0x03 ); - m_input_state = SERIAL_STATE_CTS; - m_connection_state &= ~SERIAL_STATE_DTR; - m_connection_state |= SERIAL_STATE_RTS; /* always ready to send */ + m_input_state = device_serial_interface::CTS; + m_connection_state &= ~device_serial_interface::DTR; + m_connection_state |= device_serial_interface::RTS; /* always ready to send */ set_out_data_bit(1); serial_connection_out(); } diff --git a/src/mess/machine/wangpckb.c b/src/mess/machine/wangpckb.c index 0a74670b4e2..6b9d8a1dddc 100644 --- a/src/mess/machine/wangpckb.c +++ b/src/mess/machine/wangpckb.c @@ -417,7 +417,7 @@ void wangpc_keyboard_device::device_start() // set serial callbacks m_maincpu->i8051_set_serial_tx_callback(WRITE8_DELEGATE(wangpc_keyboard_device, mcs51_tx_callback)); m_maincpu->i8051_set_serial_rx_callback(READ8_DELEGATE(wangpc_keyboard_device, mcs51_rx_callback)); - set_data_frame(8, 2, SERIAL_PARITY_NONE); + set_data_frame(8, 2, PARITY_NONE, false); } @@ -441,7 +441,7 @@ void wangpc_keyboard_device::device_reset() void wangpc_keyboard_device::input_callback(UINT8 state) { - int bit = (state & SERIAL_STATE_RX_DATA) ? 1 : 0; + int bit = (state & RX) ? 1 : 0; receive_register_update_bit(bit); diff --git a/src/mess/machine/zx8302.c b/src/mess/machine/zx8302.c index b7fa503ee01..6b518c25ffc 100644 --- a/src/mess/machine/zx8302.c +++ b/src/mess/machine/zx8302.c @@ -270,6 +270,10 @@ void zx8302_device::device_timer(emu_timer &timer, device_timer_id id, int param transmit_ipc_data(); break; + + default: + device_serial_interface::device_timer(timer, id, param, ptr); + break; } } @@ -402,7 +406,7 @@ WRITE8_MEMBER( zx8302_device::control_w ) m_baudx4_timer->adjust(attotime::zero, 0, attotime::from_hz(baudx4)); set_tra_rate(baud); - set_data_frame(8, 2, SERIAL_PARITY_NONE); + set_data_frame(8, 2, PARITY_NONE, false); } |