2 Skelton for retropc emulator
4 Origin : MAME Z80DMA / Xmillenium
5 Author : Takeda.Toshiya
18 #define SIG_Z80DMA_READY 0
22 class Z80DMA : public DEVICE
27 outputs_t outputs_wrote_mem;
51 void __FASTCALL write_memory(uint32_t addr, uint32_t data, int* wait);
52 uint32_t __FASTCALL read_memory(uint32_t addr, int* wait);
53 void __FASTCALL write_ioport(uint32_t addr, uint32_t data, int* wait);
54 uint32_t __FASTCALL read_ioport(uint32_t addr, int* wait);
61 bool _SINGLE_MODE_DMA;
63 bool _X1TURBO_FEATURE;
67 void __FASTCALL update_read_buffer();
68 void __FASTCALL request_intr(int level);
71 DEVICE *d_cpu, *d_child;
77 Z80DMA(VM_TEMPLATE* parent_vm, EMU_TEMPLATE* parent_emu) : DEVICE(parent_vm, parent_emu)
79 for(int i = 0; i < 6 * 8 + 1 + 1; i++) {
82 _SINGLE_MODE_DMA = _DMA_DEBUG = false;
83 d_cpu = d_child = NULL;
85 initialize_output_signals(&outputs_wrote_mem);
86 set_device_name(_T("Z80 DMA"));
93 void __FASTCALL write_io8(uint32_t addr, uint32_t data);
94 uint32_t __FASTCALL read_io8(uint32_t addr);
95 void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask);
96 void __FASTCALL do_dma();
98 void __FASTCALL write_via_debugger_data8w(uint32_t addr, uint32_t data, int* wait);
99 uint32_t __FASTCALL read_via_debugger_data8w(uint32_t addr, int* wait);
100 void __FASTCALL write_via_debugger_io8w(uint32_t addr, uint32_t data, int* wait);
101 uint32_t __FASTCALL read_via_debugger_io8w(uint32_t addr, int* wait);
102 bool is_debugger_available()
110 bool get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
111 bool process_state(FILEIO* state_fio, bool loading);
112 // interrupt common functions
113 void set_context_intr(DEVICE* device, uint32_t bit)
118 void set_context_child(DEVICE* device)
122 DEVICE *get_context_child()
126 void set_intr_iei(bool val);
127 uint32_t get_intr_ack();
128 void notify_intr_reti();
131 void set_context_memory(DEVICE* device)
135 void set_context_io(DEVICE* device)
139 void set_context_debugger(DEBUGGER* device)
143 void set_context_wrote_mem(DEVICE* device, int id)
145 register_output_signal(&outputs_wrote_mem, device, id, 1);