2 SHARP MZ-3500 Emulator 'EmuZ-3500'
4 Author : Takeda.Toshiya
14 #include "../../emu.h"
15 #include "../device.h"
17 #define SIG_MAIN_SACK 0
18 #define SIG_MAIN_SRDY 1
19 #define SIG_MAIN_INTFD 2
20 #define SIG_MAIN_INT0 3
21 #define SIG_MAIN_INT1 4
22 #define SIG_MAIN_INT2 5
23 #define SIG_MAIN_INT3 6
24 #define SIG_MAIN_INT4 7
25 #define SIG_MAIN_DRQ 8
26 #define SIG_MAIN_INDEX 9
28 class MAIN : public DEVICE
31 DEVICE *d_cpu, *d_subcpu, *d_fdc;
33 uint8_t* rbank[32]; // 64KB / 2KB
39 uint8_t common[0x800];
40 uint8_t basic[0x8000];
48 bool intfd, int0, int1, int2, int3, int4;
51 bool motor, drq, index;
59 MAIN(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
61 intfd = int0 = int1 = int2 = int3 = int4 = false;
69 void write_data8(uint32_t addr, uint32_t data);
70 uint32_t read_data8(uint32_t addr);
71 uint32_t fetch_op(uint32_t addr, int *wait);
72 void write_io8(uint32_t addr, uint32_t data);
73 uint32_t read_io8(uint32_t addr);
74 void write_signal(int id, uint32_t data, uint32_t mask);
75 void save_state(FILEIO* state_fio);
76 bool load_state(FILEIO* state_fio);
79 void set_context_cpu(DEVICE* device)
83 void set_context_subcpu(DEVICE* device)
87 void set_context_fdc(DEVICE* device)