diff m68k_core.c @ 2400:c97609fe8315

Implement watchpoints in Z80 debugger
author Michael Pavone <pavone@retrodev.com>
date Sat, 23 Dec 2023 23:03:31 -0800
parents 68eba54b60f7
children b733a10488c6
line wrap: on
line diff
--- a/m68k_core.c	Sat Dec 23 22:11:43 2023 -0800
+++ b/m68k_core.c	Sat Dec 23 23:03:31 2023 -0800
@@ -923,7 +923,7 @@
 
 void m68k_add_watchpoint(m68k_context *context, uint32_t address, uint32_t size)
 {
-	uint32_t end = address + size;
+	uint32_t end = address + size - 1;
 	for (uint32_t i = 0; i < context->num_watchpoints; i++)
 	{
 		if (context->watchpoints[i].start == address && context->watchpoints[i].end == end) {
@@ -944,14 +944,14 @@
 	if (context->watchpoint_min > address) {
 		context->watchpoint_min = address;
 	}
-	if (context->watchpoint_max < address + size) {
-		context->watchpoint_max = address + size;
+	if (context->watchpoint_max < end) {
+		context->watchpoint_max = end;
 	}
 }
 
 void m68k_remove_watchpoint(m68k_context *context, uint32_t address, uint32_t size)
 {
-	uint32_t end = address + size;
+	uint32_t end = address + size - 1;
 	for (uint32_t i = 0; i < context->num_watchpoints; i++)
 	{
 		if (context->watchpoints[i].start == address && context->watchpoints[i].end == end) {