OSDN Git Service

[VM] .
[csp-qt/common_source_project-fm7.git] / source / src / vm / fmr30 / memory.h
index 9e25b50..0337d8f 100644 (file)
@@ -7,8 +7,8 @@
        [ memory ]
 */
 
-#ifndef _MEMORY_H_
-#define _MEMORY_H_
+#ifndef _FMR30_MEMORY_H_
+#define _FMR30_MEMORY_H_
 
 #include "../vm.h"
 #include "../../emu.h"
 #define SIG_MEMORY_DISP                0
 #define SIG_MEMORY_VSYNC       1
 
+namespace FMR30 {
+
 class MEMORY : public DEVICE
 {
 private:
        DEVICE *d_cpu, *d_dma;
        
-       uint8* rbank[4096];     // 16MB / 4KB
-       uint8* wbank[4096];
-       uint8 wdmy[0x1000];
-       uint8 rdmy[0x1000];
+       uint8_t* rbank[4096];   // 16MB / 4KB
+       uint8_t* wbank[4096];
+       uint8_t wdmy[0x1000];
+       uint8_t rdmy[0x1000];
        
-       uint8 ram[0x100000];    // RAM 1MB
-       uint8 vram[0x20000];    // VRAM 32KB * 4pl
-       uint8 cvram[0x1000];
-       uint8 kvram[0x1000];
+#if defined(HAS_I86)
+       uint8_t ram[0x100000];  // RAM 1MB
+#elif defined(HAS_I286)
+       uint8_t ram[0x400000];  // RAM 1+3MB
+#endif
+       uint8_t vram[0x20000];  // VRAM 32KB * 4pl
+       uint8_t cvram[0x1000];
+       uint8_t kvram[0x1000];
        
-       uint8 ipl[0x10000];     // IPL 64KB
-       uint8 kanji16[0x40000]; // KANJI(16x16) 256KB
+       uint8_t ipl[0x10000];   // IPL 64KB
+       uint8_t kanji16[0x40000];       // KANJI(16x16) 256KB
        
-       uint8 mcr1, mcr2, a20;
-       uint8 lcdadr, lcdreg[32];
-       uint16 dcr1, dcr2;
+       uint8_t mcr1, mcr2, a20;
+       uint8_t lcdadr, lcdreg[32];
+       uint16_t dcr1, dcr2;
        int kj_h, kj_l, kj_ofs, kj_row;
        
        int blinkcnt;
-       uint8 screen_txt[400][648];
-       uint8 screen_cg[400][640];
+       uint8_t screen_txt[400][648];
+       uint8_t screen_cg[400][640];
        
        void update_bank();
        void draw_text40();
@@ -50,19 +56,23 @@ private:
        void draw_cg();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+       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 reset();
-       void write_data8(uint32 addr, uint32 data);
-       uint32 read_data8(uint32 addr);
-       void write_io8(uint32 addr, uint32 data);
-       uint32 read_io8(uint32 addr);
+       void write_data8(uint32_t addr, uint32_t data);
+       uint32_t read_data8(uint32_t addr);
+       void write_io8(uint32_t addr, uint32_t data);
+       uint32_t read_io8(uint32_t addr);
        void event_frame();
+       bool process_state(FILEIO* state_fio, bool loading);
        
-       // unitque function
+       // unique functions
        void set_context_cpu(DEVICE* device)
        {
                d_cpu = device;
@@ -71,20 +81,21 @@ public:
        {
                d_dma = device;
        }
-       uint8* get_vram()
+       uint8_t* get_vram()
        {
                return vram;
        }
-       uint8* get_cvram()
+       uint8_t* get_cvram()
        {
                return cvram;
        }
-       uint8* get_kvram()
+       uint8_t* get_kvram()
        {
                return kvram;
        }
        void draw_screen();
 };
 
+}
 #endif