Added save state to keyboard.c, rs232/keyboard.c, and i8251.c (nw)

This commit is contained in:
Wilbert Pol 2014-07-29 16:03:13 +00:00
parent 30a9f68665
commit 0fec47ba92
5 changed files with 51 additions and 2 deletions

View File

@ -43,8 +43,10 @@ ioport_constructor serial_keyboard_device::device_input_ports() const
void serial_keyboard_device::device_start()
{
/// HACK: the base class resolves a handler in device_start()
m_timer = timer_alloc();
generic_keyboard_device::device_start();
device_serial_interface::register_save_state(machine().save(), name(), tag());
save_item(NAME(m_curr_key));
save_item(NAME(m_key_valid));
}
WRITE_LINE_MEMBER(serial_keyboard_device::update_serial)

View File

@ -50,6 +50,30 @@ device_serial_interface::~device_serial_interface()
{
}
void device_serial_interface::register_save_state(save_manager &save, const char *module, const char *tag)
{
save.save_item(module, tag, 0, NAME(m_df_start_bit_count));
save.save_item(module, tag, 0, NAME(m_df_word_length));
save.save_item(module, tag, 0, NAME(m_df_parity));
save.save_item(module, tag, 0, NAME(m_df_stop_bit_count));
save.save_item(module, tag, 0, NAME(m_rcv_register_data));
save.save_item(module, tag, 0, NAME(m_rcv_flags));
save.save_item(module, tag, 0, NAME(m_rcv_bit_count_received));
save.save_item(module, tag, 0, NAME(m_rcv_bit_count));
save.save_item(module, tag, 0, NAME(m_rcv_byte_received));
save.save_item(module, tag, 0, NAME(m_rcv_framing_error));
save.save_item(module, tag, 0, NAME(m_rcv_parity_error));
save.save_item(module, tag, 0, NAME(m_tra_register_data));
save.save_item(module, tag, 0, NAME(m_tra_flags));
save.save_item(module, tag, 0, NAME(m_tra_bit_count_transmitted));
save.save_item(module, tag, 0, NAME(m_tra_bit_count));
save.save_item(module, tag, 0, NAME(m_rcv_rate));
save.save_item(module, tag, 0, NAME(m_tra_rate));
save.save_item(module, tag, 0, NAME(m_rcv_line));
save.save_item(module, tag, 0, NAME(m_tra_clock_state));
save.save_item(module, tag, 0, NAME(m_rcv_clock_state));
}
void device_serial_interface::interface_pre_start()
{
m_rcv_clock = device().timer_alloc(RCV_TIMER_ID);

View File

@ -130,6 +130,8 @@ protected:
const char *parity_tostring(parity_t stop_bits);
const char *stop_bits_tostring(stop_bits_t stop_bits);
void register_save_state(save_manager &save, const char *module, const char *tag);
private:
enum { TRA_TIMER_ID = 10000, RCV_TIMER_ID };

View File

@ -59,6 +59,25 @@ void i8251_device::device_start()
m_rxrdy_handler.resolve_safe();
m_txrdy_handler.resolve_safe();
m_txempty_handler.resolve_safe();
save_item(NAME(m_flags));
save_item(NAME(m_sync_byte_offset));
save_item(NAME(m_sync_byte_count));
save_item(NAME(m_sync_bytes));
save_item(NAME(m_status));
save_item(NAME(m_command));
save_item(NAME(m_mode_byte));
save_item(NAME(m_cts));
save_item(NAME(m_dsr));
save_item(NAME(m_rxd));
save_item(NAME(m_rxc));
save_item(NAME(m_txc));
save_item(NAME(m_rxc_count));
save_item(NAME(m_txc_count));
save_item(NAME(m_br_factor));
save_item(NAME(m_data));
save_item(NAME(m_tx_busy));
save_item(NAME(m_disable_tx_pending));
device_serial_interface::register_save_state(machine().save(), name(), tag());
}

View File

@ -235,6 +235,8 @@ void generic_keyboard_device::device_start()
{
m_keyboard_cb.resolve_safe();
m_timer = timer_alloc();
save_item(NAME(m_last_code));
save_item(NAME(m_scan_line));
}
void generic_keyboard_device::device_reset()