#define DATA_SIZE 0x1000000
#define ADDR_MASK (DATA_SIZE - 1)
+namespace MZ700 {
+
void EMM::initialize()
{
// init memory
#define STATE_VERSION 1
-void EMM::save_state(FILEIO* state_fio)
-{
- state_fio->FputUint32(STATE_VERSION);
- state_fio->FputInt32(this_device_id);
-
- state_fio->Fwrite(data_buffer, DATA_SIZE, 1);
- state_fio->FputUint32(data_addr);
-}
-
-bool EMM::load_state(FILEIO* state_fio)
+bool EMM::process_state(FILEIO* state_fio, bool loading)
{
- if(state_fio->FgetUint32() != STATE_VERSION) {
+ if(!state_fio->StateCheckUint32(STATE_VERSION)) {
return false;
}
- if(state_fio->FgetInt32() != this_device_id) {
+ if(!state_fio->StateCheckInt32(this_device_id)) {
return false;
}
- state_fio->Fread(data_buffer, DATA_SIZE, 1);
- data_addr = state_fio->FgetUint32();
+ state_fio->StateBuffer(data_buffer, DATA_SIZE, 1);
+ state_fio->StateUint32(data_addr);
return true;
}
+}