OSDN Git Service

[VM][General] Merge upstream 2016-03-01. (Pahse 1).
[csp-qt/common_source_project-fm7.git] / source / src / vm / not.cpp
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2006.09.20-
6
7         [ not gate ]
8 */
9
10 #include "not.h"
11
12 void NOT::write_signal(int id, uint32_t data, uint32_t mask)
13 {
14         bool next = ((data & mask) == 0);
15         if(prev != next || first) {
16                 write_signals(&outputs, next ? 0xffffffff : 0);
17                 prev = next;
18                 first = false;
19         }
20 }
21
22 #define STATE_VERSION   1
23
24 void NOT::save_state(FILEIO* state_fio)
25 {
26         state_fio->FputUint32(STATE_VERSION);
27         state_fio->FputInt32(this_device_id);
28         
29         state_fio->FputBool(prev);
30         state_fio->FputBool(first);
31 }
32
33 bool NOT::load_state(FILEIO* state_fio)
34 {
35         if(state_fio->FgetUint32() != STATE_VERSION) {
36                 return false;
37         }
38         if(state_fio->FgetInt32() != this_device_id) {
39                 return false;
40         }
41         prev = state_fio->FgetBool();
42         first = state_fio->FgetBool();
43         return true;
44 }
45