--- /dev/null
+/*\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