summaryrefslogtreecommitdiff
path: root/debug.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-03-31 19:11:04 -0700
committerMichael Pavone <pavone@retrodev.com>2017-03-31 19:11:04 -0700
commitf432cdc78abbb00074341824fd4b2b248f5d8a55 (patch)
tree9140e82b17ce6fd4d8d9cd2d9fc38765cd5b9a5b /debug.c
parent00fcc8fe1721094606844abfd0e43819a512a984 (diff)
Allow adding .w or .b to select just the low word or byte of a register in a 68K debugger print command
Diffstat (limited to 'debug.c')
-rw-r--r--debug.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/debug.c b/debug.c
index 1832fe2..ceb439c 100644
--- a/debug.c
+++ b/debug.c
@@ -108,8 +108,22 @@ void debugger_print(m68k_context *context, char format_char, char *param)
}
if (param[0] == 'd' && param[1] >= '0' && param[1] <= '7') {
value = context->dregs[param[1]-'0'];
+ if (param[2] == '.') {
+ if (param[3] == 'w') {
+ value &= 0xFFFF;
+ } else if (param[3] == 'b') {
+ value &= 0xFF;
+ }
+ }
} else if (param[0] == 'a' && param[1] >= '0' && param[1] <= '7') {
value = context->aregs[param[1]-'0'];
+ if (param[2] == '.') {
+ if (param[3] == 'w') {
+ value &= 0xFFFF;
+ } else if (param[3] == 'b') {
+ value &= 0xFF;
+ }
+ }
} else if (param[0] == 'S' && param[1] == 'R') {
value = (context->status << 8);
for (int flag = 0; flag < 5; flag++) {