OSDN Git Service

a999525d8db42af58a6521bdee3fae208f40918c
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz2800 / reset.cpp
1 /*
2         SHARP MZ-2800 Emulator 'EmuZ-2800'
3
4         Author : Takeda.Toshiya
5         Date   : 2007.08.14 -
6
7         [ reset ]
8 */
9
10 #include "reset.h"
11
12 void RESET::initialize()
13 {
14         prev = 0xff;
15 }
16
17 void RESET::write_signal(int id, uint32_t data, uint32_t mask)
18 {
19         // from i8255 port c
20         if(!(prev & 2) && (data & 2)) {
21                 static_cast<VM *>(vm)->cpu_reset();
22         }
23         if(!(prev & 8) && (data & 8)) {
24                 vm->reset();
25         }
26         prev = data & mask;
27 }
28
29 #define STATE_VERSION   1
30
31 bool RESET::process_state(FILEIO* state_fio, bool loading)
32 {
33         if(!state_fio->StateCheckUint32(STATE_VERSION)) {
34                 return false;
35         }
36         if(!state_fio->StateCheckInt32(this_device_id)) {
37                 return false;
38         }
39         state_fio->StateUint8(prev);
40         return true;
41 }