2 SHARP MZ-80B Emulator 'EmuZ-80B'
\r
3 SHARP MZ-2200 Emulator 'EmuZ-2200'
\r
5 Author : Takeda.Toshiya
\r
11 #ifndef _MEMORY_80B_H_
\r
12 #define _MEMORY_80B_H_
\r
15 #include "../../emu.h"
\r
16 #include "../device.h"
\r
18 #define SIG_MEMORY_VRAM_SEL 0
\r
19 #define SIG_CRTC_WIDTH80 1
\r
20 #define SIG_CRTC_REVERSE 2
\r
24 class MEMORY : public DEVICE
\r
38 uint8 vram[0x10000]; // 0x4000 * (3 pages + dummy)
\r
40 uint8 vram[0xc000]; // 0x4000 * (2 pages + dummy)
\r
42 uint8 tvram[0x1000];
\r
46 uint8 vram_sel, vram_page;
\r
47 void update_vram_map();
\r
50 scrntype palette_pc[8];
\r
52 uint8 screen_txt[200][640];
\r
53 uint8 screen_gra[200][640];
\r
54 uint8 back_color, text_color, vram_mask;
\r
55 bool width80, reverse;
\r
57 void update_palette();
\r
60 MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
\r
66 void special_reset();
\r
67 void write_data8(uint32 addr, uint32 data);
\r
68 uint32 read_data8(uint32 addr);
\r
69 uint32 fetch_op(uint32 addr, int *wait);
\r
70 void write_io8(uint32 addr, uint32 data);
\r
71 void write_signal(int id, uint32 data, uint32 mask);
\r
72 void event_vline(int v, int clock);
\r
73 void event_callback(int event_id, int err);
\r
75 void update_config();
\r
77 void save_state(FILEIO* state_fio);
\r
78 bool load_state(FILEIO* state_fio);
\r
81 void set_context_cpu(Z80* device)
\r
85 void set_context_pio(DEVICE* device)
\r
89 void load_dat_image(_TCHAR* file_path);
\r
90 bool load_mzt_image(_TCHAR* file_path);
\r