OSDN Git Service

[VM][WIP] Use namespace to devices per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz2500 / mz1m01.h
1 /*
2         SHARP MZ-2200 Emulator 'EmuZ-2200'
3
4         Author : Takeda.Toshiya
5         Date   : 2013.03.30-
6
7         [ MZ-1M01 (16bit Board) ]
8 */
9
10 #ifndef _MZ1M01_H_
11 #define _MZ1M01_H_
12
13 #include "../vm.h"
14 #include "../../emu.h"
15 #include "../device.h"
16
17 #define SIG_MZ1M01_PORT_A       0
18 #define SIG_MZ1M01_PORT_B       1
19
20 namespace MZ80B {
21
22 class MZ1M01 : public DEVICE
23 {
24 private:
25         DEVICE *d_cpu, *d_pic, *d_pio;
26         
27         uint8_t* rbank[128];    // 1MB / 8KB
28         uint8_t* wbank[128];
29         uint8_t wdmy[0x2000];
30         uint8_t rdmy[0x2000];
31         uint8_t ipl[0x2000];    // IPL 8KB
32         uint8_t ram[0x20000];   // Main RAM 128KB
33         uint8_t kanji[0x20000]; // Kanji ROM 128KB
34         
35         uint8_t port[2];
36         
37 public:
38         MZ1M01(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
39         {
40                 set_device_name(_T("MZ-1M01 (16bit CPU Board)"));
41         }
42         ~MZ1M01() {}
43         
44         // common functions
45         void initialize();
46         void reset();
47         void write_data8(uint32_t addr, uint32_t data);
48         uint32_t read_data8(uint32_t addr);
49         void write_io8(uint32_t addr, uint32_t data);
50         uint32_t read_io8(uint32_t addr);
51         void write_signal(int id, uint32_t data, uint32_t mask);
52         bool process_state(FILEIO* state_fio, bool loading);
53         
54         // unique function
55         void set_context_cpu(DEVICE* device)
56         {
57                 d_cpu = device;
58         }
59         void set_context_pic(DEVICE* device)
60         {
61                 d_pic = device;
62         }
63         void set_context_pio(DEVICE* device)
64         {
65                 d_pio = device;
66         }
67 };
68
69 }
70 #endif
71