2 SHARP MZ-700 Emulator 'EmuZ-700'
\r
3 SHARP MZ-800 Emulator 'EmuZ-800'
\r
4 SHARP MZ-1500 Emulator 'EmuZ-1500'
\r
6 Author : Takeda.Toshiya
\r
16 #include "../../emu.h"
\r
17 #include "../device.h"
\r
23 class MEMORY : public DEVICE
\r
26 DEVICE *d_cpu, *d_pit, *d_pio;
\r
37 uint8 ipl[0x1000]; // IPL 4KB
\r
39 uint8 ext[0x2000]; // MZ-800 IPL 8KB
\r
40 #elif defined(_MZ1500)
\r
41 uint8 ext[0x1800]; // MZ-1500 EXT 6KB
\r
43 uint8 font[0x1000]; // CGROM 4KB
\r
44 #if defined(_MZ1500)
\r
45 uint8 pcg[0x6000]; // MZ-1500 PCG 8KB * 3
\r
47 uint8 ram[0x10000]; // Main RAM 64KB
\r
49 uint8 vram[0x8000]; // MZ-800 VRAM 32KB
\r
51 uint8 vram[0x1000]; // MZ-700/1500 VRAM 4KB
\r
57 uint32 vram_addr_top;
\r
59 #elif defined(_MZ1500)
\r
63 void update_map_low();
\r
64 void update_map_middle();
\r
65 void update_map_high();
\r
67 int vram_page_mask(uint8 f);
\r
68 int vram_addr(int addr);
\r
75 uint8 palette_sw, palette[4], palette16[16];
\r
76 #elif defined(_MZ1500)
\r
77 uint8 priority, palette[8];
\r
82 #if defined(_MZ700) || defined(_MZ1500)
\r
84 #if defined(_MZ1500)
\r
88 void set_vblank(bool val);
\r
89 void set_hblank(bool val);
\r
93 uint8 screen[200][640];
\r
94 scrntype palette_mz800_pc[16];
\r
96 uint8 screen[200][320];
\r
98 scrntype palette_pc[8];
\r
100 #if defined(_MZ800)
\r
101 void draw_line_320x200_2bpp(int v);
\r
102 void draw_line_320x200_4bpp(int v);
\r
103 void draw_line_640x200_1bpp(int v);
\r
104 void draw_line_640x200_2bpp(int v);
\r
105 void draw_line_mz700(int v);
\r
107 void draw_line(int v);
\r
111 MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
\r
114 // common functions
\r
117 #if defined(_MZ800)
\r
118 void update_config();
\r
120 void event_vline(int v, int clock);
\r
121 void event_callback(int event_id, int err);
\r
123 void write_data8(uint32 addr, uint32 data);
\r
124 uint32 read_data8(uint32 addr);
\r
125 void write_data8w(uint32 addr, uint32 data, int* wait);
\r
126 uint32 read_data8w(uint32 addr, int* wait);
\r
128 void write_io8(uint32 addr, uint32 data);
\r
129 #if defined(_MZ800)
\r
130 uint32 read_io8(uint32 addr);
\r
133 // unitque functions
\r
134 void set_context_cpu(DEVICE* device)
\r
138 void set_context_pit(DEVICE* device)
\r
142 void set_context_pio(DEVICE* device)
\r
146 #if defined(_MZ800)
\r
147 void set_context_pio_int(DEVICE* device)
\r
149 d_pio_int = device;
\r
152 void draw_screen();
\r