2 ASCII MSX1 Emulator 'yaMSX1'
3 ASCII MSX2 Emulator 'yaMSX2'
4 Pioneer PX-7 Emulator 'ePX-7'
6 Author : Takeda.Toshiya
19 #include "../../emu.h"
20 #include "../device.h"
22 #define SIG_SLOT2_EXV 0
23 #define SIG_SLOT2_ACK 1
24 #define SIG_SLOT2_MUTE 2
26 #define SIG_MEMORY_SEL 0
34 class SLOT0 : public DEVICE
46 SLOT0(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
51 void write_data8(uint32_t addr, uint32_t data);
52 uint32_t read_data8(uint32_t addr);
53 void save_state(FILEIO* state_fio);
54 bool load_state(FILEIO* state_fio);
59 class SLOT1 : public DEVICE
73 SLOT1(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
78 void write_data8(uint32_t addr, uint32_t data);
79 uint32_t read_data8(uint32_t addr);
80 void save_state(FILEIO* state_fio);
81 bool load_state(FILEIO* state_fio);
84 void open_cart(const _TCHAR *file_path);
86 bool is_cart_inserted()
95 class SLOT2 : public DEVICE
98 DEVICE *d_cpu, *d_ldp, *d_vdp;
100 uint8_t wdmy[0x2000];
101 uint8_t rdmy[0x2000];
110 bool pc4, mute_l, mute_r;
113 SLOT2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
119 void write_data8(uint32_t addr, uint32_t data);
120 uint32_t read_data8(uint32_t addr);
121 void write_signal(int id, uint32_t data, uint32_t mask);
122 void event_callback(int event_id, int err);
123 void save_state(FILEIO* state_fio);
124 bool load_state(FILEIO* state_fio);
127 void set_context_cpu(DEVICE* device)
131 void set_context_ldp(DEVICE* device)
135 void set_context_vdp(DEVICE* device)
141 class SLOT2 : public DEVICE
144 uint8_t wdmy[0x2000];
145 uint8_t rdmy[0x2000];
151 SLOT2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
156 void write_data8(uint32_t addr, uint32_t data);
157 uint32_t read_data8(uint32_t addr);
163 class SLOT3 : public DEVICE
166 uint8_t wdmy[0x2000];
167 uint8_t rdmy[0x2000];
170 uint8_t rom[0x10000];
171 uint8_t ram[0x20000];
176 SLOT3(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
181 void write_data8(uint32_t addr, uint32_t data);
182 uint32_t read_data8(uint32_t addr);
183 void write_io8(uint32_t addr, uint32_t data);
184 void save_state(FILEIO* state_fio);
185 bool load_state(FILEIO* state_fio);
188 void open_cart(const _TCHAR *file_path);
190 bool is_cart_inserted()
198 class MEMORY : public DEVICE
204 DISK* disk[MAX_DRIVE];
206 uint32_t slot_select;
207 void update_map(uint32_t val);
210 MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
219 void write_data8(uint32_t addr, uint32_t data);
220 uint32_t read_data8(uint32_t addr);
221 uint32_t fetch_op(uint32_t addr, int* wait);
222 void write_io8(uint32_t addr, uint32_t data);
223 void write_signal(int id, uint32_t data, uint32_t mask);
225 bool bios_ret_z80(uint16_t PC, pair_t* af, pair_t* bc, pair_t* de, pair_t* hl, pair_t* ix, pair_t* iy, uint8_t* iff1);
227 void save_state(FILEIO* state_fio);
228 bool load_state(FILEIO* state_fio);
231 void set_context_slot(int drv, DEVICE *device)
233 d_slot[drv] = device;
236 void open_disk(int drv, const _TCHAR* file_path, int bank);
237 void close_disk(int drv);
238 bool is_disk_inserted(int drv);
239 void is_disk_protected(int drv, bool value);
240 bool is_disk_protected(int drv);