comparison debug.c @ 1312:9ab3f6781202

Allow adding .w or .b to select just the low word or byte of a register in a 68K debugger print command
author Michael Pavone <pavone@retrodev.com>
date Fri, 31 Mar 2017 19:11:04 -0700
parents 26bdbf1f7e33
children b27d7bf1107e
comparison
equal deleted inserted replaced
1311:26bdbf1f7e33 1312:9ab3f6781202
106 default: 106 default:
107 fprintf(stderr, "Unrecognized format character: %c\n", format_char); 107 fprintf(stderr, "Unrecognized format character: %c\n", format_char);
108 } 108 }
109 if (param[0] == 'd' && param[1] >= '0' && param[1] <= '7') { 109 if (param[0] == 'd' && param[1] >= '0' && param[1] <= '7') {
110 value = context->dregs[param[1]-'0']; 110 value = context->dregs[param[1]-'0'];
111 if (param[2] == '.') {
112 if (param[3] == 'w') {
113 value &= 0xFFFF;
114 } else if (param[3] == 'b') {
115 value &= 0xFF;
116 }
117 }
111 } else if (param[0] == 'a' && param[1] >= '0' && param[1] <= '7') { 118 } else if (param[0] == 'a' && param[1] >= '0' && param[1] <= '7') {
112 value = context->aregs[param[1]-'0']; 119 value = context->aregs[param[1]-'0'];
120 if (param[2] == '.') {
121 if (param[3] == 'w') {
122 value &= 0xFFFF;
123 } else if (param[3] == 'b') {
124 value &= 0xFF;
125 }
126 }
113 } else if (param[0] == 'S' && param[1] == 'R') { 127 } else if (param[0] == 'S' && param[1] == 'R') {
114 value = (context->status << 8); 128 value = (context->status << 8);
115 for (int flag = 0; flag < 5; flag++) { 129 for (int flag = 0; flag < 5; flag++) {
116 value |= context->flags[flag] << (4-flag); 130 value |= context->flags[flag] << (4-flag);
117 } 131 }