void I386::get_debug_regs_info(_TCHAR *buffer, size_t buffer_len)
{
- cpucore->get_debug_regs_info(buffer, buffer_len);
+ i386_state *cpustate = cpucore->get_cpu_state();
+//#if defined(USE_DEBUGGER)
+ my_stprintf_s(buffer, buffer_len,
+ _T("AX=%04X BX=%04X CX=%04X DX=%04X SP=%04X BP=%04X SI=%04X DI=%04X\nDS=%04X ES=%04X SS=%04X CS=%04X IP=%04X FLAG=[%c%c%c%c%c%c%c%c%c]\nClocks = %llu (%llu) Since Scanline = %d/%d (%d/%d)"),
+ 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());
+ cpustate->prev_total_cycles = cpustate->total_cycles;
+//#endif
}
int I386::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len)
#include "../../fileio.h"
-#define STATE_VERSION 1
+#define STATE_VERSION 2
void I386_BASE::save_state(FILEIO* state_fio)
{
void i386_vtlb_free(void);
void i386_free_state(void);
+ i386_state *get_cpu_state(void) { return cpustate; }
int get_extra_clock() { return cpustate->extra_cycles; }
void set_extra_clock(int n) { cpustate->extra_cycles += n; }
}
virtual bool write_debug_reg(const _TCHAR *reg, uint32_t data) { return false; }
- virtual void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len) {};
+
virtual int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) { return 0;}
void vtlb_flush_dynamic(void) { vtlb_flush_dynamic(cpustate->vtlb); }
return true;
}
-void I386_OPS::get_debug_regs_info(_TCHAR *buffer, size_t buffer_len)
-{
-#if defined(USE_DEBUGGER)
- my_stprintf_s(buffer, buffer_len,
- _T("AX=%04X BX=%04X CX=%04X DX=%04X SP=%04X BP=%04X SI=%04X DI=%04X\nDS=%04X ES=%04X SS=%04X CS=%04X IP=%04X FLAG=[%c%c%c%c%c%c%c%c%c]\nClocks = %llu (%llu) Since Scanline = %d/%d (%d/%d)"),
- 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());
- cpustate->prev_total_cycles = cpustate->total_cycles;
-#endif
-}
-
int I386_OPS::debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len)
{
#if defined(USE_DEBUGGER)
#endif
}
bool write_debug_reg(const _TCHAR *reg, uint32_t data);
- void get_debug_regs_info(_TCHAR *buffer, size_t buffer_len);
int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len);
protected: