OSDN Git Service

[VM][STATE] Use namespace {VMNAME} to separate per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pasopia / kanjipac2.cpp
index 0e18cdf..b788f57 100644 (file)
@@ -1,45 +1,58 @@
-/*\r
-       TOSHIBA PASOPIA Emulator 'EmuPIA'\r
-       TOSHIBA PASOPIA 7 Emulator 'EmuPIA7'\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2006.09.20 -\r
-\r
-       [ kanji rom pac 2 ]\r
-*/\r
-\r
-#include "kanjipac2.h"\r
-#include "../../fileio.h"\r
-\r
-void KANJIPAC2::initialize(int id)\r
-{\r
-       FILEIO* fio = new FILEIO();\r
-       if(fio->Fopen(emu->bios_path(_T("KANJI.ROM")), FILEIO_READ_BINARY)) {\r
-               fio->Fread(rom, sizeof(rom), 1);\r
-               fio->Fclose();\r
-       }\r
-       delete fio;\r
-       \r
-       ptr = 0;\r
-}\r
-\r
-void KANJIPAC2::write_io8(uint32 addr, uint32 data)\r
-{\r
-       switch(addr & 0xff) {\r
-       case 0x18:\r
-               ptr = (ptr & 0x1ff00) | data;\r
-               break;\r
-       case 0x19:\r
-               ptr = (ptr & 0x100ff) | (data << 8);\r
-               break;\r
-       case 0x1a:\r
-               ptr = (ptr & 0x0ffff) | ((data & 0x01) << 16);\r
-               break;\r
-       }\r
-}\r
-\r
-uint32 KANJIPAC2::read_io8(uint32 addr)\r
-{\r
-       return rom[ptr & 0x1ffff];\r
-}\r
-\r
+/*
+       TOSHIBA PASOPIA Emulator 'EmuPIA'
+       TOSHIBA PASOPIA 7 Emulator 'EmuPIA7'
+
+       Author : Takeda.Toshiya
+       Date   : 2006.09.20 -
+
+       [ kanji rom pac 2 ]
+*/
+
+#include "kanjipac2.h"
+
+namespace PASOPIA {
+
+void KANJIPAC2::initialize(int id)
+{
+       FILEIO* fio = new FILEIO();
+       if(fio->Fopen(create_local_path(_T("KANJI.ROM")), FILEIO_READ_BINARY)) {
+               fio->Fread(rom, sizeof(rom), 1);
+               fio->Fclose();
+       }
+       delete fio;
+       
+       ptr = 0;
+}
+
+void KANJIPAC2::write_io8(uint32_t addr, uint32_t data)
+{
+       switch(addr & 0xff) {
+       case 0x18:
+               ptr = (ptr & 0x1ff00) | data;
+               break;
+       case 0x19:
+               ptr = (ptr & 0x100ff) | (data << 8);
+               break;
+       case 0x1a:
+               ptr = (ptr & 0x0ffff) | ((data & 0x01) << 16);
+               break;
+       }
+}
+
+uint32_t KANJIPAC2::read_io8(uint32_t addr)
+{
+       return rom[ptr & 0x1ffff];
+}
+
+#define STATE_VERSION  1
+
+bool KANJIPAC2::process_state(FILEIO* state_fio, bool loading)
+{
+       if(!state_fio->StateCheckUint32(STATE_VERSION)) {
+               return false;
+       }
+       state_fio->StateUint32(ptr);
+       return true;
+}
+
+}