From 71f4affe5cccc2344a8d5bbdab239ffc9b559440 Mon Sep 17 00:00:00 2001 From: ansstuff Date: Fri, 22 Feb 2013 21:17:34 +0000 Subject: [PATCH] * Hexeditor: show symbolic names in the window caption --- src/drivers/win/debuggersp.cpp | 3 +- src/drivers/win/memview.cpp | 56 +++++++++++++++++++++++++++++----- 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/drivers/win/debuggersp.cpp b/src/drivers/win/debuggersp.cpp index 989826b8..719f4e00 100644 --- a/src/drivers/win/debuggersp.cpp +++ b/src/drivers/win/debuggersp.cpp @@ -67,7 +67,8 @@ int isHex(char c) **/ void replaceString(char* src, const char* r, const char* w) { - char buff[1001] = {0}; + static char buff[1001]; + buff[0] = 0; char* pos = src; char* beg = src; diff --git a/src/drivers/win/memview.cpp b/src/drivers/win/memview.cpp index 8eb27a1d..263657ed 100644 --- a/src/drivers/win/memview.cpp +++ b/src/drivers/win/memview.cpp @@ -31,6 +31,7 @@ #include "debugger.h" #include "cdlogger.h" #include "memviewsp.h" +#include "debuggersp.h" #include "cheat.h" #include #include "main.h" @@ -38,6 +39,10 @@ #include "help.h" #include "Win32InputBox.h" +extern Name* lastBankNames; +extern Name* loadedBankNames; +extern Name* ramBankNames; + using namespace std; #define MODE_NES_MEMORY 0 @@ -540,16 +545,53 @@ void UpdateMemoryView(int draw_all) return; } +char EditString[3][20] = {"RAM","PPU","ROM"}; + void UpdateCaption() { - char str[100]; - char EditString[3][20] = {"RAM","PPU","ROM"}; + static char str[1000]; + static char addrName[1000]; + static char addrNameCopy[1000]; - if(CursorEndAddy == -1){ - sprintf(str,"Hex Editor - %s Offset 0x%06x",EditString[EditingMode],CursorStartAddy); - } else { - sprintf(str,"Hex Editor - %s Offset 0x%06x - 0x%06x, 0x%x bytes selected ", - EditString[EditingMode],CursorStartAddy,CursorEndAddy,CursorEndAddy-CursorStartAddy+1); + if (CursorEndAddy == -1) + { + sprintf(str, "Hex Editor - %s Offset 0x%06x", + EditString[EditingMode], CursorStartAddy); + if (EditingMode == 0 && symbDebugEnabled) + { + // when watching RAM we may as well see symbolic names + sprintf(addrName, "$%04X", CursorStartAddy); + strcpy(addrNameCopy, addrName); + // try to find the name for this address in loadedBankNames + replaceNames(ramBankNames, addrName); + if (strcmp(addrName, addrNameCopy)) + { + strcat(str, " - "); + strcat(str, addrName); + } else + { + // name was not found in ramBankNames, try loadedBankNames + replaceNames(loadedBankNames, addrName); + if (strcmp(addrName, addrNameCopy)) + { + strcat(str, " - "); + strcat(str, addrName); + } else + { + // name was not found in ramBankNames, try loadedBankNames + replaceNames(lastBankNames, addrName); + if (strcmp(addrName, addrNameCopy)) + { + strcat(str, " - "); + strcat(str, addrName); + } + } + } + } + } else + { + sprintf(str, "Hex Editor - %s Offset 0x%06x - 0x%06x, 0x%x bytes selected ", + EditString[EditingMode], CursorStartAddy, CursorEndAddy, CursorEndAddy - CursorStartAddy + 1); } SetWindowText(hMemView,str); return;