OSDN Git Service

[VM][COMMON_VM] Include IO:: class to common_vm.
[csp-qt/common_source_project-fm7.git] / source / src / vm / ptf20.cpp
index 0329c4a..c81c5aa 100644 (file)
@@ -65,6 +65,7 @@ void PTF20::initialize()
        for(int i = 0; i < __MAX_DRIVE; i++) {
                disk[i] = new DISK(emu);
                disk[i]->set_device_name(_T("%s/Disk #%d"), this_device_name, i + 1);
+               disk[i]->drive_type = DRIVE_TYPE_2D;
        }
 }
 
@@ -495,37 +496,23 @@ bool PTF20::is_disk_protected(int drv)
 
 #define STATE_VERSION  1
 
-void PTF20::save_state(FILEIO* state_fio)
+bool PTF20::process_state(FILEIO* state_fio, bool loading)
 {
-       state_fio->FputUint32(STATE_VERSION);
-       state_fio->FputInt32(this_device_id);
-       
-       for(int i = 0; i < __MAX_DRIVE; i++) {
-               disk[i]->save_state(state_fio);
-       }
-       state_fio->Fwrite(bufr, sizeof(bufr), 1);
-       state_fio->Fwrite(bufs, sizeof(bufs), 1);
-       state_fio->FputInt32(buflen);
-       state_fio->FputInt32(phase);
-}
-
-bool PTF20::load_state(FILEIO* state_fio)
-{
-       if(state_fio->FgetUint32() != STATE_VERSION) {
-               return false;
-       }
-       if(state_fio->FgetInt32() != this_device_id) {
-               return false;
-       }
-       for(int i = 0; i < __MAX_DRIVE; i++) {
-               if(!disk[i]->load_state(state_fio)) {
-                       return false;
-               }
-       }
-       state_fio->Fread(bufr, sizeof(bufr), 1);
-       state_fio->Fread(bufs, sizeof(bufs), 1);
-       buflen = state_fio->FgetInt32();
-       phase = state_fio->FgetInt32();
-       return true;
+       if(!state_fio->StateCheckUint32(STATE_VERSION)) {
+               return false;
+       }
+       if(!state_fio->StateCheckInt32(this_device_id)) {
+               return false;
+       }
+       for(int i = 0; i < __MAX_DRIVE; i++) {
+               if(!disk[i]->process_state(state_fio, loading)) {
+                       return false;
+               }
+       }
+       state_fio->StateArray(bufr, sizeof(bufr), 1);
+       state_fio->StateArray(bufs, sizeof(bufs), 1);
+       state_fio->StateValue(buflen);
+       state_fio->StateValue(phase);
+       return true;
 }