mirror of
https://github.com/holub/mame
synced 2025-05-29 17:13:05 +03:00
Added save state to keyboard.c, rs232/keyboard.c, and i8251.c (nw)
This commit is contained in:
parent
30a9f68665
commit
0fec47ba92
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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 };
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user