changeset 2112:3abb64bd0da6

Add support for printing strings in 68K debugger
author Michael Pavone <pavone@retrodev.com>
date Sun, 13 Feb 2022 22:52:19 -0800
parents 4be496489eda
children 0013362c320c
files debug.c
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/debug.c	Sun Feb 13 22:51:41 2022 -0800
+++ b/debug.c	Sun Feb 13 22:52:19 2022 -0800
@@ -137,6 +137,7 @@
 	case 'X':
 	case 'd':
 	case 'c':
+	case 's':
 		format[5] = format_char;
 		break;
 	case '\0':
@@ -198,7 +199,22 @@
 		fprintf(stderr, "Unrecognized parameter to p: %s\n", param);
 		return;
 	}
-	printf(format, param, value);
+	if (format_char == 's') {
+		char tmp[128];
+		int i;
+		for (i = 0; i < sizeof(tmp)-1; i++, value++)
+		{
+			char c = m68k_read_byte(value, context);
+			if (c < 0x20 || c > 0x7F) {
+				break;
+			}
+			tmp[i] = c;
+		}
+		tmp[i] = 0;
+		printf(format, param, tmp);
+	} else {
+		printf(format, param, value);
+	}
 }
 
 #ifndef NO_Z80