From 380e532f0e7da420367df8ca883c1e37d2f97cbb Mon Sep 17 00:00:00 2001 From: "K.Ohta" Date: Thu, 21 Feb 2019 18:07:03 +0900 Subject: [PATCH] [VM] Fix crash when end of emulation at various(!) VMs. [VM][I8080] I8085: Fix around SID instruction.FP200 works. [VM][I386] Fix crash some VMs using after i386 cpu series.This also fixes FTBFS. [VM] Fix crash when starting with some devices. --- source/src/vm/common_vm/CMakeLists.txt | 2 +- source/src/vm/fmr50/fmr50.cpp | 3 ++ source/src/vm/huc6280.h | 1 + source/src/vm/huc6280_base.cpp | 6 +++- source/src/vm/i286.h | 3 ++ source/src/vm/i8080_base.cpp | 2 ++ source/src/vm/jx/i286.h | 3 ++ source/src/vm/libcpu_newdev/i386.cpp | 15 +++++----- source/src/vm/libcpu_newdev/i386.h | 11 +++++-- source/src/vm/m6502.h | 4 +++ source/src/vm/mc6809.cpp | 12 ++++---- source/src/vm/mc6809.h | 1 + source/src/vm/msx/msx.cpp | 6 ++-- source/src/vm/mz2500/mz80b.cpp | 14 ++++----- source/src/vm/pc100/pc100.cpp | 7 +++++ source/src/vm/tms9995.h | 3 ++ source/src/vm/upd71071.cpp | 53 +++++++++++++++++++++++----------- source/src/vm/upd71071.h | 7 +++++ source/src/vm/upd7810.h | 1 + source/src/vm/x1/iobus.h | 3 ++ source/src/vm/ym2151.cpp | 8 ++--- source/src/vm/ym2151.h | 7 +---- source/src/vm/z80dma.h | 2 -- 23 files changed, 115 insertions(+), 59 deletions(-) diff --git a/source/src/vm/common_vm/CMakeLists.txt b/source/src/vm/common_vm/CMakeLists.txt index 5a7d71040..b09575ac8 100644 --- a/source/src/vm/common_vm/CMakeLists.txt +++ b/source/src/vm/common_vm/CMakeLists.txt @@ -1,6 +1,6 @@ message("* vm/common_vm") -SET(THIS_LIB_VERSION 2.7.0) +SET(THIS_LIB_VERSION 2.7.1) #include(cotire) set(s_vm_common_vm_srcs diff --git a/source/src/vm/fmr50/fmr50.cpp b/source/src/vm/fmr50/fmr50.cpp index a85a4524a..04c98c881 100644 --- a/source/src/vm/fmr50/fmr50.cpp +++ b/source/src/vm/fmr50/fmr50.cpp @@ -161,6 +161,9 @@ VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu) scsi_host->set_context_target(scsi_hdd[i]); } dma = new UPD71071(this, emu); +#ifdef USE_DEBUGGER + dma->set_context_debugger(new DEBUGGER(this, emu)); +#endif if(FILEIO::IsFileExisting(create_local_path(_T("IPL.ROM")))) { bios = NULL; } else { diff --git a/source/src/vm/huc6280.h b/source/src/vm/huc6280.h index edaa93979..973ecf124 100644 --- a/source/src/vm/huc6280.h +++ b/source/src/vm/huc6280.h @@ -39,6 +39,7 @@ protected: public: HUC6280_BASE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) { total_icount = prev_total_icount = 0; + d_debugger = NULL; set_device_name(_T("HuC6280 CPU")); } ~HUC6280_BASE() {} diff --git a/source/src/vm/huc6280_base.cpp b/source/src/vm/huc6280_base.cpp index ba33a271c..c7481575f 100644 --- a/source/src/vm/huc6280_base.cpp +++ b/source/src/vm/huc6280_base.cpp @@ -252,7 +252,11 @@ int HUC6280_BASE::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) int wait; oprom[i] = d_mem->read_data8w(pc + i, &wait); } - return CPU_DISASSEMBLE_CALL(h6280) & DASMFLAG_LENGTHMASK; + if(d_debugger != NULL) { + return CPU_DISASSEMBLE_CALL(h6280) & DASMFLAG_LENGTHMASK; + } else { + return 0; + } } //#endif diff --git a/source/src/vm/i286.h b/source/src/vm/i286.h index f978c8e2b..935173ee8 100644 --- a/source/src/vm/i286.h +++ b/source/src/vm/i286.h @@ -46,6 +46,9 @@ public: #ifdef SINGLE_MODE_DMA d_dma = NULL; #endif +#ifdef USE_DEBUGGER + d_debugger = NULL;; +#endif #if defined(HAS_I86) set_device_name(_T("8086 CPU")); #elif defined(HAS_I88) diff --git a/source/src/vm/i8080_base.cpp b/source/src/vm/i8080_base.cpp index 3cd0cb521..5404f0305 100644 --- a/source/src/vm/i8080_base.cpp +++ b/source/src/vm/i8080_base.cpp @@ -512,6 +512,7 @@ void I8080_BASE::OP(uint8_t code) RAR(); break; case 0x20: // RIM (NOP) + RIM(); //#ifdef HAS_I8085 // _A = (IM & 0x7f) | (SID ? 0x80 : 0) | RIM_IEN; // RIM_IEN = 0; @@ -1335,6 +1336,7 @@ int I8080_BASE::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) { uint8_t ops[4]; int ptr = 0; + if(d_debugger == NULL) return 0; for(int i = 0; i < 4; i++) { int wait; diff --git a/source/src/vm/jx/i286.h b/source/src/vm/jx/i286.h index 5c902d99f..ec9393bbe 100644 --- a/source/src/vm/jx/i286.h +++ b/source/src/vm/jx/i286.h @@ -47,6 +47,9 @@ public: #ifdef SINGLE_MODE_DMA d_dma = NULL; #endif +#ifdef USE_DEBUGGER + d_debugger = NULL; +#endif #if defined(HAS_I86) set_device_name(_T("8086 CPU")); #elif defined(HAS_I88) diff --git a/source/src/vm/libcpu_newdev/i386.cpp b/source/src/vm/libcpu_newdev/i386.cpp index 2e29ada14..7ee9facd1 100644 --- a/source/src/vm/libcpu_newdev/i386.cpp +++ b/source/src/vm/libcpu_newdev/i386.cpp @@ -190,22 +190,21 @@ uint32_t I386::read_debug_reg(const _TCHAR *reg) return cpucore->read_debug_reg(reg); } -void I386::get_debug_regs_info(_TCHAR *buffer, size_t buffer_len) +bool I386::get_debug_regs_info(_TCHAR *buffer, size_t buffer_len) { i386_state *cpustate = cpucore->get_cpu_state(); -//#if defined(USE_DEBUGGER) my_stprintf_s(buffer, buffer_len, - _T("Privilege Level=[%02x] MODE=%s V86=%s STACK_32BIT=%08x\nEAX=%08X EBX=%08X ECX=%08X EDX=%08X \nESP=%08X EBP=%08X ESI=%08X EDI=%08X\nDS=%04X ES=%04X SS=%04X CS=%04X EIP=%08X\nFLAG=[%c%c%c%c%c%c%c%c%c]\nClocks = %llu (%llu) Since Scanline = %d/%d (%d/%d)"), - cpustate->CPL, (PROTECTED_MODE == 0) ? _T("REAL") : _T("PROTECTED"), (V8086_MODE) ? _T("YES") : _T("NO"), - STACK_32BIT, - REG32(EAX), REG32(EBX), REG32(ECX), REG32(EDX), REG32(ESP), REG32(EBP), REG32(ESI), REG32(EDI), + _T("AX=%04X BX=%04X CX=%04X DX=%04X SP=%04X BP=%04X SI=%04X DI=%04X\n") + _T("DS=%04X ES=%04X SS=%04X CS=%04X IP=%04X FLAG=[%c%c%c%c%c%c%c%c%c]\n") + _T("Clocks = %llu (%llu) Since Scanline = %d/%d (%d/%d)"), + REG16(AX), REG16(BX), REG16(CX), REG16(DX), REG16(SP), REG16(BP), REG16(SI), REG16(DI), cpustate->sreg[DS].selector, cpustate->sreg[ES].selector, cpustate->sreg[SS].selector, cpustate->sreg[CS].selector, cpustate->eip, cpustate->OF ? _T('O') : _T('-'), cpustate->DF ? _T('D') : _T('-'), cpustate->IF ? _T('I') : _T('-'), cpustate->TF ? _T('T') : _T('-'), cpustate->SF ? _T('S') : _T('-'), cpustate->ZF ? _T('Z') : _T('-'), cpustate->AF ? _T('A') : _T('-'), cpustate->PF ? _T('P') : _T('-'), cpustate->CF ? _T('C') : _T('-'), cpustate->total_cycles, cpustate->total_cycles - cpustate->prev_total_cycles, - get_passed_clock_since_vline(), get_cur_vline_clocks(), get_cur_vline(), get_lines_per_frame()); + get_passed_clock_since_vline(), get_cur_vline_clocks(), get_cur_vline(), get_lines_per_frame()); cpustate->prev_total_cycles = cpustate->total_cycles; -//#endif + return true; } int I386::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) diff --git a/source/src/vm/libcpu_newdev/i386.h b/source/src/vm/libcpu_newdev/i386.h index 1f9f8d0d4..a7c5ccb8e 100644 --- a/source/src/vm/libcpu_newdev/i386.h +++ b/source/src/vm/libcpu_newdev/i386.h @@ -59,6 +59,14 @@ public: int run(int cycles); //int cpu_execute(void *p, int cycles); #ifdef USE_DEBUGGER + bool is_cpu() + { + return true; + } + bool is_debugger_available() + { + return true; + } void *get_debugger() { return d_debugger; @@ -85,10 +93,9 @@ public: uint32_t read_debug_io16(uint32_t addr); bool write_debug_reg(const _TCHAR *reg, uint32_t data); uint32_t read_debug_reg(const _TCHAR *reg); - void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len); + bool get_debug_regs_info(_TCHAR *buffer, size_t buffer_len); int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len); #endif - bool process_state(FILEIO *state_fio, bool loading); // unique function diff --git a/source/src/vm/m6502.h b/source/src/vm/m6502.h index d714bb246..d813bfc99 100644 --- a/source/src/vm/m6502.h +++ b/source/src/vm/m6502.h @@ -51,6 +51,10 @@ public: { total_icount = prev_total_icount = 0; busreq = false; + d_debugger = NULL; + d_mem = NULL; + d_mem_stored = NULL; + d_pic = NULL; set_device_name(_T("M6502 CPU")); } ~M6502_BASE() {} diff --git a/source/src/vm/mc6809.cpp b/source/src/vm/mc6809.cpp index 23dd3c933..194b968f7 100644 --- a/source/src/vm/mc6809.cpp +++ b/source/src/vm/mc6809.cpp @@ -21,9 +21,7 @@ #include "mc6809.h" #include "mc6809_consts.h" -#ifdef USE_DEBUGGER #include "debugger.h" -#endif #include "config.h" void MC6809::initialize() @@ -137,7 +135,7 @@ void MC6809::debugger_hook() // from MAME 0.160 -#ifdef USE_DEBUGGER +//#ifdef USE_DEBUGGER /***************************************************************************** @@ -532,11 +530,11 @@ static const _TCHAR *const m6809_regs_te[16] = _T("D"), _T("X"), _T("Y"), _T("U"), _T("S"), _T("PC"), _T("inv"), _T("inv"), _T("A"), _T("B"), _T("CC"), _T("DP"), _T("inv"), _T("inv"), _T("inv"), _T("inv") }; -#endif /* USE_DEBUGGER */ +//#endif /* USE_DEBUGGER */ uint32_t MC6809::cpu_disassemble_m6809(_TCHAR *buffer, uint32_t pc, const uint8_t *oprom, const uint8_t *opram) { -#ifdef USE_DEBUGGER + if(_USE_DEBUGGER) { uint8_t opcode, mode, pb, pbm, reg; const uint8_t *operandarray; unsigned int ea;//, flags; @@ -798,9 +796,9 @@ uint32_t MC6809::cpu_disassemble_m6809(_TCHAR *buffer, uint32_t pc, const uint8_ } return p; -#else + } else { return 0; -#endif + } } int MC6809::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) diff --git a/source/src/vm/mc6809.h b/source/src/vm/mc6809.h index abb867294..7588844bc 100644 --- a/source/src/vm/mc6809.h +++ b/source/src/vm/mc6809.h @@ -536,6 +536,7 @@ public: cycles_tmp_count = 0; insns_count = 0; __USE_DEBUGGER = false; + d_debugger = NULL; initialize_output_signals(&outputs_bus_ba); initialize_output_signals(&outputs_bus_bs); set_device_name(_T("MC6809 MPU")); diff --git a/source/src/vm/msx/msx.cpp b/source/src/vm/msx/msx.cpp index 77ddeebf3..47d34a92b 100644 --- a/source/src/vm/msx/msx.cpp +++ b/source/src/vm/msx/msx.cpp @@ -81,11 +81,13 @@ VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu) ldp = new LD700(this, emu); #endif not_remote = new NOT(this, emu); -// psg = new YM2203(this, emu); psg = new AY_3_891X(this, emu); +#ifdef USE_DEBUGGER + psg->set_context_debugger(new DEBUGGER(this, emu)); +#endif pcm = new PCM1BIT(this, emu); - not_remote->set_device_name(_T("NOT Gate (REMOTE)")); + not_remote->set_device_name(_T("NOT Gate (REMOTE)")); #if defined(_MSX2) rtc = new RP5C01(this, emu); vdp = new V99X8(this, emu); diff --git a/source/src/vm/mz2500/mz80b.cpp b/source/src/vm/mz2500/mz80b.cpp index 286a04d72..c1c5a9c95 100644 --- a/source/src/vm/mz2500/mz80b.cpp +++ b/source/src/vm/mz2500/mz80b.cpp @@ -273,6 +273,13 @@ VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu) for(DEVICE* device = first_device; device; device = device->next_device) { device->initialize(); } + for(int drv = 0; drv < MAX_DRIVE; drv++) { +// if(config.drive_type) { +// fdc->set_drive_type(drv, DRIVE_TYPE_2D); +// } else { + fdc->set_drive_type(drv, DRIVE_TYPE_2DD); +// } + } } VM::~VM() @@ -284,13 +291,6 @@ VM::~VM() delete device; device = next_device; } - for(int drv = 0; drv < MAX_DRIVE; drv++) { -// if(config.drive_type) { -// fdc->set_drive_type(drv, DRIVE_TYPE_2D); -// } else { - fdc->set_drive_type(drv, DRIVE_TYPE_2DD); -// } - } } DEVICE* VM::get_device(int id) diff --git a/source/src/vm/pc100/pc100.cpp b/source/src/vm/pc100/pc100.cpp index 464e8a2d8..3174bcf24 100644 --- a/source/src/vm/pc100/pc100.cpp +++ b/source/src/vm/pc100/pc100.cpp @@ -161,6 +161,13 @@ VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu) for(DEVICE* device = first_device; device; device = device->next_device) { device->initialize(); } + for(int i = 0; i < 4; i++) { + if(config.drive_type) { + fdc->set_drive_type(i, DRIVE_TYPE_2DD); + } else { + fdc->set_drive_type(i, DRIVE_TYPE_2D); + } + } } VM::~VM() diff --git a/source/src/vm/tms9995.h b/source/src/vm/tms9995.h index 814ff7512..d721aeae9 100644 --- a/source/src/vm/tms9995.h +++ b/source/src/vm/tms9995.h @@ -120,6 +120,9 @@ public: // init registers #ifdef USE_DEBUGGER total_count = prev_total_count = 0; + d_debugger = NULL; + d_mem_tmp = NULL; + d_io_tmp = NULL; #endif WP = PC = ST = 0; memset(RAM, 0, sizeof(RAM)); diff --git a/source/src/vm/upd71071.cpp b/source/src/vm/upd71071.cpp index 2b0903bf1..6ccdfd0bf 100644 --- a/source/src/vm/upd71071.cpp +++ b/source/src/vm/upd71071.cpp @@ -14,15 +14,17 @@ void UPD71071::initialize() { DEVICE::initialize(); _SINGLE_MODE_DMA = osd->check_feature(_T("SINGLE_MODE_DMA")); - + _USE_DEBUGGER = osd->check_feature(_T("USE_DEBUGGER")); for(int i = 0; i < 4; i++) { dma[i].areg = dma[i].bareg = 0; dma[i].creg = dma[i].bcreg = 0; } - if(d_debugger != NULL) { - d_debugger->set_device_name(_T("Debugger (uPD71071 DMAC)")); - d_debugger->set_context_mem(this); - d_debugger->set_context_io(vm->dummy); + if(_USE_DEBUGGER) { + if(d_debugger != NULL) { + d_debugger->set_device_name(_T("Debugger (uPD71071 DMAC)")); + d_debugger->set_context_mem(this); + d_debugger->set_context_io(vm->dummy); + } } } @@ -247,21 +249,30 @@ void UPD71071::do_dma() // io -> memory uint32_t val; val = dma[c].dev->read_dma_io16(0); - if(d_debugger != NULL && d_debugger->now_device_debugging) { - d_debugger->write_via_debugger_data16(dma[c].areg, val); + if(_USE_DEBUGGER) { + if(d_debugger != NULL && d_debugger->now_device_debugging) { + d_debugger->write_via_debugger_data16(dma[c].areg, val); + } else { + this->write_via_debugger_data16(dma[c].areg, val); + } } else { - this->write_via_debugger_data16(dma[c].areg, val); + this->write_via_debugger_data16(dma[c].areg, val); } + // update temporary register tmp = val; } else if((dma[c].mode & 0x0c) == 0x08) { // memory -> io uint32_t val; - if(d_debugger != NULL && d_debugger->now_device_debugging) { - val = d_debugger->read_via_debugger_data16(dma[c].areg); + if(_USE_DEBUGGER) { + if(d_debugger != NULL && d_debugger->now_device_debugging) { + val = d_debugger->read_via_debugger_data16(dma[c].areg); + } else { + val = this->read_via_debugger_data16(dma[c].areg); + } } else { - val = this->read_via_debugger_data16(dma[c].areg); - } + val = this->read_via_debugger_data16(dma[c].areg); + } dma[c].dev->write_dma_io16(0, val); // update temporary register tmp = val; @@ -302,18 +313,26 @@ void UPD71071::do_dma() // io -> memory uint32_t val; val = dma[c].dev->read_dma_io8(0); - if(d_debugger != NULL && d_debugger->now_device_debugging) { - d_debugger->write_via_debugger_data8(dma[c].areg, val); + if(_USE_DEBUGGER) { + if(d_debugger != NULL && d_debugger->now_device_debugging) { + d_debugger->write_via_debugger_data8(dma[c].areg, val); + } else { + this->write_via_debugger_data8(dma[c].areg, val); + } } else { this->write_via_debugger_data8(dma[c].areg, val); - } + } // update temporary register tmp = (tmp >> 8) | (val << 8); } else if((dma[c].mode & 0x0c) == 0x08) { // memory -> io uint32_t val; - if(d_debugger != NULL && d_debugger->now_device_debugging) { - val = d_debugger->read_via_debugger_data8(dma[c].areg); + if(_USE_DEBUGGER) { + if(d_debugger != NULL && d_debugger->now_device_debugging) { + val = d_debugger->read_via_debugger_data8(dma[c].areg); + } else { + val = this->read_via_debugger_data8(dma[c].areg); + } } else { val = this->read_via_debugger_data8(dma[c].areg); } diff --git a/source/src/vm/upd71071.h b/source/src/vm/upd71071.h index 5a765d747..b643eda9a 100644 --- a/source/src/vm/upd71071.h +++ b/source/src/vm/upd71071.h @@ -44,6 +44,7 @@ private: uint8_t req, sreq, mask, tc; bool _SINGLE_MODE_DMA; + bool _USE_DEBUGGER; public: UPD71071(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) { @@ -61,7 +62,9 @@ public: //#ifdef SINGLE_MODE_DMA d_dma = NULL; //#endif + d_debugger = NULL; _SINGLE_MODE_DMA = false; + _USE_DEBUGGER = false; initialize_output_signals(&outputs_tc); set_device_name(_T("uPD71071 DMAC")); } @@ -117,6 +120,10 @@ public: d_dma = device; } //#endif + void set_context_debugger(DEBUGGER* device) + { + d_debugger = device; + } void set_context_tc(DEVICE* device, int id, uint32_t mask) { register_output_signal(&outputs_tc, device, id, mask); diff --git a/source/src/vm/upd7810.h b/source/src/vm/upd7810.h index 78d862fe7..26aaad09b 100644 --- a/source/src/vm/upd7810.h +++ b/source/src/vm/upd7810.h @@ -50,6 +50,7 @@ public: { #ifdef USE_DEBUGGER total_icount = prev_total_icount = 0; + d_debugger = NULL; #endif initialize_output_signals(&outputs_to); initialize_output_signals(&outputs_txd); diff --git a/source/src/vm/x1/iobus.h b/source/src/vm/x1/iobus.h index 6412bb8e3..1a13acb32 100644 --- a/source/src/vm/x1/iobus.h +++ b/source/src/vm/x1/iobus.h @@ -66,6 +66,9 @@ private: public: IOBUS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) { +#ifdef USE_DEBUGGER + d_debugger = NULL; +#endif set_device_name(_T("I/O Bus (VRAM)")); } ~IOBUS() {} diff --git a/source/src/vm/ym2151.cpp b/source/src/vm/ym2151.cpp index fda16b322..174eaf1dd 100644 --- a/source/src/vm/ym2151.cpp +++ b/source/src/vm/ym2151.cpp @@ -8,9 +8,7 @@ */ #include "ym2151.h" -#ifdef USE_DEBUGGER #include "debugger.h" -#endif #define EVENT_FM_TIMER 0 @@ -37,13 +35,11 @@ void YM2151::initialize() mute = false; clock_prev = clock_accum = clock_busy = 0; -#ifdef USE_DEBUGGER if(d_debugger != NULL) { d_debugger->set_device_name(_T("Debugger (YM2151 OPM)")); d_debugger->set_context_mem(this); d_debugger->set_context_io(vm->dummy); } -#endif } void YM2151::release() @@ -79,11 +75,11 @@ void YM2151::reset() void YM2151::write_io8(uint32_t addr, uint32_t data) { if(addr & 1) { -#ifdef USE_DEBUGGER +//#ifdef USE_DEBUGGER if(d_debugger != NULL && d_debugger->now_device_debugging) { d_debugger->write_via_debugger_data8(ch, data); } else -#endif +//#endif this->write_via_debugger_data8(ch, data); } else { ch = data; diff --git a/source/src/vm/ym2151.h b/source/src/vm/ym2151.h index cfc318501..63cfa062a 100644 --- a/source/src/vm/ym2151.h +++ b/source/src/vm/ym2151.h @@ -64,9 +64,7 @@ public: { initialize_output_signals(&outputs_irq); base_decibel = 0; -#ifdef USE_DEBUGGER d_debugger = NULL; -#endif set_device_name(_T("YM2151 OPM")); } ~YM2151() {} @@ -86,7 +84,6 @@ public: // for debugging void write_via_debugger_data8(uint32_t addr, uint32_t data); uint32_t read_via_debugger_data8(uint32_t addr); -#ifdef USE_DEBUGGER bool is_debugger_available() { return true; @@ -112,19 +109,17 @@ public: } return 0; } -#endif + bool process_state(FILEIO* state_fio, bool loading); // unique functions void set_context_irq(DEVICE* device, int id, uint32_t mask) { register_output_signal(&outputs_irq, device, id, mask); } -#ifdef USE_DEBUGGER void set_context_debugger(DEBUGGER* device) { d_debugger = device; } -#endif void initialize_sound(int rate, int clock, int samples, int decibel); void set_reg(uint32_t addr, uint32_t data); // for patch }; diff --git a/source/src/vm/z80dma.h b/source/src/vm/z80dma.h index 0328ada8e..46b6d5ecf 100644 --- a/source/src/vm/z80dma.h +++ b/source/src/vm/z80dma.h @@ -135,12 +135,10 @@ public: { d_io = device; } -#ifdef USE_DEBUGGER void set_context_debugger(DEBUGGER* device) { d_debugger = device; } -#endif }; #endif -- 2.11.0