OSDN Git Service

5c58c7ab70a51b1e668a4826c8c67514fa9816ed
[csp-qt/common_source_project-fm7.git] / source / src / vm / or.cpp
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2008.06.10-
6
7         [ or gate ]
8 */
9
10 #include "or.h"
11
12 void OR::write_signal(int id, uint32_t data, uint32_t mask)
13 {
14         if(data & mask) {
15                 bits_in |= id;
16         } else {
17                 bits_in &= ~id;
18         }
19         bool next = (bits_in != 0);
20         if(prev != next || first) {
21                 write_signals(&outputs, next ? 0xffffffff : 0);
22                 prev = next;
23                 first = false;
24         }
25 }
26
27 #define STATE_VERSION   1
28
29 bool OR::process_state(FILEIO* state_fio, bool loading)
30 {
31         if(!state_fio->StateCheckUint32(STATE_VERSION)) {
32                 return false;
33         }
34         if(!state_fio->StateCheckInt32(this_device_id)) {
35                 return false;
36         }
37         state_fio->StateUint32(bits_in);
38         state_fio->StateBool(prev);
39         state_fio->StateBool(first);
40         return true;
41 }