OSDN Git Service

[VM][WIP] Use namespace to devices per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / fmr50 / keyboard.cpp
index bfa044e..ec12fa7 100644 (file)
@@ -12,6 +12,8 @@
 #include "../i8259.h"
 #include "../../fifo.h"
 
+namespace FMR50 {
+       
 void KEYBOARD::initialize()
 {
        key_buf = new FIFO(64);
@@ -31,7 +33,7 @@ void KEYBOARD::reset()
        kbstat = kbdata = kbint = kbmsk = 0;
 }
 
-void KEYBOARD::write_io8(uint32 addr, uint32 data)
+void KEYBOARD::write_io8(uint32_t addr, uint32_t data)
 {
        switch(addr) {
        case 0x600:
@@ -47,7 +49,7 @@ void KEYBOARD::write_io8(uint32 addr, uint32 data)
        }
 }
 
-uint32 KEYBOARD::read_io8(uint32 addr)
+uint32_t KEYBOARD::read_io8(uint32_t addr)
 {
        switch(addr) {
        case 0x600:
@@ -101,35 +103,23 @@ void KEYBOARD::key_up(int code)
 
 #define STATE_VERSION  1
 
-void KEYBOARD::save_state(FILEIO* state_fio)
-{
-       state_fio->FputUint32(STATE_VERSION);
-       state_fio->FputInt32(this_device_id);
-       
-       key_buf->save_state((void *)state_fio);
-       state_fio->FputUint8(kbstat);
-       state_fio->FputUint8(kbdata);
-       state_fio->FputUint8(kbint);
-       state_fio->FputUint8(kbmsk);
-       state_fio->Fwrite(table, sizeof(table), 1);
-}
-
-bool KEYBOARD::load_state(FILEIO* state_fio)
+bool KEYBOARD::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;
        }
-       if(!key_buf->load_state((void *)state_fio)) {
+       if(!key_buf->process_state((void *)state_fio, loading)) {
                return false;
        }
-       kbstat = state_fio->FgetUint8();
-       kbdata = state_fio->FgetUint8();
-       kbint = state_fio->FgetUint8();
-       kbmsk = state_fio->FgetUint8();
-       state_fio->Fread(table, sizeof(table), 1);
+       state_fio->StateUint8(kbstat);
+       state_fio->StateUint8(kbdata);
+       state_fio->StateUint8(kbint);
+       state_fio->StateUint8(kbmsk);
+       state_fio->StateBuffer(table, sizeof(table), 1);
        return true;
 }
 
+}