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);