2 * I/O termination dummy [dummydevice.cpp]
4 * Author: K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jul 30, 2015 : Initial
11 #include "dummydevice.h"
14 DUMMYDEVICE::DUMMYDEVICE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
17 clear_on_reset = true;
18 clear_with_zero = true;
21 DUMMYDEVICE::~DUMMYDEVICE()
25 uint32 DUMMYDEVICE::read_signal(int id)
28 if((id >= SIG_DUMMYDEVICE_BIT0) && (id <= SIG_DUMMYDEVICE_BIT31)) {
29 if((status & (1 << (id - SIG_DUMMYDEVICE_BIT0))) != 0) {
34 } else if(id == SIG_DUMMYDEVICE_READWRITE) {
36 } else if(id == SIG_DUMMYDEVICE_CLEAR_ON_RESET) {
37 return (clear_on_reset) ? 0xffffffff : 0x00000000;
38 } else if(id == SIG_DUMMYDEVICE_CLEAR_WITH_ZERO) {
39 return (clear_with_zero) ? 0xffffffff : 0x00000000;
44 void DUMMYDEVICE::write_signal(int id, uint32 data, uint32 mask)
46 if((id >= SIG_DUMMYDEVICE_BIT0) && (id <= SIG_DUMMYDEVICE_BIT31)) {
47 bool flag = ((data & mask) != 0);
49 status |= (1 << (id - SIG_DUMMYDEVICE_BIT0));
51 status &= ~(1 << (id - SIG_DUMMYDEVICE_BIT0));
53 } else if(id == SIG_DUMMYDEVICE_READWRITE) {
55 } else if(id == SIG_DUMMYDEVICE_CLEAR_ON_RESET) {
56 clear_on_reset = ((data & mask) != 0);
57 } else if(id == SIG_DUMMYDEVICE_CLEAR_WITH_ZERO) {
58 clear_with_zero = ((data & mask) != 0);
63 void DUMMYDEVICE::reset()
74 #define STATE_VERSION 1
75 void DUMMYDEVICE::save_state(FILEIO *state_fio)
77 state_fio->FputUint32_BE(STATE_VERSION);
78 state_fio->FputInt32_BE(this_device_id);
81 state_fio->FputUint32_BE(status);
82 state_fio->FputBool(clear_on_reset);
83 state_fio->FputBool(clear_with_zero);
87 bool DUMMYDEVICE::load_state(FILEIO *state_fio)
90 version = state_fio->FgetUint32_BE();
91 if(this_device_id != state_fio->FgetInt32_BE()) return false;
93 if((version < 1) || (version > STATE_VERSION)) return false;
95 status = state_fio->FgetUint32_BE();
96 clear_on_reset = state_fio->FgetBool();
97 clear_with_zero = state_fio->FgetBool();