OSDN Git Service

[VM][DEVICE] Use __FASTCALL with interfaces, read_*() ,write_*(), fetch_op() and...
[csp-qt/common_source_project-fm7.git] / source / src / vm / sc3000 / memory.h
index e770c1d..691d286 100644 (file)
@@ -1,57 +1,65 @@
-/*\r
-       SEGA SC-3000 Emulator 'eSC-3000'\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2010.08.17-\r
-\r
-       [ memory ]\r
-*/\r
-\r
-#ifndef _MEMORY_H_\r
-#define _MEMORY_H_\r
-\r
-#include "../vm.h"\r
-#include "../../emu.h"\r
-#include "../device.h"\r
-\r
-#define SIG_MEMORY_SEL 0\r
-\r
-class MEMORY : public DEVICE\r
-{\r
-private:\r
-       // memory\r
-       uint8 cart[0x8000];\r
-       uint8 ipl[0x2000];      // sf7000\r
-       uint8 ram[0x10000];\r
-       \r
-       uint8 wdmy[0x1000];\r
-       uint8 rdmy[0x1000];\r
-       uint8* wbank[16];\r
-       uint8* rbank[16];\r
-       \r
-       bool inserted;\r
-       bool ram_selected;\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 write_data8(uint32 addr, uint32 data);\r
-       uint32 read_data8(uint32 addr);\r
-       void write_signal(int id, uint32 data, uint32 mask);\r
-       void save_state(FILEIO* state_fio);\r
-       bool load_state(FILEIO* state_fio);\r
-       \r
-       // unique functions\r
-       void open_cart(_TCHAR* file_path);\r
-       void close_cart();\r
-       bool cart_inserted()\r
-       {\r
-               return inserted;\r
-       }\r
-};\r
-\r
-#endif\r
-\r
+/*
+       SEGA SC-3000 Emulator 'eSC-3000'
+
+       Author : Takeda.Toshiya
+       Date   : 2010.08.17-
+
+       [ memory ]
+*/
+
+#ifndef _MEMORY_H_
+#define _MEMORY_H_
+
+#include "../vm.h"
+#include "../../emu.h"
+#include "../device.h"
+
+#define SIG_MEMORY_SEL 0
+
+namespace SC3000 {
+
+class MEMORY : public DEVICE
+{
+private:
+       // memory
+       uint8_t cart[0x20000];
+       uint8_t ipl[0x2000];    // sf7000
+       uint8_t ram[0x10000];
+       
+       uint8_t wdmy[0x1000];
+       uint8_t rdmy[0x1000];
+       uint8_t* wbank[16];
+       uint8_t* rbank[16];
+       
+       bool inserted;
+       bool ram_selected;
+       uint8_t bank[3];
+       
+       void update_bank();
+       
+public:
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       {
+               set_device_name(_T("Memory Bus"));
+       }
+       ~MEMORY() {}
+       
+       // common functions
+       void initialize();
+       void __FASTCALL write_data8(uint32_t addr, uint32_t data);
+       uint32_t __FASTCALL read_data8(uint32_t addr);
+       void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask);
+       bool process_state(FILEIO* state_fio, bool loading);
+       
+       // unique functions
+       void open_cart(const _TCHAR* file_path);
+       void close_cart();
+       bool is_cart_inserted()
+       {
+               return inserted;
+       }
+};
+
+}
+#endif
+