2 SHARP MZ-80K Emulator 'EmuZ-80K'
\r
3 SHARP MZ-1200 Emulator 'EmuZ-1200'
\r
5 Author : Takeda.Toshiya
\r
8 SHARP MZ-80A Emulator 'EmuZ-80A'
\r
19 #include "../../emu.h"
\r
20 #include "../device.h"
\r
22 #if defined(SUPPORT_MZ80AIF)
\r
23 #define SIG_MEMORY_FDC_IRQ 1
\r
24 #define SIG_MEMORY_FDC_DRQ 2
\r
27 class MEMORY : public DEVICE
\r
30 DEVICE *d_ctc, *d_pio;
\r
31 #if defined(_MZ1200) || defined(_MZ80A)
\r
40 uint8 ram[0xd000]; // RAM 48KB + swap 4KB
\r
41 #if defined(_MZ1200) || defined(_MZ80A)
\r
42 uint8 vram[0x800]; // VRAM 2KB
\r
44 uint8 vram[0x400]; // VRAM 1KB
\r
46 uint8 ipl[0x1000]; // IPL 4KB
\r
47 #if defined(_MZ1200) || defined(_MZ80A)
\r
48 uint8 ext[0x800]; // EXT 2KB
\r
52 #if defined(_MZ1200) || defined(_MZ80A)
\r
55 void update_memory_swap();
\r
58 uint8 e200; // scroll
\r
61 #if defined(SUPPORT_MZ80AIF)
\r
62 uint8 fdif[0x800]; // FD IF ROM 2KB
\r
63 bool fdc_irq, fdc_drq;
\r
64 void update_fdif_rom_bank();
\r
68 MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
\r
74 void event_vline(int v, int clock);
\r
75 void event_callback(int event_id, int err);
\r
76 void write_data8(uint32 addr, uint32 data);
\r
77 uint32 read_data8(uint32 addr);
\r
78 #if defined(SUPPORT_MZ80AIF)
\r
79 void write_signal(int id, uint32 data, uint32 mask);
\r
81 void save_state(FILEIO* state_fio);
\r
82 bool load_state(FILEIO* state_fio);
\r
84 // unitque functions
\r
85 void set_context_ctc(DEVICE* device)
\r
89 void set_context_pio(DEVICE* device)
\r
93 #if defined(_MZ1200) || defined(_MZ80A)
\r
94 void set_context_disp(DEVICE* device)
\r