Win32 - Debugger - Added DWEdits patch, it Adds pixel dislpay next to scanline display, and adds two new buttons: Run Line, Run 128 Lines
This commit is contained in:
parent
ef92dee8c6
commit
659f0b48db
|
@ -1,4 +1,6 @@
|
||||||
---version 2.0.4 yet to be released---
|
---version 2.0.4 yet to be released---
|
||||||
|
21-feb-2009 - adelikat - win32 - Debugger - Added pixel display after scanline display - Thanks to DWEdit for this patch
|
||||||
|
21-feb-2009 - adelikat - win32 - Debugger - Added Run Line, Run 128 Lines buttons - Thanks to DWEdit for this patch
|
||||||
21-feb-2009 - adelikat - win32 - Message Log - remembers X,Y position
|
21-feb-2009 - adelikat - win32 - Message Log - remembers X,Y position
|
||||||
19-feb-2009 - adelikat - win32 - Memory Watch - fixed recent file menu - no longer crashes when attempting to load a non existent recent file
|
19-feb-2009 - adelikat - win32 - Memory Watch - fixed recent file menu - no longer crashes when attempting to load a non existent recent file
|
||||||
07-feb-2009 - adelikat - win32 - Fix bug in screenshot numbering that caused numbering to not reset when changing ROMs
|
07-feb-2009 - adelikat - win32 - Fix bug in screenshot numbering that caused numbering to not reset when changing ROMs
|
||||||
|
|
|
@ -533,7 +533,18 @@ void breakpoint() {
|
||||||
BreakHit(true);
|
BreakHit(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//if we're running for a scanline, we want to check if we've hit the cycle limit
|
||||||
|
if (dbgstate.runline) {
|
||||||
|
uint64 ts = timestampbase;
|
||||||
|
ts+=timestamp;
|
||||||
|
int diff = dbgstate.runline_end_time-ts;
|
||||||
|
if (diff<=0)
|
||||||
|
{
|
||||||
|
dbgstate.runline=false;
|
||||||
|
BreakHit(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
//check the step over address and break if we've hit it
|
//check the step over address and break if we've hit it
|
||||||
if ((watchpoint[64].address == _PC) && (watchpoint[64].flags)) {
|
if ((watchpoint[64].address == _PC) && (watchpoint[64].flags)) {
|
||||||
watchpoint[64].address = 0;
|
watchpoint[64].address = 0;
|
||||||
|
@ -602,33 +613,10 @@ int debug_tracing;
|
||||||
|
|
||||||
|
|
||||||
void DebugCycle() {
|
void DebugCycle() {
|
||||||
if (numWPs || dbgstate.step || dbgstate.stepout || watchpoint[64].flags || dbgstate.badopbreak)
|
if (numWPs || dbgstate.step || dbgstate.runline || dbgstate.stepout || watchpoint[64].flags || dbgstate.badopbreak)
|
||||||
breakpoint();
|
breakpoint();
|
||||||
if(debug_loggingCD) LogCDData();
|
if(debug_loggingCD) LogCDData();
|
||||||
//mbg 6/30/06 - this was commented out when i got here. i dont understand it anyway
|
//mbg 6/30/06 - this was commented out when i got here. i dont understand it anyway
|
||||||
//if(logging || (hMemView && (EditingMode == 2))) LogInstruction();
|
//if(logging || (hMemView && (EditingMode == 2))) LogInstruction();
|
||||||
FCEUD_TraceInstruction();
|
FCEUD_TraceInstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//opbrktype is used to grab the breakpoint type that each instruction will cause.
|
|
||||||
//WP_X is not used because ALL opcodes will have the execute bit set.
|
|
||||||
const uint8 opbrktype[256] = {
|
|
||||||
/*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F*/
|
|
||||||
/*0x00*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x10*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x20*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x30*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x40*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x50*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x60*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x70*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0x80*/ 0, WP_W, 0, 0, WP_W, WP_W, WP_W, 0, 0, 0, 0, 0, WP_W, WP_W, WP_W, 0,
|
|
||||||
/*0x90*/ 0, WP_W, 0, 0, WP_W, WP_W, WP_W, 0, 0, WP_W, 0, 0, 0, WP_W, 0, 0,
|
|
||||||
/*0xA0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R, 0,
|
|
||||||
/*0xB0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0, 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0,
|
|
||||||
/*0xC0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0xD0*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0xE0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
|
||||||
/*0xF0*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0
|
|
||||||
};
|
|
26
src/debug.h
26
src/debug.h
|
@ -17,7 +17,27 @@
|
||||||
#define BT_S 0x40 //break type, sprite mem
|
#define BT_S 0x40 //break type, sprite mem
|
||||||
|
|
||||||
//opbrktype is used to grab the breakpoint type that each instruction will cause.
|
//opbrktype is used to grab the breakpoint type that each instruction will cause.
|
||||||
extern const uint8 opbrktype[256];
|
//WP_X is not used because ALL opcodes will have the execute bit set.
|
||||||
|
static const uint8 opbrktype[256] = {
|
||||||
|
/*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F*/
|
||||||
|
/*0x00*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x10*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x20*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x30*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x40*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x50*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x60*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x70*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0x80*/ 0, WP_W, 0, 0, WP_W, WP_W, WP_W, 0, 0, 0, 0, 0, WP_W, WP_W, WP_W, 0,
|
||||||
|
/*0x90*/ 0, WP_W, 0, 0, WP_W, WP_W, WP_W, 0, 0, WP_W, 0, 0, 0, WP_W, 0, 0,
|
||||||
|
/*0xA0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R, 0,
|
||||||
|
/*0xB0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0, 0, WP_R, 0, 0, WP_R, WP_R, WP_R, 0,
|
||||||
|
/*0xC0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0xD0*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0xE0*/ 0, WP_R, 0, 0, WP_R, WP_R, WP_R|WP_W, 0, 0, 0, 0, 0, WP_R, WP_R, WP_R|WP_W, 0,
|
||||||
|
/*0xF0*/ 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0, 0, WP_R, 0, 0, 0, WP_R, WP_R|WP_W, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16 address;
|
uint16 address;
|
||||||
|
@ -84,6 +104,10 @@ public:
|
||||||
bool step;
|
bool step;
|
||||||
///indicates whether the debugger is stepping out of a function call
|
///indicates whether the debugger is stepping out of a function call
|
||||||
bool stepout;
|
bool stepout;
|
||||||
|
///indicates whether the debugger is running one line
|
||||||
|
bool runline;
|
||||||
|
///target timestamp for runline to stop at
|
||||||
|
uint64 runline_end_time;
|
||||||
///indicates whether the debugger should break on bad opcodes
|
///indicates whether the debugger should break on bad opcodes
|
||||||
bool badopbreak;
|
bool badopbreak;
|
||||||
///counts the nest level of the call stack while stepping out
|
///counts the nest level of the call stack while stepping out
|
||||||
|
|
|
@ -67,10 +67,10 @@ static SCROLLINFO si;
|
||||||
|
|
||||||
void RestoreSize(HWND hwndDlg)
|
void RestoreSize(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
//As of the writing of this function (revision 1053) the Debugger default width = 821 and height of 523
|
//As of the writing of this function (revision 1137) the Debugger default width = 821 and height of 523
|
||||||
//If the dialog dimensions are changed those changes need to be reflected here. - adelikat
|
//If the dialog dimensions are changed those changes need to be reflected here. - adelikat
|
||||||
const int DEFAULT_WIDTH = 821; //Original width
|
const int DEFAULT_WIDTH = 821; //Original width
|
||||||
const int DEFAULT_HEIGHT = 523; //Original height
|
const int DEFAULT_HEIGHT = 549; //Original height
|
||||||
|
|
||||||
SetWindowPos(hwndDlg,HWND_TOPMOST,DbgPosX,DbgPosY,DEFAULT_WIDTH,DEFAULT_HEIGHT,SWP_SHOWWINDOW);
|
SetWindowPos(hwndDlg,HWND_TOPMOST,DbgPosX,DbgPosY,DEFAULT_WIDTH,DEFAULT_HEIGHT,SWP_SHOWWINDOW);
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,7 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
char str[8]={0};
|
char str[8]={0};
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
switch(uMsg) {
|
switch(uMsg) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
CenterWindow(hwndDlg);
|
CenterWindow(hwndDlg);
|
||||||
|
@ -187,7 +187,7 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
SendDlgItemMessage(hwndDlg,IDC_ADDBP_ADDR_END,EM_SETLIMITTEXT,4,0);
|
SendDlgItemMessage(hwndDlg,IDC_ADDBP_ADDR_END,EM_SETLIMITTEXT,4,0);
|
||||||
if (WP_edit >= 0) {
|
if (WP_edit >= 0) {
|
||||||
SetWindowText(hwndDlg,"Edit Breakpoint...");
|
SetWindowText(hwndDlg,"Edit Breakpoint...");
|
||||||
|
|
||||||
sprintf(str,"%04X",watchpoint[WP_edit].address);
|
sprintf(str,"%04X",watchpoint[WP_edit].address);
|
||||||
SetDlgItemText(hwndDlg,IDC_ADDBP_ADDR_START,str);
|
SetDlgItemText(hwndDlg,IDC_ADDBP_ADDR_START,str);
|
||||||
sprintf(str,"%04X",watchpoint[WP_edit].endaddress);
|
sprintf(str,"%04X",watchpoint[WP_edit].endaddress);
|
||||||
|
@ -536,7 +536,15 @@ void UpdateDebugger()
|
||||||
sprintf(str, "%02X", PPU[3]);
|
sprintf(str, "%02X", PPU[3]);
|
||||||
SetDlgItemText(hDebug, IDC_DEBUGGER_VAL_SPR, str);
|
SetDlgItemText(hDebug, IDC_DEBUGGER_VAL_SPR, str);
|
||||||
|
|
||||||
sprintf(str, "Scanline: %d", scanline);
|
extern int linestartts; FCEUI_DispMessage("linestartts = %d",linestartts);
|
||||||
|
#define GETLASTPIXEL (PAL?((timestamp*48-linestartts)/15) : ((timestamp*48-linestartts)/16) )
|
||||||
|
|
||||||
|
int ppupixel = GETLASTPIXEL;
|
||||||
|
|
||||||
|
if (ppupixel>999)
|
||||||
|
ppupixel = 0; //Currently pixel display is borked until Run 128 lines is clicked, this keeps garbage from displaying
|
||||||
|
|
||||||
|
sprintf(str, "Scanline: %d, Pixel %d", scanline,ppupixel);
|
||||||
SetDlgItemText(hDebug, IDC_DEBUGGER_VAL_SLINE, str);
|
SetDlgItemText(hDebug, IDC_DEBUGGER_VAL_SLINE, str);
|
||||||
|
|
||||||
tmp = X.S|0x0100;
|
tmp = X.S|0x0100;
|
||||||
|
@ -1236,6 +1244,34 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||||
FCEUI_SetEmulationPaused(0);
|
FCEUI_SetEmulationPaused(0);
|
||||||
UpdateDebugger();
|
UpdateDebugger();
|
||||||
break;
|
break;
|
||||||
|
case IDC_DEBUGGER_RUN_LINE:
|
||||||
|
if (FCEUI_EmulationPaused()) {
|
||||||
|
UpdateRegs(hwndDlg);
|
||||||
|
}
|
||||||
|
FCEUI_Debugger().runline = true;
|
||||||
|
{
|
||||||
|
uint64 ts=timestampbase;
|
||||||
|
ts+=timestamp;
|
||||||
|
ts+=341/3;
|
||||||
|
FCEUI_Debugger().runline_end_time=ts;
|
||||||
|
}
|
||||||
|
FCEUI_SetEmulationPaused(0);
|
||||||
|
UpdateDebugger();
|
||||||
|
break;
|
||||||
|
case IDC_DEBUGGER_RUN_FRAME2:
|
||||||
|
if (FCEUI_EmulationPaused()) {
|
||||||
|
UpdateRegs(hwndDlg);
|
||||||
|
}
|
||||||
|
FCEUI_Debugger().runline = true;
|
||||||
|
{
|
||||||
|
uint64 ts=timestampbase;
|
||||||
|
ts+=timestamp;
|
||||||
|
ts+=128*341/3;
|
||||||
|
FCEUI_Debugger().runline_end_time=ts;
|
||||||
|
}
|
||||||
|
FCEUI_SetEmulationPaused(0);
|
||||||
|
UpdateDebugger();
|
||||||
|
break;
|
||||||
case IDC_DEBUGGER_STEP_OUT:
|
case IDC_DEBUGGER_STEP_OUT:
|
||||||
//mbg merge 7/18/06 changed pausing check and set
|
//mbg merge 7/18/06 changed pausing check and set
|
||||||
if (FCEUI_EmulationPaused() > 0) {
|
if (FCEUI_EmulationPaused() > 0) {
|
||||||
|
|
|
@ -918,63 +918,65 @@ BEGIN
|
||||||
PUSHBUTTON "<",MEMW_EXPANDCOLLAPSE,1,259,11,10
|
PUSHBUTTON "<",MEMW_EXPANDCOLLAPSE,1,259,11,10
|
||||||
END
|
END
|
||||||
|
|
||||||
DEBUGGER DIALOGEX 54, 74, 542, 305
|
DEBUGGER DIALOGEX 54, 74, 542, 321
|
||||||
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
||||||
CAPTION "6502 Debugger"
|
CAPTION "6502 Debugger"
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
EDITTEXT IDC_DEBUGGER_DISASSEMBLY,15,6,318,289,ES_MULTILINE | ES_READONLY | WS_HSCROLL
|
EDITTEXT IDC_DEBUGGER_DISASSEMBLY,15,6,318,300,ES_MULTILINE | ES_READONLY | WS_HSCROLL
|
||||||
SCROLLBAR IDC_DEBUGGER_DISASSEMBLY_VSCR,336,6,8,288,SBS_VERT
|
SCROLLBAR IDC_DEBUGGER_DISASSEMBLY_VSCR,336,6,8,300,SBS_VERT
|
||||||
GROUPBOX "Status Flags",401,430,138,104,38,WS_TABSTOP
|
GROUPBOX "Status Flags",401,430,151,104,38,WS_TABSTOP
|
||||||
CONTROL "N",IDC_DEBUGGER_FLAG_N,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,150,22,12
|
CONTROL "N",IDC_DEBUGGER_FLAG_N,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,163,22,12
|
||||||
CONTROL "V",IDC_DEBUGGER_FLAG_V,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,460,150,22,12
|
CONTROL "V",IDC_DEBUGGER_FLAG_V,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,460,163,22,12
|
||||||
CONTROL "U",IDC_DEBUGGER_FLAG_U,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,485,150,22,12
|
CONTROL "U",IDC_DEBUGGER_FLAG_U,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,485,163,22,12
|
||||||
CONTROL "B",IDC_DEBUGGER_FLAG_B,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,510,150,22,12
|
CONTROL "B",IDC_DEBUGGER_FLAG_B,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,510,163,22,12
|
||||||
CONTROL "D",IDC_DEBUGGER_FLAG_D,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,161,22,12
|
CONTROL "D",IDC_DEBUGGER_FLAG_D,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,174,22,12
|
||||||
CONTROL "I",IDC_DEBUGGER_FLAG_I,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,460,161,22,12
|
CONTROL "I",IDC_DEBUGGER_FLAG_I,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,460,174,22,12
|
||||||
CONTROL "Z",IDC_DEBUGGER_FLAG_Z,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,485,161,22,12
|
CONTROL "Z",IDC_DEBUGGER_FLAG_Z,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,485,174,22,12
|
||||||
CONTROL "C",IDC_DEBUGGER_FLAG_C,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,510,161,22,12
|
CONTROL "C",IDC_DEBUGGER_FLAG_C,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,510,174,22,12
|
||||||
GROUPBOX "BreakPoints",402,430,3,104,132,WS_TABSTOP
|
GROUPBOX "BreakPoints",402,430,3,104,143,WS_TABSTOP
|
||||||
LISTBOX IDC_DEBUGGER_BP_LIST,437,16,90,74,LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
|
LISTBOX IDC_DEBUGGER_BP_LIST,437,16,90,91,LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
|
||||||
PUSHBUTTON "Add...",IDC_DEBUGGER_BP_ADD,437,97,30,15
|
PUSHBUTTON "Add...",IDC_DEBUGGER_BP_ADD,437,111,30,15
|
||||||
PUSHBUTTON "Delete",IDC_DEBUGGER_BP_DEL,469,97,30,15,WS_DISABLED
|
PUSHBUTTON "Delete",IDC_DEBUGGER_BP_DEL,469,111,30,15,WS_DISABLED
|
||||||
PUSHBUTTON "Edit",IDC_DEBUGGER_BP_EDIT,501,97,26,15,WS_DISABLED
|
PUSHBUTTON "Edit",IDC_DEBUGGER_BP_EDIT,501,111,26,15,WS_DISABLED
|
||||||
PUSHBUTTON "Run",IDC_DEBUGGER_RUN,349,7,37,14
|
PUSHBUTTON "Run",IDC_DEBUGGER_RUN,349,7,37,14
|
||||||
PUSHBUTTON "Step Into",IDC_DEBUGGER_STEP_IN,389,7,38,14
|
PUSHBUTTON "Step Into",IDC_DEBUGGER_STEP_IN,389,7,38,14
|
||||||
PUSHBUTTON "Step Out",IDC_DEBUGGER_STEP_OUT,349,23,37,14
|
PUSHBUTTON "Step Out",IDC_DEBUGGER_STEP_OUT,349,23,37,14
|
||||||
PUSHBUTTON "Step Over",IDC_DEBUGGER_STEP_OVER,389,23,38,14
|
PUSHBUTTON "Step Over",IDC_DEBUGGER_STEP_OVER,389,23,38,14
|
||||||
LTEXT "A:",IDC_STATIC,349,83,10,8
|
LTEXT "A:",IDC_STATIC,349,96,10,8
|
||||||
LTEXT "X:",65534,376,83,10,8
|
LTEXT "X:",65534,376,96,10,8
|
||||||
LTEXT "Y:",65533,404,83,10,8
|
LTEXT "Y:",65533,404,96,10,8
|
||||||
LTEXT "PC:",65532,349,65,13,8
|
LTEXT "PC:",65532,349,78,13,8
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_A,357,81,15,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_A,357,94,15,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_X,385,81,15,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_X,385,94,15,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_Y,412,81,15,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_Y,412,94,15,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_PC,361,63,25,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_PC,361,76,25,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
GROUPBOX "Stack",IDC_DEBUGGER_VAL_S,349,99,79,78,WS_TABSTOP
|
GROUPBOX "Stack",IDC_DEBUGGER_VAL_S,349,112,79,78,WS_TABSTOP
|
||||||
EDITTEXT IDC_DEBUGGER_STACK_CONTENTS,354,110,69,62,ES_MULTILINE | ES_UPPERCASE | ES_READONLY
|
EDITTEXT IDC_DEBUGGER_STACK_CONTENTS,354,123,69,62,ES_MULTILINE | ES_UPPERCASE | ES_READONLY
|
||||||
PUSHBUTTON "Seek PC",IDC_DEBUGGER_SEEK_PC,389,62,38,14
|
PUSHBUTTON "Seek PC",IDC_DEBUGGER_SEEK_PC,389,75,38,14
|
||||||
PUSHBUTTON "Seek To:",IDC_DEBUGGER_SEEK_TO,349,43,37,14
|
PUSHBUTTON "Seek To:",IDC_DEBUGGER_SEEK_TO,349,56,37,14
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_PCSEEK,389,44,38,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_PCSEEK,389,57,38,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
LTEXT "PPU:",65531,349,183,19,10
|
LTEXT "PPU:",65531,349,196,19,10
|
||||||
LTEXT "Sprite:",65530,395,183,21,10
|
LTEXT "Sprite:",65530,395,196,21,10
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_PPU,367,182,25,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_PPU,367,195,25,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
EDITTEXT IDC_DEBUGGER_VAL_SPR,417,182,15,12,ES_UPPERCASE | ES_WANTRETURN
|
EDITTEXT IDC_DEBUGGER_VAL_SPR,417,195,15,12,ES_UPPERCASE | ES_WANTRETURN
|
||||||
LTEXT "Scanline:",IDC_DEBUGGER_VAL_SLINE,435,183,50,10
|
LTEXT "Scanline:",IDC_DEBUGGER_VAL_SLINE,435,196,97,10
|
||||||
CONTROL "",IDC_DEBUGGER_ADDR_LINE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,5,295,328,10
|
CONTROL "",IDC_DEBUGGER_ADDR_LINE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,5,307,328,10
|
||||||
CONTROL "Break on Bad Opcode",IDC_DEBUGGER_BREAK_ON_BAD_OP,
|
CONTROL "Break on Bad Opcode",IDC_DEBUGGER_BREAK_ON_BAD_OP,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,437,118,90,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,437,132,90,10
|
||||||
CONTROL "Symbolic debugging",IDC_DEBUGGER_ENABLE_SYMBOLIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,200,79,10
|
CONTROL "Symbolic debugging",IDC_DEBUGGER_ENABLE_SYMBOLIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,347,213,79,10
|
||||||
PUSHBUTTON "Reload Symbols",IDC_DEBUGGER_RELOAD_SYMS,427,198,55,14
|
PUSHBUTTON "Reload Symbols",IDC_DEBUGGER_RELOAD_SYMS,427,211,55,14
|
||||||
GROUPBOX "Bookmarks",45535,348,214,119,80
|
GROUPBOX "Bookmarks",45535,348,227,119,80
|
||||||
LISTBOX LIST_DEBUGGER_BOOKMARKS,351,223,67,66,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
LISTBOX LIST_DEBUGGER_BOOKMARKS,351,236,67,66,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||||
EDITTEXT IDC_DEBUGGER_BOOKMARK,421,223,40,14,ES_AUTOHSCROLL
|
EDITTEXT IDC_DEBUGGER_BOOKMARK,421,236,40,14,ES_AUTOHSCROLL
|
||||||
PUSHBUTTON "Add",IDC_DEBUGGER_BOOKMARK_ADD,421,239,40,14
|
PUSHBUTTON "Add",IDC_DEBUGGER_BOOKMARK_ADD,421,252,40,14
|
||||||
PUSHBUTTON "Delete",IDC_DEBUGGER_BOOKMARK_DEL,421,255,40,14
|
PUSHBUTTON "Delete",IDC_DEBUGGER_BOOKMARK_DEL,421,268,40,14
|
||||||
PUSHBUTTON "Rom Patcher",IDC_DEBUGGER_ROM_PATCHER,487,198,46,14
|
PUSHBUTTON "Rom Patcher",IDC_DEBUGGER_ROM_PATCHER,487,211,46,14
|
||||||
CONTROL "",IDC_DEBUGGER_ICONTRAY,"Static",SS_BLACKFRAME,5,7,10,287
|
CONTROL "",IDC_DEBUGGER_ICONTRAY,"Static",SS_BLACKFRAME,5,6,10,301
|
||||||
PUSHBUTTON "",IDC_DEBUGGER_RESTORESIZE,348,296,9,7
|
PUSHBUTTON "",IDC_DEBUGGER_RESTORESIZE,348,308,9,7
|
||||||
LTEXT "Restore original window size",IDC_STATIC,359,295,90,8
|
LTEXT "Restore original window size",IDC_STATIC,359,308,90,8
|
||||||
|
PUSHBUTTON "Run Line",IDC_DEBUGGER_RUN_LINE,349,39,37,14
|
||||||
|
PUSHBUTTON "128 Lines",IDC_DEBUGGER_RUN_FRAME2,389,39,37,14
|
||||||
END
|
END
|
||||||
|
|
||||||
TRACER DIALOGEX 65527, 65513, 398, 319
|
TRACER DIALOGEX 65527, 65513, 398, 319
|
||||||
|
@ -1564,6 +1566,7 @@ BEGIN
|
||||||
"DEBUGGER", DIALOG
|
"DEBUGGER", DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
RIGHTMARGIN, 541
|
RIGHTMARGIN, 541
|
||||||
|
BOTTOMMARGIN, 318
|
||||||
END
|
END
|
||||||
|
|
||||||
"ADDBP", DIALOG
|
"ADDBP", DIALOG
|
||||||
|
|
|
@ -125,9 +125,12 @@
|
||||||
#define BTN_CLEAR_AH 114
|
#define BTN_CLEAR_AH 114
|
||||||
#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114
|
#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114
|
||||||
#define IDD_DIALOG1 114
|
#define IDD_DIALOG1 114
|
||||||
|
#define IDC_DEBUGGER_RUN_LINE 114
|
||||||
#define LBL_AUTO_HOLD 115
|
#define LBL_AUTO_HOLD 115
|
||||||
#define IDC_CHECK_LOG_NEW_DATA 115
|
#define IDC_CHECK_LOG_NEW_DATA 115
|
||||||
#define IDD_DIALOG2 115
|
#define IDD_DIALOG2 115
|
||||||
|
#define IDC_DEBUGGER_STEP_OUT3 115
|
||||||
|
#define IDC_DEBUGGER_RUN_FRAME2 115
|
||||||
#define LBL_CLEAR_AH 116
|
#define LBL_CLEAR_AH 116
|
||||||
#define IDC_CHECK_LOG_UPDATE_WINDOW 116
|
#define IDC_CHECK_LOG_UPDATE_WINDOW 116
|
||||||
#define CHECK_SOUND_8BIT 122
|
#define CHECK_SOUND_8BIT 122
|
||||||
|
|
|
@ -691,7 +691,7 @@ static DECLFW(B4014)
|
||||||
|
|
||||||
static uint8 *Pline,*Plinef;
|
static uint8 *Pline,*Plinef;
|
||||||
static int firsttile;
|
static int firsttile;
|
||||||
static int linestartts;
|
int linestartts; //no longer static so the debugger can see it
|
||||||
static int tofix=0;
|
static int tofix=0;
|
||||||
|
|
||||||
static void ResetRL(uint8 *target)
|
static void ResetRL(uint8 *target)
|
||||||
|
|
Loading…
Reference in New Issue