2 SHARP MZ-2800 Emulator 'EmuZ-2800'
4 Author : Takeda.Toshiya
10 #ifndef _MZ2800_MEMORY_H_
11 #define _MZ2800_MEMORY_H_
14 #include "../../emu.h"
15 #include "../device.h"
17 class MZ2800_MEMORY : public DEVICE
22 uint8_t* rbank[8192]; // 16MB / 2KB
26 uint8_t ram[0xc0000]; // Main RAM 768KB
27 uint8_t ext[0x600000]; // Ext RAM 6MB
28 uint8_t vram[0x80000]; // VRAM 512KB
29 uint8_t tvram[0x2000]; // Text VRAM 6KB + dummy 2KB
30 uint8_t pcg[0x4000]; // PCG 8KB (even addr only)
31 uint8_t ipl[0x10000]; // IPL 64KB
32 uint8_t dic[0x40000]; // Dictionary ROM 256KB
33 uint8_t kanji[0x80000]; // Kanji ROM 256KB (even addr only)
36 uint8_t vram_bank, dic_bank, kanji_bank;
39 MZ2800_MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
41 set_device_name(_T("Memory Bus"));
48 void write_data8(uint32_t addr, uint32_t data);
49 uint32_t read_data8(uint32_t addr);
50 void write_dma_data8(uint32_t addr, uint32_t data);
51 uint32_t read_dma_data8(uint32_t addr);
52 void write_io8(uint32_t addr, uint32_t data);
53 uint32_t read_io8(uint32_t addr);
54 bool process_state(FILEIO* state_fio, bool loading);
57 void set_context_crtc(DEVICE* device)