2 SHARP MZ-80B Emulator 'EmuZ-80B'
3 SHARP MZ-2200 Emulator 'EmuZ-2200'
5 Author : Takeda.Toshiya
8 I-O DATA PIO-3039 Emulator
16 #ifndef _MEMORY_80B_H_
17 #define _MEMORY_80B_H_
20 #include "../../emu.h"
21 #include "../device.h"
23 #define SIG_MEMORY_VRAM_SEL 0
24 #define SIG_CRTC_WIDTH80 1
25 #define SIG_CRTC_REVERSE 2
26 #define SIG_CRTC_VGATE 3
32 class MEMORY : public DEVICE
46 uint8_t vram[0x10000]; // 0x4000 * (3 pages + dummy)
48 uint8_t vram[0xc000]; // 0x4000 * (2 pages + dummy)
50 uint8_t tvram[0x1000];
54 uint8_t vram_sel, vram_page;
55 void update_vram_map();
59 scrntype_t palette_color[8];
61 scrntype_t palette_green[2];
63 uint8_t screen_txt[200][640];
64 uint8_t screen_gra[200][640];
66 uint8_t back_color, text_color, vram_mask;
67 bool width80, reverse;
73 scrntype_t pio3039_color[8];
74 uint8_t pio3039_palette[8];
75 uint8_t screen_80b_green[200][640];
76 uint8_t screen_80b_vram1[200][640];
77 uint8_t screen_80b_vram2[200][640];
82 void update_green_palette();
86 MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
88 set_device_name(_T("Memory Bus(MZ80B/2000/2200)"));
96 void write_data8(uint32_t addr, uint32_t data);
97 uint32_t read_data8(uint32_t addr);
98 uint32_t fetch_op(uint32_t addr, int *wait);
99 void write_io8(uint32_t addr, uint32_t data);
100 void write_signal(int id, uint32_t data, uint32_t mask);
101 void event_vline(int v, int clock);
102 void event_callback(int event_id, int err);
103 bool process_state(FILEIO* state_fio, bool loading);
106 void set_context_cpu(Z80* device)
110 void set_context_pio(DEVICE* device)
114 void load_dat_image(const _TCHAR* file_path);
115 bool load_mzt_image(const _TCHAR* file_path);