OSDN Git Service

[INITIAL] Import 20141226 version of http://homepage3.nifty.com/takeda-toshiya/common...
[csp-qt/common_source_project-fm7.git] / source / src / vm / j3100 / slmemory.h
diff --git a/source/src/vm/j3100/slmemory.h b/source/src/vm/j3100/slmemory.h
new file mode 100644 (file)
index 0000000..45aa9c2
--- /dev/null
@@ -0,0 +1,69 @@
+/*\r
+       TOSHIBA J-3100SL Emulator 'eJ-3100SL'\r
+\r
+       Author : Takeda.Toshiya\r
+       Date   : 2011.08.16-\r
+\r
+       [ memory ]\r
+*/\r
+\r
+#ifndef _SL_MEMORY_H_\r
+#define _SL_MEMORY_H_\r
+\r
+#include "../vm.h"\r
+#include "../../emu.h"\r
+#include "../device.h"\r
+\r
+class MEMORY : public DEVICE\r
+{\r
+private:\r
+       uint8* rbank[512];      // 1MB / 2KB\r
+       uint8* wbank[512];\r
+       uint8 wdmy[0x800];\r
+       uint8 rdmy[0x800];\r
+       uint8 ram[0xa0000];     // RAM 640KB\r
+       uint8 vram[0x8000];     // VRAM 32KB\r
+       uint8 ems[0x4000*56];   // EMS 16KB * 56\r
+       uint8 kanji[0x100000];  // KANJI ROM 1MB\r
+#ifdef _J3100SE\r
+       uint8 backup[0x4000];   // Backuped RAM 16KB\r
+       uint8 ipl[0xc000];      // IPL 48KB\r
+#else\r
+       uint8 backup[0x800];    // Backuped RAM 2KB\r
+       uint8 ipl[0x8000];      // IPL 32KB\r
+#endif\r
+       \r
+       int kanji_bank;\r
+       \r
+       int ems_index;\r
+       int ems_regs[2];\r
+       int ems_page[4];\r
+       int ems_bsl;\r
+       \r
+       uint32 ems_crc32;\r
+       uint32 backup_crc32;\r
+       \r
+       void update_ems(int page);\r
+       \r
+public:\r
+       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
+       ~MEMORY() {}\r
+       \r
+       // common functions\r
+       void initialize();\r
+       void release();\r
+       void reset();\r
+       void write_data8(uint32 addr, uint32 data);\r
+       uint32 read_data8(uint32 addr);\r
+       void write_io8(uint32 addr, uint32 data);\r
+       uint32 read_io8(uint32 addr);\r
+       \r
+       // unitque function\r
+       uint8* get_vram()\r
+       {\r
+               return vram;\r
+       }\r
+};\r
+\r
+#endif\r
+\r