Mercurial > repos > blastem
comparison debug.c @ 1314:ae932ca28282
Allow a .l suffix to a memory print command to allow fetching and printing a longword
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 04 Apr 2017 19:31:14 -0700 |
parents | b27d7bf1107e |
children | 85a90964b557 |
comparison
equal
deleted
inserted
replaced
1313:b27d7bf1107e | 1314:ae932ca28282 |
---|---|
143 value = context->current_cycle; | 143 value = context->current_cycle; |
144 } else if(param[0] == 'f') { | 144 } else if(param[0] == 'f') { |
145 genesis_context *gen = context->system; | 145 genesis_context *gen = context->system; |
146 value = gen->vdp->frame; | 146 value = gen->vdp->frame; |
147 } else if ((param[0] == '0' && param[1] == 'x') || param[0] == '$') { | 147 } else if ((param[0] == '0' && param[1] == 'x') || param[0] == '$') { |
148 uint32_t p_addr = strtol(param+(param[0] == '0' ? 2 : 1), NULL, 16); | 148 char *after; |
149 value = m68k_read_word(p_addr, context); | 149 uint32_t p_addr = strtol(param+(param[0] == '0' ? 2 : 1), &after, 16); |
150 if (after[0] == '.' && after[1] == 'l') { | |
151 value = m68k_read_long(p_addr, context); | |
152 } else { | |
153 value = m68k_read_word(p_addr, context); | |
154 } | |
150 } else if(param[0] == '(' && (param[1] == 'a' || param[1] == 'd') && param[2] >= '0' && param[2] <= '7' && param[3] == ')') { | 155 } else if(param[0] == '(' && (param[1] == 'a' || param[1] == 'd') && param[2] >= '0' && param[2] <= '7' && param[3] == ')') { |
151 uint8_t reg = param[2] - '0'; | 156 uint8_t reg = param[2] - '0'; |
152 uint32_t p_addr = param[1] == 'a' ? context->aregs[reg] : context->dregs[reg]; | 157 uint32_t p_addr = param[1] == 'a' ? context->aregs[reg] : context->dregs[reg]; |
153 value = m68k_read_word(p_addr, context); | 158 if (param[4] == '.' && param[5] == 'l') { |
159 value = m68k_read_long(p_addr, context); | |
160 } else { | |
161 value = m68k_read_word(p_addr, context); | |
162 } | |
154 } else { | 163 } else { |
155 fprintf(stderr, "Unrecognized parameter to p: %s\n", param); | 164 fprintf(stderr, "Unrecognized parameter to p: %s\n", param); |
156 return; | 165 return; |
157 } | 166 } |
158 printf(format, param, value); | 167 printf(format, param, value); |