From 1a8ffd75606e69c6f766188f2ab424cc53782a52 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 15 Jan 2004 18:53:52 +0000 Subject: Changes from work --- src/memmenu.c | 142 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 111 insertions(+), 31 deletions(-) (limited to 'src/memmenu.c') diff --git a/src/memmenu.c b/src/memmenu.c index dfce66d..41a18b3 100644 --- a/src/memmenu.c +++ b/src/memmenu.c @@ -41,20 +41,21 @@ static const char ident[]="$Id$"; static const char ident_h[]=ESPEC_MEMMENU_H; #ifndef TRUE -#define TRUE 1 +#define TRUE 1 #endif #ifndef FALSE -#define FALSE 0 +#define FALSE 0 #endif -#define WHITE GFXRGB(255,255,255) -#define BLACK GFXRGB(0,0,0) -#define RED GFXRGB(255,100,100) -#define GREEN GFXRGB(100,255,100) -#define BLUE GFXRGB(100,100,255) +#define WHITE GFXRGB(255,255,255) +#define BLACK GFXRGB(0,0,0) +#define RED GFXRGB(255,100,100) +#define GREEN GFXRGB(100,255,100) +#define BLUE GFXRGB(100,100,255) -#define TRACE "trace" +#define TRACE "trace" +#define TRACEMEM_WIN 10 /* ---------------------------------------- TYPES @@ -66,10 +67,26 @@ typedef struct } Breakpoint; +typedef struct +{ + Z80Word addr; + Z80Word val; +} MemTrace; + + +typedef struct +{ + Z80State s; + MemTrace hl[TRACEMEM_WIN]; + MemTrace de[TRACEMEM_WIN]; + MemTrace sp[TRACEMEM_WIN]; +} Trace; + + /* ---------------------------------------- STATIC DATA */ static FILE *trace=NULL; -static Breakpoint bpoint={NULL,0}; +static Breakpoint bpoint={0,NULL}; static const char *brk=NULL; static int lodged=FALSE; @@ -111,15 +128,16 @@ static void DisplayMenu(void) { static const char *menu[]= { - "1. Disassemble/Hex dump ", - "2. Disassemble to file ", - "3. Start/Stop trace log ", - "4. Playback trace log ", - "5. Add a new breakpoint ", - "6. Clear a breakpoint ", - "7. Display breakpoints ", - "8. Clear all breakpoints", - "9. Return ", + "1 - Disassemble/Hex dump ", + "2 - Disassemble to file ", + "3 - Start/Stop trace log ", + "4 - Playback trace log ", + "5 - Add a new breakpoint ", + "6 -Clear a breakpoint ", + "7 - Display breakpoints ", + "8 - Clear all breakpoints", + "R - Reset ", + "ESC - Return ", NULL }; @@ -170,6 +188,10 @@ void DisplayZ80State(Z80State *s, int y, Uint32 col) "IX=%4.4x IY=%4.4x SP=%4.4x", s->IX,s->IY,s->SP); y+=8; + GFXPrintPaper(0,y,col,BLACK, + "AF'=%4.4x BC'=%4.4x DE'=%4.4x HL'=%4.4x", + s->AF_,s->BC_,s->DE_,s->HL_); + y+=8; GFXPrintPaper(0,y,col,BLACK, "I=%2.2x IM=%2.2x R=%2.2x", s->I,s->IM,s->R); @@ -396,17 +418,43 @@ static void DoDisassemFile(Z80 *z80, const Z80State *s) } +static void GetMemTrace(Z80 *z80, MemTrace *t, Z80Word from, int count) +{ + int f; + + f=0; + + while(f