2 FUJITSU FMR-50 Emulator 'eFMR-50'
3 FUJITSU FMR-60 Emulator 'eFMR-60'
5 Author : Takeda.Toshiya
13 void CMOS::initialize()
16 memset(cmos, 0, sizeof(cmos));
19 FILEIO* fio = new FILEIO();
20 if(fio->Fopen(create_local_path(_T("CMOS.BIN")), FILEIO_READ_BINARY)) {
21 fio->Fread(cmos, sizeof(cmos), 1);
30 FILEIO* fio = new FILEIO();
31 if(fio->Fopen(create_local_path(_T("CMOS.BIN")), FILEIO_WRITE_BINARY)) {
32 fio->Fwrite(cmos, sizeof(cmos), 1);
44 void CMOS::write_io8(uint32_t addr, uint32_t data)
52 if(cmos[bank][(addr >> 1) & 0x7ff] != data) {
53 cmos[bank][(addr >> 1) & 0x7ff] = data;
61 uint32_t CMOS::read_io8(uint32_t addr)
64 return cmos[bank][(addr >> 1) & 0x7ff];
69 #define STATE_VERSION 1
71 void CMOS::save_state(FILEIO* state_fio)
73 state_fio->FputUint32(STATE_VERSION);
74 state_fio->FputInt32(this_device_id);
76 state_fio->Fwrite(cmos, sizeof(cmos), 1);
77 state_fio->FputBool(modified);
78 state_fio->FputUint8(bank);
81 bool CMOS::load_state(FILEIO* state_fio)
83 if(state_fio->FgetUint32() != STATE_VERSION) {
86 if(state_fio->FgetInt32() != this_device_id) {
89 state_fio->Fread(cmos, sizeof(cmos), 1);
90 modified = state_fio->FgetBool();
91 bank = state_fio->FgetUint8();