2 SHARP MZ-80K/C Emulator 'EmuZ-80K'
3 SHARP MZ-1200 Emulator 'EmuZ-1200'
5 Author : Takeda.Toshiya
8 SHARP MZ-80A Emulator 'EmuZ-80A'
15 #ifndef _MZ80A_MEMORY_H_
16 #define _MZ80A_MEMORY_H_
19 #include "../../emu.h"
20 #include "../device.h"
22 #define SIG_MEMORY_VGATE 0
23 #if defined(SUPPORT_MZ80AIF)
24 #define SIG_MEMORY_FDC_IRQ 1
25 #define SIG_MEMORY_FDC_DRQ 2
28 class MZ80A_MEMORY : public DEVICE
31 DEVICE *d_ctc, *d_pio;
38 uint8_t ram[0xd000]; // RAM 48KB + swap 4KB
39 #if defined(_MZ1200) || defined(_MZ80A)
40 uint8_t vram[0x800]; // VRAM 2KB
42 uint8_t vram[0x400]; // VRAM 1KB
44 uint8_t ipl[0x1000]; // IPL 4KB
45 #if defined(_MZ1200) || defined(_MZ80A)
46 uint8_t ext[0x800]; // EXT 2KB
50 #if defined(_MZ1200) || defined(_MZ80A)
53 void update_memory_swap();
56 #if defined(SUPPORT_MZ80AIF)
57 uint8_t fdif[0x800]; // FD IF ROM 2KB
58 bool fdc_irq, fdc_drq;
59 void update_fdif_rom_bank();
60 #elif defined(SUPPORT_MZ80FIO)
61 uint8_t fdif[0x400]; // FD IF ROM 1KB
64 uint8_t screen[200][320];
67 uint8_t pcg[0x1000]; // PCG-1200
69 uint8_t pcg[0x800]; // PCG-8000
71 scrntype_t palette_pc[2];
73 #if defined(_MZ1200) || defined(_MZ80A)
77 uint32_t e200; // scroll
84 MZ80A_MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
86 set_device_name(_T("Memory Bus"));
93 void event_vline(int v, int clock);
94 void event_callback(int event_id, int err);
95 void write_data8(uint32_t addr, uint32_t data);
96 uint32_t read_data8(uint32_t addr);
97 void write_signal(int id, uint32_t data, uint32_t mask);
101 bool process_state(FILEIO* state_fio, bool loading);
104 void set_context_ctc(DEVICE* device)
108 void set_context_pio(DEVICE* device)